{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"blacklist","inputs":[{"name":"_account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklister","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"configureMinter","inputs":[{"name":"minter","type":"address","internalType":"address"},{"name":"minterAllowedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"currency","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"tokenName","type":"string","internalType":"string"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"tokenCurrency","type":"string","internalType":"string"},{"name":"tokenDecimals","type":"uint8","internalType":"uint8"},{"name":"newMasterMinter","type":"address","internalType":"address"},{"name":"newPauser","type":"address","internalType":"address"},{"name":"newBlacklister","type":"address","internalType":"address"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBlacklisted","inputs":[{"name":"_account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isMinter","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"masterMinter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"minterAllowance","inputs":[{"name":"minter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"pauser","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeMinter","inputs":[{"name":"minter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unBlacklist","inputs":[{"name":"_account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateBlacklister","inputs":[{"name":"_newBlacklister","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateMasterMinter","inputs":[{"name":"_newMasterMinter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePauser","inputs":[{"name":"_newPauser","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Blacklisted","inputs":[{"name":"_account","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BlacklisterChanged","inputs":[{"name":"newBlacklister","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Burn","inputs":[{"name":"burner","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MasterMinterChanged","inputs":[{"name":"newMasterMinter","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"minter","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MinterConfigured","inputs":[{"name":"minter","type":"address","indexed":true,"internalType":"address"},{"name":"minterAllowedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MinterRemoved","inputs":[{"name":"oldMinter","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":false,"internalType":"address"},{"name":"newOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Pause","inputs":[],"anonymous":false},{"type":"event","name":"PauserChanged","inputs":[{"name":"newAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UnBlacklisted","inputs":[{"name":"_account","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpause","inputs":[],"anonymous":false}],"bytecode":{"object":"0x60806040526001805460ff60a01b191690556000600b5534801561002257600080fd5b5061002c33610031565b610053565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b612ffe80620000636000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806370a082311161010f578063aa271e1a116100a2578063e5a6b10f11610071578063e5a6b10f14610821578063f2fde38b14610829578063f9f92be41461085c578063fe575a871461088f576101e5565b8063aa271e1a14610778578063ad38bf22146107ab578063bd102430146107de578063dd62ed3e146107e6576101e5565b806395d89b41116100de57806395d89b41146106fc5780639fd0506d14610704578063a9059cbb1461070c578063aa20e1e414610745576101e5565b806370a08231146106865780638456cb59146106b95780638a6db9c3146106c15780638da5cb5b146106f4576101e5565b80633357162b1161018757806342966c681161015657806342966c68146105f55780634e44d95614610612578063554bab3c1461064b5780635c975abb1461067e576101e5565b80633357162b1461039757806335d99f35146105835780633f4ba83a146105b457806340c10f19146105bc576101e5565b80631a895266116101c35780631a895266146102ce57806323b872dd146103035780633092afd514610346578063313ce56714610379576101e5565b806306fdde03146101ea578063095ea7b31461026757806318160ddd146102b4575b600080fd5b6101f26108c2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022c578181015183820152602001610214565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a06004803603604081101561027d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561096e565b604080519115158252519081900360200190f35b6102bc610ad1565b60408051918252519081900360200190f35b610301600480360360208110156102e457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ad7565b005b6102a06004803603606081101561031957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610b94565b6102a06004803603602081101561035c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e4f565b610381610f48565b6040805160ff9092168252519081900360200190f35b61030160048036036101008110156103ae57600080fd5b8101906020810181356401000000008111156103c957600080fd5b8201836020820111156103db57600080fd5b803590602001918460018302840111640100000000831117156103fd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561045057600080fd5b82018360208201111561046257600080fd5b8035906020019184600183028401116401000000008311171561048457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156104d757600080fd5b8201836020820111156104e957600080fd5b8035906020019184600183028401116401000000008311171561050b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050813560ff16925050602081013573ffffffffffffffffffffffffffffffffffffffff90811691604081013582169160608201358116916080013516610f51565b61058b611293565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103016112af565b6102a0600480360360408110156105d257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611372565b6103016004803603602081101561060b57600080fd5b5035611743565b6102a06004803603604081101561062857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356119e5565b6103016004803603602081101561066157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611b78565b6102a0611cdf565b6102bc6004803603602081101561069c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611d00565b610301611d11565b6102bc600480360360208110156106d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611deb565b61058b611e13565b6101f2611e2f565b61058b611ea8565b6102a06004803603604081101561072257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611ec4565b6103016004803603602081101561075b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661201c565b6102a06004803603602081101561078e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612183565b610301600480360360208110156107c157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166121ae565b61058b612315565b6102bc600480360360408110156107fc57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516612331565b6101f2612369565b6103016004803603602081101561083f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166123e2565b6103016004803603602081101561087257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612535565b6102a0600480360360208110156108a557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166125f2565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156109665780601f1061093b57610100808354040283529160200191610966565b820191906000526020600020905b81548152906001019060200180831161094957829003601f168201915b505050505081565b60015460009074010000000000000000000000000000000000000000900460ff16156109fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b33610a05816125f9565b15610a5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b83610a65816125f9565b15610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b610ac6338686612624565b506001949350505050565b600b5490565b60025473ffffffffffffffffffffffffffffffffffffffff163314610b47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612db8602c913960400191505060405180910390fd5b610b508161276b565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f117e3210bb9aa7d9baff172026820255c6f6c30ba8999d1c2fd88e2848137c4e90600090a250565b60015460009074010000000000000000000000000000000000000000900460ff1615610c2157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b33610c2b816125f9565b15610c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b84610c8b816125f9565b15610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b84610ceb816125f9565b15610d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a60209081526040808320338452909152902054851115610dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612e5a6028913960400191505060405180910390fd5b610dd5878787612776565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a60209081526040808320338452909152902054610e109086612941565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600a60209081526040808320338452909152902055600193505050509392505050565b60085460009073ffffffffffffffffffffffffffffffffffffffff163314610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612d8f6029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600d909152808220829055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a2506001919050565b60065460ff1681565b60085474010000000000000000000000000000000000000000900460ff1615610fc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612eb0602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180612e2b602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831661109d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612d176029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e82602e913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116611175576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612f736028913960400191505060405180910390fd5b87516111889060049060208b0190612ba4565b50865161119c9060059060208a0190612ba4565b5085516111b0906007906020890190612ba4565b50600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff8716179055600880547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff878116919091179092556001805482168684161790556002805490911691841691909117905561124a8161298a565b5050600880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461131f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f516022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60015460009074010000000000000000000000000000000000000000900460ff16156113ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff16611467576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612e0a6021913960400191505060405180910390fd5b33611471816125f9565b156114c7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b836114d1816125f9565b15611527576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516611593576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612cac6023913960400191505060405180910390fd5b600084116115ec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612d406029913960400191505060405180910390fd5b336000908152600d602052604090205480851115611655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f23602e913960400191505060405180910390fd5b600b5461166290866129d1565b600b556116818661167c8761167683612a45565b906129d1565b612a6d565b61168b8186612941565b336000818152600d6020908152604091829020939093558051888152905173ffffffffffffffffffffffffffffffffffffffff8a16937fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f8928290030190a360408051868152905173ffffffffffffffffffffffffffffffffffffffff8816916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600195945050505050565b60015474010000000000000000000000000000000000000000900460ff16156117cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff16611835576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612e0a6021913960400191505060405180910390fd5b3361183f816125f9565b15611895576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b60006118a033612a45565b9050600083116118fb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612c836029913960400191505060405180910390fd5b82811015611954576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612de46026913960400191505060405180910390fd5b600b546119619084612941565b600b556119723361167c8386612941565b60408051848152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a260408051848152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050565b60015460009074010000000000000000000000000000000000000000900460ff1615611a7257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b60085473ffffffffffffffffffffffffffffffffffffffff163314611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612d8f6029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600d825291829020859055815185815291517f46980fca912ef9bcdbd36877427b6b90e860769f604e89c0e67720cece530d209281900390910190a250600192915050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611bfe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611c6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612c5b6028913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fb80482a293ca2e013eda8683c9bd7fc8347cfdaeea5ede58cba46df502c2a60490600090a250565b60015474010000000000000000000000000000000000000000900460ff1681565b6000611d0b82612a45565b92915050565b60015473ffffffffffffffffffffffffffffffffffffffff163314611d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f516022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b73ffffffffffffffffffffffffffffffffffffffff166000908152600d602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156109665780601f1061093b57610100808354040283529160200191610966565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60015460009074010000000000000000000000000000000000000000900460ff1615611f5157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b33611f5b816125f9565b15611fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b83611fbb816125f9565b15612011576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b610ac6338686612776565b60005473ffffffffffffffffffffffffffffffffffffffff1633146120a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811661210e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180612e2b602f913960400191505060405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fdb66dfa9c6b8f5226fe9aac7e51897ae8ee94ac31dc70bb6c9900b2574b707e690600090a250565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205460ff1690565b60005473ffffffffffffffffffffffffffffffffffffffff16331461223457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166122a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180612f9b6032913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fc67398012c111ce95ecb7429b933096c977380ee6c421175a71a4a4c6c88c06e90600090a250565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600a6020908152604080832093909416825291909152205490565b6007805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156109665780601f1061093b57610100808354040283529160200191610966565b60005473ffffffffffffffffffffffffffffffffffffffff16331461246857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166124d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612ccf6026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a16125328161298a565b50565b60025473ffffffffffffffffffffffffffffffffffffffff1633146125a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612db8602c913960400191505060405180910390fd5b6125ae81612a96565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85590600090a250565b6000611d0b825b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff8316612690576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612eff6024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166126fc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612cf56022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8084166000818152600a6020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b612532816000612a9d565b73ffffffffffffffffffffffffffffffffffffffff83166127e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612eda6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661284e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612c386023913960400191505060405180910390fd5b61285783612a45565b8111156128af576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612d696026913960400191505060405180910390fd5b6128c68361167c836128c087612a45565b90612941565b6128d78261167c8361167686612a45565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600061298383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612af3565b9392505050565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008282018381101561298357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff1660009081526009602052604090205490565b73ffffffffffffffffffffffffffffffffffffffff909116600090815260096020526040902055565b6125328160015b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60008184841115612b9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612b61578181015183820152602001612b49565b50505050905090810190601f168015612b8e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612be557805160ff1916838001178555612c12565b82800160010185558215612c12579182015b82811115612c12578251825591602001919060010190612bf7565b50612c1e929150612c22565b5090565b5b80821115612c1e5760008155600101612c2356fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735061757361626c653a206e65772070617573657220697320746865207a65726f206164647265737346696174546f6b656e3a206275726e20616d6f756e74206e6f742067726561746572207468616e203046696174546f6b656e3a206d696e7420746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737346696174546f6b656e3a206e65772070617573657220697320746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e74206e6f742067726561746572207468616e203045524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f7420746865206d61737465724d696e746572426c61636b6c69737461626c653a2063616c6c6572206973206e6f742074686520626c61636b6c697374657246696174546f6b656e3a206275726e20616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f742061206d696e74657246696174546f6b656e3a206e6577206d61737465724d696e74657220697320746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636546696174546f6b656e3a206e657720626c61636b6c697374657220697320746865207a65726f206164647265737346696174546f6b656e3a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e742065786365656473206d696e746572416c6c6f77616e63655061757361626c653a2063616c6c6572206973206e6f74207468652070617573657246696174546f6b656e3a206e6577206f776e657220697320746865207a65726f2061646472657373426c61636b6c69737461626c653a206e657720626c61636b6c697374657220697320746865207a65726f2061646472657373426c61636b6c69737461626c653a206163636f756e7420697320626c61636b6c6973746564a164736f6c634300060c000a","sourceMap":"1036:12879:22:-:0;;;2107:26:24;;;-1:-1:-1;;;;2107:26:24;;;2128:5;1710:33:22;;1036:12879;;;;;;;;;-1:-1:-1;2226:20:23;2235:10;2226:8;:20::i;:::-;1036:12879:22;;2496:79:23;2551:6;:17;;-1:-1:-1;;;;;;2551:17:23;-1:-1:-1;;;;;2551:17:23;;;;;;;;;;2496:79::o;1036:12879:22:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101e55760003560e01c806370a082311161010f578063aa271e1a116100a2578063e5a6b10f11610071578063e5a6b10f14610821578063f2fde38b14610829578063f9f92be41461085c578063fe575a871461088f576101e5565b8063aa271e1a14610778578063ad38bf22146107ab578063bd102430146107de578063dd62ed3e146107e6576101e5565b806395d89b41116100de57806395d89b41146106fc5780639fd0506d14610704578063a9059cbb1461070c578063aa20e1e414610745576101e5565b806370a08231146106865780638456cb59146106b95780638a6db9c3146106c15780638da5cb5b146106f4576101e5565b80633357162b1161018757806342966c681161015657806342966c68146105f55780634e44d95614610612578063554bab3c1461064b5780635c975abb1461067e576101e5565b80633357162b1461039757806335d99f35146105835780633f4ba83a146105b457806340c10f19146105bc576101e5565b80631a895266116101c35780631a895266146102ce57806323b872dd146103035780633092afd514610346578063313ce56714610379576101e5565b806306fdde03146101ea578063095ea7b31461026757806318160ddd146102b4575b600080fd5b6101f26108c2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022c578181015183820152602001610214565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a06004803603604081101561027d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561096e565b604080519115158252519081900360200190f35b6102bc610ad1565b60408051918252519081900360200190f35b610301600480360360208110156102e457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ad7565b005b6102a06004803603606081101561031957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610b94565b6102a06004803603602081101561035c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e4f565b610381610f48565b6040805160ff9092168252519081900360200190f35b61030160048036036101008110156103ae57600080fd5b8101906020810181356401000000008111156103c957600080fd5b8201836020820111156103db57600080fd5b803590602001918460018302840111640100000000831117156103fd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561045057600080fd5b82018360208201111561046257600080fd5b8035906020019184600183028401116401000000008311171561048457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156104d757600080fd5b8201836020820111156104e957600080fd5b8035906020019184600183028401116401000000008311171561050b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050813560ff16925050602081013573ffffffffffffffffffffffffffffffffffffffff90811691604081013582169160608201358116916080013516610f51565b61058b611293565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103016112af565b6102a0600480360360408110156105d257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611372565b6103016004803603602081101561060b57600080fd5b5035611743565b6102a06004803603604081101561062857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356119e5565b6103016004803603602081101561066157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611b78565b6102a0611cdf565b6102bc6004803603602081101561069c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611d00565b610301611d11565b6102bc600480360360208110156106d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611deb565b61058b611e13565b6101f2611e2f565b61058b611ea8565b6102a06004803603604081101561072257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611ec4565b6103016004803603602081101561075b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661201c565b6102a06004803603602081101561078e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612183565b610301600480360360208110156107c157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166121ae565b61058b612315565b6102bc600480360360408110156107fc57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516612331565b6101f2612369565b6103016004803603602081101561083f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166123e2565b6103016004803603602081101561087257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612535565b6102a0600480360360208110156108a557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166125f2565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156109665780601f1061093b57610100808354040283529160200191610966565b820191906000526020600020905b81548152906001019060200180831161094957829003601f168201915b505050505081565b60015460009074010000000000000000000000000000000000000000900460ff16156109fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b33610a05816125f9565b15610a5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b83610a65816125f9565b15610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b610ac6338686612624565b506001949350505050565b600b5490565b60025473ffffffffffffffffffffffffffffffffffffffff163314610b47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612db8602c913960400191505060405180910390fd5b610b508161276b565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f117e3210bb9aa7d9baff172026820255c6f6c30ba8999d1c2fd88e2848137c4e90600090a250565b60015460009074010000000000000000000000000000000000000000900460ff1615610c2157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b33610c2b816125f9565b15610c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b84610c8b816125f9565b15610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b84610ceb816125f9565b15610d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a60209081526040808320338452909152902054851115610dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612e5a6028913960400191505060405180910390fd5b610dd5878787612776565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a60209081526040808320338452909152902054610e109086612941565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600a60209081526040808320338452909152902055600193505050509392505050565b60085460009073ffffffffffffffffffffffffffffffffffffffff163314610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612d8f6029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600d909152808220829055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a2506001919050565b60065460ff1681565b60085474010000000000000000000000000000000000000000900460ff1615610fc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612eb0602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180612e2b602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831661109d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612d176029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e82602e913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116611175576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612f736028913960400191505060405180910390fd5b87516111889060049060208b0190612ba4565b50865161119c9060059060208a0190612ba4565b5085516111b0906007906020890190612ba4565b50600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff8716179055600880547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff878116919091179092556001805482168684161790556002805490911691841691909117905561124a8161298a565b5050600880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461131f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f516022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60015460009074010000000000000000000000000000000000000000900460ff16156113ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff16611467576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612e0a6021913960400191505060405180910390fd5b33611471816125f9565b156114c7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b836114d1816125f9565b15611527576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516611593576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612cac6023913960400191505060405180910390fd5b600084116115ec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612d406029913960400191505060405180910390fd5b336000908152600d602052604090205480851115611655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f23602e913960400191505060405180910390fd5b600b5461166290866129d1565b600b556116818661167c8761167683612a45565b906129d1565b612a6d565b61168b8186612941565b336000818152600d6020908152604091829020939093558051888152905173ffffffffffffffffffffffffffffffffffffffff8a16937fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f8928290030190a360408051868152905173ffffffffffffffffffffffffffffffffffffffff8816916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600195945050505050565b60015474010000000000000000000000000000000000000000900460ff16156117cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff16611835576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612e0a6021913960400191505060405180910390fd5b3361183f816125f9565b15611895576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b60006118a033612a45565b9050600083116118fb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612c836029913960400191505060405180910390fd5b82811015611954576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612de46026913960400191505060405180910390fd5b600b546119619084612941565b600b556119723361167c8386612941565b60408051848152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a260408051848152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050565b60015460009074010000000000000000000000000000000000000000900460ff1615611a7257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b60085473ffffffffffffffffffffffffffffffffffffffff163314611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612d8f6029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600d825291829020859055815185815291517f46980fca912ef9bcdbd36877427b6b90e860769f604e89c0e67720cece530d209281900390910190a250600192915050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611bfe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611c6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612c5b6028913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fb80482a293ca2e013eda8683c9bd7fc8347cfdaeea5ede58cba46df502c2a60490600090a250565b60015474010000000000000000000000000000000000000000900460ff1681565b6000611d0b82612a45565b92915050565b60015473ffffffffffffffffffffffffffffffffffffffff163314611d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f516022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b73ffffffffffffffffffffffffffffffffffffffff166000908152600d602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156109665780601f1061093b57610100808354040283529160200191610966565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60015460009074010000000000000000000000000000000000000000900460ff1615611f5157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b33611f5b816125f9565b15611fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b83611fbb816125f9565b15612011576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fcd6025913960400191505060405180910390fd5b610ac6338686612776565b60005473ffffffffffffffffffffffffffffffffffffffff1633146120a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811661210e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180612e2b602f913960400191505060405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fdb66dfa9c6b8f5226fe9aac7e51897ae8ee94ac31dc70bb6c9900b2574b707e690600090a250565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205460ff1690565b60005473ffffffffffffffffffffffffffffffffffffffff16331461223457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166122a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180612f9b6032913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fc67398012c111ce95ecb7429b933096c977380ee6c421175a71a4a4c6c88c06e90600090a250565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600a6020908152604080832093909416825291909152205490565b6007805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156109665780601f1061093b57610100808354040283529160200191610966565b60005473ffffffffffffffffffffffffffffffffffffffff16331461246857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166124d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612ccf6026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a16125328161298a565b50565b60025473ffffffffffffffffffffffffffffffffffffffff1633146125a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612db8602c913960400191505060405180910390fd5b6125ae81612a96565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85590600090a250565b6000611d0b825b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff8316612690576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612eff6024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166126fc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612cf56022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8084166000818152600a6020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b612532816000612a9d565b73ffffffffffffffffffffffffffffffffffffffff83166127e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612eda6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661284e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612c386023913960400191505060405180910390fd5b61285783612a45565b8111156128af576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612d696026913960400191505060405180910390fd5b6128c68361167c836128c087612a45565b90612941565b6128d78261167c8361167686612a45565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600061298383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612af3565b9392505050565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008282018381101561298357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff1660009081526009602052604090205490565b73ffffffffffffffffffffffffffffffffffffffff909116600090815260096020526040902055565b6125328160015b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60008184841115612b9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612b61578181015183820152602001612b49565b50505050905090810190601f168015612b8e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612be557805160ff1916838001178555612c12565b82800160010185558215612c12579182015b82811115612c12578251825591602001919060010190612bf7565b50612c1e929150612c22565b5090565b5b80821115612c1e5760008155600101612c2356fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735061757361626c653a206e65772070617573657220697320746865207a65726f206164647265737346696174546f6b656e3a206275726e20616d6f756e74206e6f742067726561746572207468616e203046696174546f6b656e3a206d696e7420746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737346696174546f6b656e3a206e65772070617573657220697320746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e74206e6f742067726561746572207468616e203045524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f7420746865206d61737465724d696e746572426c61636b6c69737461626c653a2063616c6c6572206973206e6f742074686520626c61636b6c697374657246696174546f6b656e3a206275726e20616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f742061206d696e74657246696174546f6b656e3a206e6577206d61737465724d696e74657220697320746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636546696174546f6b656e3a206e657720626c61636b6c697374657220697320746865207a65726f206164647265737346696174546f6b656e3a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e742065786365656473206d696e746572416c6c6f77616e63655061757361626c653a2063616c6c6572206973206e6f74207468652070617573657246696174546f6b656e3a206e6577206f776e657220697320746865207a65726f2061646472657373426c61636b6c69737461626c653a206e657720626c61636b6c697374657220697320746865207a65726f2061646472657373426c61636b6c69737461626c653a206163636f756e7420697320626c61636b6c6973746564a164736f6c634300060c000a","sourceMap":"1036:12879:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1153:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7228:311;;;;;;;;;;;;;;;;-1:-1:-1;7228:311:22;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;6566:100;;;:::i;:::-;;;;;;;;;;;;;;;;2337:141:20;;;;;;;;;;;;;;;;-1:-1:-1;2337:141:20;;;;:::i;:::-;;8437:502:22;;;;;;;;;;;;;;;;-1:-1:-1;8437:502:22;;;;;;;;;;;;;;;;;;:::i;10865:211::-;;;;;;;;;;;;;;;;-1:-1:-1;10865:211:22;;;;:::i;1203:21::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2795:1036;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2795:1036:22;;;;;;;;-1:-1:-1;2795:1036:22;;-1:-1:-1;;2795:1036:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2795:1036:22;;;;;;;;-1:-1:-1;2795:1036:22;;-1:-1:-1;;2795:1036:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2795:1036:22;;-1:-1:-1;;;2795:1036:22;;;;;-1:-1:-1;;2795:1036:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1258:27::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2803:94:24;;;:::i;4348:832:22:-;;;;;;;;;;;;;;;;-1:-1:-1;4348:832:22;;;;;;;;;:::i;11369:506::-;;;;;;;;;;;;;;;;-1:-1:-1;11369:506:22;;:::i;10343:356::-;;;;;;;;;;;;;;;;-1:-1:-1;10343:356:22;;;;;;;;;:::i;3018:220:24:-;;;;;;;;;;;;;;;;-1:-1:-1;3018:220:24;;;;:::i;2107:26::-;;;:::i;6853:120:22:-;;;;;;;;;;;;;;;;-1:-1:-1;6853:120:22;;;;:::i;2624:89:24:-;;;:::i;5595:118:22:-;;;;;;;;;;;;;;;;-1:-1:-1;5595:118:22;;;;:::i;2358:79:23:-;;;:::i;1177:20:22:-;;;:::i;2080:21:24:-;;;:::i;9137:282:22:-;;;;;;;;;;;;;;;;-1:-1:-1;9137:282:22;;;;;;;;;:::i;12016:269::-;;;;;;;;;;;;;;;;-1:-1:-1;12016:269:22;;;;:::i;5914:104::-;;;;;;;;;;;;;;;;-1:-1:-1;5914:104:22;;;;:::i;2614:265:20:-;;;;;;;;;;;;;;;;-1:-1:-1;2614:265:20;;;;:::i;879:26::-;;;:::i;6300:139:22:-;;;;;;;;;;;;;;;;-1:-1:-1;6300:139:22;;;;;;;;;;;:::i;1230:22::-;;;:::i;2948:235:23:-;;;;;;;;;;;;;;;;-1:-1:-1;2948:235:23;;;;:::i;2068:135:20:-;;;;;;;;;;;;;;;;-1:-1:-1;2068:135:20;;;;:::i;1837:118::-;;;;;;;;;;;;;;;;-1:-1:-1;1837:118:20;;;;:::i;1153:18:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7228:311::-;2287:6:24;;7455:4:22;;2287:6:24;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7394:10:22::1;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7429:7:22::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7475:36:22::3;7484:10;7496:7;7505:5;7475:8;:36::i;:::-;-1:-1:-1::0;7528:4:22::3;::::0;7228:311;-1:-1:-1;;;;7228:311:22:o;6566:100::-;6647:12;;6566:100;:::o;2337:141:20:-;1284:11;;;;1270:10;:25;1262:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2411:22:::1;2424:8;2411:12;:22::i;:::-;2448:23;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;2337:141:::0;:::o;8437:502:22:-;2287:6:24;;8694:4:22;;2287:6:24;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8609:10:22::1;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8644:4:22::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8673:2:22::3;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8731:13:22::4;::::0;::::4;;::::0;;;:7:::4;:13;::::0;;;;;;;8745:10:::4;8731:25:::0;;;;;;;;8722:34;::::4;;8714:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8811:26;8821:4;8827:2;8831:5;8811:9;:26::i;:::-;8875:13;::::0;::::4;;::::0;;;:7:::4;:13;::::0;;;;;;;8889:10:::4;8875:25:::0;;;;;;;;:36:::4;::::0;8905:5;8875:29:::4;:36::i;:::-;8847:13;::::0;::::4;;::::0;;;:7:::4;:13;::::0;;;;;;;8861:10:::4;8847:25:::0;;;;;;;:64;8928:4:::4;::::0;-1:-1:-1;1621:1:20::3;::::2;2324::24::1;8437:502:22::0;;;;;:::o;10865:211::-;5334:12;;10938:4;;5334:12;;5320:10;:26;5312:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10954:15:::1;::::0;::::1;10972:5;10954:15:::0;;;:7:::1;:15;::::0;;;;;;;:23;;;::::1;::::0;;10987:13:::1;:21:::0;;;;;;:25;;;11027:21;::::1;::::0;10972:5;11027:21:::1;-1:-1:-1::0;11065:4:22::1;10865:211:::0;;;:::o;1203:21::-;;;;;;:::o;2795:1036::-;3111:11;;;;;;;3110:12;3102:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3187:29;;;3179:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3286:23;;;3278:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3373:28;;;3365:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3470:22;;;3462:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3548:16;;;;:4;;:16;;;;;:::i;:::-;-1:-1:-1;3574:20:22;;;;:6;;:20;;;;;:::i;:::-;-1:-1:-1;3604:24:22;;;;:8;;:24;;;;;:::i;:::-;-1:-1:-1;3638:8:22;:24;;;;;;;;;;3672:12;:30;;;;;;;;;;;;;;;;;-1:-1:-1;3712:18:22;;;;;;;;;;3740:11;:28;;;;;;;;;;;;;;3778:18;3787:8;3778;:18::i;:::-;-1:-1:-1;;3806:11:22;:18;;;;;;;;-1:-1:-1;;;;;;2795:1036:22:o;1258:27::-;;;;;;:::o;2803:94:24:-;2474:6;;;;2460:10;:20;2452:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2852:6:::1;:14:::0;;;::::1;::::0;;2881:9:::1;::::0;::::1;::::0;2861:5:::1;::::0;2881:9:::1;2803:94::o:0;4348:832:22:-;2287:6:24;;4553:4:22;;2287:6:24;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3967:10:22::1;3959:19;::::0;;;:7:::1;:19;::::0;;;;;::::1;;3951:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4496:10:::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4531:3:22::3;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4581:17:22::4;::::0;::::4;4573:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4666:1;4656:7;:11;4648:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4769:10;4724:28;4755:25:::0;;;:13:::4;:25;::::0;;;;;4798:31;;::::4;;4790:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4906:12;::::0;:25:::4;::::0;4923:7;4906:16:::4;:25::i;:::-;4891:12;:40:::0;4941:46:::4;4953:3:::0;4958:28:::4;4978:7:::0;4958:15:::4;4953:3:::0;4958:10:::4;:15::i;:::-;:19:::0;::::4;:28::i;:::-;4941:11;:46::i;:::-;5025:33;:20:::0;5050:7;5025:24:::4;:33::i;:::-;5011:10;4997:25;::::0;;;:13:::4;:25;::::0;;;;;;;;:61;;;;5073:30;;;;;;;4997:25:::4;5073:30:::0;::::4;::::0;::::4;::::0;;;;;;::::4;5118:34;::::0;;;;;;;::::4;::::0;::::4;::::0;5135:1:::4;::::0;5118:34:::4;::::0;;;;::::4;::::0;;::::4;-1:-1:-1::0;5169:4:22::4;::::0;4348:832;-1:-1:-1;;;;;4348:832:22:o;11369:506::-;2287:6:24;;;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3967:10:22::1;3959:19;::::0;;;:7:::1;:19;::::0;;;;;::::1;;3951:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11450:10:::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11472:15:22::3;11490:22;11501:10;11490;:22::i;:::-;11472:40;;11540:1;11530:7;:11;11522:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11616:7;11605;:18;;11597:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11692:12;::::0;:25:::3;::::0;11709:7;11692:16:::3;:25::i;:::-;11677:12;:40:::0;11727:45:::3;11739:10;11751:20;:7:::0;11763;11751:11:::3;:20::i;11727:45::-;11787:25;::::0;;;;;;;11792:10:::3;::::0;11787:25:::3;::::0;;;;;::::3;::::0;;::::3;11827:41;::::0;;;;;;;11856:1:::3;::::0;11836:10:::3;::::0;11827:41:::3;::::0;;;;::::3;::::0;;::::3;1621:1:20;4026::22::2;11369:506:::0;:::o;10343:356::-;2287:6:24;;10516:4:22;;2287:6:24;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5334:12:22::1;::::0;::::1;;5320:10;:26;5312:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10536:15:::2;::::0;::::2;;::::0;;;:7:::2;:15;::::0;;;;;;;:22;;;::::2;10554:4;10536:22;::::0;;10568:13:::2;:21:::0;;;;;;:43;;;10626:45;;;;;;;::::2;::::0;;;;;;;;::::2;-1:-1:-1::0;10688:4:22::2;10343:356:::0;;;;:::o;3018:220:24:-;2716:6:23;;;;2702:10;:20;2694:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3097:24:24::1;::::0;::::1;3089:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3176:6;:19:::0;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;;3210:21:::1;::::0;3224:6;::::1;::::0;3210:21:::1;::::0;-1:-1:-1;;3210:21:24::1;3018:220:::0;:::o;2107:26::-;;;;;;;;;:::o;6853:120:22:-;6921:7;6947:19;6958:7;6947:10;:19::i;:::-;6940:26;6853:120;-1:-1:-1;;6853:120:22:o;2624:89:24:-;2474:6;;;;2460:10;:20;2452:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2680:4:::1;2671:13:::0;;;::::1;::::0;::::1;::::0;;2699:7:::1;::::0;::::1;::::0;2671:13;;2699:7:::1;2624:89::o:0;5595:118:22:-;5685:21;;5659:7;5685:21;;;:13;:21;;;;;;;5595:118::o;2358:79:23:-;2398:7;2424:6;;;2358:79;:::o;1177:20:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2080:21:24;;;;;;:::o;9137:282:22:-;2287:6:24;;9339:4:22;;2287:6:24;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9283:10:22::1;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9318:2:22::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9359:32:22::3;9369:10;9381:2;9385:5;9359:9;:32::i;12016:269::-:0;2716:6:23;;;;2702:10;:20;2694:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12107:30:22::1;::::0;::::1;12099:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12199:12;:31:::0;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;;12245:33:::1;::::0;12265:12;::::1;::::0;12245:33:::1;::::0;-1:-1:-1;;12245:33:22::1;12016:269:::0;:::o;5914:104::-;5995:16;;5972:4;5995:16;;;:7;:16;;;;;;;;;5914:104::o;2614:265:20:-;2716:6:23;;;;2702:10;:20;2694:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2703:29:20::1;::::0;::::1;2695:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2797:11;:29:::0;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;;2841:31:::1;::::0;2860:11;::::1;::::0;2841:31:::1;::::0;-1:-1:-1;;2841:31:20::1;2614:265:::0;:::o;879:26::-;;;;;;:::o;6300:139:22:-;6409:14;;;;6383:7;6409:14;;;:7;:14;;;;;;;;:23;;;;;;;;;;;;;6300:139::o;1230:22::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2948:235:23;2716:6;;;;2702:10;:20;2694:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3030:22:::1;::::0;::::1;3022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3131:6;::::0;3110:38:::1;::::0;;3131:6:::1;::::0;;::::1;3110:38:::0;;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;3158:18;3167:8;3158;:18::i;:::-;2948:235:::0;:::o;2068:135:20:-;1284:11;;;;1270:10;:25;1262:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2140:20:::1;2151:8;2140:10;:20::i;:::-;2175:21;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;2068:135:::0;:::o;1837:118::-;1901:4;1924:24;1939:8;13432:144:22;13537:32;;13514:4;13537:32;;;:22;:32;;;;;;;;;13432:144::o;7741:333::-;7842:19;;;7834:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7920:21;;;7912:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:14;;;;;;;;:7;:14;;;;;;;;:23;;;;;;;;;;;;;:31;;;8036;;;;;;;;;;;;;;;;;7741:333;;;:::o;12502:110::-;12570:35;12589:8;12599:5;12570:18;:35::i;9604:472::-;9700:18;;;9692:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9778:16;;;9770:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9861:16;9872:4;9861:10;:16::i;:::-;9852:5;:25;;9844:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9931:46;9943:4;9949:27;9970:5;9949:16;9960:4;9949:10;:16::i;:::-;:20;;:27::i;9931:46::-;9987:42;9999:2;10003:25;10022:5;10003:14;10014:2;10003:10;:14::i;9987:42::-;10059:2;10044:25;;10053:4;10044:25;;;10063:5;10044:25;;;;;;;;;;;;;;;;;;9604:472;;;:::o;1321:134:0:-;1379:7;1405:43;1409:1;1412;1405:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1398:50;1321:134;-1:-1:-1;;;1321:134:0:o;2496:79:23:-;2551:6;:17;;;;;;;;;;;;;;;2496:79::o;874:176:0:-;932:7;963:5;;;986:6;;;;978:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13776:137:22;13871:35;;13845:7;13871:35;;;:25;:35;;;;;;;13776:137::o;13240:::-;13324:35;;;;;;;;:25;:35;;;;;:46;13240:137::o;12340:107::-;12406:34;12425:8;12435:4;12884:154;12980:32;;;;;;;;;:22;:32;;;;;:51;;;;;;;;;;;;;12884:154::o;1746:187:0:-;1832:7;1867:12;1859:6;;;;1851:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1902:5:0;;;1746:187::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","blacklist(address)":"f9f92be4","blacklister()":"bd102430","burn(uint256)":"42966c68","configureMinter(address,uint256)":"4e44d956","currency()":"e5a6b10f","decimals()":"313ce567","initialize(string,string,string,uint8,address,address,address,address)":"3357162b","isBlacklisted(address)":"fe575a87","isMinter(address)":"aa271e1a","masterMinter()":"35d99f35","mint(address,uint256)":"40c10f19","minterAllowance(address)":"8a6db9c3","name()":"06fdde03","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","pauser()":"9fd0506d","removeMinter(address)":"3092afd5","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","unBlacklist(address)":"1a895266","unpause()":"3f4ba83a","updateBlacklister(address)":"ad38bf22","updateMasterMinter(address)":"aa20e1e4","updatePauser(address)":"554bab3c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"Blacklisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newBlacklister\",\"type\":\"address\"}],\"name\":\"BlacklisterChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newMasterMinter\",\"type\":\"address\"}],\"name\":\"MasterMinterChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"minterAllowedAmount\",\"type\":\"uint256\"}],\"name\":\"MinterConfigured\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldMinter\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Pause\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"PauserChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"UnBlacklisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Unpause\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blacklister\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minterAllowedAmount\",\"type\":\"uint256\"}],\"name\":\"configureMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tokenName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tokenCurrency\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"tokenDecimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"newMasterMinter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newPauser\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newBlacklister\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isBlacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"masterMinter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"minterAllowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauser\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"removeMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"unBlacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newBlacklister\",\"type\":\"address\"}],\"name\":\"updateBlacklister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newMasterMinter\",\"type\":\"address\"}],\"name\":\"updateMasterMinter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newPauser\",\"type\":\"address\"}],\"name\":\"updatePauser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC20 Token backed by fiat reserves\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"params\":{\"owner\":\"The token owner's address.\",\"spender\":\"The spender's address.\"},\"returns\":{\"_0\":\"The remaining allowance.\"}},\"approve(address,uint256)\":{\"params\":{\"spender\":\"The spender's address.\",\"value\":\"The allowance amount.\"},\"returns\":{\"_0\":\"True if the operation was successful.\"}},\"balanceOf(address)\":{\"params\":{\"account\":\"The address to check.\"},\"returns\":{\"_0\":\"balance The fiat token balance of the account.\"}},\"blacklist(address)\":{\"params\":{\"_account\":\"The address to blacklist.\"}},\"burn(uint256)\":{\"details\":\"The caller must be a minter, must not be blacklisted, and the amount to burn should be less than or equal to the account's balance.\",\"params\":{\"_amount\":\"the amount of tokens to be burned.\"}},\"configureMinter(address,uint256)\":{\"params\":{\"minter\":\"The address of the minter.\",\"minterAllowedAmount\":\"The minting amount allowed for the minter.\"},\"returns\":{\"_0\":\"True if the operation was successful.\"}},\"initialize(string,string,string,uint8,address,address,address,address)\":{\"params\":{\"newBlacklister\":\"The blacklister address for the fiat token.\",\"newMasterMinter\":\"The masterMinter address for the fiat token.\",\"newOwner\":\"The owner of the fiat token.\",\"newPauser\":\"The pauser address for the fiat token.\",\"tokenCurrency\":\"The fiat currency that the token represents.\",\"tokenDecimals\":\"The number of decimals that the token uses.\",\"tokenName\":\"The name of the fiat token.\",\"tokenSymbol\":\"The symbol of the fiat token.\"}},\"isBlacklisted(address)\":{\"params\":{\"_account\":\"The address to check.\"},\"returns\":{\"_0\":\"True if the account is blacklisted, false if the account is not blacklisted.\"}},\"isMinter(address)\":{\"params\":{\"account\":\"The address to check.\"},\"returns\":{\"_0\":\"True if the account is a minter, false if the account is not a minter.\"}},\"mint(address,uint256)\":{\"params\":{\"_amount\":\"The amount of tokens to mint. Must be less than or equal to the minterAllowance of the caller.\",\"_to\":\"The address that will receive the minted tokens.\"},\"returns\":{\"_0\":\"True if the operation was successful.\"}},\"minterAllowance(address)\":{\"params\":{\"minter\":\"The address to check.\"},\"returns\":{\"_0\":\"The remaining minter allowance for the account.\"}},\"owner()\":{\"details\":\"Tells the address of the owner\",\"returns\":{\"_0\":\"the address of the owner\"}},\"pause()\":{\"details\":\"called by the owner to pause, triggers stopped state\"},\"removeMinter(address)\":{\"params\":{\"minter\":\"The address of the minter to remove.\"},\"returns\":{\"_0\":\"True if the operation was successful.\"}},\"totalSupply()\":{\"returns\":{\"_0\":\"The totalSupply of the fiat token.\"}},\"transfer(address,uint256)\":{\"params\":{\"to\":\"Payee's address.\",\"value\":\"Transfer amount.\"},\"returns\":{\"_0\":\"True if the operation was successful.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"The caller must have some fiat token allowance on the payer's tokens.\",\"params\":{\"from\":\"Payer's address.\",\"to\":\"Payee's address.\",\"value\":\"Transfer amount.\"},\"returns\":{\"_0\":\"True if the operation was successful.\"}},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to transfer control of the contract to a newOwner.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}},\"unBlacklist(address)\":{\"params\":{\"_account\":\"The address to remove from the blacklist.\"}},\"unpause()\":{\"details\":\"called by the owner to unpause, returns to normal state\"},\"updateBlacklister(address)\":{\"params\":{\"_newBlacklister\":\"The address of the new blacklister.\"}},\"updateMasterMinter(address)\":{\"params\":{\"_newMasterMinter\":\"The address of the new master minter.\"}},\"updatePauser(address)\":{\"params\":{\"_newPauser\":\"The address of the new pauser.\"}}},\"stateVariables\":{\"balanceAndBlacklistStates\":{\"details\":\"A mapping that stores the balance and blacklist states for a given address. The first bit defines whether the address is blacklisted (1 if blacklisted, 0 otherwise). The last 255 bits define the balance for the address.\"}},\"title\":\"FiatToken\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"Gets the remaining amount of fiat tokens a spender is allowed to transfer on behalf of the token owner.\"},\"approve(address,uint256)\":{\"notice\":\"Sets a fiat token allowance for a spender to spend on behalf of the caller.\"},\"balanceOf(address)\":{\"notice\":\"Gets the fiat token balance of an account.\"},\"blacklist(address)\":{\"notice\":\"Adds account to blacklist.\"},\"burn(uint256)\":{\"notice\":\"Allows a minter to burn some of its own tokens.\"},\"configureMinter(address,uint256)\":{\"notice\":\"Adds or updates a new minter with a mint allowance.\"},\"initialize(string,string,string,uint8,address,address,address,address)\":{\"notice\":\"Initializes the fiat token contract.\"},\"isBlacklisted(address)\":{\"notice\":\"Checks if account is blacklisted.\"},\"isMinter(address)\":{\"notice\":\"Checks if an account is a minter.\"},\"mint(address,uint256)\":{\"notice\":\"Mints fiat tokens to an address.\"},\"minterAllowance(address)\":{\"notice\":\"Gets the minter allowance for an account.\"},\"removeMinter(address)\":{\"notice\":\"Removes a minter.\"},\"totalSupply()\":{\"notice\":\"Gets the totalSupply of the fiat token.\"},\"transfer(address,uint256)\":{\"notice\":\"Transfers tokens from the caller.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfers tokens from an address to another by spending the caller's allowance.\"},\"unBlacklist(address)\":{\"notice\":\"Removes account from blacklist.\"},\"updateBlacklister(address)\":{\"notice\":\"Updates the blacklister address.\"},\"updateMasterMinter(address)\":{\"notice\":\"Updates the master minter address.\"},\"updatePauser(address)\":{\"notice\":\"Updates the pauser address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol\":\"FiatTokenV1\"},\"evmVersion\":\"istanbul\",\"libraries\":{\"SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts_v3.1.0/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"lib/openzeppelin-contracts_v3.1.0/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017\",\"dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/AbstractFiatTokenV1.sol\":{\"keccak256\":\"0x8c8304c7f254e274e51f5b886d91f91c731432885aa352d25ed881c1682a9700\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3470e35dd7dc304944f2d9718b6164976b7e5f1d6c8efcdd511d73bb3b5bf273\",\"dweb:/ipfs/QmaZwLkCDpDdJuHKvsCQHpVars5Xrp2xfM8budLENUSmW6\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Blacklistable.sol\":{\"keccak256\":\"0x0a81bb84c1c6f84d9b29ea065825b67f0c2514933c947ef7a235687b1d02abe5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://eb99105e2e4af6be3fbd30beb39a389b920dbdfa00e712b056e8c883832b44fc\",\"dweb:/ipfs/QmQQemDRjA82ywmJQ3dJhMjEdJjvPEezyXzEtCppVDUNfe\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol\":{\"keccak256\":\"0xd2e239041e121efa4b66aee229a522bac3b959aab3f66249f17c1c1d0371b616\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://370ac5f4cd368c671c414518e2286b598d6320612165c7c5145ffe904c730099\",\"dweb:/ipfs/QmWBUMmpC7kECREYZcbyKw14LfpAbJvZnPe4E31KvJjEeu\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Ownable.sol\":{\"keccak256\":\"0x3185c30c5c78bfab0e88f219e3ad48c30aaeca8ebd4d888e6efda41021a5a759\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03e00b50b100a50ef4dc0e07663291ddda6ba6023befc7b47c899bb700ad1549\",\"dweb:/ipfs/QmcHhU6ppJDQnY8UWpzSMy1XSLUJ4ZXqhuwnShxP4sQ2gB\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Pausable.sol\":{\"keccak256\":\"0xb9a79584f8405cee912de46324f35f67de2b2457498f713ed5ada8d2e91d67be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://831d6348c99afe201c720dea740aa7cd652051c2118102d9556bd989936da888\",\"dweb:/ipfs/QmYCxGYuEZnxbgXoLNbr9TFy8SXKktwfG2sxWgrAgHxXwD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_account","type":"address","indexed":true}],"type":"event","name":"Blacklisted","anonymous":false},{"inputs":[{"internalType":"address","name":"newBlacklister","type":"address","indexed":true}],"type":"event","name":"BlacklisterChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"burner","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"newMasterMinter","type":"address","indexed":true}],"type":"event","name":"MasterMinterChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"minter","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"address","name":"minter","type":"address","indexed":true},{"internalType":"uint256","name":"minterAllowedAmount","type":"uint256","indexed":false}],"type":"event","name":"MinterConfigured","anonymous":false},{"inputs":[{"internalType":"address","name":"oldMinter","type":"address","indexed":true}],"type":"event","name":"MinterRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":false},{"internalType":"address","name":"newOwner","type":"address","indexed":false}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"type":"event","name":"Pause","anonymous":false},{"inputs":[{"internalType":"address","name":"newAddress","type":"address","indexed":true}],"type":"event","name":"PauserChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"_account","type":"address","indexed":true}],"type":"event","name":"UnBlacklisted","anonymous":false},{"inputs":[],"type":"event","name":"Unpause","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[],"stateMutability":"view","type":"function","name":"blacklister","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"minter","type":"address"},{"internalType":"uint256","name":"minterAllowedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"configureMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currency","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"string","name":"tokenCurrency","type":"string"},{"internalType":"uint8","name":"tokenDecimals","type":"uint8"},{"internalType":"address","name":"newMasterMinter","type":"address"},{"internalType":"address","name":"newPauser","type":"address"},{"internalType":"address","name":"newBlacklister","type":"address"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"stateMutability":"view","type":"function","name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"masterMinter","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"minter","type":"address"}],"stateMutability":"view","type":"function","name":"minterAllowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pauser","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"minter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unBlacklist"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"address","name":"_newBlacklister","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateBlacklister"},{"inputs":[{"internalType":"address","name":"_newMasterMinter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateMasterMinter"},{"inputs":[{"internalType":"address","name":"_newPauser","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updatePauser"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"params":{"owner":"The token owner's address.","spender":"The spender's address."},"returns":{"_0":"The remaining allowance."}},"approve(address,uint256)":{"params":{"spender":"The spender's address.","value":"The allowance amount."},"returns":{"_0":"True if the operation was successful."}},"balanceOf(address)":{"params":{"account":"The address to check."},"returns":{"_0":"balance The fiat token balance of the account."}},"blacklist(address)":{"params":{"_account":"The address to blacklist."}},"burn(uint256)":{"details":"The caller must be a minter, must not be blacklisted, and the amount to burn should be less than or equal to the account's balance.","params":{"_amount":"the amount of tokens to be burned."}},"configureMinter(address,uint256)":{"params":{"minter":"The address of the minter.","minterAllowedAmount":"The minting amount allowed for the minter."},"returns":{"_0":"True if the operation was successful."}},"initialize(string,string,string,uint8,address,address,address,address)":{"params":{"newBlacklister":"The blacklister address for the fiat token.","newMasterMinter":"The masterMinter address for the fiat token.","newOwner":"The owner of the fiat token.","newPauser":"The pauser address for the fiat token.","tokenCurrency":"The fiat currency that the token represents.","tokenDecimals":"The number of decimals that the token uses.","tokenName":"The name of the fiat token.","tokenSymbol":"The symbol of the fiat token."}},"isBlacklisted(address)":{"params":{"_account":"The address to check."},"returns":{"_0":"True if the account is blacklisted, false if the account is not blacklisted."}},"isMinter(address)":{"params":{"account":"The address to check."},"returns":{"_0":"True if the account is a minter, false if the account is not a minter."}},"mint(address,uint256)":{"params":{"_amount":"The amount of tokens to mint. Must be less than or equal to the minterAllowance of the caller.","_to":"The address that will receive the minted tokens."},"returns":{"_0":"True if the operation was successful."}},"minterAllowance(address)":{"params":{"minter":"The address to check."},"returns":{"_0":"The remaining minter allowance for the account."}},"owner()":{"details":"Tells the address of the owner","returns":{"_0":"the address of the owner"}},"pause()":{"details":"called by the owner to pause, triggers stopped state"},"removeMinter(address)":{"params":{"minter":"The address of the minter to remove."},"returns":{"_0":"True if the operation was successful."}},"totalSupply()":{"returns":{"_0":"The totalSupply of the fiat token."}},"transfer(address,uint256)":{"params":{"to":"Payee's address.","value":"Transfer amount."},"returns":{"_0":"True if the operation was successful."}},"transferFrom(address,address,uint256)":{"details":"The caller must have some fiat token allowance on the payer's tokens.","params":{"from":"Payer's address.","to":"Payee's address.","value":"Transfer amount."},"returns":{"_0":"True if the operation was successful."}},"transferOwnership(address)":{"details":"Allows the current owner to transfer control of the contract to a newOwner.","params":{"newOwner":"The address to transfer ownership to."}},"unBlacklist(address)":{"params":{"_account":"The address to remove from the blacklist."}},"unpause()":{"details":"called by the owner to unpause, returns to normal state"},"updateBlacklister(address)":{"params":{"_newBlacklister":"The address of the new blacklister."}},"updateMasterMinter(address)":{"params":{"_newMasterMinter":"The address of the new master minter."}},"updatePauser(address)":{"params":{"_newPauser":"The address of the new pauser."}}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"Gets the remaining amount of fiat tokens a spender is allowed to transfer on behalf of the token owner."},"approve(address,uint256)":{"notice":"Sets a fiat token allowance for a spender to spend on behalf of the caller."},"balanceOf(address)":{"notice":"Gets the fiat token balance of an account."},"blacklist(address)":{"notice":"Adds account to blacklist."},"burn(uint256)":{"notice":"Allows a minter to burn some of its own tokens."},"configureMinter(address,uint256)":{"notice":"Adds or updates a new minter with a mint allowance."},"initialize(string,string,string,uint8,address,address,address,address)":{"notice":"Initializes the fiat token contract."},"isBlacklisted(address)":{"notice":"Checks if account is blacklisted."},"isMinter(address)":{"notice":"Checks if an account is a minter."},"mint(address,uint256)":{"notice":"Mints fiat tokens to an address."},"minterAllowance(address)":{"notice":"Gets the minter allowance for an account."},"removeMinter(address)":{"notice":"Removes a minter."},"totalSupply()":{"notice":"Gets the totalSupply of the fiat token."},"transfer(address,uint256)":{"notice":"Transfers tokens from the caller."},"transferFrom(address,address,uint256)":{"notice":"Transfers tokens from an address to another by spending the caller's allowance."},"unBlacklist(address)":{"notice":"Removes account from blacklist."},"updateBlacklister(address)":{"notice":"Updates the blacklister address."},"updateMasterMinter(address)":{"notice":"Updates the master minter address."},"updatePauser(address)":{"notice":"Updates the pauser address."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol":"FiatTokenV1"},"evmVersion":"istanbul","libraries":{"SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts_v3.1.0/contracts/math/SafeMath.sol":{"keccak256":"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806","urls":["bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5","dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV"],"license":"MIT"},"lib/openzeppelin-contracts_v3.1.0/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385","urls":["bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017","dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5"],"license":"MIT"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/AbstractFiatTokenV1.sol":{"keccak256":"0x8c8304c7f254e274e51f5b886d91f91c731432885aa352d25ed881c1682a9700","urls":["bzz-raw://3470e35dd7dc304944f2d9718b6164976b7e5f1d6c8efcdd511d73bb3b5bf273","dweb:/ipfs/QmaZwLkCDpDdJuHKvsCQHpVars5Xrp2xfM8budLENUSmW6"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Blacklistable.sol":{"keccak256":"0x0a81bb84c1c6f84d9b29ea065825b67f0c2514933c947ef7a235687b1d02abe5","urls":["bzz-raw://eb99105e2e4af6be3fbd30beb39a389b920dbdfa00e712b056e8c883832b44fc","dweb:/ipfs/QmQQemDRjA82ywmJQ3dJhMjEdJjvPEezyXzEtCppVDUNfe"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol":{"keccak256":"0xd2e239041e121efa4b66aee229a522bac3b959aab3f66249f17c1c1d0371b616","urls":["bzz-raw://370ac5f4cd368c671c414518e2286b598d6320612165c7c5145ffe904c730099","dweb:/ipfs/QmWBUMmpC7kECREYZcbyKw14LfpAbJvZnPe4E31KvJjEeu"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Ownable.sol":{"keccak256":"0x3185c30c5c78bfab0e88f219e3ad48c30aaeca8ebd4d888e6efda41021a5a759","urls":["bzz-raw://03e00b50b100a50ef4dc0e07663291ddda6ba6023befc7b47c899bb700ad1549","dweb:/ipfs/QmcHhU6ppJDQnY8UWpzSMy1XSLUJ4ZXqhuwnShxP4sQ2gB"],"license":"MIT"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Pausable.sol":{"keccak256":"0xb9a79584f8405cee912de46324f35f67de2b2457498f713ed5ada8d2e91d67be","urls":["bzz-raw://831d6348c99afe201c720dea740aa7cd652051c2118102d9556bd989936da888","dweb:/ipfs/QmYCxGYuEZnxbgXoLNbr9TFy8SXKktwfG2sxWgrAgHxXwD"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":3029,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol:FiatTokenV1","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":3125,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol:FiatTokenV1","label":"pauser","offset":0,"slot":"1","type":"t_address"},{"astId":3128,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol:FiatTokenV1","label":"paused","offset":20,"slot":"1","type":"t_bool"},{"astId":2009,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol:FiatTokenV1","label":"blacklister","offset":0,"slot":"2","type":"t_address"},{"astId":2013,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol:FiatTokenV1","label":"_deprecatedBlacklisted","offset":0,"slot":"3","type":"t_mapping(t_address,t_bool)"},{"astId":2191,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol:FiatTokenV1","label":"name","offset":0,"slot":"4","type":"t_string_storage"},{"astId":2193,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol:FiatTokenV1","label":"symbol","offset":0,"slot":"5","type":"t_string_storage"},{"astId":2195,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol:FiatTokenV1","label":"decimals","offset":0,"slot":"6","type":"t_uint8"},{"astId":2197,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol:FiatTokenV1","label":"currency","offset":0,"slot":"7","type":"t_string_storage"},{"astId":2199,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol:FiatTokenV1","label":"masterMinter","offset":0,"slot":"8","type":"t_address"},{"astId":2201,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol:FiatTokenV1","label":"initialized","offset":20,"slot":"8","type":"t_bool"},{"astId":2206,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol:FiatTokenV1","label":"balanceAndBlacklistStates","offset":0,"slot":"9","type":"t_mapping(t_address,t_uint256)"},{"astId":2212,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol:FiatTokenV1","label":"allowed","offset":0,"slot":"10","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":2215,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol:FiatTokenV1","label":"totalSupply_","offset":0,"slot":"11","type":"t_uint256"},{"astId":2219,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol:FiatTokenV1","label":"minters","offset":0,"slot":"12","type":"t_mapping(t_address,t_bool)"},{"astId":2223,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol:FiatTokenV1","label":"minterAllowed","offset":0,"slot":"13","type":"t_mapping(t_address,t_uint256)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"allowance(address,address)":{"notice":"Gets the remaining amount of fiat tokens a spender is allowed to transfer on behalf of the token owner."},"approve(address,uint256)":{"notice":"Sets a fiat token allowance for a spender to spend on behalf of the caller."},"balanceOf(address)":{"notice":"Gets the fiat token balance of an account."},"blacklist(address)":{"notice":"Adds account to blacklist."},"burn(uint256)":{"notice":"Allows a minter to burn some of its own tokens."},"configureMinter(address,uint256)":{"notice":"Adds or updates a new minter with a mint allowance."},"initialize(string,string,string,uint8,address,address,address,address)":{"notice":"Initializes the fiat token contract."},"isBlacklisted(address)":{"notice":"Checks if account is blacklisted."},"isMinter(address)":{"notice":"Checks if an account is a minter."},"mint(address,uint256)":{"notice":"Mints fiat tokens to an address."},"minterAllowance(address)":{"notice":"Gets the minter allowance for an account."},"removeMinter(address)":{"notice":"Removes a minter."},"totalSupply()":{"notice":"Gets the totalSupply of the fiat token."},"transfer(address,uint256)":{"notice":"Transfers tokens from the caller."},"transferFrom(address,address,uint256)":{"notice":"Transfers tokens from an address to another by spending the caller's allowance."},"unBlacklist(address)":{"notice":"Removes account from blacklist."},"updateBlacklister(address)":{"notice":"Updates the blacklister address."},"updateMasterMinter(address)":{"notice":"Updates the master minter address."},"updatePauser(address)":{"notice":"Updates the pauser address."}}},"devdoc":{"version":1,"kind":"dev","details":"ERC20 Token backed by fiat reserves","methods":{"allowance(address,address)":{"params":{"owner":"The token owner's address.","spender":"The spender's address."},"returns":{"_0":"The remaining allowance."}},"approve(address,uint256)":{"params":{"spender":"The spender's address.","value":"The allowance amount."},"returns":{"_0":"True if the operation was successful."}},"balanceOf(address)":{"params":{"account":"The address to check."},"returns":{"_0":"balance The fiat token balance of the account."}},"blacklist(address)":{"params":{"_account":"The address to blacklist."}},"burn(uint256)":{"details":"The caller must be a minter, must not be blacklisted, and the amount to burn should be less than or equal to the account's balance.","params":{"_amount":"the amount of tokens to be burned."}},"configureMinter(address,uint256)":{"params":{"minter":"The address of the minter.","minterAllowedAmount":"The minting amount allowed for the minter."},"returns":{"_0":"True if the operation was successful."}},"initialize(string,string,string,uint8,address,address,address,address)":{"params":{"newBlacklister":"The blacklister address for the fiat token.","newMasterMinter":"The masterMinter address for the fiat token.","newOwner":"The owner of the fiat token.","newPauser":"The pauser address for the fiat token.","tokenCurrency":"The fiat currency that the token represents.","tokenDecimals":"The number of decimals that the token uses.","tokenName":"The name of the fiat token.","tokenSymbol":"The symbol of the fiat token."}},"isBlacklisted(address)":{"params":{"_account":"The address to check."},"returns":{"_0":"True if the account is blacklisted, false if the account is not blacklisted."}},"isMinter(address)":{"params":{"account":"The address to check."},"returns":{"_0":"True if the account is a minter, false if the account is not a minter."}},"mint(address,uint256)":{"params":{"_amount":"The amount of tokens to mint. Must be less than or equal to the minterAllowance of the caller.","_to":"The address that will receive the minted tokens."},"returns":{"_0":"True if the operation was successful."}},"minterAllowance(address)":{"params":{"minter":"The address to check."},"returns":{"_0":"The remaining minter allowance for the account."}},"owner()":{"details":"Tells the address of the owner","returns":{"_0":"the address of the owner"}},"pause()":{"details":"called by the owner to pause, triggers stopped state"},"removeMinter(address)":{"params":{"minter":"The address of the minter to remove."},"returns":{"_0":"True if the operation was successful."}},"totalSupply()":{"returns":{"_0":"The totalSupply of the fiat token."}},"transfer(address,uint256)":{"params":{"to":"Payee's address.","value":"Transfer amount."},"returns":{"_0":"True if the operation was successful."}},"transferFrom(address,address,uint256)":{"details":"The caller must have some fiat token allowance on the payer's tokens.","params":{"from":"Payer's address.","to":"Payee's address.","value":"Transfer amount."},"returns":{"_0":"True if the operation was successful."}},"transferOwnership(address)":{"details":"Allows the current owner to transfer control of the contract to a newOwner.","params":{"newOwner":"The address to transfer ownership to."}},"unBlacklist(address)":{"params":{"_account":"The address to remove from the blacklist."}},"unpause()":{"details":"called by the owner to unpause, returns to normal state"},"updateBlacklister(address)":{"params":{"_newBlacklister":"The address of the new blacklister."}},"updateMasterMinter(address)":{"params":{"_newMasterMinter":"The address of the new master minter."}},"updatePauser(address)":{"params":{"_newPauser":"The address of the new pauser."}}},"title":"FiatToken"},"ast":{"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol","id":3025,"exportedSymbols":{"FiatTokenV1":[3024]},"nodeType":"SourceUnit","src":"659:13257:22","nodes":[{"id":2167,"nodeType":"PragmaDirective","src":"659:23:22","nodes":[],"literals":["solidity","0.6",".12"]},{"id":2169,"nodeType":"ImportDirective","src":"684:76:22","nodes":[],"absolutePath":"lib/openzeppelin-contracts_v3.1.0/contracts/math/SafeMath.sol","file":"@openzeppelin/contracts_v3.1.0/math/SafeMath.sol","scope":3025,"sourceUnit":196,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":2168,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"693:8:22","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":2171,"nodeType":"ImportDirective","src":"761:64:22","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/AbstractFiatTokenV1.sol","file":"./AbstractFiatTokenV1.sol","scope":3025,"sourceUnit":2001,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":2170,"name":"AbstractFiatTokenV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"770:19:22","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":2173,"nodeType":"ImportDirective","src":"826:40:22","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Ownable.sol","file":"./Ownable.sol","scope":3025,"sourceUnit":3109,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":2172,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"835:7:22","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":2175,"nodeType":"ImportDirective","src":"867:42:22","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Pausable.sol","file":"./Pausable.sol","scope":3025,"sourceUnit":3209,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":2174,"name":"Pausable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"876:8:22","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":2177,"nodeType":"ImportDirective","src":"910:52:22","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Blacklistable.sol","file":"./Blacklistable.sol","scope":3025,"sourceUnit":2149,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":2176,"name":"Blacklistable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"919:13:22","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":3024,"nodeType":"ContractDefinition","src":"1036:12879:22","nodes":[{"id":2189,"nodeType":"UsingForDirective","src":"1120:27:22","nodes":[],"libraryName":{"contractScope":null,"id":2187,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":195,"src":"1126:8:22","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$195","typeString":"library SafeMath"}},"typeName":{"id":2188,"name":"uint256","nodeType":"ElementaryTypeName","src":"1139:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":2191,"nodeType":"VariableDeclaration","src":"1153:18:22","nodes":[],"constant":false,"functionSelector":"06fdde03","mutability":"mutable","name":"name","overrides":null,"scope":3024,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":2190,"name":"string","nodeType":"ElementaryTypeName","src":"1153:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"public"},{"id":2193,"nodeType":"VariableDeclaration","src":"1177:20:22","nodes":[],"constant":false,"functionSelector":"95d89b41","mutability":"mutable","name":"symbol","overrides":null,"scope":3024,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":2192,"name":"string","nodeType":"ElementaryTypeName","src":"1177:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"public"},{"id":2195,"nodeType":"VariableDeclaration","src":"1203:21:22","nodes":[],"constant":false,"functionSelector":"313ce567","mutability":"mutable","name":"decimals","overrides":null,"scope":3024,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2194,"name":"uint8","nodeType":"ElementaryTypeName","src":"1203:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"public"},{"id":2197,"nodeType":"VariableDeclaration","src":"1230:22:22","nodes":[],"constant":false,"functionSelector":"e5a6b10f","mutability":"mutable","name":"currency","overrides":null,"scope":3024,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":2196,"name":"string","nodeType":"ElementaryTypeName","src":"1230:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"public"},{"id":2199,"nodeType":"VariableDeclaration","src":"1258:27:22","nodes":[],"constant":false,"functionSelector":"35d99f35","mutability":"mutable","name":"masterMinter","overrides":null,"scope":3024,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2198,"name":"address","nodeType":"ElementaryTypeName","src":"1258:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"id":2201,"nodeType":"VariableDeclaration","src":"1291:25:22","nodes":[],"constant":false,"mutability":"mutable","name":"initialized","overrides":null,"scope":3024,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2200,"name":"bool","nodeType":"ElementaryTypeName","src":"1291:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"id":2206,"nodeType":"VariableDeclaration","src":"1572:62:22","nodes":[],"constant":false,"documentation":{"id":2202,"nodeType":"StructuredDocumentation","src":"1323:244:22","text":"@dev A mapping that stores the balance and blacklist states for a given address.\n The first bit defines whether the address is blacklisted (1 if blacklisted, 0 otherwise).\n The last 255 bits define the balance for the address."},"mutability":"mutable","name":"balanceAndBlacklistStates","overrides":null,"scope":3024,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":2205,"keyType":{"id":2203,"name":"address","nodeType":"ElementaryTypeName","src":"1580:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1572:27:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":2204,"name":"uint256","nodeType":"ElementaryTypeName","src":"1591:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"},{"id":2212,"nodeType":"VariableDeclaration","src":"1640:64:22","nodes":[],"constant":false,"mutability":"mutable","name":"allowed","overrides":null,"scope":3024,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":2211,"keyType":{"id":2207,"name":"address","nodeType":"ElementaryTypeName","src":"1648:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1640:47:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":2210,"keyType":{"id":2208,"name":"address","nodeType":"ElementaryTypeName","src":"1667:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1659:27:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":2209,"name":"uint256","nodeType":"ElementaryTypeName","src":"1678:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"value":null,"visibility":"internal"},{"id":2215,"nodeType":"VariableDeclaration","src":"1710:33:22","nodes":[],"constant":false,"mutability":"mutable","name":"totalSupply_","overrides":null,"scope":3024,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2213,"name":"uint256","nodeType":"ElementaryTypeName","src":"1710:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"30","id":2214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1742:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"internal"},{"id":2219,"nodeType":"VariableDeclaration","src":"1749:41:22","nodes":[],"constant":false,"mutability":"mutable","name":"minters","overrides":null,"scope":3024,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":2218,"keyType":{"id":2216,"name":"address","nodeType":"ElementaryTypeName","src":"1757:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1749:24:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":2217,"name":"bool","nodeType":"ElementaryTypeName","src":"1768:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"value":null,"visibility":"internal"},{"id":2223,"nodeType":"VariableDeclaration","src":"1796:50:22","nodes":[],"constant":false,"mutability":"mutable","name":"minterAllowed","overrides":null,"scope":3024,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":2222,"keyType":{"id":2220,"name":"address","nodeType":"ElementaryTypeName","src":"1804:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1796:27:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":2221,"name":"uint256","nodeType":"ElementaryTypeName","src":"1815:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"},{"id":2231,"nodeType":"EventDefinition","src":"1853:71:22","nodes":[],"anonymous":false,"documentation":null,"name":"Mint","parameters":{"id":2230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2225,"indexed":true,"mutability":"mutable","name":"minter","nodeType":"VariableDeclaration","overrides":null,"scope":2231,"src":"1864:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2224,"name":"address","nodeType":"ElementaryTypeName","src":"1864:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2227,"indexed":true,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2231,"src":"1888:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2226,"name":"address","nodeType":"ElementaryTypeName","src":"1888:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2229,"indexed":false,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","overrides":null,"scope":2231,"src":"1908:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2228,"name":"uint256","nodeType":"ElementaryTypeName","src":"1908:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1863:60:22"}},{"id":2237,"nodeType":"EventDefinition","src":"1929:51:22","nodes":[],"anonymous":false,"documentation":null,"name":"Burn","parameters":{"id":2236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2233,"indexed":true,"mutability":"mutable","name":"burner","nodeType":"VariableDeclaration","overrides":null,"scope":2237,"src":"1940:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2232,"name":"address","nodeType":"ElementaryTypeName","src":"1940:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2235,"indexed":false,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","overrides":null,"scope":2237,"src":"1964:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2234,"name":"uint256","nodeType":"ElementaryTypeName","src":"1964:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1939:40:22"}},{"id":2243,"nodeType":"EventDefinition","src":"1985:76:22","nodes":[],"anonymous":false,"documentation":null,"name":"MinterConfigured","parameters":{"id":2242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2239,"indexed":true,"mutability":"mutable","name":"minter","nodeType":"VariableDeclaration","overrides":null,"scope":2243,"src":"2008:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2238,"name":"address","nodeType":"ElementaryTypeName","src":"2008:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2241,"indexed":false,"mutability":"mutable","name":"minterAllowedAmount","nodeType":"VariableDeclaration","overrides":null,"scope":2243,"src":"2032:27:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2240,"name":"uint256","nodeType":"ElementaryTypeName","src":"2032:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2007:53:22"}},{"id":2247,"nodeType":"EventDefinition","src":"2066:47:22","nodes":[],"anonymous":false,"documentation":null,"name":"MinterRemoved","parameters":{"id":2246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2245,"indexed":true,"mutability":"mutable","name":"oldMinter","nodeType":"VariableDeclaration","overrides":null,"scope":2247,"src":"2086:25:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2244,"name":"address","nodeType":"ElementaryTypeName","src":"2086:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2085:27:22"}},{"id":2251,"nodeType":"EventDefinition","src":"2118:59:22","nodes":[],"anonymous":false,"documentation":null,"name":"MasterMinterChanged","parameters":{"id":2250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2249,"indexed":true,"mutability":"mutable","name":"newMasterMinter","nodeType":"VariableDeclaration","overrides":null,"scope":2251,"src":"2144:31:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2248,"name":"address","nodeType":"ElementaryTypeName","src":"2144:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2143:33:22"}},{"id":2354,"nodeType":"FunctionDefinition","src":"2795:1036:22","nodes":[],"body":{"id":2353,"nodeType":"Block","src":"3092:739:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3110:12:22","subExpression":{"argumentTypes":null,"id":2272,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2201,"src":"3111:11:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"46696174546f6b656e3a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":2274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3124:44:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a60ac3d3c8b8f9c6c7ee52f08018d7a004c4004b15d945154d133bab5559b6f2","typeString":"literal_string \"FiatToken: contract is already initialized\""},"value":"FiatToken: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a60ac3d3c8b8f9c6c7ee52f08018d7a004c4004b15d945154d133bab5559b6f2","typeString":"literal_string \"FiatToken: contract is already initialized\""}],"id":2271,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3102:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3102:67:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2276,"nodeType":"ExpressionStatement","src":"3102:67:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2278,"name":"newMasterMinter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2262,"src":"3187:15:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3214:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3206:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2279,"name":"address","nodeType":"ElementaryTypeName","src":"3206:7:22","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":2282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3206:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3187:29:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"46696174546f6b656e3a206e6577206d61737465724d696e74657220697320746865207a65726f2061646472657373","id":2284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3218:49:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8aeac8761ac797f8fb5589545ec23a37574766c6db0f1544e7960a0b9cc8defe","typeString":"literal_string \"FiatToken: new masterMinter is the zero address\""},"value":"FiatToken: new masterMinter is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8aeac8761ac797f8fb5589545ec23a37574766c6db0f1544e7960a0b9cc8defe","typeString":"literal_string \"FiatToken: new masterMinter is the zero address\""}],"id":2277,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3179:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3179:89:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2286,"nodeType":"ExpressionStatement","src":"3179:89:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2288,"name":"newPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2264,"src":"3286:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3307:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3299:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2289,"name":"address","nodeType":"ElementaryTypeName","src":"3299:7:22","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":2292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3299:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3286:23:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"46696174546f6b656e3a206e65772070617573657220697320746865207a65726f2061646472657373","id":2294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3311:43:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_27e468730acee0d047eacc9e45d609315cbc407a51d611ce92a8af5a37533759","typeString":"literal_string \"FiatToken: new pauser is the zero address\""},"value":"FiatToken: new pauser is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_27e468730acee0d047eacc9e45d609315cbc407a51d611ce92a8af5a37533759","typeString":"literal_string \"FiatToken: new pauser is the zero address\""}],"id":2287,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3278:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3278:77:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2296,"nodeType":"ExpressionStatement","src":"3278:77:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2298,"name":"newBlacklister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2266,"src":"3373:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3399:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3391:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2299,"name":"address","nodeType":"ElementaryTypeName","src":"3391:7:22","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":2302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3391:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3373:28:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"46696174546f6b656e3a206e657720626c61636b6c697374657220697320746865207a65726f2061646472657373","id":2304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3403:48:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9b49c7793db5e0efeeff8cbf09368f1246702ff32148ee2c4f22d3dfc61e22c7","typeString":"literal_string \"FiatToken: new blacklister is the zero address\""},"value":"FiatToken: new blacklister is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9b49c7793db5e0efeeff8cbf09368f1246702ff32148ee2c4f22d3dfc61e22c7","typeString":"literal_string \"FiatToken: new blacklister is the zero address\""}],"id":2297,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3365:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3365:87:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2306,"nodeType":"ExpressionStatement","src":"3365:87:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2308,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2268,"src":"3470:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3490:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3482:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2309,"name":"address","nodeType":"ElementaryTypeName","src":"3482:7:22","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":2312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3482:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3470:22:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"46696174546f6b656e3a206e6577206f776e657220697320746865207a65726f2061646472657373","id":2314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3494:42:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e29b5eaad264723d04b72bb6f43c1db6a91d0a686360ae9a0e580a625888b2fa","typeString":"literal_string \"FiatToken: new owner is the zero address\""},"value":"FiatToken: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e29b5eaad264723d04b72bb6f43c1db6a91d0a686360ae9a0e580a625888b2fa","typeString":"literal_string \"FiatToken: new owner is the zero address\""}],"id":2307,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3462:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3462:75:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2316,"nodeType":"ExpressionStatement","src":"3462:75:22"},{"expression":{"argumentTypes":null,"id":2319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2317,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2191,"src":"3548:4:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2318,"name":"tokenName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2254,"src":"3555:9:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3548:16:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":2320,"nodeType":"ExpressionStatement","src":"3548:16:22"},{"expression":{"argumentTypes":null,"id":2323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2321,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2193,"src":"3574:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2322,"name":"tokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2256,"src":"3583:11:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3574:20:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":2324,"nodeType":"ExpressionStatement","src":"3574:20:22"},{"expression":{"argumentTypes":null,"id":2327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2325,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"3604:8:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2326,"name":"tokenCurrency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2258,"src":"3615:13:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3604:24:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":2328,"nodeType":"ExpressionStatement","src":"3604:24:22"},{"expression":{"argumentTypes":null,"id":2331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2329,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2195,"src":"3638:8:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2330,"name":"tokenDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2260,"src":"3649:13:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3638:24:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2332,"nodeType":"ExpressionStatement","src":"3638:24:22"},{"expression":{"argumentTypes":null,"id":2335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2333,"name":"masterMinter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2199,"src":"3672:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2334,"name":"newMasterMinter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2262,"src":"3687:15:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3672:30:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2336,"nodeType":"ExpressionStatement","src":"3672:30:22"},{"expression":{"argumentTypes":null,"id":2339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2337,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3125,"src":"3712:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2338,"name":"newPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2264,"src":"3721:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3712:18:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2340,"nodeType":"ExpressionStatement","src":"3712:18:22"},{"expression":{"argumentTypes":null,"id":2343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2341,"name":"blacklister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2009,"src":"3740:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2342,"name":"newBlacklister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2266,"src":"3754:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3740:28:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2344,"nodeType":"ExpressionStatement","src":"3740:28:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2346,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2268,"src":"3787:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2345,"name":"setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3066,"src":"3778:8:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3778:18:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2348,"nodeType":"ExpressionStatement","src":"3778:18:22"},{"expression":{"argumentTypes":null,"id":2351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2349,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2201,"src":"3806:11:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":2350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3820:4:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3806:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2352,"nodeType":"ExpressionStatement","src":"3806:18:22"}]},"documentation":{"id":2252,"nodeType":"StructuredDocumentation","src":"2183:607:22","text":" @notice Initializes the fiat token contract.\n @param tokenName       The name of the fiat token.\n @param tokenSymbol     The symbol of the fiat token.\n @param tokenCurrency   The fiat currency that the token represents.\n @param tokenDecimals   The number of decimals that the token uses.\n @param newMasterMinter The masterMinter address for the fiat token.\n @param newPauser       The pauser address for the fiat token.\n @param newBlacklister  The blacklister address for the fiat token.\n @param newOwner        The owner of the fiat token."},"functionSelector":"3357162b","implemented":true,"kind":"function","modifiers":[],"name":"initialize","overrides":null,"parameters":{"id":2269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2254,"mutability":"mutable","name":"tokenName","nodeType":"VariableDeclaration","overrides":null,"scope":2354,"src":"2824:23:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2253,"name":"string","nodeType":"ElementaryTypeName","src":"2824:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":2256,"mutability":"mutable","name":"tokenSymbol","nodeType":"VariableDeclaration","overrides":null,"scope":2354,"src":"2857:25:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2255,"name":"string","nodeType":"ElementaryTypeName","src":"2857:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":2258,"mutability":"mutable","name":"tokenCurrency","nodeType":"VariableDeclaration","overrides":null,"scope":2354,"src":"2892:27:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2257,"name":"string","nodeType":"ElementaryTypeName","src":"2892:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":2260,"mutability":"mutable","name":"tokenDecimals","nodeType":"VariableDeclaration","overrides":null,"scope":2354,"src":"2929:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2259,"name":"uint8","nodeType":"ElementaryTypeName","src":"2929:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":2262,"mutability":"mutable","name":"newMasterMinter","nodeType":"VariableDeclaration","overrides":null,"scope":2354,"src":"2958:23:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2261,"name":"address","nodeType":"ElementaryTypeName","src":"2958:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2264,"mutability":"mutable","name":"newPauser","nodeType":"VariableDeclaration","overrides":null,"scope":2354,"src":"2991:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2263,"name":"address","nodeType":"ElementaryTypeName","src":"2991:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2266,"mutability":"mutable","name":"newBlacklister","nodeType":"VariableDeclaration","overrides":null,"scope":2354,"src":"3018:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2265,"name":"address","nodeType":"ElementaryTypeName","src":"3018:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2268,"mutability":"mutable","name":"newOwner","nodeType":"VariableDeclaration","overrides":null,"scope":2354,"src":"3050:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2267,"name":"address","nodeType":"ElementaryTypeName","src":"3050:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2814:258:22"},"returnParameters":{"id":2270,"nodeType":"ParameterList","parameters":[],"src":"3092:0:22"},"scope":3024,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":2367,"nodeType":"ModifierDefinition","src":"3918:116:22","nodes":[],"body":{"id":2366,"nodeType":"Block","src":"3941:93:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2358,"name":"minters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2219,"src":"3959:7:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":2361,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2359,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3967:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3967:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3959:19:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"46696174546f6b656e3a2063616c6c6572206973206e6f742061206d696e746572","id":2362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3980:35:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7b763ce6d27bbffe397f0a4b60d093afe4a89a9de938f347775d25e86e3b0544","typeString":"literal_string \"FiatToken: caller is not a minter\""},"value":"FiatToken: caller is not a minter"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7b763ce6d27bbffe397f0a4b60d093afe4a89a9de938f347775d25e86e3b0544","typeString":"literal_string \"FiatToken: caller is not a minter\""}],"id":2357,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3951:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3951:65:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2364,"nodeType":"ExpressionStatement","src":"3951:65:22"},{"id":2365,"nodeType":"PlaceholderStatement","src":"4026:1:22"}]},"documentation":{"id":2355,"nodeType":"StructuredDocumentation","src":"3837:76:22","text":" @dev Throws if called by any account other than a minter."},"name":"onlyMinters","overrides":null,"parameters":{"id":2356,"nodeType":"ParameterList","parameters":[],"src":"3938:2:22"},"virtual":false,"visibility":"internal"},{"id":2465,"nodeType":"FunctionDefinition","src":"4348:832:22","nodes":[],"body":{"id":2464,"nodeType":"Block","src":"4563:617:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2389,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2370,"src":"4581:3:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4596:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4588:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2390,"name":"address","nodeType":"ElementaryTypeName","src":"4588:7:22","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":2393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4588:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4581:17:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"46696174546f6b656e3a206d696e7420746f20746865207a65726f2061646472657373","id":2395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4600:37:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_16bc0fd77cd77995b681bf2be6aecdbad45a6258f4fd831282004874f7f5ad42","typeString":"literal_string \"FiatToken: mint to the zero address\""},"value":"FiatToken: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16bc0fd77cd77995b681bf2be6aecdbad45a6258f4fd831282004874f7f5ad42","typeString":"literal_string \"FiatToken: mint to the zero address\""}],"id":2388,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4573:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4573:65:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2397,"nodeType":"ExpressionStatement","src":"4573:65:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2399,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"4656:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4666:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4656:11:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"46696174546f6b656e3a206d696e7420616d6f756e74206e6f742067726561746572207468616e2030","id":2402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4669:43:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3c947fcc2ef5e80b19679bb722510e8784650c4160031f7629aaf17ad2646f76","typeString":"literal_string \"FiatToken: mint amount not greater than 0\""},"value":"FiatToken: mint amount not greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3c947fcc2ef5e80b19679bb722510e8784650c4160031f7629aaf17ad2646f76","typeString":"literal_string \"FiatToken: mint amount not greater than 0\""}],"id":2398,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4648:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4648:65:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2404,"nodeType":"ExpressionStatement","src":"4648:65:22"},{"assignments":[2406],"declarations":[{"constant":false,"id":2406,"mutability":"mutable","name":"mintingAllowedAmount","nodeType":"VariableDeclaration","overrides":null,"scope":2464,"src":"4724:28:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2405,"name":"uint256","nodeType":"ElementaryTypeName","src":"4724:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2411,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2407,"name":"minterAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2223,"src":"4755:13:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2410,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2408,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4769:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4769:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4755:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4724:56:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2413,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"4798:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":2414,"name":"mintingAllowedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2406,"src":"4809:20:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4798:31:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"46696174546f6b656e3a206d696e7420616d6f756e742065786365656473206d696e746572416c6c6f77616e6365","id":2416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4831:48:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cb3056936cc34b7338e5004eaa2a2c8bcd5b30da1b3a213992b8de204543cb76","typeString":"literal_string \"FiatToken: mint amount exceeds minterAllowance\""},"value":"FiatToken: mint amount exceeds minterAllowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cb3056936cc34b7338e5004eaa2a2c8bcd5b30da1b3a213992b8de204543cb76","typeString":"literal_string \"FiatToken: mint amount exceeds minterAllowance\""}],"id":2412,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4790:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4790:90:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2418,"nodeType":"ExpressionStatement","src":"4790:90:22"},{"expression":{"argumentTypes":null,"id":2424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2419,"name":"totalSupply_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2215,"src":"4891:12:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2422,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"4923:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2420,"name":"totalSupply_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2215,"src":"4906:12:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":28,"src":"4906:16:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4906:25:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4891:40:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2425,"nodeType":"ExpressionStatement","src":"4891:40:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2427,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2370,"src":"4953:3:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2432,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"4978:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2429,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2370,"src":"4969:3:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2428,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3023,"src":"4958:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":2430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4958:15:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":28,"src":"4958:19:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4958:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2426,"name":"_setBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2996,"src":"4941:11:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":2434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4941:46:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2435,"nodeType":"ExpressionStatement","src":"4941:46:22"},{"expression":{"argumentTypes":null,"id":2444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2436,"name":"minterAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2223,"src":"4997:13:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2439,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2437,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5011:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5011:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4997:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2442,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"5050:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2440,"name":"mintingAllowedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2406,"src":"5025:20:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":45,"src":"5025:24:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5025:33:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4997:61:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2445,"nodeType":"ExpressionStatement","src":"4997:61:22"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2447,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5078:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5078:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":2449,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2370,"src":"5090:3:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2450,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"5095:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2446,"name":"Mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2231,"src":"5073:4:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5073:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2452,"nodeType":"EmitStatement","src":"5068:35:22"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5135:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2455,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5127:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2454,"name":"address","nodeType":"ElementaryTypeName","src":"5127:7:22","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":2457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5127:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":2458,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2370,"src":"5139:3:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2459,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"5144:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2453,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"5118:8:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5118:34:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2461,"nodeType":"EmitStatement","src":"5113:39:22"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":2462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5169:4:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":2387,"id":2463,"nodeType":"Return","src":"5162:11:22"}]},"documentation":{"id":2368,"nodeType":"StructuredDocumentation","src":"4040:303:22","text":" @notice Mints fiat tokens to an address.\n @param _to The address that will receive the minted tokens.\n @param _amount The amount of tokens to mint. Must be less than or equal\n to the minterAllowance of the caller.\n @return True if the operation was successful."},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":2375,"modifierName":{"argumentTypes":null,"id":2374,"name":"whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3139,"src":"4439:13:22","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"4439:13:22"},{"arguments":null,"id":2377,"modifierName":{"argumentTypes":null,"id":2376,"name":"onlyMinters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2367,"src":"4461:11:22","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"4461:11:22"},{"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2379,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4496:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4496:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":2381,"modifierName":{"argumentTypes":null,"id":2378,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"4481:14:22","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"4481:26:22"},{"arguments":[{"argumentTypes":null,"id":2383,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2370,"src":"4531:3:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2384,"modifierName":{"argumentTypes":null,"id":2382,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"4516:14:22","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"4516:19:22"}],"name":"mint","overrides":null,"parameters":{"id":2373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2370,"mutability":"mutable","name":"_to","nodeType":"VariableDeclaration","overrides":null,"scope":2465,"src":"4371:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2369,"name":"address","nodeType":"ElementaryTypeName","src":"4371:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2372,"mutability":"mutable","name":"_amount","nodeType":"VariableDeclaration","overrides":null,"scope":2465,"src":"4392:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2371,"name":"uint256","nodeType":"ElementaryTypeName","src":"4392:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4361:52:22"},"returnParameters":{"id":2387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2386,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2465,"src":"4553:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2385,"name":"bool","nodeType":"ElementaryTypeName","src":"4553:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4552:6:22"},"scope":3024,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2478,"nodeType":"ModifierDefinition","src":"5274:136:22","nodes":[],"body":{"id":2477,"nodeType":"Block","src":"5302:108:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2469,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5320:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5320:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":2471,"name":"masterMinter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2199,"src":"5334:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5320:26:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"46696174546f6b656e3a2063616c6c6572206973206e6f7420746865206d61737465724d696e746572","id":2473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5348:43:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_43c0094763a61bb19074e59914d5c71375f3f3dd812ceac715263d6b78d55b3b","typeString":"literal_string \"FiatToken: caller is not the masterMinter\""},"value":"FiatToken: caller is not the masterMinter"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_43c0094763a61bb19074e59914d5c71375f3f3dd812ceac715263d6b78d55b3b","typeString":"literal_string \"FiatToken: caller is not the masterMinter\""}],"id":2468,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5312:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5312:80:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2475,"nodeType":"ExpressionStatement","src":"5312:80:22"},{"id":2476,"nodeType":"PlaceholderStatement","src":"5402:1:22"}]},"documentation":{"id":2466,"nodeType":"StructuredDocumentation","src":"5186:83:22","text":" @dev Throws if called by any account other than the masterMinter"},"name":"onlyMasterMinter","overrides":null,"parameters":{"id":2467,"nodeType":"ParameterList","parameters":[],"src":"5299:2:22"},"virtual":false,"visibility":"internal"},{"id":2491,"nodeType":"FunctionDefinition","src":"5595:118:22","nodes":[],"body":{"id":2490,"nodeType":"Block","src":"5668:45:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2486,"name":"minterAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2223,"src":"5685:13:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2488,"indexExpression":{"argumentTypes":null,"id":2487,"name":"minter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2481,"src":"5699:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5685:21:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2485,"id":2489,"nodeType":"Return","src":"5678:28:22"}]},"documentation":{"id":2479,"nodeType":"StructuredDocumentation","src":"5416:174:22","text":" @notice Gets the minter allowance for an account.\n @param minter The address to check.\n @return The remaining minter allowance for the account."},"functionSelector":"8a6db9c3","implemented":true,"kind":"function","modifiers":[],"name":"minterAllowance","overrides":null,"parameters":{"id":2482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2481,"mutability":"mutable","name":"minter","nodeType":"VariableDeclaration","overrides":null,"scope":2491,"src":"5620:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2480,"name":"address","nodeType":"ElementaryTypeName","src":"5620:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"5619:16:22"},"returnParameters":{"id":2485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2484,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2491,"src":"5659:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2483,"name":"uint256","nodeType":"ElementaryTypeName","src":"5659:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5658:9:22"},"scope":3024,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2504,"nodeType":"FunctionDefinition","src":"5914:104:22","nodes":[],"body":{"id":2503,"nodeType":"Block","src":"5978:40:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2499,"name":"minters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2219,"src":"5995:7:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":2501,"indexExpression":{"argumentTypes":null,"id":2500,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2494,"src":"6003:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5995:16:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2498,"id":2502,"nodeType":"Return","src":"5988:23:22"}]},"documentation":{"id":2492,"nodeType":"StructuredDocumentation","src":"5719:190:22","text":" @notice Checks if an account is a minter.\n @param account The address to check.\n @return True if the account is a minter, false if the account is not a minter."},"functionSelector":"aa271e1a","implemented":true,"kind":"function","modifiers":[],"name":"isMinter","overrides":null,"parameters":{"id":2495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2494,"mutability":"mutable","name":"account","nodeType":"VariableDeclaration","overrides":null,"scope":2504,"src":"5932:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2493,"name":"address","nodeType":"ElementaryTypeName","src":"5932:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"5931:17:22"},"returnParameters":{"id":2498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2497,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2504,"src":"5972:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2496,"name":"bool","nodeType":"ElementaryTypeName","src":"5972:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"5971:6:22"},"scope":3024,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2522,"nodeType":"FunctionDefinition","src":"6300:139:22","nodes":[],"body":{"id":2521,"nodeType":"Block","src":"6392:47:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2515,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2212,"src":"6409:7:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":2517,"indexExpression":{"argumentTypes":null,"id":2516,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2507,"src":"6417:5:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6409:14:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2519,"indexExpression":{"argumentTypes":null,"id":2518,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2509,"src":"6424:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6409:23:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2514,"id":2520,"nodeType":"Return","src":"6402:30:22"}]},"baseFunctions":[232],"documentation":{"id":2505,"nodeType":"StructuredDocumentation","src":"6024:271:22","text":" @notice Gets the remaining amount of fiat tokens a spender is allowed to transfer on\n behalf of the token owner.\n @param owner   The token owner's address.\n @param spender The spender's address.\n @return The remaining allowance."},"functionSelector":"dd62ed3e","implemented":true,"kind":"function","modifiers":[],"name":"allowance","overrides":{"id":2511,"nodeType":"OverrideSpecifier","overrides":[],"src":"6365:8:22"},"parameters":{"id":2510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2507,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":2522,"src":"6319:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2506,"name":"address","nodeType":"ElementaryTypeName","src":"6319:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2509,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":2522,"src":"6334:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2508,"name":"address","nodeType":"ElementaryTypeName","src":"6334:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"6318:32:22"},"returnParameters":{"id":2514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2513,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2522,"src":"6383:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2512,"name":"uint256","nodeType":"ElementaryTypeName","src":"6383:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6382:9:22"},"scope":3024,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2532,"nodeType":"FunctionDefinition","src":"6566:100:22","nodes":[],"body":{"id":2531,"nodeType":"Block","src":"6630:36:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":2529,"name":"totalSupply_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2215,"src":"6647:12:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2528,"id":2530,"nodeType":"Return","src":"6640:19:22"}]},"baseFunctions":[204],"documentation":{"id":2523,"nodeType":"StructuredDocumentation","src":"6445:116:22","text":" @notice Gets the totalSupply of the fiat token.\n @return The totalSupply of the fiat token."},"functionSelector":"18160ddd","implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","overrides":{"id":2525,"nodeType":"OverrideSpecifier","overrides":[],"src":"6603:8:22"},"parameters":{"id":2524,"nodeType":"ParameterList","parameters":[],"src":"6586:2:22"},"returnParameters":{"id":2528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2527,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2532,"src":"6621:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2526,"name":"uint256","nodeType":"ElementaryTypeName","src":"6621:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6620:9:22"},"scope":3024,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2546,"nodeType":"FunctionDefinition","src":"6853:120:22","nodes":[],"body":{"id":2545,"nodeType":"Block","src":"6930:43:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2542,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2535,"src":"6958:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2541,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3023,"src":"6947:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":2543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6947:19:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2540,"id":2544,"nodeType":"Return","src":"6940:26:22"}]},"baseFunctions":[212],"documentation":{"id":2533,"nodeType":"StructuredDocumentation","src":"6672:176:22","text":" @notice Gets the fiat token balance of an account.\n @param account  The address to check.\n @return balance The fiat token balance of the account."},"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","overrides":{"id":2537,"nodeType":"OverrideSpecifier","overrides":[],"src":"6903:8:22"},"parameters":{"id":2536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2535,"mutability":"mutable","name":"account","nodeType":"VariableDeclaration","overrides":null,"scope":2546,"src":"6872:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2534,"name":"address","nodeType":"ElementaryTypeName","src":"6872:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"6871:17:22"},"returnParameters":{"id":2540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2539,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2546,"src":"6921:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2538,"name":"uint256","nodeType":"ElementaryTypeName","src":"6921:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6920:9:22"},"scope":3024,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2576,"nodeType":"FunctionDefinition","src":"7228:311:22","nodes":[],"body":{"id":2575,"nodeType":"Block","src":"7465:74:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2567,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7484:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7484:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":2569,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2549,"src":"7496:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2570,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2551,"src":"7505:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2566,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[2622],"referencedDeclaration":2622,"src":"7475:8:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7475:36:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2572,"nodeType":"ExpressionStatement","src":"7475:36:22"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":2573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7528:4:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":2565,"id":2574,"nodeType":"Return","src":"7521:11:22"}]},"baseFunctions":[242],"documentation":{"id":2547,"nodeType":"StructuredDocumentation","src":"6979:244:22","text":" @notice Sets a fiat token allowance for a spender to spend on behalf of the caller.\n @param spender The spender's address.\n @param value   The allowance amount.\n @return True if the operation was successful."},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":2555,"modifierName":{"argumentTypes":null,"id":2554,"name":"whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3139,"src":"7357:13:22","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"7357:13:22"},{"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2557,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7394:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7394:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":2559,"modifierName":{"argumentTypes":null,"id":2556,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"7379:14:22","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"7379:26:22"},{"arguments":[{"argumentTypes":null,"id":2561,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2549,"src":"7429:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2562,"modifierName":{"argumentTypes":null,"id":2560,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"7414:14:22","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"7414:23:22"}],"name":"approve","overrides":{"id":2553,"nodeType":"OverrideSpecifier","overrides":[],"src":"7340:8:22"},"parameters":{"id":2552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2549,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":2576,"src":"7254:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2548,"name":"address","nodeType":"ElementaryTypeName","src":"7254:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2551,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":2576,"src":"7279:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2550,"name":"uint256","nodeType":"ElementaryTypeName","src":"7279:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7244:54:22"},"returnParameters":{"id":2565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2564,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2576,"src":"7455:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2563,"name":"bool","nodeType":"ElementaryTypeName","src":"7455:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"7454:6:22"},"scope":3024,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":2622,"nodeType":"FunctionDefinition","src":"7741:333:22","nodes":[],"body":{"id":2621,"nodeType":"Block","src":"7824:250:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2588,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2579,"src":"7842:5:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7859:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7851:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2589,"name":"address","nodeType":"ElementaryTypeName","src":"7851:7:22","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":2592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7851:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"7842:19:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":2594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7863:38:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":2587,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7834:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7834:68:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2596,"nodeType":"ExpressionStatement","src":"7834:68:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2598,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2581,"src":"7920:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7939:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7931:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2599,"name":"address","nodeType":"ElementaryTypeName","src":"7931:7:22","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":2602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7931:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"7920:21:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":2604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7943:36:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":2597,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7912:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7912:68:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2606,"nodeType":"ExpressionStatement","src":"7912:68:22"},{"expression":{"argumentTypes":null,"id":2613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2607,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2212,"src":"7990:7:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":2610,"indexExpression":{"argumentTypes":null,"id":2608,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2579,"src":"7998:5:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7990:14:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2611,"indexExpression":{"argumentTypes":null,"id":2609,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2581,"src":"8005:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7990:23:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2612,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2583,"src":"8016:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7990:31:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2614,"nodeType":"ExpressionStatement","src":"7990:31:22"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2616,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2579,"src":"8045:5:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2617,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2581,"src":"8052:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2618,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2583,"src":"8061:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2615,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":272,"src":"8036:8:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8036:31:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2620,"nodeType":"EmitStatement","src":"8031:36:22"}]},"baseFunctions":[1990],"documentation":{"id":2577,"nodeType":"StructuredDocumentation","src":"7545:191:22","text":" @dev Internal function to set allowance.\n @param owner     Token owner's address.\n @param spender   Spender's address.\n @param value     Allowance amount."},"implemented":true,"kind":"function","modifiers":[],"name":"_approve","overrides":{"id":2585,"nodeType":"OverrideSpecifier","overrides":[],"src":"7815:8:22"},"parameters":{"id":2584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2579,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":2622,"src":"7759:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2578,"name":"address","nodeType":"ElementaryTypeName","src":"7759:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2581,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":2622,"src":"7774:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2580,"name":"address","nodeType":"ElementaryTypeName","src":"7774:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2583,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":2622,"src":"7791:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2582,"name":"uint256","nodeType":"ElementaryTypeName","src":"7791:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7758:47:22"},"returnParameters":{"id":2586,"nodeType":"ParameterList","parameters":[],"src":"7824:0:22"},"scope":3024,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":2685,"nodeType":"FunctionDefinition","src":"8437:502:22","nodes":[],"body":{"id":2684,"nodeType":"Block","src":"8704:235:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2648,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2629,"src":"8722:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2649,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2212,"src":"8731:7:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":2651,"indexExpression":{"argumentTypes":null,"id":2650,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2625,"src":"8739:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8731:13:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2654,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2652,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8745:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8745:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8731:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8722:34:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365","id":2656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8758:42:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330","typeString":"literal_string \"ERC20: transfer amount exceeds allowance\""},"value":"ERC20: transfer amount exceeds allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330","typeString":"literal_string \"ERC20: transfer amount exceeds allowance\""}],"id":2647,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8714:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8714:87:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2658,"nodeType":"ExpressionStatement","src":"8714:87:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2660,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2625,"src":"8821:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2661,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2627,"src":"8827:2:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2662,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2629,"src":"8831:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2659,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[2782],"referencedDeclaration":2782,"src":"8811:9:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8811:26:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2664,"nodeType":"ExpressionStatement","src":"8811:26:22"},{"expression":{"argumentTypes":null,"id":2680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2665,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2212,"src":"8847:7:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":2669,"indexExpression":{"argumentTypes":null,"id":2666,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2625,"src":"8855:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8847:13:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2670,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2667,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8861:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8861:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8847:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2678,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2629,"src":"8905:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2671,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2212,"src":"8875:7:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":2673,"indexExpression":{"argumentTypes":null,"id":2672,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2625,"src":"8883:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8875:13:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2676,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2674,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8889:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8889:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8875:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":45,"src":"8875:29:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8875:36:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8847:64:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2681,"nodeType":"ExpressionStatement","src":"8847:64:22"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":2682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8928:4:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":2646,"id":2683,"nodeType":"Return","src":"8921:11:22"}]},"baseFunctions":[254],"documentation":{"id":2623,"nodeType":"StructuredDocumentation","src":"8080:352:22","text":" @notice Transfers tokens from an address to another by spending the caller's allowance.\n @dev The caller must have some fiat token allowance on the payer's tokens.\n @param from  Payer's address.\n @param to    Payee's address.\n @param value Transfer amount.\n @return True if the operation was successful."},"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":2633,"modifierName":{"argumentTypes":null,"id":2632,"name":"whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3139,"src":"8572:13:22","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"8572:13:22"},{"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2635,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8609:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8609:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":2637,"modifierName":{"argumentTypes":null,"id":2634,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"8594:14:22","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"8594:26:22"},{"arguments":[{"argumentTypes":null,"id":2639,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2625,"src":"8644:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2640,"modifierName":{"argumentTypes":null,"id":2638,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"8629:14:22","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"8629:20:22"},{"arguments":[{"argumentTypes":null,"id":2642,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2627,"src":"8673:2:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2643,"modifierName":{"argumentTypes":null,"id":2641,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"8658:14:22","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"8658:18:22"}],"name":"transferFrom","overrides":{"id":2631,"nodeType":"OverrideSpecifier","overrides":[],"src":"8555:8:22"},"parameters":{"id":2630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2625,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":2685,"src":"8468:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2624,"name":"address","nodeType":"ElementaryTypeName","src":"8468:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2627,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2685,"src":"8490:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2626,"name":"address","nodeType":"ElementaryTypeName","src":"8490:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2629,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":2685,"src":"8510:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2628,"name":"uint256","nodeType":"ElementaryTypeName","src":"8510:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"8458:71:22"},"returnParameters":{"id":2646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2645,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2685,"src":"8694:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2644,"name":"bool","nodeType":"ElementaryTypeName","src":"8694:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"8693:6:22"},"scope":3024,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2715,"nodeType":"FunctionDefinition","src":"9137:282:22","nodes":[],"body":{"id":2714,"nodeType":"Block","src":"9349:70:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2706,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9369:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9369:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":2708,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2688,"src":"9381:2:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2709,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2690,"src":"9385:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2705,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[2782],"referencedDeclaration":2782,"src":"9359:9:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9359:32:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2711,"nodeType":"ExpressionStatement","src":"9359:32:22"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":2712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9408:4:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":2704,"id":2713,"nodeType":"Return","src":"9401:11:22"}]},"baseFunctions":[222],"documentation":{"id":2686,"nodeType":"StructuredDocumentation","src":"8945:187:22","text":" @notice Transfers tokens from the caller.\n @param to    Payee's address.\n @param value Transfer amount.\n @return True if the operation was successful."},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":2694,"modifierName":{"argumentTypes":null,"id":2693,"name":"whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3139,"src":"9246:13:22","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"9246:13:22"},{"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2696,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9283:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9283:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":2698,"modifierName":{"argumentTypes":null,"id":2695,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"9268:14:22","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"9268:26:22"},{"arguments":[{"argumentTypes":null,"id":2700,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2688,"src":"9318:2:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2701,"modifierName":{"argumentTypes":null,"id":2699,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"9303:14:22","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"9303:18:22"}],"name":"transfer","overrides":{"id":2692,"nodeType":"OverrideSpecifier","overrides":[],"src":"9229:8:22"},"parameters":{"id":2691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2688,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2715,"src":"9164:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2687,"name":"address","nodeType":"ElementaryTypeName","src":"9164:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2690,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":2715,"src":"9184:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2689,"name":"uint256","nodeType":"ElementaryTypeName","src":"9184:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9154:49:22"},"returnParameters":{"id":2704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2703,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2715,"src":"9339:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2702,"name":"bool","nodeType":"ElementaryTypeName","src":"9339:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"9338:6:22"},"scope":3024,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2782,"nodeType":"FunctionDefinition","src":"9604:472:22","nodes":[],"body":{"id":2781,"nodeType":"Block","src":"9682:394:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2727,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2718,"src":"9700:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9716:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9708:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2728,"name":"address","nodeType":"ElementaryTypeName","src":"9708:7:22","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":2731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9708:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"9700:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":2733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9720:39:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":2726,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9692:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9692:68:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2735,"nodeType":"ExpressionStatement","src":"9692:68:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2737,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2720,"src":"9778:2:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9792:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9784:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2738,"name":"address","nodeType":"ElementaryTypeName","src":"9784:7:22","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":2741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9784:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"9778:16:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":2743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9796:37:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":2736,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9770:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9770:64:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2745,"nodeType":"ExpressionStatement","src":"9770:64:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2747,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2722,"src":"9852:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2749,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2718,"src":"9872:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2748,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3023,"src":"9861:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":2750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9861:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9852:25:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":2752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9879:40:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"id":2746,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9844:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9844:76:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2754,"nodeType":"ExpressionStatement","src":"9844:76:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2756,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2718,"src":"9943:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2761,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2722,"src":"9970:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2758,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2718,"src":"9960:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2757,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3023,"src":"9949:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":2759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9949:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":45,"src":"9949:20:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9949:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2755,"name":"_setBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2996,"src":"9931:11:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":2763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9931:46:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2764,"nodeType":"ExpressionStatement","src":"9931:46:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2766,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2720,"src":"9999:2:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2771,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2722,"src":"10022:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2768,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2720,"src":"10014:2:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2767,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3023,"src":"10003:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":2769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10003:14:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":28,"src":"10003:18:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10003:25:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2765,"name":"_setBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2996,"src":"9987:11:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":2773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9987:42:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2774,"nodeType":"ExpressionStatement","src":"9987:42:22"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2776,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2718,"src":"10053:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2777,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2720,"src":"10059:2:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2778,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2722,"src":"10063:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2775,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"10044:8:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10044:25:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2780,"nodeType":"EmitStatement","src":"10039:30:22"}]},"baseFunctions":[1999],"documentation":{"id":2716,"nodeType":"StructuredDocumentation","src":"9425:174:22","text":" @dev Internal function to process transfers.\n @param from  Payer's address.\n @param to    Payee's address.\n @param value Transfer amount."},"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","overrides":{"id":2724,"nodeType":"OverrideSpecifier","overrides":[],"src":"9673:8:22"},"parameters":{"id":2723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2718,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":2782,"src":"9623:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2717,"name":"address","nodeType":"ElementaryTypeName","src":"9623:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2720,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":2782,"src":"9637:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2719,"name":"address","nodeType":"ElementaryTypeName","src":"9637:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2722,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":2782,"src":"9649:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2721,"name":"uint256","nodeType":"ElementaryTypeName","src":"9649:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9622:41:22"},"returnParameters":{"id":2725,"nodeType":"ParameterList","parameters":[],"src":"9682:0:22"},"scope":3024,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":2816,"nodeType":"FunctionDefinition","src":"10343:356:22","nodes":[],"body":{"id":2815,"nodeType":"Block","src":"10526:173:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":2800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2796,"name":"minters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2219,"src":"10536:7:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":2798,"indexExpression":{"argumentTypes":null,"id":2797,"name":"minter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2785,"src":"10544:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10536:15:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":2799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10554:4:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"10536:22:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2801,"nodeType":"ExpressionStatement","src":"10536:22:22"},{"expression":{"argumentTypes":null,"id":2806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2802,"name":"minterAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2223,"src":"10568:13:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2804,"indexExpression":{"argumentTypes":null,"id":2803,"name":"minter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2785,"src":"10582:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10568:21:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2805,"name":"minterAllowedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2787,"src":"10592:19:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10568:43:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2807,"nodeType":"ExpressionStatement","src":"10568:43:22"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2809,"name":"minter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2785,"src":"10643:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2810,"name":"minterAllowedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2787,"src":"10651:19:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2808,"name":"MinterConfigured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2243,"src":"10626:16:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":2811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10626:45:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2812,"nodeType":"EmitStatement","src":"10621:50:22"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":2813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10688:4:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":2795,"id":2814,"nodeType":"Return","src":"10681:11:22"}]},"documentation":{"id":2783,"nodeType":"StructuredDocumentation","src":"10082:256:22","text":" @notice Adds or updates a new minter with a mint allowance.\n @param minter The address of the minter.\n @param minterAllowedAmount The minting amount allowed for the minter.\n @return True if the operation was successful."},"functionSelector":"4e44d956","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":2790,"modifierName":{"argumentTypes":null,"id":2789,"name":"whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3139,"src":"10460:13:22","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"10460:13:22"},{"arguments":null,"id":2792,"modifierName":{"argumentTypes":null,"id":2791,"name":"onlyMasterMinter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2478,"src":"10482:16:22","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"10482:16:22"}],"name":"configureMinter","overrides":null,"parameters":{"id":2788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2785,"mutability":"mutable","name":"minter","nodeType":"VariableDeclaration","overrides":null,"scope":2816,"src":"10377:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2784,"name":"address","nodeType":"ElementaryTypeName","src":"10377:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2787,"mutability":"mutable","name":"minterAllowedAmount","nodeType":"VariableDeclaration","overrides":null,"scope":2816,"src":"10401:27:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2786,"name":"uint256","nodeType":"ElementaryTypeName","src":"10401:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"10367:67:22"},"returnParameters":{"id":2795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2794,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2816,"src":"10516:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2793,"name":"bool","nodeType":"ElementaryTypeName","src":"10516:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"10515:6:22"},"scope":3024,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2845,"nodeType":"FunctionDefinition","src":"10865:211:22","nodes":[],"body":{"id":2844,"nodeType":"Block","src":"10944:132:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":2830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2826,"name":"minters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2219,"src":"10954:7:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":2828,"indexExpression":{"argumentTypes":null,"id":2827,"name":"minter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2819,"src":"10962:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10954:15:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"66616c7365","id":2829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10972:5:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"10954:23:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2831,"nodeType":"ExpressionStatement","src":"10954:23:22"},{"expression":{"argumentTypes":null,"id":2836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2832,"name":"minterAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2223,"src":"10987:13:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2834,"indexExpression":{"argumentTypes":null,"id":2833,"name":"minter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2819,"src":"11001:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10987:21:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":2835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11011:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10987:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2837,"nodeType":"ExpressionStatement","src":"10987:25:22"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2839,"name":"minter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2819,"src":"11041:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2838,"name":"MinterRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2247,"src":"11027:13:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11027:21:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2841,"nodeType":"EmitStatement","src":"11022:26:22"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":2842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11065:4:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":2825,"id":2843,"nodeType":"Return","src":"11058:11:22"}]},"documentation":{"id":2817,"nodeType":"StructuredDocumentation","src":"10705:155:22","text":" @notice Removes a minter.\n @param minter The address of the minter to remove.\n @return True if the operation was successful."},"functionSelector":"3092afd5","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":2822,"modifierName":{"argumentTypes":null,"id":2821,"name":"onlyMasterMinter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2478,"src":"10912:16:22","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"10912:16:22"}],"name":"removeMinter","overrides":null,"parameters":{"id":2820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2819,"mutability":"mutable","name":"minter","nodeType":"VariableDeclaration","overrides":null,"scope":2845,"src":"10887:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2818,"name":"address","nodeType":"ElementaryTypeName","src":"10887:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"10886:16:22"},"returnParameters":{"id":2825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2824,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":2845,"src":"10938:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2823,"name":"bool","nodeType":"ElementaryTypeName","src":"10938:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"10937:6:22"},"scope":3024,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2913,"nodeType":"FunctionDefinition","src":"11369:506:22","nodes":[],"body":{"id":2912,"nodeType":"Block","src":"11462:413:22","nodes":[],"statements":[{"assignments":[2860],"declarations":[{"constant":false,"id":2860,"mutability":"mutable","name":"balance","nodeType":"VariableDeclaration","overrides":null,"scope":2912,"src":"11472:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2859,"name":"uint256","nodeType":"ElementaryTypeName","src":"11472:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2865,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2862,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11501:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11501:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":2861,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3023,"src":"11490:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":2864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11490:22:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11472:40:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2867,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"11530:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11540:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11530:11:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"46696174546f6b656e3a206275726e20616d6f756e74206e6f742067726561746572207468616e2030","id":2870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11543:43:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_168edc4baccc68c989c69de1002bb50cc4fb73d366f550437f414122fbafbcc1","typeString":"literal_string \"FiatToken: burn amount not greater than 0\""},"value":"FiatToken: burn amount not greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_168edc4baccc68c989c69de1002bb50cc4fb73d366f550437f414122fbafbcc1","typeString":"literal_string \"FiatToken: burn amount not greater than 0\""}],"id":2866,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11522:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11522:65:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2872,"nodeType":"ExpressionStatement","src":"11522:65:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2874,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2860,"src":"11605:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":2875,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"11616:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11605:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"46696174546f6b656e3a206275726e20616d6f756e7420657863656564732062616c616e6365","id":2877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11625:40:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_70797d21768c4f3a683f9863591d7297f78b14b0d64930500884f3360e11fbac","typeString":"literal_string \"FiatToken: burn amount exceeds balance\""},"value":"FiatToken: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_70797d21768c4f3a683f9863591d7297f78b14b0d64930500884f3360e11fbac","typeString":"literal_string \"FiatToken: burn amount exceeds balance\""}],"id":2873,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11597:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11597:69:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2879,"nodeType":"ExpressionStatement","src":"11597:69:22"},{"expression":{"argumentTypes":null,"id":2885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2880,"name":"totalSupply_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2215,"src":"11677:12:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2883,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"11709:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2881,"name":"totalSupply_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2215,"src":"11692:12:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":45,"src":"11692:16:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11692:25:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11677:40:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2886,"nodeType":"ExpressionStatement","src":"11677:40:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2888,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11739:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11739:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2892,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"11763:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2890,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2860,"src":"11751:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":45,"src":"11751:11:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11751:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2887,"name":"_setBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2996,"src":"11727:11:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":2894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11727:45:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2895,"nodeType":"ExpressionStatement","src":"11727:45:22"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2897,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11792:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11792:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":2899,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"11804:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2896,"name":"Burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2237,"src":"11787:4:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":2900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11787:25:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2901,"nodeType":"EmitStatement","src":"11782:30:22"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2903,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11836:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11836:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11856:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11848:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2905,"name":"address","nodeType":"ElementaryTypeName","src":"11848:7:22","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":2908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11848:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":2909,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"11860:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2902,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"11827:8:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11827:41:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2911,"nodeType":"EmitStatement","src":"11822:46:22"}]},"documentation":{"id":2846,"nodeType":"StructuredDocumentation","src":"11082:282:22","text":" @notice Allows a minter to burn some of its own tokens.\n @dev The caller must be a minter, must not be blacklisted, and the amount to burn\n should be less than or equal to the account's balance.\n @param _amount the amount of tokens to be burned."},"functionSelector":"42966c68","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":2851,"modifierName":{"argumentTypes":null,"id":2850,"name":"whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3139,"src":"11409:13:22","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"11409:13:22"},{"arguments":null,"id":2853,"modifierName":{"argumentTypes":null,"id":2852,"name":"onlyMinters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2367,"src":"11423:11:22","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"11423:11:22"},{"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2855,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11450:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11450:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":2857,"modifierName":{"argumentTypes":null,"id":2854,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"11435:14:22","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"11435:26:22"}],"name":"burn","overrides":null,"parameters":{"id":2849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2848,"mutability":"mutable","name":"_amount","nodeType":"VariableDeclaration","overrides":null,"scope":2913,"src":"11383:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2847,"name":"uint256","nodeType":"ElementaryTypeName","src":"11383:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"11382:17:22"},"returnParameters":{"id":2858,"nodeType":"ParameterList","parameters":[],"src":"11462:0:22"},"scope":3024,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2940,"nodeType":"FunctionDefinition","src":"12016:269:22","nodes":[],"body":{"id":2939,"nodeType":"Block","src":"12089:196:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2922,"name":"_newMasterMinter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2916,"src":"12107:16:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12135:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12127:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2923,"name":"address","nodeType":"ElementaryTypeName","src":"12127:7:22","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":2926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12127:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"12107:30:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"46696174546f6b656e3a206e6577206d61737465724d696e74657220697320746865207a65726f2061646472657373","id":2928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12139:49:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8aeac8761ac797f8fb5589545ec23a37574766c6db0f1544e7960a0b9cc8defe","typeString":"literal_string \"FiatToken: new masterMinter is the zero address\""},"value":"FiatToken: new masterMinter is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8aeac8761ac797f8fb5589545ec23a37574766c6db0f1544e7960a0b9cc8defe","typeString":"literal_string \"FiatToken: new masterMinter is the zero address\""}],"id":2921,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12099:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12099:90:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2930,"nodeType":"ExpressionStatement","src":"12099:90:22"},{"expression":{"argumentTypes":null,"id":2933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2931,"name":"masterMinter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2199,"src":"12199:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2932,"name":"_newMasterMinter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2916,"src":"12214:16:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12199:31:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2934,"nodeType":"ExpressionStatement","src":"12199:31:22"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2936,"name":"masterMinter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2199,"src":"12265:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2935,"name":"MasterMinterChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2251,"src":"12245:19:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12245:33:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2938,"nodeType":"EmitStatement","src":"12240:38:22"}]},"documentation":{"id":2914,"nodeType":"StructuredDocumentation","src":"11881:130:22","text":" @notice Updates the master minter address.\n @param _newMasterMinter The address of the new master minter."},"functionSelector":"aa20e1e4","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":2919,"modifierName":{"argumentTypes":null,"id":2918,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"12079:9:22","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"12079:9:22"}],"name":"updateMasterMinter","overrides":null,"parameters":{"id":2917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2916,"mutability":"mutable","name":"_newMasterMinter","nodeType":"VariableDeclaration","overrides":null,"scope":2940,"src":"12044:24:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2915,"name":"address","nodeType":"ElementaryTypeName","src":"12044:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"12043:26:22"},"returnParameters":{"id":2920,"nodeType":"ParameterList","parameters":[],"src":"12089:0:22"},"scope":3024,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2953,"nodeType":"FunctionDefinition","src":"12340:107:22","nodes":[],"body":{"id":2952,"nodeType":"Block","src":"12396:51:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2948,"name":"_account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2943,"src":"12425:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"hexValue":"74727565","id":2949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12435:4:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2947,"name":"_setBlacklistState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2981,"src":"12406:18:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bool)"}},"id":2950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12406:34:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2951,"nodeType":"ExpressionStatement","src":"12406:34:22"}]},"baseFunctions":[2141],"documentation":{"id":2941,"nodeType":"StructuredDocumentation","src":"12291:44:22","text":" @inheritdoc Blacklistable"},"implemented":true,"kind":"function","modifiers":[],"name":"_blacklist","overrides":{"id":2945,"nodeType":"OverrideSpecifier","overrides":[],"src":"12387:8:22"},"parameters":{"id":2944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2943,"mutability":"mutable","name":"_account","nodeType":"VariableDeclaration","overrides":null,"scope":2953,"src":"12360:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2942,"name":"address","nodeType":"ElementaryTypeName","src":"12360:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"12359:18:22"},"returnParameters":{"id":2946,"nodeType":"ParameterList","parameters":[],"src":"12396:0:22"},"scope":3024,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":2966,"nodeType":"FunctionDefinition","src":"12502:110:22","nodes":[],"body":{"id":2965,"nodeType":"Block","src":"12560:52:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2961,"name":"_account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2956,"src":"12589:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"hexValue":"66616c7365","id":2962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12599:5:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2960,"name":"_setBlacklistState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2981,"src":"12570:18:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bool)"}},"id":2963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12570:35:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2964,"nodeType":"ExpressionStatement","src":"12570:35:22"}]},"baseFunctions":[2147],"documentation":{"id":2954,"nodeType":"StructuredDocumentation","src":"12453:44:22","text":" @inheritdoc Blacklistable"},"implemented":true,"kind":"function","modifiers":[],"name":"_unBlacklist","overrides":{"id":2958,"nodeType":"OverrideSpecifier","overrides":[],"src":"12551:8:22"},"parameters":{"id":2957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2956,"mutability":"mutable","name":"_account","nodeType":"VariableDeclaration","overrides":null,"scope":2966,"src":"12524:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2955,"name":"address","nodeType":"ElementaryTypeName","src":"12524:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"12523:18:22"},"returnParameters":{"id":2959,"nodeType":"ParameterList","parameters":[],"src":"12560:0:22"},"scope":3024,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":2981,"nodeType":"FunctionDefinition","src":"12884:154:22","nodes":[],"body":{"id":2980,"nodeType":"Block","src":"12970:68:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":2978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2974,"name":"_deprecatedBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2013,"src":"12980:22:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":2976,"indexExpression":{"argumentTypes":null,"id":2975,"name":"_account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"13003:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12980:32:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2977,"name":"_shouldBlacklist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2971,"src":"13015:16:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12980:51:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2979,"nodeType":"ExpressionStatement","src":"12980:51:22"}]},"documentation":{"id":2967,"nodeType":"StructuredDocumentation","src":"12618:261:22","text":" @dev Helper method that sets the blacklist state of an account.\n @param _account         The address of the account.\n @param _shouldBlacklist True if the account should be blacklisted, false if the account should be unblacklisted."},"implemented":true,"kind":"function","modifiers":[],"name":"_setBlacklistState","overrides":null,"parameters":{"id":2972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2969,"mutability":"mutable","name":"_account","nodeType":"VariableDeclaration","overrides":null,"scope":2981,"src":"12912:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2968,"name":"address","nodeType":"ElementaryTypeName","src":"12912:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2971,"mutability":"mutable","name":"_shouldBlacklist","nodeType":"VariableDeclaration","overrides":null,"scope":2981,"src":"12930:21:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2970,"name":"bool","nodeType":"ElementaryTypeName","src":"12930:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"12911:41:22"},"returnParameters":{"id":2973,"nodeType":"ParameterList","parameters":[],"src":"12970:0:22"},"scope":3024,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2996,"nodeType":"FunctionDefinition","src":"13240:137:22","nodes":[],"body":{"id":2995,"nodeType":"Block","src":"13314:63:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":2993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2989,"name":"balanceAndBlacklistStates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2206,"src":"13324:25:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2991,"indexExpression":{"argumentTypes":null,"id":2990,"name":"_account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2984,"src":"13350:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13324:35:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2992,"name":"_balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2986,"src":"13362:8:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13324:46:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2994,"nodeType":"ExpressionStatement","src":"13324:46:22"}]},"documentation":{"id":2982,"nodeType":"StructuredDocumentation","src":"13044:191:22","text":" @dev Helper method that sets the balance of an account.\n @param _account The address of the account.\n @param _balance The new fiat token balance of the account."},"implemented":true,"kind":"function","modifiers":[],"name":"_setBalance","overrides":null,"parameters":{"id":2987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2984,"mutability":"mutable","name":"_account","nodeType":"VariableDeclaration","overrides":null,"scope":2996,"src":"13261:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2983,"name":"address","nodeType":"ElementaryTypeName","src":"13261:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2986,"mutability":"mutable","name":"_balance","nodeType":"VariableDeclaration","overrides":null,"scope":2996,"src":"13279:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2985,"name":"uint256","nodeType":"ElementaryTypeName","src":"13279:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13260:36:22"},"returnParameters":{"id":2988,"nodeType":"ParameterList","parameters":[],"src":"13314:0:22"},"scope":3024,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":3010,"nodeType":"FunctionDefinition","src":"13432:144:22","nodes":[],"body":{"id":3009,"nodeType":"Block","src":"13520:56:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3005,"name":"_deprecatedBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2013,"src":"13537:22:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":3007,"indexExpression":{"argumentTypes":null,"id":3006,"name":"_account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2999,"src":"13560:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13537:32:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3004,"id":3008,"nodeType":"Return","src":"13530:39:22"}]},"baseFunctions":[2135],"documentation":{"id":2997,"nodeType":"StructuredDocumentation","src":"13383:44:22","text":" @inheritdoc Blacklistable"},"implemented":true,"kind":"function","modifiers":[],"name":"_isBlacklisted","overrides":{"id":3001,"nodeType":"OverrideSpecifier","overrides":[],"src":"13496:8:22"},"parameters":{"id":3000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2999,"mutability":"mutable","name":"_account","nodeType":"VariableDeclaration","overrides":null,"scope":3010,"src":"13456:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2998,"name":"address","nodeType":"ElementaryTypeName","src":"13456:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"13455:18:22"},"returnParameters":{"id":3004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3003,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":3010,"src":"13514:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3002,"name":"bool","nodeType":"ElementaryTypeName","src":"13514:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"13513:6:22"},"scope":3024,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":3023,"nodeType":"FunctionDefinition","src":"13776:137:22","nodes":[],"body":{"id":3022,"nodeType":"Block","src":"13854:59:22","nodes":[],"statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3018,"name":"balanceAndBlacklistStates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2206,"src":"13871:25:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3020,"indexExpression":{"argumentTypes":null,"id":3019,"name":"_account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3013,"src":"13897:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13871:35:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3017,"id":3021,"nodeType":"Return","src":"13864:42:22"}]},"documentation":{"id":3011,"nodeType":"StructuredDocumentation","src":"13582:189:22","text":" @dev Helper method to obtain the balance of an account.\n @param _account  The address of the account.\n @return          The fiat token balance of the account."},"implemented":true,"kind":"function","modifiers":[],"name":"_balanceOf","overrides":null,"parameters":{"id":3014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3013,"mutability":"mutable","name":"_account","nodeType":"VariableDeclaration","overrides":null,"scope":3023,"src":"13796:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3012,"name":"address","nodeType":"ElementaryTypeName","src":"13796:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"13795:18:22"},"returnParameters":{"id":3017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3016,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":3023,"src":"13845:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3015,"name":"uint256","nodeType":"ElementaryTypeName","src":"13845:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13844:9:22"},"scope":3024,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":2179,"name":"AbstractFiatTokenV1","nodeType":"UserDefinedTypeName","referencedDeclaration":2000,"src":"1060:19:22","typeDescriptions":{"typeIdentifier":"t_contract$_AbstractFiatTokenV1_$2000","typeString":"contract AbstractFiatTokenV1"}},"id":2180,"nodeType":"InheritanceSpecifier","src":"1060:19:22"},{"arguments":null,"baseName":{"contractScope":null,"id":2181,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":3108,"src":"1081:7:22","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$3108","typeString":"contract Ownable"}},"id":2182,"nodeType":"InheritanceSpecifier","src":"1081:7:22"},{"arguments":null,"baseName":{"contractScope":null,"id":2183,"name":"Pausable","nodeType":"UserDefinedTypeName","referencedDeclaration":3208,"src":"1090:8:22","typeDescriptions":{"typeIdentifier":"t_contract$_Pausable_$3208","typeString":"contract Pausable"}},"id":2184,"nodeType":"InheritanceSpecifier","src":"1090:8:22"},{"arguments":null,"baseName":{"contractScope":null,"id":2185,"name":"Blacklistable","nodeType":"UserDefinedTypeName","referencedDeclaration":2148,"src":"1100:13:22","typeDescriptions":{"typeIdentifier":"t_contract$_Blacklistable_$2148","typeString":"contract Blacklistable"}},"id":2186,"nodeType":"InheritanceSpecifier","src":"1100:13:22"}],"contractDependencies":[273,2000,2148,3108,3208],"contractKind":"contract","documentation":{"id":2178,"nodeType":"StructuredDocumentation","src":"964:71:22","text":" @title FiatToken\n @dev ERC20 Token backed by fiat reserves"},"fullyImplemented":true,"linearizedBaseContracts":[3024,2148,3208,3108,2000,273],"name":"FiatTokenV1","scope":3025}],"license":"Apache-2.0"},"id":22}