diff --git a/packages/protocol/contracts/compiled/FiatTokenProxy.json b/packages/protocol/contracts/compiled/FiatTokenProxy.json deleted file mode 100644 index cebc9f3ceca..00000000000 --- a/packages/protocol/contracts/compiled/FiatTokenProxy.json +++ /dev/null @@ -1,552 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "implementationContract", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "previousAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "AdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "Upgraded", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - }, - { - "inputs": [], - "name": "admin", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "changeAdmin", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "implementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "upgradeToAndCall", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": { - "object": "0x608060405234801561001057600080fd5b506040516108a93803806108a98339818101604052602081101561003357600080fd5b5051808061004081610051565b5061004a336100c3565b5050610123565b610064816100e760201b61042a1760201c565b61009f5760405162461bcd60e51b815260040180806020018281038252603b81526020018061086e603b913960400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c355565b7f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b55565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061011b57508115155b949350505050565b61073c806101326000396000f3fe60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146101315780638f2839701461016f578063f851a440146101af5761005a565b80633659cfe6146100645780634f1ef286146100a4575b6100626101c4565b005b34801561007057600080fd5b506100626004803603602081101561008757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166101de565b610062600480360360408110156100ba57600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691908101906040810160208201356401000000008111156100f257600080fd5b82018360208201111561010457600080fd5b8035906020019184600183028401116401000000008311171561012657600080fd5b509092509050610232565b34801561013d57600080fd5b50610146610309565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561017b57600080fd5b506100626004803603602081101561019257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610318565b3480156101bb57600080fd5b50610146610420565b6101cc610466565b6101dc6101d76104fa565b61051f565b565b6101e6610543565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102275761022281610568565b61022f565b61022f6101c4565b50565b61023a610543565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102fc5761027683610568565b60003073ffffffffffffffffffffffffffffffffffffffff16348484604051808383808284376040519201945060009350909150508083038185875af1925050503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50509050806102f657600080fd5b50610304565b6103046101c4565b505050565b60006103136104fa565b905090565b610320610543565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102275773ffffffffffffffffffffffffffffffffffffffff81166103bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806106966036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e8610543565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301528051918290030190a1610222816105bd565b6000610313610543565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061045e57508115155b949350505050565b61046e610543565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156104f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806106646032913960400191505060405180910390fd5b6101dc6101dc565b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c35490565b3660008037600080366000845af43d6000803e80801561053e573d6000f35b3d6000fd5b7f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b5490565b610571816105e1565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b9181900360200190a150565b7f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b55565b6105ea8161042a565b61063f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001806106cc603b913960400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c35556fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a264697066735822122001b610efbebc57927addec087895f40a32b15707f9bbcd4d028e2ffcc8cd241f64736f6c634300060c003343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373", - "sourceMap": "1385:182:20:-:0;;;1443:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1443:122:20;;;2686:42:19;2705:22;2686:18;:42::i;:::-;-1:-1:-1;3044:21:17::1;3054:10;3044:9;:21::i;:::-;2847:225:::0;1443:122:20;1385:182;;3492:342:19;3586:37;3605:17;3586:18;;;;;:37;;:::i;:::-;3565:143;;;;-1:-1:-1;;;3565:143:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2298:66;3787:31;3773:55::o;5448:153:17:-;2256:66;5563:22;5549:46::o;718:610:21:-;778:4;1239:20;;1084:66;1278:23;;;;;;:42;;-1:-1:-1;1305:15:21;;;1278:42;1270:51;718:610;-1:-1:-1;;;;718:610:21:o;1385:182:20:-;;;;;;;", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146101315780638f2839701461016f578063f851a440146101af5761005a565b80633659cfe6146100645780634f1ef286146100a4575b6100626101c4565b005b34801561007057600080fd5b506100626004803603602081101561008757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166101de565b610062600480360360408110156100ba57600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691908101906040810160208201356401000000008111156100f257600080fd5b82018360208201111561010457600080fd5b8035906020019184600183028401116401000000008311171561012657600080fd5b509092509050610232565b34801561013d57600080fd5b50610146610309565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561017b57600080fd5b506100626004803603602081101561019257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610318565b3480156101bb57600080fd5b50610146610420565b6101cc610466565b6101dc6101d76104fa565b61051f565b565b6101e6610543565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102275761022281610568565b61022f565b61022f6101c4565b50565b61023a610543565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102fc5761027683610568565b60003073ffffffffffffffffffffffffffffffffffffffff16348484604051808383808284376040519201945060009350909150508083038185875af1925050503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50509050806102f657600080fd5b50610304565b6103046101c4565b505050565b60006103136104fa565b905090565b610320610543565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102275773ffffffffffffffffffffffffffffffffffffffff81166103bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806106966036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e8610543565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301528051918290030190a1610222816105bd565b6000610313610543565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061045e57508115155b949350505050565b61046e610543565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156104f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806106646032913960400191505060405180910390fd5b6101dc6101dc565b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c35490565b3660008037600080366000845af43d6000803e80801561053e573d6000f35b3d6000fd5b7f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b5490565b610571816105e1565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b9181900360200190a150565b7f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b55565b6105ea8161042a565b61063f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001806106cc603b913960400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c35556fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a264697066735822122001b610efbebc57927addec087895f40a32b15707f9bbcd4d028e2ffcc8cd241f64736f6c634300060c0033", - "sourceMap": "1385:182:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1836:11:18;:9;:11::i;:::-;1385:182:20;4049:109:17;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4049:109:17;;;;:::i;4702:406::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4702:406:17;;-1:-1:-1;4702:406:17;-1:-1:-1;4702:406:17;:::i;3294:99::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3581:272;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3581:272:17;;;;:::i;3141:81::-;;;;;;;;;;;;;:::i;3688:100:18:-;3728:15;:13;:15::i;:::-;3753:28;3763:17;:15;:17::i;:::-;3753:9;:28::i;:::-;3688:100::o;4049:109:17:-;2571:8;:6;:8::i;:::-;2557:22;;:10;:22;;;2553:96;;;4122:29:::1;4133:17;4122:10;:29::i;:::-;2553:96:::0;;;2627:11;:9;:11::i;:::-;4049:109;:::o;4702:406::-;2571:8;:6;:8::i;:::-;2557:22;;:10;:22;;;2553:96;;;4839:29:::1;4850:17;4839:10;:29::i;:::-;4965:12;4990:4;4982:18;;5008:9;5019:4;;4982:42;;;;;;;;;;::::0;;::::1;::::0;-1:-1:-1;4982:42:17::1;::::0;-1:-1:-1;4982:42:17;;-1:-1:-1;;4982:42:17;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4964:60;;;5093:7;5085:16;;;::::0;::::1;;2595:1;2553:96:::0;;;2627:11;:9;:11::i;:::-;4702:406;;;:::o;3294:99::-;3343:7;3369:17;:15;:17::i;:::-;3362:24;;3294:99;:::o;3581:272::-;2571:8;:6;:8::i;:::-;2557:22;;:10;:22;;;2553:96;;;3668:22:::1;::::0;::::1;3647:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3785:32;3798:8;:6;:8::i;:::-;3785:32;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;;;;;;;::::1;3827:19;3837:8;3827:9;:19::i;3141:81::-:0;3181:7;3207:8;:6;:8::i;718:610:21:-;778:4;1239:20;;1084:66;1278:23;;;;;;:42;;-1:-1:-1;1305:15:21;;;1278:42;1270:51;718:610;-1:-1:-1;;;;718:610:21:o;5684:210:17:-;5772:8;:6;:8::i;:::-;5758:22;;:10;:22;;;;5737:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5866:21;:19;:21::i;2863:185:19:-;2298:66;3021:11;;2999:43::o;2293:1025:18:-;2623:14;2620:1;2617;2604:34;2934:1;2915;2883:14;2864:1;2832:14;2809:5;2779:170;3023:16;3020:1;3017;3002:38;3061:6;3136:74;;;;3267:16;3264:1;3257:27;3136:74;3175:16;3172:1;3165:27;5165:157:17;2256:66;5295:11;;5274:42::o;3193:152:19:-;3259:37;3278:17;3259:18;:37::i;:::-;3311:27;;;;;;;;;;;;;;;;;;;3193:152;:::o;5448:153:17:-;2256:66;5563:22;5549:46::o;3492:342:19:-;3586:37;3605:17;3586:18;:37::i;:::-;3565:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2298:66;3787:31;3773:55::o", - "linkReferences": {} - }, - "methodIdentifiers": { - "admin()": "f851a440", - "changeAdmin(address)": "8f283970", - "implementation()": "5c60da1b", - "upgradeTo(address)": "3659cfe6", - "upgradeToAndCall(address,bytes)": "4f1ef286" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementationContract\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"changeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract proxies FiatToken calls and enables FiatToken upgrades\",\"kind\":\"dev\",\"methods\":{\"admin()\":{\"returns\":{\"_0\":\"The address of the proxy admin.\"}},\"changeAdmin(address)\":{\"details\":\"Changes the admin of the proxy. Only the current admin can call this function.\",\"params\":{\"newAdmin\":\"Address to transfer proxy administration to.\"}},\"implementation()\":{\"returns\":{\"_0\":\"The address of the implementation.\"}},\"upgradeTo(address)\":{\"details\":\"Upgrade the backing implementation of the proxy. Only the admin can call this function.\",\"params\":{\"newImplementation\":\"Address of the new implementation.\"}},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the backing implementation of the proxy and call a function on the new implementation. This is useful to initialize the proxied contract.\",\"params\":{\"data\":\"Data to send as msg.data in the low level call. It should include the signature and the parameters of the function to be called, as described in https://solidity.readthedocs.io/en/develop/abi-spec.html#function-selector-and-argument-encoding.\",\"newImplementation\":\"Address of the new implementation.\"}}},\"title\":\"FiatTokenProxy\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/FiatTokenProxy/centre-tokens/contracts/v1/FiatTokenProxy.sol\":\"FiatTokenProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000000},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/FiatTokenProxy/centre-tokens/contracts/upgradeability/AdminUpgradeabilityProxy.sol\":{\"keccak256\":\"0xc93cb352d8b777ea96e743124af5386eeee32a9fdef0b2fbd89623988e66caad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0407b40cd936bdf6f6ae141fef3da54824a786affc9a459cd6cd83478043683\",\"dweb:/ipfs/QmQh2LjAVdU2HKc7w1fXxuPEfFvTcBifHiYzgdrZtDB9rk\"]},\"src/FiatTokenProxy/centre-tokens/contracts/upgradeability/Proxy.sol\":{\"keccak256\":\"0x6cc252e2b80c8ecaf6d29b950ba3591e4366caf06c3ccba89a8f9cbd2ee807e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d60d210ae173d21b90b989e69c50789fb09dc27ccb0736b41907471248ee3087\",\"dweb:/ipfs/QmQbijUGm48UDyqnefEJExWsxBViKj1M5TAWY82Jn6sJW7\"]},\"src/FiatTokenProxy/centre-tokens/contracts/upgradeability/UpgradeabilityProxy.sol\":{\"keccak256\":\"0x3086b8904fb474eb3d8d701f8ec6991796c5e8a7345ace9c3aabc140973f6c85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cde7d942bb42ee3fb09ed643751151bc192522a1dc9ccb5d28aff7fdadf8b9e6\",\"dweb:/ipfs/QmQBVbxYcZjRFH66R1ZByXx8rQym3Sx7jjFtFKRWhLXxdg\"]},\"src/FiatTokenProxy/centre-tokens/contracts/v1/FiatTokenProxy.sol\":{\"keccak256\":\"0x7e640892ac0fd6efafe4a9dc08cbc7ba5e825dafe8a6a8ebf717e7026b8fb69f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e84a985f3271652e16eec4df9be1829f042a98b5723db5b87aeeb8eadc9c207\",\"dweb:/ipfs/QmU4JWGMzd3rA64BiDVejhnapKRJG4WHLuw3g866hFPLTx\"]},\"src/FiatTokenProxy/openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.6.12+commit.27d51765" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "implementationContract", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "previousAdmin", - "type": "address", - "indexed": false - }, - { - "internalType": "address", - "name": "newAdmin", - "type": "address", - "indexed": false - } - ], - "type": "event", - "name": "AdminChanged", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "implementation", - "type": "address", - "indexed": false - } - ], - "type": "event", - "name": "Upgraded", - "anonymous": false - }, - { - "inputs": [], - "stateMutability": "payable", - "type": "fallback" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "admin", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "changeAdmin" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "implementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "upgradeTo" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function", - "name": "upgradeToAndCall" - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "admin()": { - "returns": { - "_0": "The address of the proxy admin." - } - }, - "changeAdmin(address)": { - "details": "Changes the admin of the proxy. Only the current admin can call this function.", - "params": { - "newAdmin": "Address to transfer proxy administration to." - } - }, - "implementation()": { - "returns": { - "_0": "The address of the implementation." - } - }, - "upgradeTo(address)": { - "details": "Upgrade the backing implementation of the proxy. Only the admin can call this function.", - "params": { - "newImplementation": "Address of the new implementation." - } - }, - "upgradeToAndCall(address,bytes)": { - "details": "Upgrade the backing implementation of the proxy and call a function on the new implementation. This is useful to initialize the proxied contract.", - "params": { - "data": "Data to send as msg.data in the low level call. It should include the signature and the parameters of the function to be called, as described in https://solidity.readthedocs.io/en/develop/abi-spec.html#function-selector-and-argument-encoding.", - "newImplementation": "Address of the new implementation." - } - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } - }, - "settings": { - "remappings": [ - "ds-test/=lib/forge-std/lib/ds-test/src/", - "forge-std/=lib/forge-std/src/" - ], - "optimizer": { - "enabled": true, - "runs": 10000000 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "src/FiatTokenProxy/centre-tokens/contracts/v1/FiatTokenProxy.sol": "FiatTokenProxy" - }, - "libraries": {} - }, - "sources": { - "src/FiatTokenProxy/centre-tokens/contracts/upgradeability/AdminUpgradeabilityProxy.sol": { - "keccak256": "0xc93cb352d8b777ea96e743124af5386eeee32a9fdef0b2fbd89623988e66caad", - "urls": [ - "bzz-raw://d0407b40cd936bdf6f6ae141fef3da54824a786affc9a459cd6cd83478043683", - "dweb:/ipfs/QmQh2LjAVdU2HKc7w1fXxuPEfFvTcBifHiYzgdrZtDB9rk" - ], - "license": "MIT" - }, - "src/FiatTokenProxy/centre-tokens/contracts/upgradeability/Proxy.sol": { - "keccak256": "0x6cc252e2b80c8ecaf6d29b950ba3591e4366caf06c3ccba89a8f9cbd2ee807e3", - "urls": [ - "bzz-raw://d60d210ae173d21b90b989e69c50789fb09dc27ccb0736b41907471248ee3087", - "dweb:/ipfs/QmQbijUGm48UDyqnefEJExWsxBViKj1M5TAWY82Jn6sJW7" - ], - "license": "MIT" - }, - "src/FiatTokenProxy/centre-tokens/contracts/upgradeability/UpgradeabilityProxy.sol": { - "keccak256": "0x3086b8904fb474eb3d8d701f8ec6991796c5e8a7345ace9c3aabc140973f6c85", - "urls": [ - "bzz-raw://cde7d942bb42ee3fb09ed643751151bc192522a1dc9ccb5d28aff7fdadf8b9e6", - "dweb:/ipfs/QmQBVbxYcZjRFH66R1ZByXx8rQym3Sx7jjFtFKRWhLXxdg" - ], - "license": "MIT" - }, - "src/FiatTokenProxy/centre-tokens/contracts/v1/FiatTokenProxy.sol": { - "keccak256": "0x7e640892ac0fd6efafe4a9dc08cbc7ba5e825dafe8a6a8ebf717e7026b8fb69f", - "urls": [ - "bzz-raw://2e84a985f3271652e16eec4df9be1829f042a98b5723db5b87aeeb8eadc9c207", - "dweb:/ipfs/QmU4JWGMzd3rA64BiDVejhnapKRJG4WHLuw3g866hFPLTx" - ], - "license": "MIT" - }, - "src/FiatTokenProxy/openzeppelin/contracts/utils/Address.sol": { - "keccak256": "0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498", - "urls": [ - "bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff", - "dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS" - ], - "license": "MIT" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "src/FiatTokenProxy/centre-tokens/contracts/v1/FiatTokenProxy.sol", - "id": 40713, - "exportedSymbols": { - "FiatTokenProxy": [40712] - }, - "nodeType": "SourceUnit", - "src": "1154:414:20", - "nodes": [ - { - "id": 40697, - "nodeType": "PragmaDirective", - "src": "1154:23:20", - "nodes": [], - "literals": ["solidity", "0.6", ".12"] - }, - { - "id": 40699, - "nodeType": "ImportDirective", - "src": "1179:94:20", - "nodes": [], - "absolutePath": "src/FiatTokenProxy/centre-tokens/contracts/upgradeability/AdminUpgradeabilityProxy.sol", - "file": "../upgradeability/AdminUpgradeabilityProxy.sol", - "scope": 40713, - "sourceUnit": 40566, - "symbolAliases": [ - { - "foreign": { - "argumentTypes": null, - "id": 40698, - "name": "AdminUpgradeabilityProxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": null, - "src": "1192:24:20", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - }, - "local": null - } - ], - "unitAlias": "" - }, - { - "id": 40712, - "nodeType": "ContractDefinition", - "src": "1385:182:20", - "nodes": [ - { - "id": 40711, - "nodeType": "FunctionDefinition", - "src": "1443:122:20", - "nodes": [], - "body": { - "id": 40710, - "nodeType": "Block", - "src": "1563:2:20", - "nodes": [], - "statements": [] - }, - "documentation": null, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 40707, - "name": "implementationContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 40704, - "src": "1535:22:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 40708, - "modifierName": { - "argumentTypes": null, - "id": 40706, - "name": "AdminUpgradeabilityProxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 40565, - "src": "1510:24:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AdminUpgradeabilityProxy_$40565_$", - "typeString": "type(contract AdminUpgradeabilityProxy)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1510:48:20" - } - ], - "name": "", - "overrides": null, - "parameters": { - "id": 40705, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 40704, - "mutability": "mutable", - "name": "implementationContract", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 40711, - "src": "1455:30:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 40703, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1455:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1454:32:20" - }, - "returnParameters": { - "id": 40709, - "nodeType": "ParameterList", - "parameters": [], - "src": "1563:0:20" - }, - "scope": 40712, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 40701, - "name": "AdminUpgradeabilityProxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 40565, - "src": "1412:24:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AdminUpgradeabilityProxy_$40565", - "typeString": "contract AdminUpgradeabilityProxy" - } - }, - "id": 40702, - "nodeType": "InheritanceSpecifier", - "src": "1412:24:20" - } - ], - "contractDependencies": [40565, 40609, 40695], - "contractKind": "contract", - "documentation": { - "id": 40700, - "nodeType": "StructuredDocumentation", - "src": "1275:109:20", - "text": " @title FiatTokenProxy\n @dev This contract proxies FiatToken calls and enables FiatToken upgrades" - }, - "fullyImplemented": true, - "linearizedBaseContracts": [40712, 40565, 40695, 40609], - "name": "FiatTokenProxy", - "scope": 40713 - } - ], - "license": "MIT" - }, - "id": 20 -} diff --git a/packages/protocol/contracts/compiled/FiatTokenV2_1.json b/packages/protocol/contracts/compiled/FiatTokenV2_1.json deleted file mode 100644 index ecde2cf6579..00000000000 --- a/packages/protocol/contracts/compiled/FiatTokenV2_1.json +++ /dev/null @@ -1,3852 +0,0 @@ -{ - "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": "lostAndFound", - "type": "address" - } - ], - "name": "initializeV2_1", - "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" - }, - { - "inputs": [], - "name": "version", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": { - "object": "0x60806040526001805460ff60a01b191690556000600b553480156200002357600080fd5b506200002f3362000035565b62000057565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6153eb80620000676000396000f3fe608060405234801561001057600080fd5b50600436106103365760003560e01c80637f2eecc3116101b2578063b2118a8d116100f9578063e3ee160e116100a2578063ef55bec61161007c578063ef55bec614610cc1578063f2fde38b14610d2d578063f9f92be414610d60578063fe575a8714610d9357610336565b8063e3ee160e14610c14578063e5a6b10f14610c80578063e94a010214610c8857610336565b8063d608ea64116100d3578063d608ea6414610b61578063d916948714610bd1578063dd62ed3e14610bd957610336565b8063b2118a8d14610ab8578063bd10243014610afb578063d505accf14610b0357610336565b8063a0cc6a681161015b578063aa20e1e411610135578063aa20e1e414610a1f578063aa271e1a14610a52578063ad38bf2214610a8557610336565b8063a0cc6a68146109a5578063a457c2d7146109ad578063a9059cbb146109e657610336565b80638da5cb5b1161018c5780638da5cb5b1461098d57806395d89b41146109955780639fd0506d1461099d57610336565b80637f2eecc31461094a5780638456cb59146109525780638a6db9c31461095a57610336565b80633644e515116102815780634e44d9561161022a5780635a049a70116102045780635a049a701461088e5780635c975abb146108dc57806370a08231146108e45780637ecebe001461091757610336565b80634e44d9561461081a57806354fd4d5014610853578063554bab3c1461085b57610336565b80633f4ba83a1161025b5780633f4ba83a146107bc57806340c10f19146107c457806342966c68146107fd57610336565b80633644e5151461077357806338a631831461077b578063395093511461078357610336565b80632fc81e09116102e3578063313ce567116102bd578063313ce567146105385780633357162b1461055657806335d99f351461074257610336565b80632fc81e09146104ca5780633092afd5146104fd57806330adf81f1461053057610336565b80631a895266116103145780631a8952661461041f57806323b872dd146104545780632ab600451461049757610336565b806306fdde031461033b578063095ea7b3146103b857806318160ddd14610405575b600080fd5b610343610dc6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561037d578181015183820152602001610365565b50505050905090810190601f1680156103aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f1600480360360408110156103ce57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e72565b604080519115158252519081900360200190f35b61040d610fff565b60408051918252519081900360200190f35b6104526004803603602081101561043557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611005565b005b6103f16004803603606081101561046a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356110e9565b610452600480360360208110156104ad57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113ef565b610452600480360360208110156104e057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611550565b6103f16004803603602081101561051357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166115ce565b61040d6116c7565b6105406116eb565b6040805160ff9092168252519081900360200190f35b610452600480360361010081101561056d57600080fd5b81019060208101813564010000000081111561058857600080fd5b82018360208201111561059a57600080fd5b803590602001918460018302840111640100000000831117156105bc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561060f57600080fd5b82018360208201111561062157600080fd5b8035906020019184600183028401116401000000008311171561064357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561069657600080fd5b8201836020820111156106a857600080fd5b803590602001918460018302840111640100000000831117156106ca57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050813560ff16925050602081013573ffffffffffffffffffffffffffffffffffffffff908116916040810135821691606082013581169160800135166116f4565b61074a611a36565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61040d611a52565b61074a611a58565b6103f16004803603604081101561079957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611a74565b610452611bf6565b6103f1600480360360408110156107da57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611cb9565b6104526004803603602081101561081357600080fd5b50356120ee565b6103f16004803603604081101561083057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356123a8565b61034361253b565b6104526004803603602081101561087157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612572565b610452600480360360a08110156108a457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060ff60408201351690606081013590608001356126d9565b6103f1612777565b61040d600480360360208110156108fa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612798565b61040d6004803603602081101561092d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166127c0565b61040d6127e8565b61045261280c565b61040d6004803603602081101561097057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166128e6565b61074a61290e565b61034361292a565b61074a6129a3565b61040d6129bf565b6103f1600480360360408110156109c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356129e3565b6103f1600480360360408110156109fc57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135612b65565b61045260048036036020811015610a3557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612ce7565b6103f160048036036020811015610a6857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612e4e565b61045260048036036020811015610a9b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612e79565b61045260048036036060811015610ace57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135612fe0565b61074a613076565b610452600480360360e0811015610b1957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135613092565b61045260048036036020811015610b7757600080fd5b810190602081018135640100000000811115610b9257600080fd5b820183602082011115610ba457600080fd5b80359060200191846001830284011164010000000083111715610bc657600080fd5b509092509050613238565b61040d613321565b61040d60048036036040811015610bef57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516613345565b6104526004803603610120811015610c2b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e081013590610100013561337d565b610343613527565b6103f160048036036040811015610c9e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356135a0565b6104526004803603610120811015610cd857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e08101359061010001356135d8565b61045260048036036020811015610d4357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613775565b61045260048036036020811015610d7657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166138c8565b6103f160048036036020811015610da957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166139af565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e6a5780601f10610e3f57610100808354040283529160200191610e6a565b820191906000526020600020905b815481529060010190602001808311610e4d57829003601f168201915b505050505081565b60015460009074010000000000000000000000000000000000000000900460ff1615610eff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615610f68576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020526040902054849060ff1615610fe9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b610ff43386866139da565b506001949350505050565b600b5490565b60025473ffffffffffffffffffffffffffffffffffffffff163314611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061506b602c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526003602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f117e3210bb9aa7d9baff172026820255c6f6c30ba8999d1c2fd88e2848137c4e9190a250565b60015460009074010000000000000000000000000000000000000000900460ff161561117657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff16156111df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516600090815260036020526040902054859060ff1615611260576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516600090815260036020526040902054859060ff16156112e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a6020908152604080832033845290915290205485111561136a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806151316028913960400191505060405180910390fd5b611375878787613b21565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a602090815260408083203384529091529020546113b09086613d4c565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600a60209081526040808320338452909152902055600193505050509392505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461147557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166114e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614fc9602a913960400191505060405180910390fd5b600e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b60125460ff1660011461156257600080fd5b30600090815260096020526040902054801561158357611583308383613b21565b505030600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00908116600117909155601280549091166002179055565b60085460009073ffffffffffffffffffffffffffffffffffffffff163314611641576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806150426029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600d909152808220829055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a2506001919050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60065460ff1681565b60085474010000000000000000000000000000000000000000900460ff1615611768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806151ac602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166117d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806150de602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316611840576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614fa06029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166118ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180615159602e913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116611918576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806152bf6028913960400191505060405180910390fd5b875161192b9060049060208b0190614d50565b50865161193f9060059060208a0190614d50565b508551611953906007906020890190614d50565b50600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff8716179055600880547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff87811691909117909255600180548216868416179055600280549091169184169190911790556119ed81613d95565b5050600880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b600e5473ffffffffffffffffffffffffffffffffffffffff1690565b60015460009074010000000000000000000000000000000000000000900460ff1615611b0157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615611b6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020526040902054849060ff1615611beb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b610ff4338686613ddc565b60015473ffffffffffffffffffffffffffffffffffffffff163314611c66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061524d6022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60015460009074010000000000000000000000000000000000000000900460ff1615611d4657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff16611dae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806150bd6021913960400191505060405180910390fd5b3360008181526003602052604090205460ff1615611e17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020526040902054849060ff1615611e98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516611f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614f0f6023913960400191505060405180910390fd5b60008411611f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614ff36029913960400191505060405180910390fd5b336000908152600d602052604090205480851115611fc6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061521f602e913960400191505060405180910390fd5b600b54611fd39086613e26565b600b5573ffffffffffffffffffffffffffffffffffffffff86166000908152600960205260409020546120069086613e26565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600960205260409020556120368186613d4c565b336000818152600d6020908152604091829020939093558051888152905173ffffffffffffffffffffffffffffffffffffffff8a16937fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f8928290030190a360408051868152905173ffffffffffffffffffffffffffffffffffffffff8816916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600195945050505050565b60015474010000000000000000000000000000000000000000900460ff161561217857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff166121e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806150bd6021913960400191505060405180910390fd5b3360008181526003602052604090205460ff1615612249576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b33600090815260096020526040902054826122af576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614ee66029913960400191505060405180910390fd5b82811015612308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806150976026913960400191505060405180910390fd5b600b546123159084613d4c565b600b556123228184613d4c565b33600081815260096020908152604091829020939093558051868152905191927fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca592918290030190a260408051848152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050565b60015460009074010000000000000000000000000000000000000000900460ff161561243557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b60085473ffffffffffffffffffffffffffffffffffffffff1633146124a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806150426029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600d825291829020859055815185815291517f46980fca912ef9bcdbd36877427b6b90e860769f604e89c0e67720cece530d209281900390910190a250600192915050565b60408051808201909152600181527f3200000000000000000000000000000000000000000000000000000000000000602082015290565b60005473ffffffffffffffffffffffffffffffffffffffff1633146125f857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612664576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614e936028913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fb80482a293ca2e013eda8683c9bd7fc8347cfdaeea5ede58cba46df502c2a60490600090a250565b60015474010000000000000000000000000000000000000000900460ff161561276357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b6127708585858585613e9a565b5050505050565b60015474010000000000000000000000000000000000000000900460ff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526009602052604090205490565b73ffffffffffffffffffffffffffffffffffffffff1660009081526011602052604090205490565b7fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de881565b60015473ffffffffffffffffffffffffffffffffffffffff16331461287c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061524d6022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b73ffffffffffffffffffffffffffffffffffffffff166000908152600d602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e6a5780601f10610e3f57610100808354040283529160200191610e6a565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b60015460009074010000000000000000000000000000000000000000900460ff1615612a7057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615612ad9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020526040902054849060ff1615612b5a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b610ff4338686614023565b60015460009074010000000000000000000000000000000000000000900460ff1615612bf257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615612c5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020526040902054849060ff1615612cdc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b610ff4338686613b21565b60005473ffffffffffffffffffffffffffffffffffffffff163314612d6d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612dd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806150de602f913960400191505060405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fdb66dfa9c6b8f5226fe9aac7e51897ae8ee94ac31dc70bb6c9900b2574b707e690600090a250565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205460ff1690565b60005473ffffffffffffffffffffffffffffffffffffffff163314612eff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612f6b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806153156032913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fc67398012c111ce95ecb7429b933096c977380ee6c421175a71a4a4c6c88c06e90600090a250565b600e5473ffffffffffffffffffffffffffffffffffffffff163314613050576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061510d6024913960400191505060405180910390fd5b61307173ffffffffffffffffffffffffffffffffffffffff8416838361407f565b505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015474010000000000000000000000000000000000000000900460ff161561311c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8716600090815260036020526040902054879060ff161561319d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8716600090815260036020526040902054879060ff161561321e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b61322d8989898989898961410c565b505050505050505050565b60085474010000000000000000000000000000000000000000900460ff168015613265575060125460ff16155b61326e57600080fd5b61327a60048383614dce565b506132ef82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600181527f3200000000000000000000000000000000000000000000000000000000000000602082015291506142b59050565b600f555050601280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b7f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742981565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600a6020908152604080832093909416825291909152205490565b60015474010000000000000000000000000000000000000000900460ff161561340757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260036020526040902054899060ff1615613488576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260036020526040902054899060ff1615613509576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b61351a8b8b8b8b8b8b8b8b8b614327565b5050505050505050505050565b6007805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e6a5780601f10610e3f57610100808354040283529160200191610e6a565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152601060209081526040808320938352929052205460ff1690565b60015474010000000000000000000000000000000000000000900460ff161561366257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260036020526040902054899060ff16156136e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260036020526040902054899060ff1615613764576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b61351a8b8b8b8b8b8b8b8b8b614469565b60005473ffffffffffffffffffffffffffffffffffffffff1633146137fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116613867576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614f586026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a16138c581613d95565b50565b60025473ffffffffffffffffffffffffffffffffffffffff163314613938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061506b602c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526003602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b8559190a250565b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff8316613a46576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806151fb6024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216613ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614f7e6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8084166000818152600a6020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316613b8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151d66025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216613bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614e706023913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260096020526040902054811115613c77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061501c6026913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260096020526040902054613ca79082613d4c565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600960205260408082209390935590841681522054613ce39082613e26565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526009602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000613d8e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614576565b9392505050565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600a60209081526040808320938616835292905220546130719084908490613e219085613e26565b6139da565b600082820183811015613d8e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b613ea48585614627565b604080517f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a1597429602082015273ffffffffffffffffffffffffffffffffffffffff87168183018190526060828101889052835180840390910181526080909201909252600f54909190613f1890868686866146b5565b73ffffffffffffffffffffffffffffffffffffffff1614613f9a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8616600081815260106020908152604080832089845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518792917f1cdd46ff242716cdaa72d159d339a485b3438398348d68f09d7c8c0a59353d8191a3505050505050565b6130718383613e21846040518060600160405280602581526020016153916025913973ffffffffffffffffffffffffffffffffffffffff808a166000908152600a60209081526040808320938c16835292905220549190614576565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052613071908490614727565b4284101561417b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a207065726d697420697320657870697265640000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff80881660008181526011602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c992810192909252818301849052938a1660608201526080810189905260a081019390935260c08084018890528151808503909101815260e09093019052600f5461421e90868686866146b5565b73ffffffffffffffffffffffffffffffffffffffff16146142a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f454950323631323a20696e76616c6964207369676e6174757265000000000000604482015290519081900360640190fd5b6142ab8888886139da565b5050505050505050565b8151602092830120815191830191909120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818601528082019390935260608301919091524660808301523060a0808401919091528151808403909101815260c09092019052805191012090565b614333898588886147ff565b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a2267602082015273ffffffffffffffffffffffffffffffffffffffff808c16828401819052908b166060830152608082018a905260a0820189905260c0820188905260e080830188905283518084039091018152610100909201909252600f549091906143c690868686866146b5565b73ffffffffffffffffffffffffffffffffffffffff161461444857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b6144528a866148bf565b61445d8a8a8a613b21565b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff881633146144d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151876025913960400191505060405180910390fd5b6144e3898588886147ff565b604080517fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de8602082015273ffffffffffffffffffffffffffffffffffffffff808c16828401819052908b166060830152608082018a905260a0820189905260c0820188905260e080830188905283518084039091018152610100909201909252600f549091906143c690868686866146b5565b6000818484111561461f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156145e45781810151838201526020016145cc565b50505050905090810190601f1680156146115780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260106020908152604080832084845290915290205460ff16156146b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806152e7602e913960400191505060405180910390fd5b5050565b8051602080830191909120604080517f19010000000000000000000000000000000000000000000000000000000000008185015260228101899052604280820193909352815180820390930183526062019052805191012060009061471c81878787614944565b979650505050505050565b6060614789826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16614b419092919063ffffffff16565b805190915015613071578080602001905160208110156147a857600080fd5b5051613071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615295602a913960400191505060405180910390fd5b814211614857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180614ebb602b913960400191505060405180910390fd5b8042106148af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061536c6025913960400191505060405180910390fd5b6148b98484614627565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260106020908152604080832085845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518392917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a35050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156149bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061526f6026913960400191505060405180910390fd5b8360ff16601b141580156149d757508360ff16601c14155b15614a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614f326026913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015614a89573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116614b3657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f45435265636f7665723a20696e76616c6964207369676e617475726500000000604482015290519081900360640190fd5b90505b949350505050565b6060614b3984846000856060614b5685614d17565b614bc157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310614c2b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101614bee565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614c8d576040519150601f19603f3d011682016040523d82523d6000602084013e614c92565b606091505b50915091508115614ca6579150614b399050565b805115614cb65780518082602001fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528651602484015286518793919283926044019190850190808383600083156145e45781810151838201526020016145cc565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590614b39575050151592915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614d9157805160ff1916838001178555614dbe565b82800160010185558215614dbe579182015b82811115614dbe578251825591602001919060010190614da3565b50614dca929150614e5a565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614e2d578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555614dbe565b82800160010185558215614dbe579182015b82811115614dbe578235825591602001919060010190614e3f565b5b80821115614dca5760008155600101614e5b56fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735061757361626c653a206e65772070617573657220697320746865207a65726f206164647265737346696174546f6b656e56323a20617574686f72697a6174696f6e206973206e6f74207965742076616c696446696174546f6b656e3a206275726e20616d6f756e74206e6f742067726561746572207468616e203046696174546f6b656e3a206d696e7420746f20746865207a65726f206164647265737345435265636f7665723a20696e76616c6964207369676e6174757265202776272076616c75654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737346696174546f6b656e3a206e65772070617573657220697320746865207a65726f2061646472657373526573637561626c653a206e6577207265736375657220697320746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e74206e6f742067726561746572207468616e203045524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f7420746865206d61737465724d696e746572426c61636b6c69737461626c653a2063616c6c6572206973206e6f742074686520626c61636b6c697374657246696174546f6b656e3a206275726e20616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f742061206d696e74657246696174546f6b656e3a206e6577206d61737465724d696e74657220697320746865207a65726f2061646472657373526573637561626c653a2063616c6c6572206973206e6f7420746865207265736375657245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636546696174546f6b656e3a206e657720626c61636b6c697374657220697320746865207a65726f206164647265737346696174546f6b656e56323a2063616c6c6572206d7573742062652074686520706179656546696174546f6b656e3a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e742065786365656473206d696e746572416c6c6f77616e63655061757361626c653a2063616c6c6572206973206e6f74207468652070617573657245435265636f7665723a20696e76616c6964207369676e6174757265202773272076616c75655361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656446696174546f6b656e3a206e6577206f776e657220697320746865207a65726f206164647265737346696174546f6b656e56323a20617574686f72697a6174696f6e2069732075736564206f722063616e63656c6564426c61636b6c69737461626c653a206e657720626c61636b6c697374657220697320746865207a65726f2061646472657373426c61636b6c69737461626c653a206163636f756e7420697320626c61636b6c697374656446696174546f6b656e56323a20617574686f72697a6174696f6e206973206578706972656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203ccc7055acd0820f4e7d094fa75ff2d3b0c27bdd446079aeef6bd6d02c56938e64736f6c634300060c0033", - "sourceMap": "1362:764:41:-:0;;;2106:26:35;;;-1:-1:-1;2106:26:35;;;-1:-1:-1;1940:33:33;;1362:764:41;;;;;;;;;-1:-1:-1;2223:20:34;2232:10;2223:8;:20::i;:::-;1362:764:41;;2493:79:34;2548:6;:17;;-1:-1:-1;2548:17:34;-1:-1:-1;2548:17:34;;;;;;;;;;2493:79::o;1362:764:41:-;;;;;;;", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106103365760003560e01c80637f2eecc3116101b2578063b2118a8d116100f9578063e3ee160e116100a2578063ef55bec61161007c578063ef55bec614610cc1578063f2fde38b14610d2d578063f9f92be414610d60578063fe575a8714610d9357610336565b8063e3ee160e14610c14578063e5a6b10f14610c80578063e94a010214610c8857610336565b8063d608ea64116100d3578063d608ea6414610b61578063d916948714610bd1578063dd62ed3e14610bd957610336565b8063b2118a8d14610ab8578063bd10243014610afb578063d505accf14610b0357610336565b8063a0cc6a681161015b578063aa20e1e411610135578063aa20e1e414610a1f578063aa271e1a14610a52578063ad38bf2214610a8557610336565b8063a0cc6a68146109a5578063a457c2d7146109ad578063a9059cbb146109e657610336565b80638da5cb5b1161018c5780638da5cb5b1461098d57806395d89b41146109955780639fd0506d1461099d57610336565b80637f2eecc31461094a5780638456cb59146109525780638a6db9c31461095a57610336565b80633644e515116102815780634e44d9561161022a5780635a049a70116102045780635a049a701461088e5780635c975abb146108dc57806370a08231146108e45780637ecebe001461091757610336565b80634e44d9561461081a57806354fd4d5014610853578063554bab3c1461085b57610336565b80633f4ba83a1161025b5780633f4ba83a146107bc57806340c10f19146107c457806342966c68146107fd57610336565b80633644e5151461077357806338a631831461077b578063395093511461078357610336565b80632fc81e09116102e3578063313ce567116102bd578063313ce567146105385780633357162b1461055657806335d99f351461074257610336565b80632fc81e09146104ca5780633092afd5146104fd57806330adf81f1461053057610336565b80631a895266116103145780631a8952661461041f57806323b872dd146104545780632ab600451461049757610336565b806306fdde031461033b578063095ea7b3146103b857806318160ddd14610405575b600080fd5b610343610dc6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561037d578181015183820152602001610365565b50505050905090810190601f1680156103aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f1600480360360408110156103ce57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e72565b604080519115158252519081900360200190f35b61040d610fff565b60408051918252519081900360200190f35b6104526004803603602081101561043557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611005565b005b6103f16004803603606081101561046a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356110e9565b610452600480360360208110156104ad57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113ef565b610452600480360360208110156104e057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611550565b6103f16004803603602081101561051357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166115ce565b61040d6116c7565b6105406116eb565b6040805160ff9092168252519081900360200190f35b610452600480360361010081101561056d57600080fd5b81019060208101813564010000000081111561058857600080fd5b82018360208201111561059a57600080fd5b803590602001918460018302840111640100000000831117156105bc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561060f57600080fd5b82018360208201111561062157600080fd5b8035906020019184600183028401116401000000008311171561064357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561069657600080fd5b8201836020820111156106a857600080fd5b803590602001918460018302840111640100000000831117156106ca57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050813560ff16925050602081013573ffffffffffffffffffffffffffffffffffffffff908116916040810135821691606082013581169160800135166116f4565b61074a611a36565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61040d611a52565b61074a611a58565b6103f16004803603604081101561079957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611a74565b610452611bf6565b6103f1600480360360408110156107da57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611cb9565b6104526004803603602081101561081357600080fd5b50356120ee565b6103f16004803603604081101561083057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356123a8565b61034361253b565b6104526004803603602081101561087157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612572565b610452600480360360a08110156108a457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060ff60408201351690606081013590608001356126d9565b6103f1612777565b61040d600480360360208110156108fa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612798565b61040d6004803603602081101561092d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166127c0565b61040d6127e8565b61045261280c565b61040d6004803603602081101561097057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166128e6565b61074a61290e565b61034361292a565b61074a6129a3565b61040d6129bf565b6103f1600480360360408110156109c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356129e3565b6103f1600480360360408110156109fc57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135612b65565b61045260048036036020811015610a3557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612ce7565b6103f160048036036020811015610a6857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612e4e565b61045260048036036020811015610a9b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612e79565b61045260048036036060811015610ace57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135612fe0565b61074a613076565b610452600480360360e0811015610b1957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135613092565b61045260048036036020811015610b7757600080fd5b810190602081018135640100000000811115610b9257600080fd5b820183602082011115610ba457600080fd5b80359060200191846001830284011164010000000083111715610bc657600080fd5b509092509050613238565b61040d613321565b61040d60048036036040811015610bef57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516613345565b6104526004803603610120811015610c2b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e081013590610100013561337d565b610343613527565b6103f160048036036040811015610c9e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356135a0565b6104526004803603610120811015610cd857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e08101359061010001356135d8565b61045260048036036020811015610d4357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613775565b61045260048036036020811015610d7657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166138c8565b6103f160048036036020811015610da957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166139af565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e6a5780601f10610e3f57610100808354040283529160200191610e6a565b820191906000526020600020905b815481529060010190602001808311610e4d57829003601f168201915b505050505081565b60015460009074010000000000000000000000000000000000000000900460ff1615610eff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615610f68576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020526040902054849060ff1615610fe9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b610ff43386866139da565b506001949350505050565b600b5490565b60025473ffffffffffffffffffffffffffffffffffffffff163314611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061506b602c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526003602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f117e3210bb9aa7d9baff172026820255c6f6c30ba8999d1c2fd88e2848137c4e9190a250565b60015460009074010000000000000000000000000000000000000000900460ff161561117657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff16156111df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516600090815260036020526040902054859060ff1615611260576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516600090815260036020526040902054859060ff16156112e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a6020908152604080832033845290915290205485111561136a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806151316028913960400191505060405180910390fd5b611375878787613b21565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a602090815260408083203384529091529020546113b09086613d4c565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600a60209081526040808320338452909152902055600193505050509392505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461147557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166114e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614fc9602a913960400191505060405180910390fd5b600e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b60125460ff1660011461156257600080fd5b30600090815260096020526040902054801561158357611583308383613b21565b505030600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00908116600117909155601280549091166002179055565b60085460009073ffffffffffffffffffffffffffffffffffffffff163314611641576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806150426029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600d909152808220829055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a2506001919050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60065460ff1681565b60085474010000000000000000000000000000000000000000900460ff1615611768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806151ac602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166117d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806150de602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316611840576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614fa06029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166118ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180615159602e913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116611918576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806152bf6028913960400191505060405180910390fd5b875161192b9060049060208b0190614d50565b50865161193f9060059060208a0190614d50565b508551611953906007906020890190614d50565b50600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff8716179055600880547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff87811691909117909255600180548216868416179055600280549091169184169190911790556119ed81613d95565b5050600880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b600e5473ffffffffffffffffffffffffffffffffffffffff1690565b60015460009074010000000000000000000000000000000000000000900460ff1615611b0157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615611b6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020526040902054849060ff1615611beb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b610ff4338686613ddc565b60015473ffffffffffffffffffffffffffffffffffffffff163314611c66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061524d6022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60015460009074010000000000000000000000000000000000000000900460ff1615611d4657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff16611dae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806150bd6021913960400191505060405180910390fd5b3360008181526003602052604090205460ff1615611e17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020526040902054849060ff1615611e98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516611f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614f0f6023913960400191505060405180910390fd5b60008411611f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614ff36029913960400191505060405180910390fd5b336000908152600d602052604090205480851115611fc6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061521f602e913960400191505060405180910390fd5b600b54611fd39086613e26565b600b5573ffffffffffffffffffffffffffffffffffffffff86166000908152600960205260409020546120069086613e26565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600960205260409020556120368186613d4c565b336000818152600d6020908152604091829020939093558051888152905173ffffffffffffffffffffffffffffffffffffffff8a16937fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f8928290030190a360408051868152905173ffffffffffffffffffffffffffffffffffffffff8816916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600195945050505050565b60015474010000000000000000000000000000000000000000900460ff161561217857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff166121e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806150bd6021913960400191505060405180910390fd5b3360008181526003602052604090205460ff1615612249576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b33600090815260096020526040902054826122af576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614ee66029913960400191505060405180910390fd5b82811015612308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806150976026913960400191505060405180910390fd5b600b546123159084613d4c565b600b556123228184613d4c565b33600081815260096020908152604091829020939093558051868152905191927fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca592918290030190a260408051848152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050565b60015460009074010000000000000000000000000000000000000000900460ff161561243557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b60085473ffffffffffffffffffffffffffffffffffffffff1633146124a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806150426029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600d825291829020859055815185815291517f46980fca912ef9bcdbd36877427b6b90e860769f604e89c0e67720cece530d209281900390910190a250600192915050565b60408051808201909152600181527f3200000000000000000000000000000000000000000000000000000000000000602082015290565b60005473ffffffffffffffffffffffffffffffffffffffff1633146125f857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612664576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614e936028913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fb80482a293ca2e013eda8683c9bd7fc8347cfdaeea5ede58cba46df502c2a60490600090a250565b60015474010000000000000000000000000000000000000000900460ff161561276357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b6127708585858585613e9a565b5050505050565b60015474010000000000000000000000000000000000000000900460ff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526009602052604090205490565b73ffffffffffffffffffffffffffffffffffffffff1660009081526011602052604090205490565b7fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de881565b60015473ffffffffffffffffffffffffffffffffffffffff16331461287c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061524d6022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b73ffffffffffffffffffffffffffffffffffffffff166000908152600d602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e6a5780601f10610e3f57610100808354040283529160200191610e6a565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b60015460009074010000000000000000000000000000000000000000900460ff1615612a7057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615612ad9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020526040902054849060ff1615612b5a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b610ff4338686614023565b60015460009074010000000000000000000000000000000000000000900460ff1615612bf257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615612c5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020526040902054849060ff1615612cdc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b610ff4338686613b21565b60005473ffffffffffffffffffffffffffffffffffffffff163314612d6d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612dd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806150de602f913960400191505060405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fdb66dfa9c6b8f5226fe9aac7e51897ae8ee94ac31dc70bb6c9900b2574b707e690600090a250565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205460ff1690565b60005473ffffffffffffffffffffffffffffffffffffffff163314612eff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612f6b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806153156032913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fc67398012c111ce95ecb7429b933096c977380ee6c421175a71a4a4c6c88c06e90600090a250565b600e5473ffffffffffffffffffffffffffffffffffffffff163314613050576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061510d6024913960400191505060405180910390fd5b61307173ffffffffffffffffffffffffffffffffffffffff8416838361407f565b505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015474010000000000000000000000000000000000000000900460ff161561311c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8716600090815260036020526040902054879060ff161561319d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8716600090815260036020526040902054879060ff161561321e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b61322d8989898989898961410c565b505050505050505050565b60085474010000000000000000000000000000000000000000900460ff168015613265575060125460ff16155b61326e57600080fd5b61327a60048383614dce565b506132ef82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600181527f3200000000000000000000000000000000000000000000000000000000000000602082015291506142b59050565b600f555050601280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b7f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742981565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600a6020908152604080832093909416825291909152205490565b60015474010000000000000000000000000000000000000000900460ff161561340757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260036020526040902054899060ff1615613488576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260036020526040902054899060ff1615613509576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b61351a8b8b8b8b8b8b8b8b8b614327565b5050505050505050505050565b6007805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e6a5780601f10610e3f57610100808354040283529160200191610e6a565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152601060209081526040808320938352929052205460ff1690565b60015474010000000000000000000000000000000000000000900460ff161561366257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260036020526040902054899060ff16156136e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260036020526040902054899060ff1615613764576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806153476025913960400191505060405180910390fd5b61351a8b8b8b8b8b8b8b8b8b614469565b60005473ffffffffffffffffffffffffffffffffffffffff1633146137fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116613867576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614f586026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a16138c581613d95565b50565b60025473ffffffffffffffffffffffffffffffffffffffff163314613938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061506b602c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526003602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b8559190a250565b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff8316613a46576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806151fb6024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216613ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614f7e6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8084166000818152600a6020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316613b8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151d66025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216613bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614e706023913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260096020526040902054811115613c77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061501c6026913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260096020526040902054613ca79082613d4c565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600960205260408082209390935590841681522054613ce39082613e26565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526009602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000613d8e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614576565b9392505050565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600a60209081526040808320938616835292905220546130719084908490613e219085613e26565b6139da565b600082820183811015613d8e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b613ea48585614627565b604080517f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a1597429602082015273ffffffffffffffffffffffffffffffffffffffff87168183018190526060828101889052835180840390910181526080909201909252600f54909190613f1890868686866146b5565b73ffffffffffffffffffffffffffffffffffffffff1614613f9a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8616600081815260106020908152604080832089845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518792917f1cdd46ff242716cdaa72d159d339a485b3438398348d68f09d7c8c0a59353d8191a3505050505050565b6130718383613e21846040518060600160405280602581526020016153916025913973ffffffffffffffffffffffffffffffffffffffff808a166000908152600a60209081526040808320938c16835292905220549190614576565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052613071908490614727565b4284101561417b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a207065726d697420697320657870697265640000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff80881660008181526011602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c992810192909252818301849052938a1660608201526080810189905260a081019390935260c08084018890528151808503909101815260e09093019052600f5461421e90868686866146b5565b73ffffffffffffffffffffffffffffffffffffffff16146142a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f454950323631323a20696e76616c6964207369676e6174757265000000000000604482015290519081900360640190fd5b6142ab8888886139da565b5050505050505050565b8151602092830120815191830191909120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818601528082019390935260608301919091524660808301523060a0808401919091528151808403909101815260c09092019052805191012090565b614333898588886147ff565b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a2267602082015273ffffffffffffffffffffffffffffffffffffffff808c16828401819052908b166060830152608082018a905260a0820189905260c0820188905260e080830188905283518084039091018152610100909201909252600f549091906143c690868686866146b5565b73ffffffffffffffffffffffffffffffffffffffff161461444857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b6144528a866148bf565b61445d8a8a8a613b21565b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff881633146144d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151876025913960400191505060405180910390fd5b6144e3898588886147ff565b604080517fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de8602082015273ffffffffffffffffffffffffffffffffffffffff808c16828401819052908b166060830152608082018a905260a0820189905260c0820188905260e080830188905283518084039091018152610100909201909252600f549091906143c690868686866146b5565b6000818484111561461f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156145e45781810151838201526020016145cc565b50505050905090810190601f1680156146115780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260106020908152604080832084845290915290205460ff16156146b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806152e7602e913960400191505060405180910390fd5b5050565b8051602080830191909120604080517f19010000000000000000000000000000000000000000000000000000000000008185015260228101899052604280820193909352815180820390930183526062019052805191012060009061471c81878787614944565b979650505050505050565b6060614789826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16614b419092919063ffffffff16565b805190915015613071578080602001905160208110156147a857600080fd5b5051613071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615295602a913960400191505060405180910390fd5b814211614857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180614ebb602b913960400191505060405180910390fd5b8042106148af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061536c6025913960400191505060405180910390fd5b6148b98484614627565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260106020908152604080832085845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518392917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a35050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156149bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061526f6026913960400191505060405180910390fd5b8360ff16601b141580156149d757508360ff16601c14155b15614a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614f326026913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015614a89573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116614b3657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f45435265636f7665723a20696e76616c6964207369676e617475726500000000604482015290519081900360640190fd5b90505b949350505050565b6060614b3984846000856060614b5685614d17565b614bc157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310614c2b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101614bee565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614c8d576040519150601f19603f3d011682016040523d82523d6000602084013e614c92565b606091505b50915091508115614ca6579150614b399050565b805115614cb65780518082602001fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528651602484015286518793919283926044019190850190808383600083156145e45781810151838201526020016145cc565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590614b39575050151592915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614d9157805160ff1916838001178555614dbe565b82800160010185558215614dbe579182015b82811115614dbe578251825591602001919060010190614da3565b50614dca929150614e5a565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614e2d578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555614dbe565b82800160010185558215614dbe579182015b82811115614dbe578235825591602001919060010190614e3f565b5b80821115614dca5760008155600101614e5b56fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735061757361626c653a206e65772070617573657220697320746865207a65726f206164647265737346696174546f6b656e56323a20617574686f72697a6174696f6e206973206e6f74207965742076616c696446696174546f6b656e3a206275726e20616d6f756e74206e6f742067726561746572207468616e203046696174546f6b656e3a206d696e7420746f20746865207a65726f206164647265737345435265636f7665723a20696e76616c6964207369676e6174757265202776272076616c75654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737346696174546f6b656e3a206e65772070617573657220697320746865207a65726f2061646472657373526573637561626c653a206e6577207265736375657220697320746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e74206e6f742067726561746572207468616e203045524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f7420746865206d61737465724d696e746572426c61636b6c69737461626c653a2063616c6c6572206973206e6f742074686520626c61636b6c697374657246696174546f6b656e3a206275726e20616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f742061206d696e74657246696174546f6b656e3a206e6577206d61737465724d696e74657220697320746865207a65726f2061646472657373526573637561626c653a2063616c6c6572206973206e6f7420746865207265736375657245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636546696174546f6b656e3a206e657720626c61636b6c697374657220697320746865207a65726f206164647265737346696174546f6b656e56323a2063616c6c6572206d7573742062652074686520706179656546696174546f6b656e3a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e742065786365656473206d696e746572416c6c6f77616e63655061757361626c653a2063616c6c6572206973206e6f74207468652070617573657245435265636f7665723a20696e76616c6964207369676e6174757265202773272076616c75655361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656446696174546f6b656e3a206e6577206f776e657220697320746865207a65726f206164647265737346696174546f6b656e56323a20617574686f72697a6174696f6e2069732075736564206f722063616e63656c6564426c61636b6c69737461626c653a206e657720626c61636b6c697374657220697320746865207a65726f2061646472657373426c61636b6c69737461626c653a206163636f756e7420697320626c61636b6c697374656446696174546f6b656e56323a20617574686f72697a6174696f6e206973206578706972656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203ccc7055acd0820f4e7d094fa75ff2d3b0c27bdd446079aeef6bd6d02c56938e64736f6c634300060c0033", - "sourceMap": "1362:764:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1649:18:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6725:273;;;;;;;;;;;;;;;;-1:-1:-1;6725:273:33;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;6132:100;;;:::i;:::-;;;;;;;;;;;;;;;;2772:148:32;;;;;;;;;;;;;;;;-1:-1:-1;2772:148:32;;;;:::i;:::-;;7776:536:33;;;;;;;;;;;;;;;;-1:-1:-1;7776:536:33;;;;;;;;;;;;;;;;;;:::i;2466:264:30:-;;;;;;;;;;;;;;;;-1:-1:-1;2466:264:30;;;;:::i;1528:398:41:-;;;;;;;;;;;;;;;;-1:-1:-1;1528:398:41;;;;:::i;10209:239:33:-;;;;;;;;;;;;;;;;-1:-1:-1;10209:239:33;;;;:::i;1612:116:37:-;;;:::i;1699:21:33:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2413:1160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2413:1160:33;;;;;;;;-1:-1:-1;2413:1160:33;;-1:-1:-1;;2413:1160:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2413:1160:33;;;;;;;;-1:-1:-1;2413:1160:33;;-1:-1:-1;;2413:1160:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2413:1160:33;;-1:-1:-1;;;2413:1160:33;;;;;-1:-1:-1;;2413:1160:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1754:27::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1291:31:39;;;:::i;1636:83:30:-;;;:::i;2269:284:40:-;;;;;;;;;;;;;;;;-1:-1:-1;2269:284:40;;;;;;;;;:::i;2802:94:35:-;;;:::i;4097:840:33:-;;;;;;;;;;;;;;;;-1:-1:-1;4097:840:33;;;;;;;;;:::i;10737:538::-;;;;;;;;;;;;;;;;-1:-1:-1;10737:538:33;;:::i;9703:334::-;;;;;;;;;;;;;;;;-1:-1:-1;9703:334:33;;;;;;;;;:::i;2040:84:41:-;;;:::i;2953:254:35:-;;;;;;;;;;;;;;;;-1:-1:-1;2953:254:35;;;;:::i;5782:229:40:-;;;;;;;;;;;;;;;;-1:-1:-1;5782:229:40;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2106:26:35:-;;;:::i;6340:154:33:-;;;;;;;;;;;;;;;;-1:-1:-1;6340:154:33;;;;:::i;1921:107:37:-;;;;;;;;;;;;;;;;-1:-1:-1;1921:107:37;;;;:::i;2068:136:38:-;;;:::i;2623:89:35:-;;;:::i;5318:118:33:-;;;;;;;;;;;;;;;;-1:-1:-1;5318:118:33;;;;:::i;2355:79:34:-;;;:::i;1673:20:33:-;;;:::i;2079:21:35:-;;;:::i;1787:137:38:-;;;:::i;2766:284:40:-;;;;;;;;;;;;;;;;-1:-1:-1;2766:284:40;;;;;;;;;:::i;8487:260:33:-;;;;;;;;;;;;;;;;-1:-1:-1;8487:260:33;;;;;;;;;:::i;11281:303::-;;;;;;;;;;;;;;;;-1:-1:-1;11281:303:33;;;;:::i;5543:104::-;;;;;;;;;;;;;;;;-1:-1:-1;5543:104:33;;;;:::i;2926:299:32:-;;;;;;;;;;;;;;;;-1:-1:-1;2926:299:32;;;;:::i;2161:177:30:-;;;;;;;;;;;;;;;;-1:-1:-1;2161:177:30;;;;;;;;;;;;;;;;;;:::i;1365:26:32:-;;;:::i;6439:309:40:-;;;;;;;;;;;;;;;;-1:-1:-1;6439:309:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1758:298::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1758:298:40;;-1:-1:-1;1758:298:40;-1:-1:-1;1758:298:40;:::i;2285:130:38:-;;;:::i;5898:175:33:-;;;;;;;;;;;;;;;;-1:-1:-1;5898:175:33;;;;;;;;;;;:::i;3621:523:40:-;;;;;;;;;;;;;;;;-1:-1:-1;3621:523:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1726:22:33:-;;;:::i;3088:183:38:-;;;;;;;;;;;;;;;;-1:-1:-1;3088:183:38;;;;;;;;;:::i;4883:521:40:-;;;;;;;;;;;;;;;;-1:-1:-1;4883:521:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2945:269:34:-;;;;;;;;;;;;;;;;-1:-1:-1;2945:269:34;;;;:::i;2500:143:32:-;;;;;;;;;;;;;;;;-1:-1:-1;2500:143:32;;;;:::i;2277:115::-;;;;;;;;;;;;;;;;-1:-1:-1;2277:115:32;;;;:::i;1649:18:33:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6725:273::-;2286:6:35;;6914:4:33;;2286:6:35;;;;;2285:7;2277:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6853:10:33::1;2064:21:32;::::0;;;:11:::1;:21;::::0;;;;;::::1;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2064:21:::2;::::0;::::2;;::::0;;;:11:::2;:21;::::0;;;;;6888:7:33;;2064:21:32::2;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6934:36:33::3;6943:10;6955:7;6964:5;6934:8;:36::i;:::-;-1:-1:-1::0;6987:4:33::3;::::0;6725:273;-1:-1:-1;;;;6725:273:33:o;6132:100::-;6213:12;;6132:100;:::o;2772:148:32:-;1771:11;;;;1757:10;:25;1736:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2846:21:::1;::::0;::::1;2870:5;2846:21:::0;;;:11:::1;:21;::::0;;;;;:29;;;::::1;::::0;;2890:23;::::1;::::0;2870:5;2890:23:::1;2772:148:::0;:::o;7776:536:33:-;2286:6:35;;8033:4:33;;2286:6:35;;;;;2285:7;2277:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7948:10:33::1;2064:21:32;::::0;;;:11:::1;:21;::::0;;;;;::::1;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2064:21:::2;::::0;::::2;;::::0;;;:11:::2;:21;::::0;;;;;7983:4:33;;2064:21:32::2;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2064:21:::3;::::0;::::3;;::::0;;;:11:::3;:21;::::0;;;;;8012:2:33;;2064:21:32::3;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8083:13:33::4;::::0;::::4;;::::0;;;:7:::4;:13;::::0;;;;;;;8097:10:::4;8083:25:::0;;;;;;;;8074:34;::::4;;8053:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8184:26;8194:4;8200:2;8204:5;8184:9;:26::i;:::-;8248:13;::::0;::::4;;::::0;;;:7:::4;:13;::::0;;;;;;;8262:10:::4;8248:25:::0;;;;;;;;:36:::4;::::0;8278:5;8248:29:::4;:36::i;:::-;8220:13;::::0;::::4;;::::0;;;:7:::4;:13;::::0;;;;;;;8234:10:::4;8220:25:::0;;;;;;;:64;8301:4:::4;::::0;-1:-1:-1;2158:1:32::3;::::2;2323::35::1;7776:536:33::0;;;;;:::o;2466:264:30:-;2713:6:34;;;;2699:10;:20;2691:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2559:24:30::1;::::0;::::1;2538:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2661:8;:21:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;2697:26:::1;::::0;::::1;::::0;-1:-1:-1;;2697:26:30::1;2466:264:::0;:::o;1528:398:41:-;1652:19;;;;;:24;1644:33;;;;;;1728:4;1688:20;1711:23;;;:8;:23;;;;;;1748:16;;1744:99;;1780:52;1798:4;1805:12;1819;1780:9;:52::i;:::-;-1:-1:-1;;1872:4:41;1852:26;;;;:11;:26;;;;;:33;;;;;;1881:4;1852:33;;;;1896:19;:23;;;;;1918:1;1896:23;;;1528:398::o;10209:239:33:-;5104:12;;10306:4;;5104:12;;5090:10;:26;5069:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10326:15:::1;::::0;::::1;10344:5;10326:15:::0;;;:7:::1;:15;::::0;;;;;;;:23;;;::::1;::::0;;10359:13:::1;:21:::0;;;;;;:25;;;10399:21;::::1;::::0;10344:5;10399:21:::1;-1:-1:-1::0;10437:4:33::1;10209:239:::0;;;:::o;1612:116:37:-;1662:66;1612:116;:::o;1699:21:33:-;;;;;;:::o;2413:1160::-;2717:11;;;;;;;2716:12;2708:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2806:29;;;2785:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2939:23;;;2918:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3060:28;;;3039:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3191:22;;;3170:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3290:16;;;;:4;;:16;;;;;:::i;:::-;-1:-1:-1;3316:20:33;;;;:6;;:20;;;;;:::i;:::-;-1:-1:-1;3346:24:33;;;;:8;;:24;;;;;:::i;:::-;-1:-1:-1;3380:8:33;:24;;;;;;;;;;3414:12;:30;;;;;;;;;;;;;;;;;-1:-1:-1;3454:18:33;;;;;;;;;;3482:11;:28;;;;;;;;;;;;;;3520:18;3529:8;3520;:18::i;:::-;-1:-1:-1;;3548:11:33;:18;;;;;;;;-1:-1:-1;;;;;;2413:1160:33:o;1754:27::-;;;;;;:::o;1291:31:39:-;;;;:::o;1636:83:30:-;1704:8;;;;1636:83;:::o;2269:284:40:-;2286:6:35;;2455:4:40;;2286:6:35;;;;;2285:7;2277:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2394:10:40::1;2064:21:32;::::0;;;:11:::1;:21;::::0;;;;;::::1;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2064:21:::2;::::0;::::2;;::::0;;;:11:::2;:21;::::0;;;;;2429:7:40;;2064:21:32::2;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2475:50:40::3;2494:10;2506:7;2515:9;2475:18;:50::i;2802:94:35:-:0;2473:6;;;;2459:10;:20;2451:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2851:6:::1;:14:::0;;;::::1;::::0;;2880:9:::1;::::0;::::1;::::0;2860:5:::1;::::0;2880:9:::1;2802:94::o:0;4097:840:33:-;2286:6:35;;4280:4:33;;2286:6:35;;;;;2285:7;2277:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3708:10:33::1;3700:19;::::0;;;:7:::1;:19;::::0;;;;;::::1;;3692:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4223:10:::2;2064:21:32;::::0;;;:11:::2;:21;::::0;;;;;::::2;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2064:21:::3;::::0;::::3;;::::0;;;:11:::3;:21;::::0;;;;;4258:3:33;;2064:21:32::3;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4308:17:33::4;::::0;::::4;4300:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4393:1;4383:7;:11;4375:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4496:10;4451:28;4482:25:::0;;;:13:::4;:25;::::0;;;;;4538:31;;::::4;;4517:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4667:12;::::0;:25:::4;::::0;4684:7;4667:16:::4;:25::i;:::-;4652:12;:40:::0;4718:13:::4;::::0;::::4;;::::0;;;:8:::4;:13;::::0;;;;;:26:::4;::::0;4736:7;4718:17:::4;:26::i;:::-;4702:13;::::0;::::4;;::::0;;;:8:::4;:13;::::0;;;;:42;4782:33:::4;:20:::0;4807:7;4782:24:::4;:33::i;:::-;4768:10;4754:25;::::0;;;:13:::4;:25;::::0;;;;;;;;:61;;;;4830:30;;;;;;;4754:25:::4;4830:30:::0;::::4;::::0;::::4;::::0;;;;;;::::4;4875:34;::::0;;;;;;;::::4;::::0;::::4;::::0;4892:1:::4;::::0;4875:34:::4;::::0;;;;::::4;::::0;;::::4;-1:-1:-1::0;4926:4:33::4;::::0;4097:840;-1:-1:-1;;;;;4097:840:33:o;10737:538::-;2286:6:35;;;;;;;2285:7;2277:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3708:10:33::1;3700:19;::::0;;;:7:::1;:19;::::0;;;;;::::1;;3692:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10850:10:::2;2064:21:32;::::0;;;:11:::2;:21;::::0;;;;;::::2;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10903:10:33::3;10876:15;10894:20:::0;;;:8:::3;:20;::::0;;;;;10932:11;10924:65:::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11018:7;11007;:18;;10999:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11094:12;::::0;:25:::3;::::0;11111:7;11094:16:::3;:25::i;:::-;11079:12;:40:::0;11152:20:::3;:7:::0;11164;11152:11:::3;:20::i;:::-;11138:10;11129:20;::::0;;;:8:::3;:20;::::0;;;;;;;;:43;;;;11187:25;;;;;;;11138:10;;11187:25:::3;::::0;;;;;;;::::3;11227:41;::::0;;;;;;;11256:1:::3;::::0;11236:10:::3;::::0;11227:41:::3;::::0;;;;::::3;::::0;;::::3;2158:1:32;3767::33::2;10737:538:::0;:::o;9703:334::-;2286:6:35;;9854:4:33;;2286:6:35;;;;;2285:7;2277:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5104:12:33::1;::::0;::::1;;5090:10;:26;5069:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9874:15:::2;::::0;::::2;;::::0;;;:7:::2;:15;::::0;;;;;;;:22;;;::::2;9892:4;9874:22;::::0;;9906:13:::2;:21:::0;;;;;;:43;;;9964:45;;;;;;;::::2;::::0;;;;;;;;::::2;-1:-1:-1::0;10026:4:33::2;9703:334:::0;;;;:::o;2040:84:41:-;2107:10;;;;;;;;;;;;;;;;;2040:84;:::o;2953:254:35:-;2713:6:34;;;;2699:10;:20;2691:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3045:24:35::1;::::0;::::1;3024:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3145:6;:19:::0;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;;3179:21:::1;::::0;3193:6;::::1;::::0;3179:21:::1;::::0;-1:-1:-1;;3179:21:35::1;2953:254:::0;:::o;5782:229:40:-;2286:6:35;;;;;;;2285:7;2277:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5956:48:40::1;5977:10;5989:5;5996:1;5999;6002;5956:20;:48::i;:::-;5782:229:::0;;;;;:::o;2106:26:35:-;;;;;;;;;:::o;6340:154:33:-;6470:17;;6440:7;6470:17;;;:8;:17;;;;;;;6340:154::o;1921:107:37:-;2001:20;;1975:7;2001:20;;;:13;:20;;;;;;;1921:107::o;2068:136:38:-;2138:66;2068:136;:::o;2623:89:35:-;2473:6;;;;2459:10;:20;2451:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2679:4:::1;2670:13:::0;;;::::1;::::0;::::1;::::0;;2698:7:::1;::::0;::::1;::::0;2670:13;;2698:7:::1;2623:89::o:0;5318:118:33:-;5408:21;;5382:7;5408:21;;;:13;:21;;;;;;;5318:118::o;2355:79:34:-;2395:7;2421:6;;;2355:79;:::o;1673:20:33:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2079:21:35;;;;;;:::o;1787:137:38:-;1858:66;1787:137;:::o;2766:284:40:-;2286:6:35;;2952:4:40;;2286:6:35;;;;;2285:7;2277:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2891:10:40::1;2064:21:32;::::0;;;:11:::1;:21;::::0;;;;;::::1;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2064:21:::2;::::0;::::2;;::::0;;;:11:::2;:21;::::0;;;;;2926:7:40;;2064:21:32::2;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2972:50:40::3;2991:10;3003:7;3012:9;2972:18;:50::i;8487:260:33:-:0;2286:6:35;;8667:4:33;;2286:6:35;;;;;2285:7;2277:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8611:10:33::1;2064:21:32;::::0;;;:11:::1;:21;::::0;;;;;::::1;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2064:21:::2;::::0;::::2;;::::0;;;:11:::2;:21;::::0;;;;;8646:2:33;;2064:21:32::2;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8687:32:33::3;8697:10;8709:2;8713:5;8687:9;:32::i;11281:303::-:0;2713:6:34;;;;2699:10;:20;2691:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11385:30:33::1;::::0;::::1;11364:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11498:12;:31:::0;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;;11544:33:::1;::::0;11564:12;::::1;::::0;11544:33:::1;::::0;-1:-1:-1;;11544:33:33::1;11281:303:::0;:::o;5543:104::-;5624:16;;5601:4;5624:16;;;:7;:16;;;;;;;;;5543:104::o;2926:299:32:-;2713:6:34;;;;2699:10;:20;2691:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3028:29:32::1;::::0;::::1;3007:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3143:11;:29:::0;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;;3187:31:::1;::::0;3206:11;::::1;::::0;3187:31:::1;::::0;-1:-1:-1;;3187:31:32::1;2926:299:::0;:::o;2161:177:30:-;1867:8;;;;1853:10;:22;1845:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2293:38:::1;:26;::::0;::::1;2320:2:::0;2324:6;2293:26:::1;:38::i;:::-;2161:177:::0;;;:::o;1365:26:32:-;;;;;;:::o;6439:309:40:-;2286:6:35;;;;;;;2285:7;2277:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2064:21:32::1;::::0;::::1;;::::0;;;:11:::1;:21;::::0;;;;;6651:5:40;;2064:21:32::1;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2064:21:::2;::::0;::::2;;::::0;;;:11:::2;:21;::::0;;;;;6673:7:40;;2064:21:32::2;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6692:49:40::3;6700:5;6707:7;6716:5;6723:8;6733:1;6736;6739;6692:7;:49::i;:::-;2158:1:32::2;2323::35::1;6439:309:40::0;;;;;;;:::o;1758:298::-;1883:11;;;;;;;:39;;;;-1:-1:-1;1898:19:40;;;;:24;1883:39;1875:48;;;;;;1933:14;:4;1940:7;;1933:14;:::i;:::-;;1976:40;2003:7;;1976:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1976:40:40;;;;;;;;;;;;;;;;;;-1:-1:-1;1976:26:40;;-1:-1:-1;1976:40:40:i;:::-;1957:16;:59;-1:-1:-1;;2026:19:40;:23;;;;2048:1;2026:23;;;1758:298::o;2285:130:38:-;2349:66;2285:130;:::o;5898:175:33:-;6043:14;;;;6013:7;6043:14;;;:7;:14;;;;;;;;:23;;;;;;;;;;;;;5898:175::o;3621:523:40:-;2286:6:35;;;;;;;2285:7;2277:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2064:21:32::1;::::0;::::1;;::::0;;;:11:::1;:21;::::0;;;;;3900:4:40;;2064:21:32::1;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2064:21:::2;::::0;::::2;;::::0;;;:11:::2;:21;::::0;;;;;3921:2:40;;2064:21:32::2;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3935:202:40::3;3975:4;3993:2;4009:5;4028:10;4052:11;4077:5;4096:1;4111;4126;3935:26;:202::i;:::-;2158:1:32::2;2323::35::1;3621:523:40::0;;;;;;;;;:::o;1726:22:33:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3088:183:38;3225:32;;;;;3198:4;3225:32;;;:20;:32;;;;;;;;:39;;;;;;;;;;;3088:183::o;4883:521:40:-;2286:6:35;;;;;;;2285:7;2277:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2064:21:32::1;::::0;::::1;;::::0;;;:11:::1;:21;::::0;;;;;5161:4:40;;2064:21:32::1;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2064:21:::2;::::0;::::2;;::::0;;;:11:::2;:21;::::0;;;;;5182:2:40;;2064:21:32::2;;2063:22;2042:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5196:201:40::3;5235:4;5253:2;5269:5;5288:10;5312:11;5337:5;5356:1;5371;5386;5196:25;:201::i;2945:269:34:-:0;2713:6;;;;2699:10;:20;2691:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:22:::1;::::0;::::1;3019:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3162:6;::::0;3141:38:::1;::::0;;3162:6:::1;::::0;;::::1;3141:38:::0;;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;3189:18;3198:8;3189;:18::i;:::-;2945:269:::0;:::o;2500:143:32:-;1771:11;;;;1757:10;:25;1736:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2572:21:::1;::::0;::::1;;::::0;;;:11:::1;:21;::::0;;;;;:28;;;::::1;2596:4;2572:28;::::0;;2615:21;::::1;::::0;2572;2615::::1;2500:143:::0;:::o;2277:115::-;2364:21;;2341:4;2364:21;;;:11;:21;;;;;;;;;2277:115::o;7196:363:33:-;7327:19;;;7319:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7405:21;;;7397:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7475:14;;;;;;;;:7;:14;;;;;;;;:23;;;;;;;;;;;;;:31;;;7521;;;;;;;;;;;;;;;;;7196:363;;;:::o;8931:526::-;9057:18;;;9049:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9135:16;;;9127:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9231:14;;;;;;;:8;:14;;;;;;9222:23;;;9201:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9337:14;;;;;;;:8;:14;;;;;;:25;;9356:5;9337:18;:25::i;:::-;9320:14;;;;;;;;:8;:14;;;;;;:42;;;;9387:12;;;;;;;:23;;9404:5;9387:16;:23::i;:::-;9372:12;;;;;;;;:8;:12;;;;;;;;;:38;;;;9425:25;;;;;;;9372:12;;9425:25;;;;;;;;;;;;;8931:526;;;:::o;1321:134:42:-;1379:7;1405:43;1409:1;1412;1405:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1398:50;1321:134;-1:-1:-1;;;1321:134:42:o;2493:79:34:-;2548:6;:17;;;;;;;;;;;;;;;2493:79::o;6981:208:40:-;7143:14;;;;;;;;:7;:14;;;;;;;;:23;;;;;;;;;;7118:64;;7127:5;;7134:7;;7143:38;;7171:9;7143:27;:38::i;:::-;7118:8;:64::i;874:176:42:-;932:7;963:5;;;986:6;;;;978:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6532:611:38;6693:46;6721:10;6733:5;6693:27;:46::i;:::-;6770:106;;;2349:66;6770:106;;;;;;;;;;;;;6750:17;6770:106;;;;;;;;;;;;;;;;;;;;;;;6922:16;;6770:106;;;6907:47;;6940:1;6943;6946;6770:106;6907:14;:47::i;:::-;:61;;;6886:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7035:32;;;;;;;:20;:32;;;;;;;;:39;;;;;;;;;:46;;;;7077:4;7035:46;;;7096:40;7068:5;;7035:32;7096:40;;;6532:611;;;;;;:::o;7422:341:40:-;7559:197;7581:5;7600:7;7621:125;7666:9;7621:125;;;;;;;;;;;;;;;;;:14;;;;;;;;:7;:14;;;;;;;;:23;;;;;;;;;;;:125;:27;:125::i;696:175:44:-;805:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;828:23;805:58;;;778:86;;798:5;;778:19;:86::i;2459:637:37:-;2673:3;2661:8;:15;;2653:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2854:20;;;;2766:15;2854:20;;;:13;:20;;;;;;;;;:22;;;;;;;;2742:166;;1662:66;2742:166;;;;;;;;;;;;;;;;2722:17;2742:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2954:16;;2939:47;;2972:1;2975;2978;2742:166;2939:14;:47::i;:::-;:56;;;2918:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3058:31;3067:5;3074:7;3083:5;3058:8;:31::i;:::-;2459:637;;;;;;;;:::o;1501:686:28:-;2015:22;;;;;;;2059:25;;;;;;;;;1776:390;;;1927:66;1776:390;;;;;;;;;;;;;;;;;;1702:9;1776:390;;;;2143:4;1776:390;;;;;;;;;;;;;;;;;;;;;;;;1749:431;;;;;;1501:686::o;3842:780:38:-;4103:64;4130:4;4136:5;4143:10;4155:11;4103:26;:64::i;:::-;4198:191;;;1858:66;4198:191;;;;;;;;;;;;;;;;;4178:17;4198:191;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4435:16;;4198:191;;;4420:47;;4453:1;4456;4459;4198:191;4420:14;:47::i;:::-;:55;;;4399:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4542:37;4567:4;4573:5;4542:24;:37::i;:::-;4589:26;4599:4;4605:2;4609:5;4589:9;:26::i;:::-;3842:780;;;;;;;;;;:::o;5361:854::-;5629:16;;;5635:10;5629:16;5621:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5697:64;5724:4;5730:5;5737:10;5749:11;5697:26;:64::i;:::-;5792:190;;;2138:66;5792:190;;;;;;;;;;;;;;;;;5772:17;5792:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6028:16;;5792:190;;;6013:47;;6046:1;6049;6052;5792:190;6013:14;:47::i;1746:187:42:-;1832:7;1867:12;1859:6;;;;1851:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1902:5:42;;;1746:187::o;7322:255:38:-;7459:32;;;;;;;:20;:32;;;;;;;;:39;;;;;;;;;;;7458:40;7437:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7322:255;;:::o;2572:434:28:-;2898:26;;;;;;;;;;2803:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2780:168;;;;;2744:7;;2965:34;2780:168;2991:1;2994;2997;2965:17;:34::i;:::-;2958:41;2572:434;-1:-1:-1;;;;;;;2572:434:28:o;2959:751:44:-;3378:23;3404:69;3432:4;3404:69;;;;;;;;;;;;;;;;;3412:5;3404:27;;;;:69;;;;;:::i;:::-;3487:17;;3378:95;;-1:-1:-1;3487:21:44;3483:221;;3627:10;3616:30;;;;;;;;;;;;;;;-1:-1:-1;3616:30:44;3608:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7903:419:38;8103:10;8097:3;:16;8076:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8206:11;8200:3;:17;8192:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8269:46;8297:10;8309:5;8269:27;:46::i;:::-;7903:419;;;;:::o;8493:203::-;8592:32;;;;;;;:20;:32;;;;;;;;:39;;;;;;;;;:46;;;;8634:4;8592:46;;;8653:36;8625:5;;8592:32;8653:36;;;8493:203;;:::o;1872:1556:27:-;1997:7;2932:66;2907:91;;2890:192;;;3023:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2890:192;3096:1;:7;;3101:2;3096:7;;:18;;;;;3107:1;:7;;3112:2;3107:7;;3096:18;3092:97;;;3130:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3092:97;3283:14;3300:26;3310:6;3318:1;3321;3324;3300:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3300:26:27;;;;;;-1:-1:-1;;3344:20:27;;;3336:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3415:6;-1:-1:-1;1872:1556:27;;;;;;;:::o;3770:194:45:-;3873:12;3904:53;3927:6;3935:4;3941:1;3944:12;5247;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:45;;-1:-1:-1;5516:17:45;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:45;;;1270:51;-1:-1:-1;;718:610:45: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", - "initializeV2_1(address)": "2fc81e09", - "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", - "version()": "54fd4d50" - }, - "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\":\"lostAndFound\",\"type\":\"address\"}],\"name\":\"initializeV2_1\",\"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\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"params\":{\"owner\":\"Token owner's address\",\"spender\":\"Spender's address\"},\"returns\":{\"_0\":\"Allowance amount\"}},\"approve(address,uint256)\":{\"params\":{\"spender\":\"Spender's address\",\"value\":\"Allowance amount\"},\"returns\":{\"_0\":\"True if 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)\":{\"details\":\"Get token balance of an account\",\"params\":{\"account\":\"address The account\"}},\"blacklist(address)\":{\"details\":\"Adds account to blacklist\",\"params\":{\"_account\":\"The address to blacklist\"}},\"burn(uint256)\":{\"details\":\"allows a minter to burn some of its own tokens Validates that caller is a minter and that sender is not blacklisted amount is less than or equal to the minter's account balance\",\"params\":{\"_amount\":\"uint256 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)\":{\"details\":\"Function to add/update a new minter\",\"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\"}},\"initializeV2(string)\":{\"params\":{\"newName\":\"New token name\"}},\"initializeV2_1(address)\":{\"params\":{\"lostAndFound\":\"The address to which the locked funds are sent\"}},\"isBlacklisted(address)\":{\"details\":\"Checks if account is blacklisted\",\"params\":{\"_account\":\"The address to check\"}},\"isMinter(address)\":{\"details\":\"Checks if account is a minter\",\"params\":{\"account\":\"The address to check\"}},\"mint(address,uint256)\":{\"details\":\"Function to mint tokens\",\"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\":\"A boolean that indicates if the operation was successful.\"}},\"minterAllowance(address)\":{\"details\":\"Get minter allowance for an account\",\"params\":{\"minter\":\"The address of the minter\"}},\"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\":\"Expiration time, seconds since the epoch\",\"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)\":{\"details\":\"Function to remove a minter\",\"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()\":{\"details\":\"Get totalSupply of token\"},\"transfer(address,uint256)\":{\"params\":{\"to\":\"Payee's address\",\"value\":\"Transfer amount\"},\"returns\":{\"_0\":\"True if successful\"}},\"transferFrom(address,address,uint256)\":{\"params\":{\"from\":\"Payer's address\",\"to\":\"Payee's address\",\"value\":\"Transfer amount\"},\"returns\":{\"_0\":\"True if 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)\":{\"details\":\"Removes account from blacklist\",\"params\":{\"_account\":\"The address to remove from the blacklist\"}},\"unpause()\":{\"details\":\"called by the owner to unpause, returns to normal state\"},\"updatePauser(address)\":{\"details\":\"update the pauser role\"},\"updateRescuer(address)\":{\"params\":{\"newRescuer\":\"New rescuer's address\"}},\"version()\":{\"returns\":{\"_0\":\"Version string\"}}},\"title\":\"FiatToken V2.1\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"Amount of remaining tokens spender is allowed to transfer on behalf of the token owner\"},\"approve(address,uint256)\":{\"notice\":\"Set spender's allowance over the caller's tokens to be a given value.\"},\"authorizationState(address,bytes32)\":{\"notice\":\"Returns the state of an authorization\"},\"cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)\":{\"notice\":\"Attempt to cancel an authorization\"},\"decreaseAllowance(address,uint256)\":{\"notice\":\"Decrease the allowance by a given decrement\"},\"increaseAllowance(address,uint256)\":{\"notice\":\"Increase the allowance by a given increment\"},\"initializeV2(string)\":{\"notice\":\"Initialize v2\"},\"initializeV2_1(address)\":{\"notice\":\"Initialize v2.1\"},\"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\"},\"rescueERC20(address,address,uint256)\":{\"notice\":\"Rescue ERC20 tokens locked up in this contract.\"},\"rescuer()\":{\"notice\":\"Returns current rescuer\"},\"transfer(address,uint256)\":{\"notice\":\"Transfer tokens from the caller\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfer tokens by spending allowance\"},\"transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)\":{\"notice\":\"Execute a transfer with a signed authorization\"},\"updateRescuer(address)\":{\"notice\":\"Assign the rescuer role to a given address.\"},\"version()\":{\"notice\":\"Version string for the EIP712 domain separator\"}},\"notice\":\"ERC20 Token backed by fiat reserves, version 2.1\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/FiatTokenV2_1/centre-tokens/contracts/v2/FiatTokenV2_1.sol\":\"FiatTokenV2_1\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000000},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/FiatTokenV2_1/centre-tokens/contracts/util/ECRecover.sol\":{\"keccak256\":\"0xb4e623304daaf25e40292e60a814ae60a60745d10003f1881a36be763dbc09aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6ef83bd777bfb13b0968b9cadd971216a95150427fa5d6b50f984e4b7268d31\",\"dweb:/ipfs/QmZS5TeT6n7tM36PBdYZNJW3wgYgAZE9zMcouNs4FuEDKj\"]},\"src/FiatTokenV2_1/centre-tokens/contracts/util/EIP712.sol\":{\"keccak256\":\"0x39319612a776e16f355d5ab71575b68c427a058839544f032733df228b5debd1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5ac6450e881a4275f4b5baf7b5d6e15c0a0c7c2039edf39f106e0b821c9829d\",\"dweb:/ipfs/QmShHneDasAXQzjA8iKWXk3sbZgxbQGPiMQ1MUpJGF64N8\"]},\"src/FiatTokenV2_1/centre-tokens/contracts/v1.1/FiatTokenV1_1.sol\":{\"keccak256\":\"0xa5f8fc4b5e739ddcafe52dd76ebb7605e09eb9d52a5c1d77e48dd88e83106308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24543f05d3eb4768ee9798768cb6c9ce8b88d30606a5def83118ad1ba9382ac8\",\"dweb:/ipfs/QmYREtrAvoxn6DKXehJPP1pbs8vciqMvRHVk2eFKLtmKVT\"]},\"src/FiatTokenV2_1/centre-tokens/contracts/v1.1/Rescuable.sol\":{\"keccak256\":\"0x8c02b979e06aa4133c93e47c743ebebd56d120dd10aeaf56b2da2a36f06b68b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d73d6f98bd494500a414ca616eabe9ad6e99f283e00a471bddd7f8ac5825334\",\"dweb:/ipfs/QmXesAuMcXJiG3r2og7adeT5wBcY6ntFncVUFjNPfEhJC9\"]},\"src/FiatTokenV2_1/centre-tokens/contracts/v1/AbstractFiatTokenV1.sol\":{\"keccak256\":\"0xb81ae053cff8eced79f29c3542b7693763ed2bfdd9a25d6b150439d21b3fa57d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e16ce40aef6188334cd0dbc2e3aead22c1f89101d782df821821061d5efa891b\",\"dweb:/ipfs/QmW2WnaMTzpUityk5Mpv7FFdKCh2CeueJaDneoABGVowVm\"]},\"src/FiatTokenV2_1/centre-tokens/contracts/v1/Blacklistable.sol\":{\"keccak256\":\"0xc4ff3bfe34c8ecf9f2c333f8373c111fdd4640ed15677c4891bb9cf3cbff9554\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91cfc583d47eda58f356783698a130c1c6adf797c4ba55461598c0bac8159f33\",\"dweb:/ipfs/QmeWfmhcwUE7H5Ge8TVhWkJ4kDwDY8a4kExMaufukLqsh1\"]},\"src/FiatTokenV2_1/centre-tokens/contracts/v1/FiatTokenV1.sol\":{\"keccak256\":\"0xaed130ecb4b0714a887dccaaff61321915f2afbf0839ee8af10673507a010471\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3961d2ed8f4f2c69cc4ce0fdb2346b8bd5c09d644627704181fa03b82231ff31\",\"dweb:/ipfs/Qmb7sdix44isYUaD4TD4QsVmR8d86NN4koiFE6SsjRagGQ\"]},\"src/FiatTokenV2_1/centre-tokens/contracts/v1/Ownable.sol\":{\"keccak256\":\"0x654e645d6d09616fde908eba4d29abf318fede7e8cc3e31705203fc1d2599217\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fce1ff1458e817aaa5f87d3ef4207fbbdeb25e548d460f47d9cca4fb80175390\",\"dweb:/ipfs/QmfY7E5xfTyeiuU2nDXEdYfy5LKjGRh69fuKK4HV6YTv9v\"]},\"src/FiatTokenV2_1/centre-tokens/contracts/v1/Pausable.sol\":{\"keccak256\":\"0x873ce4f17eb8694cd0420ef6682c2da54290fe6e243f21ead37e90f211ac91b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7df712210c8bb5fc08e0ff7b684ee4035530cd67b21f20d81766a17407606a3c\",\"dweb:/ipfs/QmYPFYAw4W8VdcBdknLhqfNfiUuGhGJD3ZZ7rAjrKjhtXd\"]},\"src/FiatTokenV2_1/centre-tokens/contracts/v2/AbstractFiatTokenV2.sol\":{\"keccak256\":\"0x5d393663d48e4bbb730630c117c2b703dd3c9968833e66dbbb18c92eab207afe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b0ce642b7ab095d970e3e5d031e5de6b2a98a7ddd20fd94123a42ed81e21757e\",\"dweb:/ipfs/QmbPixwbbpHS7zBRcJV1idzhaSd1SPRm3LjpywxFnXxR8A\"]},\"src/FiatTokenV2_1/centre-tokens/contracts/v2/EIP2612.sol\":{\"keccak256\":\"0x8ed169be2f6423b8e7002241857d719e9eb9545f5dbad5209a8f6445132bdbe0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0646f70d57d072c0569ccbd9b02c922bbb183e6052f94c241c4fef9a267e73bc\",\"dweb:/ipfs/QmZK3D3qqTMenkdc5EpZSiyxETMpTVpRke61uuRH75ctVk\"]},\"src/FiatTokenV2_1/centre-tokens/contracts/v2/EIP3009.sol\":{\"keccak256\":\"0x74a81d5b1682cb6716f60c27254e8a15463797e1772b37c884390eb9c7985070\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d3a6e220c2b8aab8c5070312cc9320ce2b79955b0bddafd99e5feec13851016\",\"dweb:/ipfs/QmQwc2nZtMKyDcGT8Scnv1R4ThP2Va9trUHnRiqMz4G2WN\"]},\"src/FiatTokenV2_1/centre-tokens/contracts/v2/EIP712Domain.sol\":{\"keccak256\":\"0x56d8c0259e7f0baa5bb0d0d94810f25d001fb2dbe4eaf54dbe369ba0f1b8fd2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9356cfa1d42bfb8c4f84a3db535ab75b2088975bfbda30834d79c3eb678047ea\",\"dweb:/ipfs/QmSBeiLwNGEC4vnr82EWQinGZFZemxKwxvwLZ9bu48FWF2\"]},\"src/FiatTokenV2_1/centre-tokens/contracts/v2/FiatTokenV2.sol\":{\"keccak256\":\"0x59654e02023dd9d712bb160545854eae6cba80d707a547f6abfaadcd830af2e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e22c43b71ea393e9910bd91a355f711803d6971be25e9dabc702aaefac2a597f\",\"dweb:/ipfs/QmRjopnHgyKh1mXBDETBaXaom3NJSaacGEJweB5b28BdSE\"]},\"src/FiatTokenV2_1/centre-tokens/contracts/v2/FiatTokenV2_1.sol\":{\"keccak256\":\"0x6328091a86a3ab02471fba7ff3bf44200f6daf9f0ff3b61fe4043ee14cc1a4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fed880853c249f6f812ddfa37bf99633b688f0bfd734e03372e4523f6cd2af9\",\"dweb:/ipfs/QmUMD1SvykvTJ8jmAjnsW13Yo3Wt6KH5dfKRPKCRogLki8\"]},\"src/FiatTokenV2_1/openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"src/FiatTokenV2_1/openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017\",\"dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5\"]},\"src/FiatTokenV2_1/openzeppelin/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0xf3b30f8a49631420635a8c35daacfcaa338012755f18a76fdd118730256f9a27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d7de652204c2ee291a61aa984103dfc7ae4392d651fbbc44a0079caee7c69a3\",\"dweb:/ipfs/Qmcw1cQnq9eWDnrCBwU3TNyqLfTMUFg5YKpYUkELoMPuUE\"]},\"src/FiatTokenV2_1/openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]}},\"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": "lostAndFound", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "initializeV2_1" - }, - { - "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" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "version", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "allowance(address,address)": { - "params": { - "owner": "Token owner's address", - "spender": "Spender's address" - }, - "returns": { - "_0": "Allowance amount" - } - }, - "approve(address,uint256)": { - "params": { - "spender": "Spender's address", - "value": "Allowance amount" - }, - "returns": { - "_0": "True if 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)": { - "details": "Get token balance of an account", - "params": { - "account": "address The account" - } - }, - "blacklist(address)": { - "details": "Adds account to blacklist", - "params": { - "_account": "The address to blacklist" - } - }, - "burn(uint256)": { - "details": "allows a minter to burn some of its own tokens Validates that caller is a minter and that sender is not blacklisted amount is less than or equal to the minter's account balance", - "params": { - "_amount": "uint256 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)": { - "details": "Function to add/update a new minter", - "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" - } - }, - "initializeV2(string)": { - "params": { - "newName": "New token name" - } - }, - "initializeV2_1(address)": { - "params": { - "lostAndFound": "The address to which the locked funds are sent" - } - }, - "isBlacklisted(address)": { - "details": "Checks if account is blacklisted", - "params": { - "_account": "The address to check" - } - }, - "isMinter(address)": { - "details": "Checks if account is a minter", - "params": { - "account": "The address to check" - } - }, - "mint(address,uint256)": { - "details": "Function to mint tokens", - "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": "A boolean that indicates if the operation was successful." - } - }, - "minterAllowance(address)": { - "details": "Get minter allowance for an account", - "params": { - "minter": "The address of the minter" - } - }, - "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": "Expiration time, seconds since the epoch", - "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)": { - "details": "Function to remove a minter", - "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()": { - "details": "Get totalSupply of token" - }, - "transfer(address,uint256)": { - "params": { - "to": "Payee's address", - "value": "Transfer amount" - }, - "returns": { - "_0": "True if successful" - } - }, - "transferFrom(address,address,uint256)": { - "params": { - "from": "Payer's address", - "to": "Payee's address", - "value": "Transfer amount" - }, - "returns": { - "_0": "True if 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)": { - "details": "Removes account from blacklist", - "params": { - "_account": "The address to remove from the blacklist" - } - }, - "unpause()": { - "details": "called by the owner to unpause, returns to normal state" - }, - "updatePauser(address)": { - "details": "update the pauser role" - }, - "updateRescuer(address)": { - "params": { - "newRescuer": "New rescuer's address" - } - }, - "version()": { - "returns": { - "_0": "Version string" - } - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": { - "allowance(address,address)": { - "notice": "Amount of remaining tokens spender is allowed to transfer on behalf of the token owner" - }, - "approve(address,uint256)": { - "notice": "Set spender's allowance over the caller's tokens to be a given value." - }, - "authorizationState(address,bytes32)": { - "notice": "Returns the state of an authorization" - }, - "cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)": { - "notice": "Attempt to cancel an authorization" - }, - "decreaseAllowance(address,uint256)": { - "notice": "Decrease the allowance by a given decrement" - }, - "increaseAllowance(address,uint256)": { - "notice": "Increase the allowance by a given increment" - }, - "initializeV2(string)": { - "notice": "Initialize v2" - }, - "initializeV2_1(address)": { - "notice": "Initialize v2.1" - }, - "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" - }, - "rescueERC20(address,address,uint256)": { - "notice": "Rescue ERC20 tokens locked up in this contract." - }, - "rescuer()": { - "notice": "Returns current rescuer" - }, - "transfer(address,uint256)": { - "notice": "Transfer tokens from the caller" - }, - "transferFrom(address,address,uint256)": { - "notice": "Transfer tokens by spending allowance" - }, - "transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)": { - "notice": "Execute a transfer with a signed authorization" - }, - "updateRescuer(address)": { - "notice": "Assign the rescuer role to a given address." - }, - "version()": { - "notice": "Version string for the EIP712 domain separator" - } - }, - "version": 1 - } - }, - "settings": { - "remappings": [ - "ds-test/=lib/forge-std/lib/ds-test/src/", - "forge-std/=lib/forge-std/src/" - ], - "optimizer": { - "enabled": true, - "runs": 10000000 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "src/FiatTokenV2_1/centre-tokens/contracts/v2/FiatTokenV2_1.sol": "FiatTokenV2_1" - }, - "libraries": {} - }, - "sources": { - "src/FiatTokenV2_1/centre-tokens/contracts/util/ECRecover.sol": { - "keccak256": "0xb4e623304daaf25e40292e60a814ae60a60745d10003f1881a36be763dbc09aa", - "urls": [ - "bzz-raw://d6ef83bd777bfb13b0968b9cadd971216a95150427fa5d6b50f984e4b7268d31", - "dweb:/ipfs/QmZS5TeT6n7tM36PBdYZNJW3wgYgAZE9zMcouNs4FuEDKj" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/centre-tokens/contracts/util/EIP712.sol": { - "keccak256": "0x39319612a776e16f355d5ab71575b68c427a058839544f032733df228b5debd1", - "urls": [ - "bzz-raw://d5ac6450e881a4275f4b5baf7b5d6e15c0a0c7c2039edf39f106e0b821c9829d", - "dweb:/ipfs/QmShHneDasAXQzjA8iKWXk3sbZgxbQGPiMQ1MUpJGF64N8" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/centre-tokens/contracts/v1.1/FiatTokenV1_1.sol": { - "keccak256": "0xa5f8fc4b5e739ddcafe52dd76ebb7605e09eb9d52a5c1d77e48dd88e83106308", - "urls": [ - "bzz-raw://24543f05d3eb4768ee9798768cb6c9ce8b88d30606a5def83118ad1ba9382ac8", - "dweb:/ipfs/QmYREtrAvoxn6DKXehJPP1pbs8vciqMvRHVk2eFKLtmKVT" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/centre-tokens/contracts/v1.1/Rescuable.sol": { - "keccak256": "0x8c02b979e06aa4133c93e47c743ebebd56d120dd10aeaf56b2da2a36f06b68b1", - "urls": [ - "bzz-raw://9d73d6f98bd494500a414ca616eabe9ad6e99f283e00a471bddd7f8ac5825334", - "dweb:/ipfs/QmXesAuMcXJiG3r2og7adeT5wBcY6ntFncVUFjNPfEhJC9" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/centre-tokens/contracts/v1/AbstractFiatTokenV1.sol": { - "keccak256": "0xb81ae053cff8eced79f29c3542b7693763ed2bfdd9a25d6b150439d21b3fa57d", - "urls": [ - "bzz-raw://e16ce40aef6188334cd0dbc2e3aead22c1f89101d782df821821061d5efa891b", - "dweb:/ipfs/QmW2WnaMTzpUityk5Mpv7FFdKCh2CeueJaDneoABGVowVm" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/centre-tokens/contracts/v1/Blacklistable.sol": { - "keccak256": "0xc4ff3bfe34c8ecf9f2c333f8373c111fdd4640ed15677c4891bb9cf3cbff9554", - "urls": [ - "bzz-raw://91cfc583d47eda58f356783698a130c1c6adf797c4ba55461598c0bac8159f33", - "dweb:/ipfs/QmeWfmhcwUE7H5Ge8TVhWkJ4kDwDY8a4kExMaufukLqsh1" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/centre-tokens/contracts/v1/FiatTokenV1.sol": { - "keccak256": "0xaed130ecb4b0714a887dccaaff61321915f2afbf0839ee8af10673507a010471", - "urls": [ - "bzz-raw://3961d2ed8f4f2c69cc4ce0fdb2346b8bd5c09d644627704181fa03b82231ff31", - "dweb:/ipfs/Qmb7sdix44isYUaD4TD4QsVmR8d86NN4koiFE6SsjRagGQ" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/centre-tokens/contracts/v1/Ownable.sol": { - "keccak256": "0x654e645d6d09616fde908eba4d29abf318fede7e8cc3e31705203fc1d2599217", - "urls": [ - "bzz-raw://fce1ff1458e817aaa5f87d3ef4207fbbdeb25e548d460f47d9cca4fb80175390", - "dweb:/ipfs/QmfY7E5xfTyeiuU2nDXEdYfy5LKjGRh69fuKK4HV6YTv9v" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/centre-tokens/contracts/v1/Pausable.sol": { - "keccak256": "0x873ce4f17eb8694cd0420ef6682c2da54290fe6e243f21ead37e90f211ac91b6", - "urls": [ - "bzz-raw://7df712210c8bb5fc08e0ff7b684ee4035530cd67b21f20d81766a17407606a3c", - "dweb:/ipfs/QmYPFYAw4W8VdcBdknLhqfNfiUuGhGJD3ZZ7rAjrKjhtXd" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/centre-tokens/contracts/v2/AbstractFiatTokenV2.sol": { - "keccak256": "0x5d393663d48e4bbb730630c117c2b703dd3c9968833e66dbbb18c92eab207afe", - "urls": [ - "bzz-raw://b0ce642b7ab095d970e3e5d031e5de6b2a98a7ddd20fd94123a42ed81e21757e", - "dweb:/ipfs/QmbPixwbbpHS7zBRcJV1idzhaSd1SPRm3LjpywxFnXxR8A" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/centre-tokens/contracts/v2/EIP2612.sol": { - "keccak256": "0x8ed169be2f6423b8e7002241857d719e9eb9545f5dbad5209a8f6445132bdbe0", - "urls": [ - "bzz-raw://0646f70d57d072c0569ccbd9b02c922bbb183e6052f94c241c4fef9a267e73bc", - "dweb:/ipfs/QmZK3D3qqTMenkdc5EpZSiyxETMpTVpRke61uuRH75ctVk" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/centre-tokens/contracts/v2/EIP3009.sol": { - "keccak256": "0x74a81d5b1682cb6716f60c27254e8a15463797e1772b37c884390eb9c7985070", - "urls": [ - "bzz-raw://1d3a6e220c2b8aab8c5070312cc9320ce2b79955b0bddafd99e5feec13851016", - "dweb:/ipfs/QmQwc2nZtMKyDcGT8Scnv1R4ThP2Va9trUHnRiqMz4G2WN" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/centre-tokens/contracts/v2/EIP712Domain.sol": { - "keccak256": "0x56d8c0259e7f0baa5bb0d0d94810f25d001fb2dbe4eaf54dbe369ba0f1b8fd2b", - "urls": [ - "bzz-raw://9356cfa1d42bfb8c4f84a3db535ab75b2088975bfbda30834d79c3eb678047ea", - "dweb:/ipfs/QmSBeiLwNGEC4vnr82EWQinGZFZemxKwxvwLZ9bu48FWF2" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/centre-tokens/contracts/v2/FiatTokenV2.sol": { - "keccak256": "0x59654e02023dd9d712bb160545854eae6cba80d707a547f6abfaadcd830af2e7", - "urls": [ - "bzz-raw://e22c43b71ea393e9910bd91a355f711803d6971be25e9dabc702aaefac2a597f", - "dweb:/ipfs/QmRjopnHgyKh1mXBDETBaXaom3NJSaacGEJweB5b28BdSE" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/centre-tokens/contracts/v2/FiatTokenV2_1.sol": { - "keccak256": "0x6328091a86a3ab02471fba7ff3bf44200f6daf9f0ff3b61fe4043ee14cc1a4f0", - "urls": [ - "bzz-raw://4fed880853c249f6f812ddfa37bf99633b688f0bfd734e03372e4523f6cd2af9", - "dweb:/ipfs/QmUMD1SvykvTJ8jmAjnsW13Yo3Wt6KH5dfKRPKCRogLki8" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/openzeppelin/contracts/math/SafeMath.sol": { - "keccak256": "0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806", - "urls": [ - "bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5", - "dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/openzeppelin/contracts/token/ERC20/IERC20.sol": { - "keccak256": "0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385", - "urls": [ - "bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017", - "dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/openzeppelin/contracts/token/ERC20/SafeERC20.sol": { - "keccak256": "0xf3b30f8a49631420635a8c35daacfcaa338012755f18a76fdd118730256f9a27", - "urls": [ - "bzz-raw://0d7de652204c2ee291a61aa984103dfc7ae4392d651fbbc44a0079caee7c69a3", - "dweb:/ipfs/Qmcw1cQnq9eWDnrCBwU3TNyqLfTMUFg5YKpYUkELoMPuUE" - ], - "license": "MIT" - }, - "src/FiatTokenV2_1/openzeppelin/contracts/utils/Address.sol": { - "keccak256": "0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498", - "urls": [ - "bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff", - "dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS" - ], - "license": "MIT" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "src/FiatTokenV2_1/centre-tokens/contracts/v2/FiatTokenV2_1.sol", - "id": 47381, - "exportedSymbols": { - "FiatTokenV2_1": [47380] - }, - "nodeType": "SourceUnit", - "src": "1154:973:41", - "nodes": [ - { - "id": 47316, - "nodeType": "PragmaDirective", - "src": "1154:23:41", - "nodes": [], - "literals": ["solidity", "0.6", ".12"] - }, - { - "id": 47318, - "nodeType": "ImportDirective", - "src": "1179:48:41", - "nodes": [], - "absolutePath": "src/FiatTokenV2_1/centre-tokens/contracts/v2/FiatTokenV2.sol", - "file": "./FiatTokenV2.sol", - "scope": 47381, - "sourceUnit": 47315, - "symbolAliases": [ - { - "foreign": { - "argumentTypes": null, - "id": 47317, - "name": "FiatTokenV2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": null, - "src": "1188:11:41", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - }, - "local": null - } - ], - "unitAlias": "" - }, - { - "id": 47380, - "nodeType": "ContractDefinition", - "src": "1362:764:41", - "nodes": [ - { - "id": 47370, - "nodeType": "FunctionDefinition", - "src": "1528:398:41", - "nodes": [], - "body": { - "id": 47369, - "nodeType": "Block", - "src": "1583:343:41", - "nodes": [], - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 47330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 47328, - "name": "_initializedVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 47025, - "src": "1652:19:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 47329, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1675:1:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1652:24:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 47327, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [-18, -18], - "referencedDeclaration": -18, - "src": "1644:7:41", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 47331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1644:33:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 47332, - "nodeType": "ExpressionStatement", - "src": "1644:33:41" - }, - { - "assignments": [47334], - "declarations": [ - { - "constant": false, - "id": 47334, - "mutability": "mutable", - "name": "lockedAmount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 47369, - "src": "1688:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 47333, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1688:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 47341, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 47335, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 45622, - "src": "1711:8:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 47340, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 47338, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1728:4:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_FiatTokenV2_1_$47380", - "typeString": "contract FiatTokenV2_1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_FiatTokenV2_1_$47380", - "typeString": "contract FiatTokenV2_1" - } - ], - "id": 47337, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1720:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 47336, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1720:7:41", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 47339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1720:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1711:23:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1688:46:41" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 47344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 47342, - "name": "lockedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 47334, - "src": "1748:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 47343, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1763:1:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1748:16:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 47355, - "nodeType": "IfStatement", - "src": "1744:99:41", - "trueBody": { - "id": 47354, - "nodeType": "Block", - "src": "1766:77:41", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 47348, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1798:4:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_FiatTokenV2_1_$47380", - "typeString": "contract FiatTokenV2_1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_FiatTokenV2_1_$47380", - "typeString": "contract FiatTokenV2_1" - } - ], - "id": 47347, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1790:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 47346, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1790:7:41", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 47349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1790:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 47350, - "name": "lostAndFound", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 47324, - "src": "1805:12:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 47351, - "name": "lockedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 47334, - "src": "1819:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 47345, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [46200], - "referencedDeclaration": 46200, - "src": "1780:9:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 47352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1780:52:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 47353, - "nodeType": "ExpressionStatement", - "src": "1780:52:41" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 47363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 47356, - "name": "blacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 45464, - "src": "1852:11:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 47361, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 47359, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1872:4:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_FiatTokenV2_1_$47380", - "typeString": "contract FiatTokenV2_1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_FiatTokenV2_1_$47380", - "typeString": "contract FiatTokenV2_1" - } - ], - "id": 47358, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1864:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 47357, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1864:7:41", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 47360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1864:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1852:26:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 47362, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1881:4:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1852:33:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 47364, - "nodeType": "ExpressionStatement", - "src": "1852:33:41" - }, - { - "expression": { - "argumentTypes": null, - "id": 47367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 47365, - "name": "_initializedVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 47025, - "src": "1896:19:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "32", - "id": 47366, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1918:1:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "1896:23:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 47368, - "nodeType": "ExpressionStatement", - "src": "1896:23:41" - } - ] - }, - "documentation": { - "id": 47322, - "nodeType": "StructuredDocumentation", - "src": "1406:117:41", - "text": " @notice Initialize v2.1\n @param lostAndFound The address to which the locked funds are sent" - }, - "functionSelector": "2fc81e09", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "initializeV2_1", - "overrides": null, - "parameters": { - "id": 47325, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 47324, - "mutability": "mutable", - "name": "lostAndFound", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 47370, - "src": "1552:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 47323, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1552:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1551:22:41" - }, - "returnParameters": { - "id": 47326, - "nodeType": "ParameterList", - "parameters": [], - "src": "1583:0:41" - }, - "scope": 47380, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 47379, - "nodeType": "FunctionDefinition", - "src": "2040:84:41", - "nodes": [], - "body": { - "id": 47378, - "nodeType": "Block", - "src": "2097:27:41", - "nodes": [], - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "32", - "id": 47376, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2114:3:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5", - "typeString": "literal_string \"2\"" - }, - "value": "2" - }, - "functionReturnParameters": 47375, - "id": 47377, - "nodeType": "Return", - "src": "2107:10:41" - } - ] - }, - "documentation": { - "id": 47371, - "nodeType": "StructuredDocumentation", - "src": "1932:103:41", - "text": " @notice Version string for the EIP712 domain separator\n @return Version string" - }, - "functionSelector": "54fd4d50", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "version", - "overrides": null, - "parameters": { - "id": 47372, - "nodeType": "ParameterList", - "parameters": [], - "src": "2056:2:41" - }, - "returnParameters": { - "id": 47375, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 47374, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 47379, - "src": "2082:13:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 47373, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2082:6:41", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2081:15:41" - }, - "scope": 47380, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 47320, - "name": "FiatTokenV2", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 47314, - "src": "1388:11:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_FiatTokenV2_$47314", - "typeString": "contract FiatTokenV2" - } - }, - "id": 47321, - "nodeType": "InheritanceSpecifier", - "src": "1388:11:41" - } - ], - "contractDependencies": [ - 45337, 45426, 45451, 45582, 46359, 46443, 46543, 46568, 46663, 46995, - 47002, 47314, 47654 - ], - "contractKind": "contract", - "documentation": { - "id": 47319, - "nodeType": "StructuredDocumentation", - "src": "1269:92:41", - "text": " @title FiatToken V2.1\n @notice ERC20 Token backed by fiat reserves, version 2.1" - }, - "fullyImplemented": true, - "linearizedBaseContracts": [ - 47380, 47314, 46663, 46995, 47002, 46568, 45337, 45426, 46359, 45582, - 46543, 46443, 45451, 47654 - ], - "name": "FiatTokenV2_1", - "scope": 47381 - } - ], - "license": "MIT" - }, - "id": 41 -} diff --git a/packages/protocol/contracts/compiled/README.md b/packages/protocol/contracts/compiled/README.md deleted file mode 100644 index f8767494803..00000000000 --- a/packages/protocol/contracts/compiled/README.md +++ /dev/null @@ -1,24 +0,0 @@ -## About the compiled contracts - -Following Circle's recommendation for native token support (USDC, EURC), one needs to follow the standard proposed below: - -https://github.com/circlefin/stablecoin-evm/blob/master/doc/bridged_USDC_standard.md - -According to this document: - -> The third-party team’s bridged USDC token contract is expected to be identical to native USDC token contracts on other EVM blockchains. USDC uses a proxy pattern, so the standard applies to both the implementation contract code and the token proxy. -> -> Using identical code facilitates trustless contract verification by Circle and supports a seamless integration with existing USDC services. To facilitate this, the third-party team may choose one of the following: -> -> Copy previously deployed bytecode from a recent, native USDC token contract deployment (both proxy and implementation) on an EVM blockchain, for example Arbitrum, Base, OP Mainnet, or Polygon PoS Note that you must supply different constructor and initializer parameters where needed. -> -> Build the FiatToken contracts from source. In this case, the compiler metadata must be published or made available to support full contract verification. Various suggested compiler settings that Circle uses can be found here, which will allow the third-party team to reach the same bytecode if followed consistently. - -Following the recommendations the contracts were built with the same compiler settings (version + optimization) and they have bytecode equivalence with the other contracts (mentioned in the doc, and can be found on links below (Arbitrum, Scroll, Polygon, etc.)). - -For reference, here are Arbitrum's proxy + token contracts: - -- Proxy: https://arbiscan.io/token/0xaf88d065e77c8cc2239327c5edb3a432268e5831#code -- Implementation: https://arbiscan.io/address/0x0f4fb9474303d10905AB86aA8d5A65FE44b6E04A#code - -As a cross-reference, one can compare the bytecode of the ones present on arbiscan and here in the .json files (under bytcode key), the additional (meta)data could be helpful for contracts verification.