{"abi":[{"type":"function","name":"CANCEL_AUTHORIZATION_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PERMIT_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"RECEIVE_WITH_AUTHORIZATION_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TRANSFER_WITH_AUTHORIZATION_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"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":"authorizationState","inputs":[{"name":"authorizer","type":"address","internalType":"address"},{"name":"nonce","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"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":"cancelAuthorization","inputs":[{"name":"authorizer","type":"address","internalType":"address"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"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":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"decrement","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"increment","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"initializeV2","inputs":[{"name":"newName","type":"string","internalType":"string"}],"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":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"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":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"receiveWithAuthorization","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"validAfter","type":"uint256","internalType":"uint256"},{"name":"validBefore","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeMinter","inputs":[{"name":"minter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"rescueERC20","inputs":[{"name":"tokenContract","type":"address","internalType":"contract IERC20"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rescuer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"transferWithAuthorization","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"validAfter","type":"uint256","internalType":"uint256"},{"name":"validBefore","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"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":"function","name":"updateRescuer","inputs":[{"name":"newRescuer","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":"AuthorizationCanceled","inputs":[{"name":"authorizer","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"AuthorizationUsed","inputs":[{"name":"authorizer","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"bytes32","indexed":true,"internalType":"bytes32"}],"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":"RescuerChanged","inputs":[{"name":"newRescuer","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":"0x60806040526001805460ff60a01b191690556000600b553480156200002357600080fd5b506200002f3362000035565b62000057565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6150c780620000676000396000f3fe608060405234801561001057600080fd5b50600436106103205760003560e01c80638456cb59116101a7578063bd102430116100ee578063e5a6b10f11610097578063f2fde38b11610071578063f2fde38b14610cdc578063f9f92be414610d0f578063fe575a8714610d4257610320565b8063e5a6b10f14610c2f578063e94a010214610c37578063ef55bec614610c7057610320565b8063d9169487116100c8578063d916948714610b80578063dd62ed3e14610b88578063e3ee160e14610bc357610320565b8063bd10243014610aaa578063d505accf14610ab2578063d608ea6414610b1057610320565b8063a457c2d711610150578063aa271e1a1161012a578063aa271e1a14610a01578063ad38bf2214610a34578063b2118a8d14610a6757610320565b8063a457c2d71461095c578063a9059cbb14610995578063aa20e1e4146109ce57610320565b806395d89b411161018157806395d89b41146109445780639fd0506d1461094c578063a0cc6a681461095457610320565b80638456cb59146109015780638a6db9c3146109095780638da5cb5b1461093c57610320565b806338a631831161026b578063554bab3c1161021457806370a08231116101ee57806370a08231146108935780637ecebe00146108c65780637f2eecc3146108f957610320565b8063554bab3c1461080a5780635a049a701461083d5780635c975abb1461088b57610320565b806340c10f191161024557806340c10f191461077b57806342966c68146107b45780634e44d956146107d157610320565b806338a6318314610732578063395093511461073a5780633f4ba83a1461077357610320565b80633092afd5116102cd5780633357162b116102a75780633357162b1461050d57806335d99f35146106f95780633644e5151461072a57610320565b80633092afd5146104b457806330adf81f146104e7578063313ce567146104ef57610320565b80631a895266116102fe5780631a8952661461040957806323b872dd1461043e5780632ab600451461048157610320565b806306fdde0314610325578063095ea7b3146103a257806318160ddd146103ef575b600080fd5b61032d610d75565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036757818101518382015260200161034f565b50505050905090810190601f1680156103945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103db600480360360408110156103b857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e21565b604080519115158252519081900360200190f35b6103f7610f84565b60408051918252519081900360200190f35b61043c6004803603602081101561041f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610f8a565b005b6103db6004803603606081101561045457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135611047565b61043c6004803603602081101561049757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611302565b6103db600480360360208110156104ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611463565b6103f761155c565b6104f7611580565b6040805160ff9092168252519081900360200190f35b61043c600480360361010081101561052457600080fd5b81019060208101813564010000000081111561053f57600080fd5b82018360208201111561055157600080fd5b8035906020019184600183028401116401000000008311171561057357600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156105c657600080fd5b8201836020820111156105d857600080fd5b803590602001918460018302840111640100000000831117156105fa57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561064d57600080fd5b82018360208201111561065f57600080fd5b8035906020019184600183028401116401000000008311171561068157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050813560ff16925050602081013573ffffffffffffffffffffffffffffffffffffffff90811691604081013582169160608201358116916080013516611589565b6107016118cb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103f76118e7565b6107016118f6565b6103db6004803603604081101561075057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611912565b61043c611a6a565b6103db6004803603604081101561079157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611b2d565b61043c600480360360208110156107ca57600080fd5b5035611efe565b6103db600480360360408110156107e757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356121a0565b61043c6004803603602081101561082057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612333565b61043c600480360360a081101561085357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060ff604082013516906060810135906080013561249a565b6103db612538565b6103f7600480360360208110156108a957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612559565b6103f7600480360360208110156108dc57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661256a565b6103f7612592565b61043c6125b6565b6103f76004803603602081101561091f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612690565b6107016126b8565b61032d6126d4565b61070161274d565b6103f7612769565b6103db6004803603604081101561097257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561278d565b6103db600480360360408110156109ab57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356128e5565b61043c600480360360208110156109e457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612a3d565b6103db60048036036020811015610a1757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612ba4565b61043c60048036036020811015610a4a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612bcf565b61043c60048036036060811015610a7d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135612d36565b610701612dcc565b61043c600480360360e0811015610ac857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135612de8565b61043c60048036036020811015610b2657600080fd5b810190602081018135640100000000811115610b4157600080fd5b820183602082011115610b5357600080fd5b80359060200191846001830284011164010000000083111715610b7557600080fd5b509092509050612f4c565b6103f7613035565b6103f760048036036040811015610b9e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516613059565b61043c6004803603610120811015610bda57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e0810135906101000135613091565b61032d6131f9565b6103db60048036036040811015610c4d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135613272565b61043c6004803603610120811015610c8757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e08101359061010001356132aa565b61043c60048036036020811015610cf257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613405565b61043c60048036036020811015610d2557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613558565b6103db60048036036020811015610d5857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613615565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e195780601f10610dee57610100808354040283529160200191610e19565b820191906000526020600020905b815481529060010190602001808311610dfc57829003601f168201915b505050505081565b60015460009074010000000000000000000000000000000000000000900460ff1615610eae57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b33610eb88161361c565b15610f0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b83610f188161361c565b15610f6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b610f79338686613647565b506001949350505050565b600b5490565b60025473ffffffffffffffffffffffffffffffffffffffff163314610ffa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614d96602c913960400191505060405180910390fd5b6110038161378e565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f117e3210bb9aa7d9baff172026820255c6f6c30ba8999d1c2fd88e2848137c4e90600090a250565b60015460009074010000000000000000000000000000000000000000900460ff16156110d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336110de8161361c565b15611134576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b8461113e8161361c565b15611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b8461119e8161361c565b156111f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a6020908152604080832033845290915290205485111561127d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614e5c6028913960400191505060405180910390fd5b611288878787613799565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a602090815260408083203384529091529020546112c39086613964565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600a60209081526040808320338452909152902055600193505050509392505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461138857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166113f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614cf4602a913960400191505060405180910390fd5b600e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b60085460009073ffffffffffffffffffffffffffffffffffffffff1633146114d6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614d6d6029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600d909152808220829055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a2506001919050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60065460ff1681565b60085474010000000000000000000000000000000000000000900460ff16156115fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614ed7602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416611669576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180614e09602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166116d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614ccb6029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180614e84602e913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166117ad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614fc46028913960400191505060405180910390fd5b87516117c09060049060208b0190614aa1565b5086516117d49060059060208a0190614aa1565b5085516117e8906007906020890190614aa1565b50600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff8716179055600880547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff8781169190911790925560018054821686841617905560028054909116918416919091179055611882816139ad565b5050600880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b60006118f16139f4565b905090565b600e5473ffffffffffffffffffffffffffffffffffffffff1690565b60015460009074010000000000000000000000000000000000000000900460ff161561199f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336119a98161361c565b156119ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b83611a098161361c565b15611a5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b610f793386866139fa565b60015473ffffffffffffffffffffffffffffffffffffffff163314611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614f786022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60015460009074010000000000000000000000000000000000000000900460ff1615611bba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff16611c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614de86021913960400191505060405180910390fd5b33611c2c8161361c565b15611c82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b83611c8c8161361c565b15611ce2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516611d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614c606023913960400191505060405180910390fd5b60008411611da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614d1e6029913960400191505060405180910390fd5b336000908152600d602052604090205480851115611e10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180614f4a602e913960400191505060405180910390fd5b600b54611e1d9086613a44565b600b55611e3c86611e3787611e3183613ab8565b90613a44565b613ae0565b611e468186613964565b336000818152600d6020908152604091829020939093558051888152905173ffffffffffffffffffffffffffffffffffffffff8a16937fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f8928290030190a360408051868152905173ffffffffffffffffffffffffffffffffffffffff8816916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600195945050505050565b60015474010000000000000000000000000000000000000000900460ff1615611f8857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff16611ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614de86021913960400191505060405180910390fd5b33611ffa8161361c565b15612050576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b600061205b33613ab8565b9050600083116120b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614c376029913960400191505060405180910390fd5b8281101561210f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614dc26026913960400191505060405180910390fd5b600b5461211c9084613964565b600b5561212d33611e378386613964565b60408051848152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a260408051848152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050565b60015460009074010000000000000000000000000000000000000000900460ff161561222d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b60085473ffffffffffffffffffffffffffffffffffffffff16331461229d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614d6d6029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600d825291829020859055815185815291517f46980fca912ef9bcdbd36877427b6b90e860769f604e89c0e67720cece530d209281900390910190a250600192915050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146123b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612425576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614be46028913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fb80482a293ca2e013eda8683c9bd7fc8347cfdaeea5ede58cba46df502c2a60490600090a250565b60015474010000000000000000000000000000000000000000900460ff161561252457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b6125318585858585613b09565b5050505050565b60015474010000000000000000000000000000000000000000900460ff1681565b600061256482613ab8565b92915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526011602052604090205490565b7fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de881565b60015473ffffffffffffffffffffffffffffffffffffffff163314612626576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614f786022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b73ffffffffffffffffffffffffffffffffffffffff166000908152600d602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e195780601f10610dee57610100808354040283529160200191610e19565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b60015460009074010000000000000000000000000000000000000000900460ff161561281a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336128248161361c565b1561287a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b836128848161361c565b156128da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b610f79338686613b49565b60015460009074010000000000000000000000000000000000000000900460ff161561297257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3361297c8161361c565b156129d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b836129dc8161361c565b15612a32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b610f79338686613799565b60005473ffffffffffffffffffffffffffffffffffffffff163314612ac357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612b2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180614e09602f913960400191505060405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fdb66dfa9c6b8f5226fe9aac7e51897ae8ee94ac31dc70bb6c9900b2574b707e690600090a250565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205460ff1690565b60005473ffffffffffffffffffffffffffffffffffffffff163314612c5557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612cc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061501a6032913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fc67398012c111ce95ecb7429b933096c977380ee6c421175a71a4a4c6c88c06e90600090a250565b600e5473ffffffffffffffffffffffffffffffffffffffff163314612da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180614e386024913960400191505060405180910390fd5b612dc773ffffffffffffffffffffffffffffffffffffffff84168383613ba5565b505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015474010000000000000000000000000000000000000000900460ff1615612e7257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b86612e7c8161361c565b15612ed2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b86612edc8161361c565b15612f32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b612f4189898989898989613c32565b505050505050505050565b60085474010000000000000000000000000000000000000000900460ff168015612f79575060125460ff16155b612f8257600080fd5b612f8e60048383614b1f565b5061300382828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600181527f320000000000000000000000000000000000000000000000000000000000000060208201529150613c7d9050565b600f555050601280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b7f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742981565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600a6020908152604080832093909416825291909152205490565b60015474010000000000000000000000000000000000000000900460ff161561311b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b886131258161361c565b1561317b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b886131858161361c565b156131db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b6131ec8b8b8b8b8b8b8b8b8b613c93565b5050505050505050505050565b6007805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e195780601f10610dee57610100808354040283529160200191610e19565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152601060209081526040808320938352929052205460ff1690565b60015474010000000000000000000000000000000000000000900460ff161561333457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b8861333e8161361c565b15613394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b8861339e8161361c565b156133f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b6131ec8b8b8b8b8b8b8b8b8b613cd7565b60005473ffffffffffffffffffffffffffffffffffffffff16331461348b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166134f7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614c836026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a1613555816139ad565b50565b60025473ffffffffffffffffffffffffffffffffffffffff1633146135c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614d96602c913960400191505060405180910390fd5b6135d181613d1b565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85590600090a250565b6000612564825b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff83166136b3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180614f266024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661371f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614ca96022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8084166000818152600a6020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b613555816000613d22565b73ffffffffffffffffffffffffffffffffffffffff8316613805576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180614f016025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216613871576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614bc16023913960400191505060405180910390fd5b61387a83613ab8565b8111156138d2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614d476026913960400191505060405180910390fd5b6138e983611e37836138e387613ab8565b90613964565b6138fa82611e3783611e3186613ab8565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60006139a683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d78565b9392505050565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600f5490565b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600a6020908152604080832093861683529290522054612dc79084908490613a3f9085613a44565b613647565b6000828201838110156139a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff1660009081526009602052604090205490565b73ffffffffffffffffffffffffffffffffffffffff909116600090815260096020526040902055565b6125318585848487604051602001808481526020018381526020018260ff1660f81b81526001019350505050604051602081830303815290604052613e29565b612dc78383613a3f846040518060600160405280602581526020016150966025913973ffffffffffffffffffffffffffffffffffffffff808a166000908152600a60209081526040808320938c16835292905220549190613d78565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052612dc7908490613f33565b613c7487878787868689604051602001808481526020018381526020018260ff1660f81b8152600101935050505060405160208183030381529060405261400b565b50505050505050565b600046613c8b8484836142cf565b949350505050565b612f4189898989898988888b604051602001808481526020018381526020018260ff1660f81b81526001019350505050604051602081830303815290604052614343565b612f4189898989898988888b604051602001808481526020018381526020018260ff1660f81b815260010193505050506040516020818303038152906040526143f6565b6135558160015b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60008184841115613e21576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613de6578181015183820152602001613dce565b50505050905090810190601f168015613e135780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b613e338383614502565b613ead837f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742960001b8585604051602001808481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200193505050506040516020818303038152906040528051906020012083614590565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260106020908152604080832086845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518492917f1cdd46ff242716cdaa72d159d339a485b3438398348d68f09d7c8c0a59353d8191a3505050565b6060613f95826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661470e9092919063ffffffff16565b805190915015612dc757808060200190516020811015613fb457600080fd5b5051612dc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614f9a602a913960400191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214806140395750428210155b6140a457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a207065726d697420697320657870697265640000604482015290519081900360640190fd5b600061414c6140b16139f4565b73ffffffffffffffffffffffffffffffffffffffff80891660008181526011602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938b166060840152608083018a905260a083019390935260c08083018990528151808403909101815260e09092019052805191012061471d565b9050734200000000000000000000000000000000000776636ccea6528783856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156141d95781810151838201526020016141c1565b50505050905090810190601f1680156142065780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561422557600080fd5b505af4158015614239573d6000803e3d6000fd5b505050506040513d602081101561424f57600080fd5b50516142bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f454950323631323a20696e76616c6964207369676e6174757265000000000000604482015290519081900360640190fd5b6142c7868686613647565b505050505050565b8251602093840120825192840192909220604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8187015280820194909452606084019190915260808301919091523060a0808401919091528151808403909101815260c09092019052805191012090565b61434f87838686614757565b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226760208083019190915273ffffffffffffffffffffffffffffffffffffffff808b1683850152891660608301526080820188905260a0820187905260c0820186905260e08083018690528351808403909101815261010090920190925280519101206143e190889083614590565b6143eb8783614817565b613c74878787613799565b73ffffffffffffffffffffffffffffffffffffffff86163314614464576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180614eb26025913960400191505060405180910390fd5b61447087838686614757565b604080517fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de860208083019190915273ffffffffffffffffffffffffffffffffffffffff808b1683850152891660608301526080820188905260a0820187905260c0820186905260e08083018690528351808403909101815261010090920190925280519101206143e190889083614590565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260106020908152604080832084845290915290205460ff161561458c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180614fec602e913960400191505060405180910390fd5b5050565b734200000000000000000000000000000000000776636ccea652846145bc6145b66139f4565b8661471d565b846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561462b578181015183820152602001614613565b50505050905090810190601f1680156146585780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561467757600080fd5b505af415801561468b573d6000803e3d6000fd5b505050506040513d60208110156146a157600080fd5b5051612dc757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b6060613c8b848460008561489c565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b8142116147af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180614c0c602b913960400191505060405180910390fd5b804210614807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806150716025913960400191505060405180910390fd5b6148118484614502565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260106020908152604080832085845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518392917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a35050565b60606148a785614a68565b61491257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b6020831061497c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161493f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146149de576040519150601f19603f3d011682016040523d82523d6000602084013e6149e3565b606091505b509150915081156149f7579150613c8b9050565b805115614a075780518082602001fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152865160248401528651879391928392604401919085019080838360008315613de6578181015183820152602001613dce565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590613c8b575050151592915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614ae257805160ff1916838001178555614b0f565b82800160010185558215614b0f579182015b82811115614b0f578251825591602001919060010190614af4565b50614b1b929150614bab565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614b7e578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555614b0f565b82800160010185558215614b0f579182015b82811115614b0f578235825591602001919060010190614b90565b5b80821115614b1b5760008155600101614bac56fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735061757361626c653a206e65772070617573657220697320746865207a65726f206164647265737346696174546f6b656e56323a20617574686f72697a6174696f6e206973206e6f74207965742076616c696446696174546f6b656e3a206275726e20616d6f756e74206e6f742067726561746572207468616e203046696174546f6b656e3a206d696e7420746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737346696174546f6b656e3a206e65772070617573657220697320746865207a65726f2061646472657373526573637561626c653a206e6577207265736375657220697320746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e74206e6f742067726561746572207468616e203045524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f7420746865206d61737465724d696e746572426c61636b6c69737461626c653a2063616c6c6572206973206e6f742074686520626c61636b6c697374657246696174546f6b656e3a206275726e20616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f742061206d696e74657246696174546f6b656e3a206e6577206d61737465724d696e74657220697320746865207a65726f2061646472657373526573637561626c653a2063616c6c6572206973206e6f7420746865207265736375657245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636546696174546f6b656e3a206e657720626c61636b6c697374657220697320746865207a65726f206164647265737346696174546f6b656e56323a2063616c6c6572206d7573742062652074686520706179656546696174546f6b656e3a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e742065786365656473206d696e746572416c6c6f77616e63655061757361626c653a2063616c6c6572206973206e6f7420746865207061757365725361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656446696174546f6b656e3a206e6577206f776e657220697320746865207a65726f206164647265737346696174546f6b656e56323a20617574686f72697a6174696f6e2069732075736564206f722063616e63656c6564426c61636b6c69737461626c653a206e657720626c61636b6c697374657220697320746865207a65726f2061646472657373426c61636b6c69737461626c653a206163636f756e7420697320626c61636b6c697374656446696174546f6b656e56323a20617574686f72697a6174696f6e206973206578706972656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa164736f6c634300060c000a","sourceMap":"960:6103:30:-:0;;;2107:26:24;;;-1:-1:-1;;;;2107:26:24;;;2128:5;1710:33:22;;960:6103:30;;;;;;;;;-1:-1:-1;2226:20:23;2235:10;2226:8;:20::i;:::-;960:6103:30;;2496:79:23;2551:6;:17;;-1:-1:-1;;;;;;2551:17:23;-1:-1:-1;;;;;2551:17:23;;;;;;;;;;2496:79::o;960:6103:30:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106103205760003560e01c80638456cb59116101a7578063bd102430116100ee578063e5a6b10f11610097578063f2fde38b11610071578063f2fde38b14610cdc578063f9f92be414610d0f578063fe575a8714610d4257610320565b8063e5a6b10f14610c2f578063e94a010214610c37578063ef55bec614610c7057610320565b8063d9169487116100c8578063d916948714610b80578063dd62ed3e14610b88578063e3ee160e14610bc357610320565b8063bd10243014610aaa578063d505accf14610ab2578063d608ea6414610b1057610320565b8063a457c2d711610150578063aa271e1a1161012a578063aa271e1a14610a01578063ad38bf2214610a34578063b2118a8d14610a6757610320565b8063a457c2d71461095c578063a9059cbb14610995578063aa20e1e4146109ce57610320565b806395d89b411161018157806395d89b41146109445780639fd0506d1461094c578063a0cc6a681461095457610320565b80638456cb59146109015780638a6db9c3146109095780638da5cb5b1461093c57610320565b806338a631831161026b578063554bab3c1161021457806370a08231116101ee57806370a08231146108935780637ecebe00146108c65780637f2eecc3146108f957610320565b8063554bab3c1461080a5780635a049a701461083d5780635c975abb1461088b57610320565b806340c10f191161024557806340c10f191461077b57806342966c68146107b45780634e44d956146107d157610320565b806338a6318314610732578063395093511461073a5780633f4ba83a1461077357610320565b80633092afd5116102cd5780633357162b116102a75780633357162b1461050d57806335d99f35146106f95780633644e5151461072a57610320565b80633092afd5146104b457806330adf81f146104e7578063313ce567146104ef57610320565b80631a895266116102fe5780631a8952661461040957806323b872dd1461043e5780632ab600451461048157610320565b806306fdde0314610325578063095ea7b3146103a257806318160ddd146103ef575b600080fd5b61032d610d75565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036757818101518382015260200161034f565b50505050905090810190601f1680156103945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103db600480360360408110156103b857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e21565b604080519115158252519081900360200190f35b6103f7610f84565b60408051918252519081900360200190f35b61043c6004803603602081101561041f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610f8a565b005b6103db6004803603606081101561045457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135611047565b61043c6004803603602081101561049757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611302565b6103db600480360360208110156104ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611463565b6103f761155c565b6104f7611580565b6040805160ff9092168252519081900360200190f35b61043c600480360361010081101561052457600080fd5b81019060208101813564010000000081111561053f57600080fd5b82018360208201111561055157600080fd5b8035906020019184600183028401116401000000008311171561057357600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156105c657600080fd5b8201836020820111156105d857600080fd5b803590602001918460018302840111640100000000831117156105fa57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561064d57600080fd5b82018360208201111561065f57600080fd5b8035906020019184600183028401116401000000008311171561068157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050813560ff16925050602081013573ffffffffffffffffffffffffffffffffffffffff90811691604081013582169160608201358116916080013516611589565b6107016118cb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103f76118e7565b6107016118f6565b6103db6004803603604081101561075057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611912565b61043c611a6a565b6103db6004803603604081101561079157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611b2d565b61043c600480360360208110156107ca57600080fd5b5035611efe565b6103db600480360360408110156107e757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356121a0565b61043c6004803603602081101561082057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612333565b61043c600480360360a081101561085357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060ff604082013516906060810135906080013561249a565b6103db612538565b6103f7600480360360208110156108a957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612559565b6103f7600480360360208110156108dc57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661256a565b6103f7612592565b61043c6125b6565b6103f76004803603602081101561091f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612690565b6107016126b8565b61032d6126d4565b61070161274d565b6103f7612769565b6103db6004803603604081101561097257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561278d565b6103db600480360360408110156109ab57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356128e5565b61043c600480360360208110156109e457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612a3d565b6103db60048036036020811015610a1757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612ba4565b61043c60048036036020811015610a4a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612bcf565b61043c60048036036060811015610a7d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135612d36565b610701612dcc565b61043c600480360360e0811015610ac857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135612de8565b61043c60048036036020811015610b2657600080fd5b810190602081018135640100000000811115610b4157600080fd5b820183602082011115610b5357600080fd5b80359060200191846001830284011164010000000083111715610b7557600080fd5b509092509050612f4c565b6103f7613035565b6103f760048036036040811015610b9e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516613059565b61043c6004803603610120811015610bda57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e0810135906101000135613091565b61032d6131f9565b6103db60048036036040811015610c4d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135613272565b61043c6004803603610120811015610c8757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e08101359061010001356132aa565b61043c60048036036020811015610cf257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613405565b61043c60048036036020811015610d2557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613558565b6103db60048036036020811015610d5857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613615565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e195780601f10610dee57610100808354040283529160200191610e19565b820191906000526020600020905b815481529060010190602001808311610dfc57829003601f168201915b505050505081565b60015460009074010000000000000000000000000000000000000000900460ff1615610eae57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b33610eb88161361c565b15610f0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b83610f188161361c565b15610f6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b610f79338686613647565b506001949350505050565b600b5490565b60025473ffffffffffffffffffffffffffffffffffffffff163314610ffa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614d96602c913960400191505060405180910390fd5b6110038161378e565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f117e3210bb9aa7d9baff172026820255c6f6c30ba8999d1c2fd88e2848137c4e90600090a250565b60015460009074010000000000000000000000000000000000000000900460ff16156110d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336110de8161361c565b15611134576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b8461113e8161361c565b15611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b8461119e8161361c565b156111f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a6020908152604080832033845290915290205485111561127d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614e5c6028913960400191505060405180910390fd5b611288878787613799565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a602090815260408083203384529091529020546112c39086613964565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600a60209081526040808320338452909152902055600193505050509392505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461138857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166113f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614cf4602a913960400191505060405180910390fd5b600e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b60085460009073ffffffffffffffffffffffffffffffffffffffff1633146114d6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614d6d6029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600d909152808220829055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a2506001919050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60065460ff1681565b60085474010000000000000000000000000000000000000000900460ff16156115fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614ed7602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416611669576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180614e09602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166116d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614ccb6029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180614e84602e913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166117ad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614fc46028913960400191505060405180910390fd5b87516117c09060049060208b0190614aa1565b5086516117d49060059060208a0190614aa1565b5085516117e8906007906020890190614aa1565b50600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff8716179055600880547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff8781169190911790925560018054821686841617905560028054909116918416919091179055611882816139ad565b5050600880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b60006118f16139f4565b905090565b600e5473ffffffffffffffffffffffffffffffffffffffff1690565b60015460009074010000000000000000000000000000000000000000900460ff161561199f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336119a98161361c565b156119ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b83611a098161361c565b15611a5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b610f793386866139fa565b60015473ffffffffffffffffffffffffffffffffffffffff163314611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614f786022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60015460009074010000000000000000000000000000000000000000900460ff1615611bba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff16611c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614de86021913960400191505060405180910390fd5b33611c2c8161361c565b15611c82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b83611c8c8161361c565b15611ce2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516611d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614c606023913960400191505060405180910390fd5b60008411611da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614d1e6029913960400191505060405180910390fd5b336000908152600d602052604090205480851115611e10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180614f4a602e913960400191505060405180910390fd5b600b54611e1d9086613a44565b600b55611e3c86611e3787611e3183613ab8565b90613a44565b613ae0565b611e468186613964565b336000818152600d6020908152604091829020939093558051888152905173ffffffffffffffffffffffffffffffffffffffff8a16937fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f8928290030190a360408051868152905173ffffffffffffffffffffffffffffffffffffffff8816916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600195945050505050565b60015474010000000000000000000000000000000000000000900460ff1615611f8857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff16611ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614de86021913960400191505060405180910390fd5b33611ffa8161361c565b15612050576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b600061205b33613ab8565b9050600083116120b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614c376029913960400191505060405180910390fd5b8281101561210f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614dc26026913960400191505060405180910390fd5b600b5461211c9084613964565b600b5561212d33611e378386613964565b60408051848152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a260408051848152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050565b60015460009074010000000000000000000000000000000000000000900460ff161561222d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b60085473ffffffffffffffffffffffffffffffffffffffff16331461229d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614d6d6029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600d825291829020859055815185815291517f46980fca912ef9bcdbd36877427b6b90e860769f604e89c0e67720cece530d209281900390910190a250600192915050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146123b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612425576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614be46028913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fb80482a293ca2e013eda8683c9bd7fc8347cfdaeea5ede58cba46df502c2a60490600090a250565b60015474010000000000000000000000000000000000000000900460ff161561252457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b6125318585858585613b09565b5050505050565b60015474010000000000000000000000000000000000000000900460ff1681565b600061256482613ab8565b92915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526011602052604090205490565b7fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de881565b60015473ffffffffffffffffffffffffffffffffffffffff163314612626576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614f786022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b73ffffffffffffffffffffffffffffffffffffffff166000908152600d602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e195780601f10610dee57610100808354040283529160200191610e19565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b60015460009074010000000000000000000000000000000000000000900460ff161561281a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336128248161361c565b1561287a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b836128848161361c565b156128da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b610f79338686613b49565b60015460009074010000000000000000000000000000000000000000900460ff161561297257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3361297c8161361c565b156129d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b836129dc8161361c565b15612a32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b610f79338686613799565b60005473ffffffffffffffffffffffffffffffffffffffff163314612ac357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612b2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180614e09602f913960400191505060405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fdb66dfa9c6b8f5226fe9aac7e51897ae8ee94ac31dc70bb6c9900b2574b707e690600090a250565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205460ff1690565b60005473ffffffffffffffffffffffffffffffffffffffff163314612c5557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612cc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061501a6032913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fc67398012c111ce95ecb7429b933096c977380ee6c421175a71a4a4c6c88c06e90600090a250565b600e5473ffffffffffffffffffffffffffffffffffffffff163314612da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180614e386024913960400191505060405180910390fd5b612dc773ffffffffffffffffffffffffffffffffffffffff84168383613ba5565b505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015474010000000000000000000000000000000000000000900460ff1615612e7257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b86612e7c8161361c565b15612ed2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b86612edc8161361c565b15612f32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b612f4189898989898989613c32565b505050505050505050565b60085474010000000000000000000000000000000000000000900460ff168015612f79575060125460ff16155b612f8257600080fd5b612f8e60048383614b1f565b5061300382828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600181527f320000000000000000000000000000000000000000000000000000000000000060208201529150613c7d9050565b600f555050601280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b7f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742981565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600a6020908152604080832093909416825291909152205490565b60015474010000000000000000000000000000000000000000900460ff161561311b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b886131258161361c565b1561317b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b886131858161361c565b156131db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b6131ec8b8b8b8b8b8b8b8b8b613c93565b5050505050505050505050565b6007805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e195780601f10610dee57610100808354040283529160200191610e19565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152601060209081526040808320938352929052205460ff1690565b60015474010000000000000000000000000000000000000000900460ff161561333457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b8861333e8161361c565b15613394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b8861339e8161361c565b156133f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061504c6025913960400191505060405180910390fd5b6131ec8b8b8b8b8b8b8b8b8b613cd7565b60005473ffffffffffffffffffffffffffffffffffffffff16331461348b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166134f7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614c836026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a1613555816139ad565b50565b60025473ffffffffffffffffffffffffffffffffffffffff1633146135c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614d96602c913960400191505060405180910390fd5b6135d181613d1b565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85590600090a250565b6000612564825b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff83166136b3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180614f266024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661371f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614ca96022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8084166000818152600a6020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b613555816000613d22565b73ffffffffffffffffffffffffffffffffffffffff8316613805576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180614f016025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216613871576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614bc16023913960400191505060405180910390fd5b61387a83613ab8565b8111156138d2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614d476026913960400191505060405180910390fd5b6138e983611e37836138e387613ab8565b90613964565b6138fa82611e3783611e3186613ab8565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60006139a683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d78565b9392505050565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600f5490565b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600a6020908152604080832093861683529290522054612dc79084908490613a3f9085613a44565b613647565b6000828201838110156139a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff1660009081526009602052604090205490565b73ffffffffffffffffffffffffffffffffffffffff909116600090815260096020526040902055565b6125318585848487604051602001808481526020018381526020018260ff1660f81b81526001019350505050604051602081830303815290604052613e29565b612dc78383613a3f846040518060600160405280602581526020016150966025913973ffffffffffffffffffffffffffffffffffffffff808a166000908152600a60209081526040808320938c16835292905220549190613d78565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052612dc7908490613f33565b613c7487878787868689604051602001808481526020018381526020018260ff1660f81b8152600101935050505060405160208183030381529060405261400b565b50505050505050565b600046613c8b8484836142cf565b949350505050565b612f4189898989898988888b604051602001808481526020018381526020018260ff1660f81b81526001019350505050604051602081830303815290604052614343565b612f4189898989898988888b604051602001808481526020018381526020018260ff1660f81b815260010193505050506040516020818303038152906040526143f6565b6135558160015b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60008184841115613e21576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613de6578181015183820152602001613dce565b50505050905090810190601f168015613e135780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b613e338383614502565b613ead837f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742960001b8585604051602001808481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200193505050506040516020818303038152906040528051906020012083614590565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260106020908152604080832086845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518492917f1cdd46ff242716cdaa72d159d339a485b3438398348d68f09d7c8c0a59353d8191a3505050565b6060613f95826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661470e9092919063ffffffff16565b805190915015612dc757808060200190516020811015613fb457600080fd5b5051612dc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614f9a602a913960400191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214806140395750428210155b6140a457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a207065726d697420697320657870697265640000604482015290519081900360640190fd5b600061414c6140b16139f4565b73ffffffffffffffffffffffffffffffffffffffff80891660008181526011602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938b166060840152608083018a905260a083019390935260c08083018990528151808403909101815260e09092019052805191012061471d565b9050734200000000000000000000000000000000000776636ccea6528783856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156141d95781810151838201526020016141c1565b50505050905090810190601f1680156142065780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561422557600080fd5b505af4158015614239573d6000803e3d6000fd5b505050506040513d602081101561424f57600080fd5b50516142bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f454950323631323a20696e76616c6964207369676e6174757265000000000000604482015290519081900360640190fd5b6142c7868686613647565b505050505050565b8251602093840120825192840192909220604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8187015280820194909452606084019190915260808301919091523060a0808401919091528151808403909101815260c09092019052805191012090565b61434f87838686614757565b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226760208083019190915273ffffffffffffffffffffffffffffffffffffffff808b1683850152891660608301526080820188905260a0820187905260c0820186905260e08083018690528351808403909101815261010090920190925280519101206143e190889083614590565b6143eb8783614817565b613c74878787613799565b73ffffffffffffffffffffffffffffffffffffffff86163314614464576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180614eb26025913960400191505060405180910390fd5b61447087838686614757565b604080517fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de860208083019190915273ffffffffffffffffffffffffffffffffffffffff808b1683850152891660608301526080820188905260a0820187905260c0820186905260e08083018690528351808403909101815261010090920190925280519101206143e190889083614590565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260106020908152604080832084845290915290205460ff161561458c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180614fec602e913960400191505060405180910390fd5b5050565b734200000000000000000000000000000000000776636ccea652846145bc6145b66139f4565b8661471d565b846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561462b578181015183820152602001614613565b50505050905090810190601f1680156146585780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561467757600080fd5b505af415801561468b573d6000803e3d6000fd5b505050506040513d60208110156146a157600080fd5b5051612dc757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b6060613c8b848460008561489c565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b8142116147af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180614c0c602b913960400191505060405180910390fd5b804210614807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806150716025913960400191505060405180910390fd5b6148118484614502565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260106020908152604080832085845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518392917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a35050565b60606148a785614a68565b61491257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b6020831061497c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161493f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146149de576040519150601f19603f3d011682016040523d82523d6000602084013e6149e3565b606091505b509150915081156149f7579150613c8b9050565b805115614a075780518082602001fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152865160248401528651879391928392604401919085019080838360008315613de6578181015183820152602001613dce565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590613c8b575050151592915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614ae257805160ff1916838001178555614b0f565b82800160010185558215614b0f579182015b82811115614b0f578251825591602001919060010190614af4565b50614b1b929150614bab565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614b7e578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555614b0f565b82800160010185558215614b0f579182015b82811115614b0f578235825591602001919060010190614b90565b5b80821115614b1b5760008155600101614bac56fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735061757361626c653a206e65772070617573657220697320746865207a65726f206164647265737346696174546f6b656e56323a20617574686f72697a6174696f6e206973206e6f74207965742076616c696446696174546f6b656e3a206275726e20616d6f756e74206e6f742067726561746572207468616e203046696174546f6b656e3a206d696e7420746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737346696174546f6b656e3a206e65772070617573657220697320746865207a65726f2061646472657373526573637561626c653a206e6577207265736375657220697320746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e74206e6f742067726561746572207468616e203045524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f7420746865206d61737465724d696e746572426c61636b6c69737461626c653a2063616c6c6572206973206e6f742074686520626c61636b6c697374657246696174546f6b656e3a206275726e20616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f742061206d696e74657246696174546f6b656e3a206e6577206d61737465724d696e74657220697320746865207a65726f2061646472657373526573637561626c653a2063616c6c6572206973206e6f7420746865207265736375657245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636546696174546f6b656e3a206e657720626c61636b6c697374657220697320746865207a65726f206164647265737346696174546f6b656e56323a2063616c6c6572206d7573742062652074686520706179656546696174546f6b656e3a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e742065786365656473206d696e746572416c6c6f77616e63655061757361626c653a2063616c6c6572206973206e6f7420746865207061757365725361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656446696174546f6b656e3a206e6577206f776e657220697320746865207a65726f206164647265737346696174546f6b656e56323a20617574686f72697a6174696f6e2069732075736564206f722063616e63656c6564426c61636b6c69737461626c653a206e657720626c61636b6c697374657220697320746865207a65726f2061646472657373426c61636b6c69737461626c653a206163636f756e7420697320626c61636b6c697374656446696174546f6b656e56323a20617574686f72697a6174696f6e206973206578706972656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa164736f6c634300060c000a","sourceMap":"960:6103:30:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1153:18:22;;;:::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;1934:230:18:-;;;;;;;;;;;;;;;;-1:-1:-1;1934:230:18;;;;:::i;10865:211:22:-;;;;;;;;;;;;;;;;-1:-1:-1;10865:211:22;;;;:::i;1202:108:26:-;;;:::i;1203:21:22:-;;;:::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;:::-;;;;;;;;;;;;;;;;;;;1072:102:28;;;:::i;1139:83:18:-;;;:::i;1677:322:30:-;;;;;;;;;;;;;;;;-1:-1:-1;1677:322:30;;;;;;;;;:::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;5102:249:30:-;;;;;;;;;;;;;;;;-1:-1:-1;5102:249:30;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2107:26:24:-;;;:::i;6853:120:22:-;;;;;;;;;;;;;;;;-1:-1:-1;6853:120:22;;;;:::i;1503:107:26:-;;;;;;;;;;;;;;;;-1:-1:-1;1503:107:26;;;;:::i;1672:136:27:-;;;:::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;1384:137:27:-;;;:::i;2212:322:30:-;;;;;;;;;;;;;;;;-1:-1:-1;2212:322:30;;;;;;;;;:::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;1664:147:18:-;;;;;;;;;;;;;;;;-1:-1:-1;1664:147:18;;;;;;;;;;;;;;;;;;:::i;879:26:20:-;;;:::i;5843:361:30:-;;;;;;;;;;;;;;;;-1:-1:-1;5843:361:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1147:317::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1147:317:30;;-1:-1:-1;1147:317:30;-1:-1:-1;1147:317:30;:::i;1889:130:27:-;;;:::i;6300:139:22:-;;;;;;;;;;;;;;;;-1:-1:-1;6300:139:22;;;;;;;;;;;:::i;3105:441:30:-;;;;;;;;;;;;;;;;-1:-1:-1;3105:441:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1230:22:22:-;;;:::i;2670:155:27:-;;;;;;;;;;;;;;;;-1:-1:-1;2670:155:27;;;;;;;;;:::i;4285:439:30:-;;;;;;;;;;;;;;;;-1:-1:-1;4285:439:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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;1934:230:18:-;2716:6:23;;;;2702:10;:20;2694:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2014:24:18::1;::::0;::::1;2006:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2095:8;:21:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;2131:26:::1;::::0;::::1;::::0;-1:-1:-1;;2131:26:18::1;1934:230:::0;:::o;10865:211:22:-;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;1202:108:26:-;1244:66;1202:108;:::o;1203:21:22:-;;;;;;:::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;1072:102:28:-;1123:7;1149:18;:16;:18::i;:::-;1142:25;;1072:102;:::o;1139:83:18:-;1207:8;;;;1139:83;:::o;1677:322:30:-;2287:6:24;;1901:4:30;;2287:6:24;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1840:10:30::1;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1875:7:30::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1921:50:30::3;1940:10;1952:7;1961:9;1921:18;:50::i;2803:94:24:-:0;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;5102:249:30:-;2287:6:24;;;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5296:48:30::1;5317:10;5329:5;5336:1;5339;5342;5296:20;:48::i;:::-;5102:249:::0;;;;;:::o;2107:26:24:-;;;;;;;;;:::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;1503:107:26:-;1583:20;;1557:7;1583:20;;;:13;:20;;;;;;;1503:107::o;1672:136:27:-;1742:66;1672:136;:::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;1384:137:27:-;1455:66;1384:137;:::o;2212:322:30:-;2287:6:24;;2436:4:30;;2287:6:24;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2375:10:30::1;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2410:7:30::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:50:30::3;2475:10;2487:7;2496:9;2456:18;:50::i;9137:282:22:-:0;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;1664:147:18:-;1370:8;;;;1356:10;:22;1348:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1766:38:::1;:26;::::0;::::1;1793:2:::0;1797:6;1766:26:::1;:38::i;:::-;1664:147:::0;;;:::o;879:26:20:-;;;;;;:::o;5843:361:30:-;2287:6:24;;;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6095:5:30::1;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6125:7:30::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6148:49:30::3;6156:5;6163:7;6172:5;6179:8;6189:1;6192;6195;6148:7;:49::i;:::-;1621:1:20::2;2324::24::1;5843:361:30::0;;;;;;;:::o;1147:317::-;1272:11;;;;;;;:39;;;;-1:-1:-1;1287:19:30;;;;:24;1272:39;1264:48;;;;;;1322:14;:4;1329:7;;1322:14;:::i;:::-;;1384:40;1411:7;;1384:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1384:40:30;;;;;;;;;;;;;;;;;;-1:-1:-1;1384:26:30;;-1:-1:-1;1384:40:30:i;:::-;1346:35;:78;-1:-1:-1;;1434:19:30;:23;;;;1456:1;1434:23;;;1147:317::o;1889:130:27:-;1953:66;1889:130;:::o;6300:139:22:-;6409:14;;;;6383:7;6409:14;;;:7;:14;;;;;;;;:23;;;;;;;;;;;;;6300:139::o;3105:441:30:-;2287:6:24;;;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3408:4:30::1;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3437:2:30::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3455:84:30::3;3482:4;3488:2;3492:5;3499:10;3511:11;3524:5;3531:1;3534;3537;3455:26;:84::i;:::-;1621:1:20::2;2324::24::1;3105:441:30::0;;;;;;;;;:::o;1230:22:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2670:155:27;2779:32;;;;;2756:4;2779:32;;;:20;:32;;;;;;;;:39;;;;;;;;;;;2670:155::o;4285:439:30:-;2287:6:24;;;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4587:4:30::1;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4616:2:30::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4634:83:30::3;4660:4;4666:2;4670:5;4677:10;4689:11;4702:5;4709:1;4712;4715;4634:25;:83::i;2948:235:23:-:0;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;1312:127:28:-;1397:35;;1312:127;:::o;6434:178:30:-;6566:14;;;;;;;;:7;:14;;;;;;;;:23;;;;;;;;;;6541:64;;6550:5;;6557:7;;6566:38;;6594:9;6566:27;:38::i;:::-;6541:8;:64::i;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;7875:188:27:-;7990:66;8011:10;8023:5;8047:1;8050;8053;8030:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:20;:66::i;6842:219:30:-;6949:105;6958:5;6965:7;6974:79;7002:9;6974:79;;;;;;;;;;;;;;;;;:14;;;;;;;;:7;:14;;;;;;;;:23;;;;;;;;;;;:79;:27;:79::i;696:175:2:-;805:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;828:23;805:58;;;778:86;;798:5;;778:19;:86::i;2103:280:26:-;2309:67;2317:5;2324:7;2333:5;2340:8;2367:1;2370;2373;2350:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2309:7;:67::i;:::-;2103:280;;;;;;;:::o;1773:258:14:-;1868:7;1946:9;1981:43;2001:4;2007:7;1946:9;1981:19;:43::i;:::-;1974:50;1773:258;-1:-1:-1;;;;1773:258:14:o;3396:382:27:-;3669:102;3696:4;3702:2;3706:5;3713:10;3725:11;3738:5;3762:1;3765;3768;3745:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3669:26;:102::i;5729:380::-;6001:101;6027:4;6033:2;6037:5;6044:10;6056:11;6069:5;6093:1;6096;6099;6076:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6001;:101::i;12340:107:22:-;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;8411:423:27:-;8519:46;8547:10;8559:5;8519:27;:46::i;:::-;8575:140;8611:10;1953:66;8644:29;;8675:10;8687:5;8633:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8623:71;;;;;;8696:9;8575:22;:140::i;:::-;8726:32;;;;;;;:20;:32;;;;;;;;:39;;;;;;;;;:46;;;;8768:4;8726:46;;;8787:40;8759:5;;8726:32;8787:40;;;8411:423;;;:::o;2959:751:2:-;3378:23;3404:69;3432:4;3404:69;;;;;;;;;;;;;;;;;3412:5;3404:27;;;;:69;;;;;:::i;:::-;3487:17;;3378:95;;-1:-1:-1;3487:21:2;3483:221;;3627:10;3616:30;;;;;;;;;;;;;;;-1:-1:-1;3616:30:2;3608:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2918:659:26;3121:17;3109:8;:29;:48;;;;3154:3;3142:8;:15;;3109:48;3101:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3203:21;3227:183;3273:18;:16;:18::i;:::-;3366:20;;;;3326:15;3366:20;;;:13;:20;;;;;;;;;:22;;;;;;;;3315:84;;1244:66;3315:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3305:95;;;;;3227:32;:183::i;:::-;3203:207;;3428:16;:36;3465:5;3472:13;3487:9;3428:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3428:69:26;3420:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3539:31;3548:5;3555:7;3564:5;3539:8;:31::i;:::-;2918:659;;;;;;:::o;998:598:14:-;1444:22;;;;;;;1484:25;;;;;;;;;1217:362;;;1360:66;1217:362;;;;;;;;;;;;;;;;;;;;;;;;;1560:4;1217:362;;;;;;;;;;;;;;;;;;;;;;;;1194:395;;;;;;998:598::o;4380:610:27:-;4630:64;4657:4;4663:5;4670:10;4682:11;4630:26;:64::i;:::-;4768:97;;;1455:66;4768:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4758:108;;;;;4704:195;;4740:4;;4880:9;4704:22;:195::i;:::-;4910:37;4935:4;4941:5;4910:24;:37::i;:::-;4957:26;4967:4;4973:2;4977:5;4957:9;:26::i;6874:684::-;7131:16;;;7137:10;7131:16;7123:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7199:64;7226:4;7232:5;7239:10;7251:11;7199:26;:64::i;:::-;7337:96;;;1742:66;7337:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7327:107;;;;;7273:194;;7309:4;;7448:9;7273:22;:194::i;9644:201::-;9748:32;;;;;;;:20;:32;;;;;;;;:39;;;;;;;;;;;9747:40;9739:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9644:201;;:::o;9119:346::-;9253:16;:36;9307:6;9315:62;9348:18;:16;:18::i;:::-;9368:8;9315:32;:62::i;:::-;9379:9;9253:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9253:149:27;9232:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3770:194:3;3873:12;3904:53;3927:6;3935:4;3941:1;3944:12;3904:22;:53::i;1821:358:15:-;1980:4;1974:11;2010:10;1998:23;;2050:4;2041:14;;2034:39;;;;2102:4;2093:14;;2086:34;2158:4;2143:20;;;1949:224::o;10171:405:27:-;10378:10;10372:3;:16;10364:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10460:11;10454:3;:17;10446:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10523:46;10551:10;10563:5;10523:27;:46::i;:::-;10171:405;;;;:::o;10747:191::-;10834:32;;;;;;;:20;:32;;;;;;;;:39;;;;;;;;;:46;;;;10876:4;10834:46;;;10895:36;10867:5;;10834:32;10895:36;;;10747:191;;:::o;5117:958:3:-;5247:12;5279:18;5290:6;5279:10;:18::i;:::-;5271:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5402:12;5416:23;5443:6;:11;;5463:8;5474:4;5443:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5401:78;;;;5493:7;5489:580;;;5523:10;-1:-1:-1;5516:17:3;;-1:-1:-1;5516:17:3;5489:580;5634:17;;:21;5630:429;;5892:10;5886:17;5952:15;5939:10;5935:2;5931:19;5924:44;5841:145;6024:20;;;;;;;;;;;;;;;;;;;;6031:12;;6024:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;718:610;778:4;1239:20;;1084:66;1278:23;;;;;;:42;;-1:-1:-1;;1305:15:3;;;1270:51;-1:-1:-1;;718:610:3:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"CANCEL_AUTHORIZATION_TYPEHASH()":"d9169487","DOMAIN_SEPARATOR()":"3644e515","PERMIT_TYPEHASH()":"30adf81f","RECEIVE_WITH_AUTHORIZATION_TYPEHASH()":"7f2eecc3","TRANSFER_WITH_AUTHORIZATION_TYPEHASH()":"a0cc6a68","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","authorizationState(address,bytes32)":"e94a0102","balanceOf(address)":"70a08231","blacklist(address)":"f9f92be4","blacklister()":"bd102430","burn(uint256)":"42966c68","cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)":"5a049a70","configureMinter(address,uint256)":"4e44d956","currency()":"e5a6b10f","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","initialize(string,string,string,uint8,address,address,address,address)":"3357162b","initializeV2(string)":"d608ea64","isBlacklisted(address)":"fe575a87","isMinter(address)":"aa271e1a","masterMinter()":"35d99f35","mint(address,uint256)":"40c10f19","minterAllowance(address)":"8a6db9c3","name()":"06fdde03","nonces(address)":"7ecebe00","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","pauser()":"9fd0506d","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":"ef55bec6","removeMinter(address)":"3092afd5","rescueERC20(address,address,uint256)":"b2118a8d","rescuer()":"38a63183","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":"e3ee160e","unBlacklist(address)":"1a895266","unpause()":"3f4ba83a","updateBlacklister(address)":"ad38bf22","updateMasterMinter(address)":"aa20e1e4","updatePauser(address)":"554bab3c","updateRescuer(address)":"2ab60045"},"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\":\"authorizer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"name\":\"AuthorizationCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"name\":\"AuthorizationUsed\",\"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\":\"newRescuer\",\"type\":\"address\"}],\"name\":\"RescuerChanged\",\"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\":[],\"name\":\"CANCEL_AUTHORIZATION_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECEIVE_WITH_AUTHORIZATION_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TRANSFER_WITH_AUTHORIZATION_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\":\"authorizer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"name\":\"authorizationState\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"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\":\"authorizer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"cancelAuthorization\",\"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\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decrement\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"increment\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"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\":\"string\",\"name\":\"newName\",\"type\":\"string\"}],\"name\":\"initializeV2\",\"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\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validAfter\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validBefore\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"receiveWithAuthorization\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"removeMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"rescueERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rescuer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"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\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validAfter\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validBefore\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"transferWithAuthorization\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRescuer\",\"type\":\"address\"}],\"name\":\"updateRescuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"returns\":{\"_0\":\"The bytes32 EIP712 domain separator.\"}},\"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.\"}},\"authorizationState(address,bytes32)\":{\"details\":\"Nonces are randomly generated 32-byte data unique to the authorizer's address\",\"params\":{\"authorizer\":\"Authorizer's address\",\"nonce\":\"Nonce of the authorization\"},\"returns\":{\"_0\":\"True if the nonce is used\"}},\"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.\"}},\"cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)\":{\"details\":\"Works only if the authorization is not yet used.\",\"params\":{\"authorizer\":\"Authorizer's address\",\"nonce\":\"Nonce of the authorization\",\"r\":\"r of the signature\",\"s\":\"s of the signature\",\"v\":\"v of the signature\"}},\"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.\"}},\"decreaseAllowance(address,uint256)\":{\"params\":{\"decrement\":\"Amount of decrease in allowance\",\"spender\":\"Spender's address\"},\"returns\":{\"_0\":\"True if successful\"}},\"increaseAllowance(address,uint256)\":{\"params\":{\"increment\":\"Amount of increase in allowance\",\"spender\":\"Spender's address\"},\"returns\":{\"_0\":\"True if 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.\"}},\"initializeV2(string)\":{\"params\":{\"newName\":\"New token name\"}},\"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.\"}},\"nonces(address)\":{\"params\":{\"owner\":\"Token owner's address (Authorizer)\"},\"returns\":{\"_0\":\"Next nonce\"}},\"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\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"params\":{\"deadline\":\"The time at which the signature expires (unix time), or max uint256 value to signal no expiration\",\"owner\":\"Token owner's address (Authorizer)\",\"r\":\"r of the signature\",\"s\":\"s of the signature\",\"spender\":\"Spender's address\",\"v\":\"v of the signature\",\"value\":\"Amount of allowance\"}},\"receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)\":{\"details\":\"This has an additional check to ensure that the payee's address matches the caller of this function to prevent front-running attacks.\",\"params\":{\"from\":\"Payer's address (Authorizer)\",\"nonce\":\"Unique nonce\",\"r\":\"r of the signature\",\"s\":\"s of the signature\",\"to\":\"Payee's address\",\"v\":\"v of the signature\",\"validAfter\":\"The time after which this is valid (unix time)\",\"validBefore\":\"The time before which this is valid (unix time)\",\"value\":\"Amount to be transferred\"}},\"removeMinter(address)\":{\"params\":{\"minter\":\"The address of the minter to remove.\"},\"returns\":{\"_0\":\"True if the operation was successful.\"}},\"rescueERC20(address,address,uint256)\":{\"params\":{\"amount\":\"Amount to withdraw\",\"to\":\"Recipient address\",\"tokenContract\":\"ERC20 token contract address\"}},\"rescuer()\":{\"returns\":{\"_0\":\"Rescuer's address\"}},\"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.\"}},\"transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)\":{\"params\":{\"from\":\"Payer's address (Authorizer)\",\"nonce\":\"Unique nonce\",\"r\":\"r of the signature\",\"s\":\"s of the signature\",\"to\":\"Payee's address\",\"v\":\"v of the signature\",\"validAfter\":\"The time after which this is valid (unix time)\",\"validBefore\":\"The time before which this is valid (unix time)\",\"value\":\"Amount to be transferred\"}},\"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.\"}},\"updateRescuer(address)\":{\"params\":{\"newRescuer\":\"The address of the new rescuer.\"}}},\"title\":\"FiatToken V2\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"notice\":\"Get the EIP712 Domain Separator.\"},\"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.\"},\"authorizationState(address,bytes32)\":{\"notice\":\"Returns the state of an authorization\"},\"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.\"},\"cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)\":{\"notice\":\"Attempt to cancel an authorization\"},\"configureMinter(address,uint256)\":{\"notice\":\"Adds or updates a new minter with a mint allowance.\"},\"decreaseAllowance(address,uint256)\":{\"notice\":\"Decrease the allowance by a given decrement\"},\"increaseAllowance(address,uint256)\":{\"notice\":\"Increase the allowance by a given increment\"},\"initialize(string,string,string,uint8,address,address,address,address)\":{\"notice\":\"Initializes the fiat token contract.\"},\"initializeV2(string)\":{\"notice\":\"Initialize v2\"},\"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.\"},\"nonces(address)\":{\"notice\":\"Nonces for permit\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"notice\":\"Update allowance with a signed permit\"},\"receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)\":{\"notice\":\"Receive a transfer with a signed authorization from the payer\"},\"removeMinter(address)\":{\"notice\":\"Removes a minter.\"},\"rescueERC20(address,address,uint256)\":{\"notice\":\"Rescue ERC20 tokens locked up in this contract.\"},\"rescuer()\":{\"notice\":\"Returns current rescuer\"},\"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.\"},\"transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)\":{\"notice\":\"Execute a transfer with a signed authorization\"},\"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.\"},\"updateRescuer(address)\":{\"notice\":\"Updates the rescuer address.\"}},\"notice\":\"ERC20 Token backed by fiat reserves, version 2\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol\":\"FiatTokenV2\"},\"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\"]},\"lib/openzeppelin-contracts_v3.1.0/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0xf3b30f8a49631420635a8c35daacfcaa338012755f18a76fdd118730256f9a27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d7de652204c2ee291a61aa984103dfc7ae4392d651fbbc44a0079caee7c69a3\",\"dweb:/ipfs/Qmcw1cQnq9eWDnrCBwU3TNyqLfTMUFg5YKpYUkELoMPuUE\"]},\"lib/openzeppelin-contracts_v3.1.0/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/interface/IERC1271.sol\":{\"keccak256\":\"0xbdb06a96b03ebe4b178df317415a307dda773d888999228ec9136829a39483a5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a379bef8e91e746c8a5ee2e2546032acba745021d241563954dab4ea8d3de130\",\"dweb:/ipfs/Qmf7A8XiHrR6FM7nMN1xbvGoQ7i9hUb2bgFofNYBjpWMqa\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/ECRecover.sol\":{\"keccak256\":\"0x95fb7106fe5954d4f5be2d9fd731524a4cba5a27ae9ecc61b210e10216b4d770\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fd0b791ba1d3e454844566cc2f8ebabfa8038f81e2180643995d3fc0172b87d4\",\"dweb:/ipfs/QmaN7jhTATcAgGe6NbPqDxN7AAqzDKdv6Db64pt9BVdwM3\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/EIP712.sol\":{\"keccak256\":\"0x7bc4bfee8042bbadeb6606670e857531c5524c78d95dac619a0019f4826abfaf\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d25da9a02e2def23b4606c6625d26810f7132ff3c8312d3dfd4319a76cd9497\",\"dweb:/ipfs/QmTgRwtosFh7nbiuxax382i5YDY4kc6A3GHL8kY5oHDgNX\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/MessageHashUtils.sol\":{\"keccak256\":\"0x30c544cf024e8f04071ca0e5e75ec26890acefe62f5b8c9baeeaa0653aa9c2b1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://dc4d849bf3e24c378fb381cbb0dceb316df9584bad1c83b0871e9a4cb76aadf6\",\"dweb:/ipfs/QmXSq5T7wV9DyyCgbJJyMif9Yor4tcSMyPXaTUCwwrRnkL\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/SignatureChecker.sol\":{\"keccak256\":\"0x34a9ea7304dd9892e95ec34de00b7e447e76af8a6834d02664fc1b88726468e4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://700af14b4acc005d31c9bff851544c5aabc6ab89be4484488e724dfdb9d5e5d2\",\"dweb:/ipfs/QmT4SpKgBHbA9S7m8ZKQFb87nCKknue3XjYtwHJm4EfHrF\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1.1/FiatTokenV1_1.sol\":{\"keccak256\":\"0x3b728c44c15c1ea7a61b6461742958834bc398b169da10cd350fc1a444a93c34\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a99ba77233ae53ccf7b6827a94730a1a664a8f525cc291b6b29090aa4ebb2bcf\",\"dweb:/ipfs/Qme9eZZh7YRk4kEj68Qgr58898gnT1XmminvKVhpvRCkTv\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1.1/Rescuable.sol\":{\"keccak256\":\"0x3a1724df6032053b3409d137fde519cf3e2de040876791f006ae52901367c65e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b094ccbb80b92665184634ce74d7f79ad057311e47b66dc3be07a7db0128f1a1\",\"dweb:/ipfs/QmV52aq78xsE4Yun8EJqBJNVLEYKNuFN89kYXokdJ3knrK\"]},\"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\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/AbstractFiatTokenV2.sol\":{\"keccak256\":\"0x0cf455818990842275c1daa8e0c7b3f9a036597c044e3b6d362d5eddda1ef073\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5331cfcdb2e5c13c5fdc2b0f9675076fd59a6fb218601b8c93ddc0ec4a689bea\",\"dweb:/ipfs/QmcBtpDdvULSc8GzHoTK5jVZhHHp1Enh5iWgBLgVjUk44h\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP2612.sol\":{\"keccak256\":\"0xe86116e56b1c94303d70b5f80a74b81f94efe01c53b5ae827cd2ca529ce27e17\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://36cf6fd0e0690a16fa5feee16be167ec724aa63bb0c154b29c1947fc0ddc5553\",\"dweb:/ipfs/QmQdUUDcsHMysjs1wg7DdTRD9MSd4kuDTCDdd4d8VcY1XC\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP3009.sol\":{\"keccak256\":\"0x59fd2de92fc76f5580a1918c73487ad036e246e1fe40d41d5209366e8fc6c3f5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://722d9a77930880dcc8bcdbb1b950ea187ca6ceda571460c5f76e4a4b7cad799a\",\"dweb:/ipfs/QmbM8HdtUeQVBr1VAGEjAQUpdwodSj89j63mxqS8Ve9zHB\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP712Domain.sol\":{\"keccak256\":\"0x982d6a56247dfd6429392b56b27baa2888ebe4861473d77b8d3e8e2e361e8854\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a39671c171176dcb617d275b610a2ab83d5745483781d2fcd41c15a7b5c55b0b\",\"dweb:/ipfs/QmVpHjbEyUA9h7a4C9UMKMLwbyovDd6HM2jYNwobBaWA4x\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol\":{\"keccak256\":\"0xa4a8d42bcc8ad296c7713bec5e0bb1ea6ec4172aac7a0092928b897ccf20a11a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81fa1bc1ff48c85993936014dd057276e826f24b519ad660c30c5b47b009bc0c\",\"dweb:/ipfs/QmR85uGAkfczQYqXDNADwuBFspjLiLw3jLteq2WkQiKCwc\"]}},\"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":"authorizer","type":"address","indexed":true},{"internalType":"bytes32","name":"nonce","type":"bytes32","indexed":true}],"type":"event","name":"AuthorizationCanceled","anonymous":false},{"inputs":[{"internalType":"address","name":"authorizer","type":"address","indexed":true},{"internalType":"bytes32","name":"nonce","type":"bytes32","indexed":true}],"type":"event","name":"AuthorizationUsed","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":"newRescuer","type":"address","indexed":true}],"type":"event","name":"RescuerChanged","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":[],"stateMutability":"view","type":"function","name":"CANCEL_AUTHORIZATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECEIVE_WITH_AUTHORIZATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TRANSFER_WITH_AUTHORIZATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"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":"authorizer","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"}],"stateMutability":"view","type":"function","name":"authorizationState","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":"authorizer","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"cancelAuthorization"},{"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":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"decrement","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"increment","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"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":"string","name":"newName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"initializeV2"},{"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":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"validAfter","type":"uint256"},{"internalType":"uint256","name":"validBefore","type":"uint256"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"receiveWithAuthorization"},{"inputs":[{"internalType":"address","name":"minter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"contract IERC20","name":"tokenContract","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rescueERC20"},{"inputs":[],"stateMutability":"view","type":"function","name":"rescuer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"validAfter","type":"uint256"},{"internalType":"uint256","name":"validBefore","type":"uint256"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"transferWithAuthorization"},{"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"},{"inputs":[{"internalType":"address","name":"newRescuer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateRescuer"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"returns":{"_0":"The bytes32 EIP712 domain separator."}},"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."}},"authorizationState(address,bytes32)":{"details":"Nonces are randomly generated 32-byte data unique to the authorizer's address","params":{"authorizer":"Authorizer's address","nonce":"Nonce of the authorization"},"returns":{"_0":"True if the nonce is used"}},"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."}},"cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)":{"details":"Works only if the authorization is not yet used.","params":{"authorizer":"Authorizer's address","nonce":"Nonce of the authorization","r":"r of the signature","s":"s of the signature","v":"v of the signature"}},"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."}},"decreaseAllowance(address,uint256)":{"params":{"decrement":"Amount of decrease in allowance","spender":"Spender's address"},"returns":{"_0":"True if successful"}},"increaseAllowance(address,uint256)":{"params":{"increment":"Amount of increase in allowance","spender":"Spender's address"},"returns":{"_0":"True if 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."}},"initializeV2(string)":{"params":{"newName":"New token name"}},"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."}},"nonces(address)":{"params":{"owner":"Token owner's address (Authorizer)"},"returns":{"_0":"Next nonce"}},"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"},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"params":{"deadline":"The time at which the signature expires (unix time), or max uint256 value to signal no expiration","owner":"Token owner's address (Authorizer)","r":"r of the signature","s":"s of the signature","spender":"Spender's address","v":"v of the signature","value":"Amount of allowance"}},"receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":{"details":"This has an additional check to ensure that the payee's address matches the caller of this function to prevent front-running attacks.","params":{"from":"Payer's address (Authorizer)","nonce":"Unique nonce","r":"r of the signature","s":"s of the signature","to":"Payee's address","v":"v of the signature","validAfter":"The time after which this is valid (unix time)","validBefore":"The time before which this is valid (unix time)","value":"Amount to be transferred"}},"removeMinter(address)":{"params":{"minter":"The address of the minter to remove."},"returns":{"_0":"True if the operation was successful."}},"rescueERC20(address,address,uint256)":{"params":{"amount":"Amount to withdraw","to":"Recipient address","tokenContract":"ERC20 token contract address"}},"rescuer()":{"returns":{"_0":"Rescuer's address"}},"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."}},"transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":{"params":{"from":"Payer's address (Authorizer)","nonce":"Unique nonce","r":"r of the signature","s":"s of the signature","to":"Payee's address","v":"v of the signature","validAfter":"The time after which this is valid (unix time)","validBefore":"The time before which this is valid (unix time)","value":"Amount to be transferred"}},"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."}},"updateRescuer(address)":{"params":{"newRescuer":"The address of the new rescuer."}}},"version":1},"userdoc":{"kind":"user","methods":{"DOMAIN_SEPARATOR()":{"notice":"Get the EIP712 Domain Separator."},"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."},"authorizationState(address,bytes32)":{"notice":"Returns the state of an authorization"},"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."},"cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)":{"notice":"Attempt to cancel an authorization"},"configureMinter(address,uint256)":{"notice":"Adds or updates a new minter with a mint allowance."},"decreaseAllowance(address,uint256)":{"notice":"Decrease the allowance by a given decrement"},"increaseAllowance(address,uint256)":{"notice":"Increase the allowance by a given increment"},"initialize(string,string,string,uint8,address,address,address,address)":{"notice":"Initializes the fiat token contract."},"initializeV2(string)":{"notice":"Initialize v2"},"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."},"nonces(address)":{"notice":"Nonces for permit"},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"notice":"Update allowance with a signed permit"},"receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":{"notice":"Receive a transfer with a signed authorization from the payer"},"removeMinter(address)":{"notice":"Removes a minter."},"rescueERC20(address,address,uint256)":{"notice":"Rescue ERC20 tokens locked up in this contract."},"rescuer()":{"notice":"Returns current rescuer"},"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."},"transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":{"notice":"Execute a transfer with a signed authorization"},"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."},"updateRescuer(address)":{"notice":"Updates the rescuer 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/v2/FiatTokenV2.sol":"FiatTokenV2"},"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"},"lib/openzeppelin-contracts_v3.1.0/contracts/token/ERC20/SafeERC20.sol":{"keccak256":"0xf3b30f8a49631420635a8c35daacfcaa338012755f18a76fdd118730256f9a27","urls":["bzz-raw://0d7de652204c2ee291a61aa984103dfc7ae4392d651fbbc44a0079caee7c69a3","dweb:/ipfs/Qmcw1cQnq9eWDnrCBwU3TNyqLfTMUFg5YKpYUkELoMPuUE"],"license":"MIT"},"lib/openzeppelin-contracts_v3.1.0/contracts/utils/Address.sol":{"keccak256":"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498","urls":["bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff","dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS"],"license":"MIT"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/interface/IERC1271.sol":{"keccak256":"0xbdb06a96b03ebe4b178df317415a307dda773d888999228ec9136829a39483a5","urls":["bzz-raw://a379bef8e91e746c8a5ee2e2546032acba745021d241563954dab4ea8d3de130","dweb:/ipfs/Qmf7A8XiHrR6FM7nMN1xbvGoQ7i9hUb2bgFofNYBjpWMqa"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/ECRecover.sol":{"keccak256":"0x95fb7106fe5954d4f5be2d9fd731524a4cba5a27ae9ecc61b210e10216b4d770","urls":["bzz-raw://fd0b791ba1d3e454844566cc2f8ebabfa8038f81e2180643995d3fc0172b87d4","dweb:/ipfs/QmaN7jhTATcAgGe6NbPqDxN7AAqzDKdv6Db64pt9BVdwM3"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/EIP712.sol":{"keccak256":"0x7bc4bfee8042bbadeb6606670e857531c5524c78d95dac619a0019f4826abfaf","urls":["bzz-raw://1d25da9a02e2def23b4606c6625d26810f7132ff3c8312d3dfd4319a76cd9497","dweb:/ipfs/QmTgRwtosFh7nbiuxax382i5YDY4kc6A3GHL8kY5oHDgNX"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/MessageHashUtils.sol":{"keccak256":"0x30c544cf024e8f04071ca0e5e75ec26890acefe62f5b8c9baeeaa0653aa9c2b1","urls":["bzz-raw://dc4d849bf3e24c378fb381cbb0dceb316df9584bad1c83b0871e9a4cb76aadf6","dweb:/ipfs/QmXSq5T7wV9DyyCgbJJyMif9Yor4tcSMyPXaTUCwwrRnkL"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/SignatureChecker.sol":{"keccak256":"0x34a9ea7304dd9892e95ec34de00b7e447e76af8a6834d02664fc1b88726468e4","urls":["bzz-raw://700af14b4acc005d31c9bff851544c5aabc6ab89be4484488e724dfdb9d5e5d2","dweb:/ipfs/QmT4SpKgBHbA9S7m8ZKQFb87nCKknue3XjYtwHJm4EfHrF"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1.1/FiatTokenV1_1.sol":{"keccak256":"0x3b728c44c15c1ea7a61b6461742958834bc398b169da10cd350fc1a444a93c34","urls":["bzz-raw://a99ba77233ae53ccf7b6827a94730a1a664a8f525cc291b6b29090aa4ebb2bcf","dweb:/ipfs/Qme9eZZh7YRk4kEj68Qgr58898gnT1XmminvKVhpvRCkTv"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1.1/Rescuable.sol":{"keccak256":"0x3a1724df6032053b3409d137fde519cf3e2de040876791f006ae52901367c65e","urls":["bzz-raw://b094ccbb80b92665184634ce74d7f79ad057311e47b66dc3be07a7db0128f1a1","dweb:/ipfs/QmV52aq78xsE4Yun8EJqBJNVLEYKNuFN89kYXokdJ3knrK"],"license":"Apache-2.0"},"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"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/AbstractFiatTokenV2.sol":{"keccak256":"0x0cf455818990842275c1daa8e0c7b3f9a036597c044e3b6d362d5eddda1ef073","urls":["bzz-raw://5331cfcdb2e5c13c5fdc2b0f9675076fd59a6fb218601b8c93ddc0ec4a689bea","dweb:/ipfs/QmcBtpDdvULSc8GzHoTK5jVZhHHp1Enh5iWgBLgVjUk44h"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP2612.sol":{"keccak256":"0xe86116e56b1c94303d70b5f80a74b81f94efe01c53b5ae827cd2ca529ce27e17","urls":["bzz-raw://36cf6fd0e0690a16fa5feee16be167ec724aa63bb0c154b29c1947fc0ddc5553","dweb:/ipfs/QmQdUUDcsHMysjs1wg7DdTRD9MSd4kuDTCDdd4d8VcY1XC"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP3009.sol":{"keccak256":"0x59fd2de92fc76f5580a1918c73487ad036e246e1fe40d41d5209366e8fc6c3f5","urls":["bzz-raw://722d9a77930880dcc8bcdbb1b950ea187ca6ceda571460c5f76e4a4b7cad799a","dweb:/ipfs/QmbM8HdtUeQVBr1VAGEjAQUpdwodSj89j63mxqS8Ve9zHB"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP712Domain.sol":{"keccak256":"0x982d6a56247dfd6429392b56b27baa2888ebe4861473d77b8d3e8e2e361e8854","urls":["bzz-raw://a39671c171176dcb617d275b610a2ab83d5745483781d2fcd41c15a7b5c55b0b","dweb:/ipfs/QmVpHjbEyUA9h7a4C9UMKMLwbyovDd6HM2jYNwobBaWA4x"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol":{"keccak256":"0xa4a8d42bcc8ad296c7713bec5e0bb1ea6ec4172aac7a0092928b897ccf20a11a","urls":["bzz-raw://81fa1bc1ff48c85993936014dd057276e826f24b519ad660c30c5b47b009bc0c","dweb:/ipfs/QmR85uGAkfczQYqXDNADwuBFspjLiLw3jLteq2WkQiKCwc"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":3029,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":3125,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"pauser","offset":0,"slot":"1","type":"t_address"},{"astId":3128,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"paused","offset":20,"slot":"1","type":"t_bool"},{"astId":2009,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"blacklister","offset":0,"slot":"2","type":"t_address"},{"astId":2013,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"_deprecatedBlacklisted","offset":0,"slot":"3","type":"t_mapping(t_address,t_bool)"},{"astId":2191,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"name","offset":0,"slot":"4","type":"t_string_storage"},{"astId":2193,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"symbol","offset":0,"slot":"5","type":"t_string_storage"},{"astId":2195,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"decimals","offset":0,"slot":"6","type":"t_uint8"},{"astId":2197,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"currency","offset":0,"slot":"7","type":"t_string_storage"},{"astId":2199,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"masterMinter","offset":0,"slot":"8","type":"t_address"},{"astId":2201,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"initialized","offset":20,"slot":"8","type":"t_bool"},{"astId":2206,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"balanceAndBlacklistStates","offset":0,"slot":"9","type":"t_mapping(t_address,t_uint256)"},{"astId":2212,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","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/v2/FiatTokenV2.sol:FiatTokenV2","label":"totalSupply_","offset":0,"slot":"11","type":"t_uint256"},{"astId":2219,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"minters","offset":0,"slot":"12","type":"t_mapping(t_address,t_bool)"},{"astId":2223,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"minterAllowed","offset":0,"slot":"13","type":"t_mapping(t_address,t_uint256)"},{"astId":1901,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"_rescuer","offset":0,"slot":"14","type":"t_address"},{"astId":3794,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"_DEPRECATED_CACHED_DOMAIN_SEPARATOR","offset":0,"slot":"15","type":"t_bytes32"},{"astId":3400,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"_authorizationStates","offset":0,"slot":"16","type":"t_mapping(t_address,t_mapping(t_bytes32,t_bool))"},{"astId":3255,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"_permitNonces","offset":0,"slot":"17","type":"t_mapping(t_address,t_uint256)"},{"astId":4117,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol:FiatTokenV2","label":"_initializedVersion","offset":0,"slot":"18","type":"t_uint8"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"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_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"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":{"DOMAIN_SEPARATOR()":{"notice":"Get the EIP712 Domain Separator."},"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."},"authorizationState(address,bytes32)":{"notice":"Returns the state of an authorization"},"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."},"cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)":{"notice":"Attempt to cancel an authorization"},"configureMinter(address,uint256)":{"notice":"Adds or updates a new minter with a mint allowance."},"decreaseAllowance(address,uint256)":{"notice":"Decrease the allowance by a given decrement"},"increaseAllowance(address,uint256)":{"notice":"Increase the allowance by a given increment"},"initialize(string,string,string,uint8,address,address,address,address)":{"notice":"Initializes the fiat token contract."},"initializeV2(string)":{"notice":"Initialize v2"},"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."},"nonces(address)":{"notice":"Nonces for permit"},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"notice":"Update allowance with a signed permit"},"receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":{"notice":"Receive a transfer with a signed authorization from the payer"},"removeMinter(address)":{"notice":"Removes a minter."},"rescueERC20(address,address,uint256)":{"notice":"Rescue ERC20 tokens locked up in this contract."},"rescuer()":{"notice":"Returns current rescuer"},"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."},"transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":{"notice":"Execute a transfer with a signed authorization"},"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."},"updateRescuer(address)":{"notice":"Updates the rescuer address."}},"notice":"ERC20 Token backed by fiat reserves, version 2"},"devdoc":{"version":1,"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"returns":{"_0":"The bytes32 EIP712 domain separator."}},"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."}},"authorizationState(address,bytes32)":{"details":"Nonces are randomly generated 32-byte data unique to the authorizer's address","params":{"authorizer":"Authorizer's address","nonce":"Nonce of the authorization"},"returns":{"_0":"True if the nonce is used"}},"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."}},"cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)":{"details":"Works only if the authorization is not yet used.","params":{"authorizer":"Authorizer's address","nonce":"Nonce of the authorization","r":"r of the signature","s":"s of the signature","v":"v of the signature"}},"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."}},"decreaseAllowance(address,uint256)":{"params":{"decrement":"Amount of decrease in allowance","spender":"Spender's address"},"returns":{"_0":"True if successful"}},"increaseAllowance(address,uint256)":{"params":{"increment":"Amount of increase in allowance","spender":"Spender's address"},"returns":{"_0":"True if 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."}},"initializeV2(string)":{"params":{"newName":"New token name"}},"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."}},"nonces(address)":{"params":{"owner":"Token owner's address (Authorizer)"},"returns":{"_0":"Next nonce"}},"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"},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"params":{"deadline":"The time at which the signature expires (unix time), or max uint256 value to signal no expiration","owner":"Token owner's address (Authorizer)","r":"r of the signature","s":"s of the signature","spender":"Spender's address","v":"v of the signature","value":"Amount of allowance"}},"receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":{"details":"This has an additional check to ensure that the payee's address matches the caller of this function to prevent front-running attacks.","params":{"from":"Payer's address (Authorizer)","nonce":"Unique nonce","r":"r of the signature","s":"s of the signature","to":"Payee's address","v":"v of the signature","validAfter":"The time after which this is valid (unix time)","validBefore":"The time before which this is valid (unix time)","value":"Amount to be transferred"}},"removeMinter(address)":{"params":{"minter":"The address of the minter to remove."},"returns":{"_0":"True if the operation was successful."}},"rescueERC20(address,address,uint256)":{"params":{"amount":"Amount to withdraw","to":"Recipient address","tokenContract":"ERC20 token contract address"}},"rescuer()":{"returns":{"_0":"Rescuer's address"}},"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."}},"transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":{"params":{"from":"Payer's address (Authorizer)","nonce":"Unique nonce","r":"r of the signature","s":"s of the signature","to":"Payee's address","v":"v of the signature","validAfter":"The time after which this is valid (unix time)","validBefore":"The time before which this is valid (unix time)","value":"Amount to be transferred"}},"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."}},"updateRescuer(address)":{"params":{"newRescuer":"The address of the new rescuer."}}},"title":"FiatToken V2"},"ast":{"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol","id":4407,"exportedSymbols":{"FiatTokenV2":[4406]},"nodeType":"SourceUnit","src":"659:6405:30","nodes":[{"id":4100,"nodeType":"PragmaDirective","src":"659:23:30","nodes":[],"literals":["solidity","0.6",".12"]},{"id":4102,"nodeType":"ImportDirective","src":"684:58:30","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1.1/FiatTokenV1_1.sol","file":"../v1.1/FiatTokenV1_1.sol","scope":4407,"sourceUnit":1887,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":4101,"name":"FiatTokenV1_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"693:13:30","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":4104,"nodeType":"ImportDirective","src":"743:44:30","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/EIP712.sol","file":"../util/EIP712.sol","scope":4407,"sourceUnit":1749,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":4103,"name":"EIP712","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"752:6:30","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":4106,"nodeType":"ImportDirective","src":"788:40:30","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP3009.sol","file":"./EIP3009.sol","scope":4407,"sourceUnit":3790,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":4105,"name":"EIP3009","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"797:7:30","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":4108,"nodeType":"ImportDirective","src":"829:40:30","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP2612.sol","file":"./EIP2612.sol","scope":4407,"sourceUnit":3370,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":4107,"name":"EIP2612","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"838:7:30","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":4406,"nodeType":"ContractDefinition","src":"960:6103:30","nodes":[{"id":4117,"nodeType":"VariableDeclaration","src":"1022:34:30","nodes":[],"constant":false,"mutability":"mutable","name":"_initializedVersion","overrides":null,"scope":4406,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4116,"name":"uint8","nodeType":"ElementaryTypeName","src":"1022:5:30","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"id":4148,"nodeType":"FunctionDefinition","src":"1147:317:30","nodes":[],"body":{"id":4147,"nodeType":"Block","src":"1203:261:30","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4124,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2201,"src":"1272:11:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4125,"name":"_initializedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4117,"src":"1287:19:30","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1310:1:30","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1287:24:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1272:39:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4123,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1264:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":4129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1264:48:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4130,"nodeType":"ExpressionStatement","src":"1264:48:30"},{"expression":{"argumentTypes":null,"id":4133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4131,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2191,"src":"1322:4:30","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4132,"name":"newName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4120,"src":"1329:7:30","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"1322:14:30","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":4134,"nodeType":"ExpressionStatement","src":"1322:14:30"},{"expression":{"argumentTypes":null,"id":4141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4135,"name":"_DEPRECATED_CACHED_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3794,"src":"1346:35:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4138,"name":"newName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4120,"src":"1411:7:30","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"hexValue":"32","id":4139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1420:3:30","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5","typeString":"literal_string \"2\""},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_stringliteral_ad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5","typeString":"literal_string \"2\""}],"expression":{"argumentTypes":null,"id":4136,"name":"EIP712","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1748,"src":"1384:6:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EIP712_$1748_$","typeString":"type(library EIP712)"}},"id":4137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"makeDomainSeparator","nodeType":"MemberAccess","referencedDeclaration":1747,"src":"1384:26:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,string memory) view returns (bytes32)"}},"id":4140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1384:40:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1346:78:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4142,"nodeType":"ExpressionStatement","src":"1346:78:30"},{"expression":{"argumentTypes":null,"id":4145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4143,"name":"_initializedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4117,"src":"1434:19:30","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"31","id":4144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1456:1:30","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1434:23:30","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4146,"nodeType":"ExpressionStatement","src":"1434:23:30"}]},"documentation":{"id":4118,"nodeType":"StructuredDocumentation","src":"1063:79:30","text":" @notice Initialize v2\n @param newName   New token name"},"functionSelector":"d608ea64","implemented":true,"kind":"function","modifiers":[],"name":"initializeV2","overrides":null,"parameters":{"id":4121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4120,"mutability":"mutable","name":"newName","nodeType":"VariableDeclaration","overrides":null,"scope":4148,"src":"1169:23:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":4119,"name":"string","nodeType":"ElementaryTypeName","src":"1169:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"1168:25:30"},"returnParameters":{"id":4122,"nodeType":"ParameterList","parameters":[],"src":"1203:0:30"},"scope":4406,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4177,"nodeType":"FunctionDefinition","src":"1677:322:30","nodes":[],"body":{"id":4176,"nodeType":"Block","src":"1911:88:30","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4168,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1940:3:30","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1940:10:30","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":4170,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4151,"src":"1952:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4171,"name":"increment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4153,"src":"1961:9:30","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":4167,"name":"_increaseAllowance","nodeType":"Identifier","overloadedDeclarations":[4379],"referencedDeclaration":4379,"src":"1921:18:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1921:50:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4173,"nodeType":"ExpressionStatement","src":"1921:50:30"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":4174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1988:4:30","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4166,"id":4175,"nodeType":"Return","src":"1981:11:30"}]},"documentation":{"id":4149,"nodeType":"StructuredDocumentation","src":"1470:202:30","text":" @notice Increase the allowance by a given increment\n @param spender   Spender's address\n @param increment Amount of increase in allowance\n @return True if successful"},"functionSelector":"39509351","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":4156,"modifierName":{"argumentTypes":null,"id":4155,"name":"whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3139,"src":"1803:13:30","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1803:13:30"},{"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4158,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1840:3:30","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1840:10:30","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":4160,"modifierName":{"argumentTypes":null,"id":4157,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"1825:14:30","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"1825:26:30"},{"arguments":[{"argumentTypes":null,"id":4162,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4151,"src":"1875:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4163,"modifierName":{"argumentTypes":null,"id":4161,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"1860:14:30","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"1860:23:30"}],"name":"increaseAllowance","overrides":null,"parameters":{"id":4154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4151,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":4177,"src":"1713:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4150,"name":"address","nodeType":"ElementaryTypeName","src":"1713:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4153,"mutability":"mutable","name":"increment","nodeType":"VariableDeclaration","overrides":null,"scope":4177,"src":"1738:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4152,"name":"uint256","nodeType":"ElementaryTypeName","src":"1738:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1703:58:30"},"returnParameters":{"id":4166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4165,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":4177,"src":"1901:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4164,"name":"bool","nodeType":"ElementaryTypeName","src":"1901:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1900:6:30"},"scope":4406,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":4206,"nodeType":"FunctionDefinition","src":"2212:322:30","nodes":[],"body":{"id":4205,"nodeType":"Block","src":"2446:88:30","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4197,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2475:3:30","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2475:10:30","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":4199,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4180,"src":"2487:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4200,"name":"decrement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4182,"src":"2496:9:30","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":4196,"name":"_decreaseAllowance","nodeType":"Identifier","overloadedDeclarations":[4405],"referencedDeclaration":4405,"src":"2456:18:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2456:50:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4202,"nodeType":"ExpressionStatement","src":"2456:50:30"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":4203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2523:4:30","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4195,"id":4204,"nodeType":"Return","src":"2516:11:30"}]},"documentation":{"id":4178,"nodeType":"StructuredDocumentation","src":"2005:202:30","text":" @notice Decrease the allowance by a given decrement\n @param spender   Spender's address\n @param decrement Amount of decrease in allowance\n @return True if successful"},"functionSelector":"a457c2d7","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":4185,"modifierName":{"argumentTypes":null,"id":4184,"name":"whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3139,"src":"2338:13:30","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"2338:13:30"},{"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4187,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2375:3:30","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2375:10:30","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":4189,"modifierName":{"argumentTypes":null,"id":4186,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"2360:14:30","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"2360:26:30"},{"arguments":[{"argumentTypes":null,"id":4191,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4180,"src":"2410:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4192,"modifierName":{"argumentTypes":null,"id":4190,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"2395:14:30","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"2395:23:30"}],"name":"decreaseAllowance","overrides":null,"parameters":{"id":4183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4180,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":4206,"src":"2248:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4179,"name":"address","nodeType":"ElementaryTypeName","src":"2248:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4182,"mutability":"mutable","name":"decrement","nodeType":"VariableDeclaration","overrides":null,"scope":4206,"src":"2273:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4181,"name":"uint256","nodeType":"ElementaryTypeName","src":"2273:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2238:58:30"},"returnParameters":{"id":4195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4194,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":4206,"src":"2436:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4193,"name":"bool","nodeType":"ElementaryTypeName","src":"2436:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2435:6:30"},"scope":4406,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":4249,"nodeType":"FunctionDefinition","src":"3105:441:30","nodes":[],"body":{"id":4248,"nodeType":"Block","src":"3445:101:30","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4237,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4209,"src":"3482:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4238,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4211,"src":"3488:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4239,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4213,"src":"3492:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4240,"name":"validAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4215,"src":"3499:10:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4241,"name":"validBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4217,"src":"3511:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4242,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"3524:5:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":4243,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4221,"src":"3531:1:30","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"id":4244,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"3534:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":4245,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"3537:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4236,"name":"_transferWithAuthorization","nodeType":"Identifier","overloadedDeclarations":[3467,3521],"referencedDeclaration":3467,"src":"3455:26:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)"}},"id":4246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3455:84:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4247,"nodeType":"ExpressionStatement","src":"3455:84:30"}]},"documentation":{"id":4207,"nodeType":"StructuredDocumentation","src":"2540:560:30","text":" @notice Execute a transfer with a signed authorization\n @param from          Payer's address (Authorizer)\n @param to            Payee's address\n @param value         Amount to be transferred\n @param validAfter    The time after which this is valid (unix time)\n @param validBefore   The time before which this is valid (unix time)\n @param nonce         Unique nonce\n @param v             v of the signature\n @param r             r of the signature\n @param s             s of the signature"},"functionSelector":"e3ee160e","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":4228,"modifierName":{"argumentTypes":null,"id":4227,"name":"whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3139,"src":"3371:13:30","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"3371:13:30"},{"arguments":[{"argumentTypes":null,"id":4230,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4209,"src":"3408:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4231,"modifierName":{"argumentTypes":null,"id":4229,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"3393:14:30","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"3393:20:30"},{"arguments":[{"argumentTypes":null,"id":4233,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4211,"src":"3437:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4234,"modifierName":{"argumentTypes":null,"id":4232,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"3422:14:30","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"3422:18:30"}],"name":"transferWithAuthorization","overrides":null,"parameters":{"id":4226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4209,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":4249,"src":"3149:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4208,"name":"address","nodeType":"ElementaryTypeName","src":"3149:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4211,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":4249,"src":"3171:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4210,"name":"address","nodeType":"ElementaryTypeName","src":"3171:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4213,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":4249,"src":"3191:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4212,"name":"uint256","nodeType":"ElementaryTypeName","src":"3191:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4215,"mutability":"mutable","name":"validAfter","nodeType":"VariableDeclaration","overrides":null,"scope":4249,"src":"3214:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4214,"name":"uint256","nodeType":"ElementaryTypeName","src":"3214:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4217,"mutability":"mutable","name":"validBefore","nodeType":"VariableDeclaration","overrides":null,"scope":4249,"src":"3242:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4216,"name":"uint256","nodeType":"ElementaryTypeName","src":"3242:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4219,"mutability":"mutable","name":"nonce","nodeType":"VariableDeclaration","overrides":null,"scope":4249,"src":"3271:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4218,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3271:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":4221,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","overrides":null,"scope":4249,"src":"3294:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4220,"name":"uint8","nodeType":"ElementaryTypeName","src":"3294:5:30","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":4223,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":4249,"src":"3311:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4222,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3311:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":4225,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","overrides":null,"scope":4249,"src":"3330:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3330:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3139:206:30"},"returnParameters":{"id":4235,"nodeType":"ParameterList","parameters":[],"src":"3445:0:30"},"scope":4406,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4292,"nodeType":"FunctionDefinition","src":"4285:439:30","nodes":[],"body":{"id":4291,"nodeType":"Block","src":"4624:100:30","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4280,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4252,"src":"4660:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4281,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"4666:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4282,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4256,"src":"4670:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4283,"name":"validAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4258,"src":"4677:10:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4284,"name":"validBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4260,"src":"4689:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4285,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4262,"src":"4702:5:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":4286,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4264,"src":"4709:1:30","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"id":4287,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4266,"src":"4712:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":4288,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"4715:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4279,"name":"_receiveWithAuthorization","nodeType":"Identifier","overloadedDeclarations":[3559,3621],"referencedDeclaration":3559,"src":"4634:25:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)"}},"id":4289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4634:83:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4290,"nodeType":"ExpressionStatement","src":"4634:83:30"}]},"documentation":{"id":4250,"nodeType":"StructuredDocumentation","src":"3552:728:30","text":" @notice Receive a transfer with a signed authorization from the payer\n @dev This has an additional check to ensure that the payee's address\n matches the caller of this function to prevent front-running attacks.\n @param from          Payer's address (Authorizer)\n @param to            Payee's address\n @param value         Amount to be transferred\n @param validAfter    The time after which this is valid (unix time)\n @param validBefore   The time before which this is valid (unix time)\n @param nonce         Unique nonce\n @param v             v of the signature\n @param r             r of the signature\n @param s             s of the signature"},"functionSelector":"ef55bec6","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":4271,"modifierName":{"argumentTypes":null,"id":4270,"name":"whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3139,"src":"4550:13:30","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"4550:13:30"},{"arguments":[{"argumentTypes":null,"id":4273,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4252,"src":"4587:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4274,"modifierName":{"argumentTypes":null,"id":4272,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"4572:14:30","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"4572:20:30"},{"arguments":[{"argumentTypes":null,"id":4276,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"4616:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4277,"modifierName":{"argumentTypes":null,"id":4275,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"4601:14:30","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"4601:18:30"}],"name":"receiveWithAuthorization","overrides":null,"parameters":{"id":4269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4252,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":4292,"src":"4328:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4251,"name":"address","nodeType":"ElementaryTypeName","src":"4328:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4254,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":4292,"src":"4350:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4253,"name":"address","nodeType":"ElementaryTypeName","src":"4350:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4256,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":4292,"src":"4370:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4255,"name":"uint256","nodeType":"ElementaryTypeName","src":"4370:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4258,"mutability":"mutable","name":"validAfter","nodeType":"VariableDeclaration","overrides":null,"scope":4292,"src":"4393:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4257,"name":"uint256","nodeType":"ElementaryTypeName","src":"4393:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4260,"mutability":"mutable","name":"validBefore","nodeType":"VariableDeclaration","overrides":null,"scope":4292,"src":"4421:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4259,"name":"uint256","nodeType":"ElementaryTypeName","src":"4421:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4262,"mutability":"mutable","name":"nonce","nodeType":"VariableDeclaration","overrides":null,"scope":4292,"src":"4450:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4261,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4450:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":4264,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","overrides":null,"scope":4292,"src":"4473:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4263,"name":"uint8","nodeType":"ElementaryTypeName","src":"4473:5:30","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":4266,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":4292,"src":"4490:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4490:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":4268,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","overrides":null,"scope":4292,"src":"4509:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4509:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4318:206:30"},"returnParameters":{"id":4278,"nodeType":"ParameterList","parameters":[],"src":"4624:0:30"},"scope":4406,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4317,"nodeType":"FunctionDefinition","src":"5102:249:30","nodes":[],"body":{"id":4316,"nodeType":"Block","src":"5286:65:30","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4309,"name":"authorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4295,"src":"5317:10:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4310,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4297,"src":"5329:5:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":4311,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4299,"src":"5336:1:30","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"id":4312,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4301,"src":"5339:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":4313,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4303,"src":"5342:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4308,"name":"_cancelAuthorization","nodeType":"Identifier","overloadedDeclarations":[3647,3689],"referencedDeclaration":3647,"src":"5296:20:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,uint8,bytes32,bytes32)"}},"id":4314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5296:48:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4315,"nodeType":"ExpressionStatement","src":"5296:48:30"}]},"documentation":{"id":4293,"nodeType":"StructuredDocumentation","src":"4730:367:30","text":" @notice Attempt to cancel an authorization\n @dev Works only if the authorization is not yet used.\n @param authorizer    Authorizer's address\n @param nonce         Nonce of the authorization\n @param v             v of the signature\n @param r             r of the signature\n @param s             s of the signature"},"functionSelector":"5a049a70","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":4306,"modifierName":{"argumentTypes":null,"id":4305,"name":"whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3139,"src":"5268:13:30","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"5268:13:30"}],"name":"cancelAuthorization","overrides":null,"parameters":{"id":4304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4295,"mutability":"mutable","name":"authorizer","nodeType":"VariableDeclaration","overrides":null,"scope":4317,"src":"5140:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4294,"name":"address","nodeType":"ElementaryTypeName","src":"5140:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4297,"mutability":"mutable","name":"nonce","nodeType":"VariableDeclaration","overrides":null,"scope":4317,"src":"5168:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4296,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5168:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":4299,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","overrides":null,"scope":4317,"src":"5191:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4298,"name":"uint8","nodeType":"ElementaryTypeName","src":"5191:5:30","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":4301,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":4317,"src":"5208:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4300,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5208:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":4303,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","overrides":null,"scope":4317,"src":"5227:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5227:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5130:112:30"},"returnParameters":{"id":4307,"nodeType":"ParameterList","parameters":[],"src":"5286:0:30"},"scope":4406,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4354,"nodeType":"FunctionDefinition","src":"5843:361:30","nodes":[],"body":{"id":4353,"nodeType":"Block","src":"6138:66:30","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4344,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4320,"src":"6156:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4345,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4322,"src":"6163:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4346,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4324,"src":"6172:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4347,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4326,"src":"6179:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4348,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4328,"src":"6189:1:30","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"id":4349,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4330,"src":"6192:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":4350,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4332,"src":"6195:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4343,"name":"_permit","nodeType":"Identifier","overloadedDeclarations":[3300,3368],"referencedDeclaration":3300,"src":"6148:7:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32)"}},"id":4351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6148:49:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4352,"nodeType":"ExpressionStatement","src":"6148:49:30"}]},"documentation":{"id":4318,"nodeType":"StructuredDocumentation","src":"5357:481:30","text":" @notice Update allowance with a signed permit\n @param owner       Token owner's address (Authorizer)\n @param spender     Spender's address\n @param value       Amount of allowance\n @param deadline    The time at which the signature expires (unix time), or max uint256 value to signal no\n expiration\n @param v           v of the signature\n @param r           r of the signature\n @param s           s of the signature"},"functionSelector":"d505accf","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":4335,"modifierName":{"argumentTypes":null,"id":4334,"name":"whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3139,"src":"6058:13:30","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"6058:13:30"},{"arguments":[{"argumentTypes":null,"id":4337,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4320,"src":"6095:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4338,"modifierName":{"argumentTypes":null,"id":4336,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"6080:14:30","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"6080:21:30"},{"arguments":[{"argumentTypes":null,"id":4340,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4322,"src":"6125:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4341,"modifierName":{"argumentTypes":null,"id":4339,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"6110:14:30","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"6110:23:30"}],"name":"permit","overrides":null,"parameters":{"id":4333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4320,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":4354,"src":"5868:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4319,"name":"address","nodeType":"ElementaryTypeName","src":"5868:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4322,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":4354,"src":"5891:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4321,"name":"address","nodeType":"ElementaryTypeName","src":"5891:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4324,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":4354,"src":"5916:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4323,"name":"uint256","nodeType":"ElementaryTypeName","src":"5916:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4326,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":4354,"src":"5939:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4325,"name":"uint256","nodeType":"ElementaryTypeName","src":"5939:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4328,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","overrides":null,"scope":4354,"src":"5965:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4327,"name":"uint8","nodeType":"ElementaryTypeName","src":"5965:5:30","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":4330,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":4354,"src":"5982:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5982:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":4332,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","overrides":null,"scope":4354,"src":"6001:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4331,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6001:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5858:158:30"},"returnParameters":{"id":4342,"nodeType":"ParameterList","parameters":[],"src":"6138:0:30"},"scope":4406,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":4379,"nodeType":"FunctionDefinition","src":"6434:178:30","nodes":[],"body":{"id":4378,"nodeType":"Block","src":"6531:81:30","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4366,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"6550:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4367,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4359,"src":"6557:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4374,"name":"increment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4361,"src":"6594:9:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4368,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2212,"src":"6566:7:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":4370,"indexExpression":{"argumentTypes":null,"id":4369,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"6574:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6566:14:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4372,"indexExpression":{"argumentTypes":null,"id":4371,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4359,"src":"6581:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6566:23:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":28,"src":"6566:27:30","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":4375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6566:38:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4365,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[2622],"referencedDeclaration":2622,"src":"6541:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6541:64:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4377,"nodeType":"ExpressionStatement","src":"6541:64:30"}]},"baseFunctions":[3223],"documentation":{"id":4355,"nodeType":"StructuredDocumentation","src":"6210:219:30","text":" @dev Internal function to increase the allowance by a given increment\n @param owner     Token owner's address\n @param spender   Spender's address\n @param increment Amount of increase"},"implemented":true,"kind":"function","modifiers":[],"name":"_increaseAllowance","overrides":{"id":4363,"nodeType":"OverrideSpecifier","overrides":[],"src":"6522:8:30"},"parameters":{"id":4362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4357,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":4379,"src":"6462:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4356,"name":"address","nodeType":"ElementaryTypeName","src":"6462:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4359,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":4379,"src":"6477:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4358,"name":"address","nodeType":"ElementaryTypeName","src":"6477:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4361,"mutability":"mutable","name":"increment","nodeType":"VariableDeclaration","overrides":null,"scope":4379,"src":"6494:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4360,"name":"uint256","nodeType":"ElementaryTypeName","src":"6494:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6461:51:30"},"returnParameters":{"id":4364,"nodeType":"ParameterList","parameters":[],"src":"6531:0:30"},"scope":4406,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":4405,"nodeType":"FunctionDefinition","src":"6842:219:30","nodes":[],"body":{"id":4404,"nodeType":"Block","src":"6939:122:30","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4391,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4382,"src":"6958:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4392,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4384,"src":"6965:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4399,"name":"decrement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4386,"src":"7002:9:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":4400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7013:39:30","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4393,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2212,"src":"6974:7:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":4395,"indexExpression":{"argumentTypes":null,"id":4394,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4382,"src":"6982:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6974:14:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4397,"indexExpression":{"argumentTypes":null,"id":4396,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4384,"src":"6989:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6974:23:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":73,"src":"6974:27:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":4401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6974:79:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4390,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[2622],"referencedDeclaration":2622,"src":"6949:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6949:105:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4403,"nodeType":"ExpressionStatement","src":"6949:105:30"}]},"baseFunctions":[3232],"documentation":{"id":4380,"nodeType":"StructuredDocumentation","src":"6618:219:30","text":" @dev Internal function to decrease the allowance by a given decrement\n @param owner     Token owner's address\n @param spender   Spender's address\n @param decrement Amount of decrease"},"implemented":true,"kind":"function","modifiers":[],"name":"_decreaseAllowance","overrides":{"id":4388,"nodeType":"OverrideSpecifier","overrides":[],"src":"6930:8:30"},"parameters":{"id":4387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4382,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":4405,"src":"6870:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4381,"name":"address","nodeType":"ElementaryTypeName","src":"6870:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4384,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":4405,"src":"6885:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4383,"name":"address","nodeType":"ElementaryTypeName","src":"6885:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4386,"mutability":"mutable","name":"decrement","nodeType":"VariableDeclaration","overrides":null,"scope":4405,"src":"6902:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4385,"name":"uint256","nodeType":"ElementaryTypeName","src":"6902:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6869:51:30"},"returnParameters":{"id":4389,"nodeType":"ParameterList","parameters":[],"src":"6939:0:30"},"scope":4406,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":4110,"name":"FiatTokenV1_1","nodeType":"UserDefinedTypeName","referencedDeclaration":1886,"src":"984:13:30","typeDescriptions":{"typeIdentifier":"t_contract$_FiatTokenV1_1_$1886","typeString":"contract FiatTokenV1_1"}},"id":4111,"nodeType":"InheritanceSpecifier","src":"984:13:30"},{"arguments":null,"baseName":{"contractScope":null,"id":4112,"name":"EIP3009","nodeType":"UserDefinedTypeName","referencedDeclaration":3789,"src":"999:7:30","typeDescriptions":{"typeIdentifier":"t_contract$_EIP3009_$3789","typeString":"contract EIP3009"}},"id":4113,"nodeType":"InheritanceSpecifier","src":"999:7:30"},{"arguments":null,"baseName":{"contractScope":null,"id":4114,"name":"EIP2612","nodeType":"UserDefinedTypeName","referencedDeclaration":3369,"src":"1008:7:30","typeDescriptions":{"typeIdentifier":"t_contract$_EIP2612_$3369","typeString":"contract EIP2612"}},"id":4115,"nodeType":"InheritanceSpecifier","src":"1008:7:30"}],"contractDependencies":[273,1886,1975,2000,2148,3024,3108,3208,3233,3369,3789,3814],"contractKind":"contract","documentation":{"id":4109,"nodeType":"StructuredDocumentation","src":"871:88:30","text":" @title FiatToken V2\n @notice ERC20 Token backed by fiat reserves, version 2"},"fullyImplemented":true,"linearizedBaseContracts":[4406,3369,3789,3814,3233,1886,1975,3024,2148,3208,3108,2000,273],"name":"FiatTokenV2","scope":4407}],"license":"Apache-2.0"},"id":30}