[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint256", "name": "initialSupply", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "delegator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "fromDelegate", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toDelegate", "type": "address" } ], "name": "DelegateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "previousBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newBalance", "type": "uint256" } ], "name": "DelegateVotesChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "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" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "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": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "bpContract", "outputs": [ { "internalType": "contract IBotPrevention", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "bpDisabledForever", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "bpEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint32", "name": "pos", "type": "uint32" } ], "name": "checkpoints", "outputs": [ { "components": [ { "internalType": "uint32", "name": "fromBlock", "type": "uint32" }, { "internalType": "uint224", "name": "votes", "type": "uint224" } ], "internalType": "struct ERC20Votes.Checkpoint", "name": "", "type": "tuple" } ], "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": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "expiry", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "delegateBySig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "getPastTotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "getPastVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "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": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "numCheckpoints", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "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": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "setBPContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setBPDisableForever", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "setBPEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "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": "amount", "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" } ]
6101606040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610140523480156200003757600080fd5b5060405162002e4f38038062002e4f8339810160408190526200005a91620009ca565b8280604051806040016040528060018152602001603160f81b8152508585620000926200008c6200016660201b60201c565b6200016a565b8151620000a790600490602085019062000861565b508051620000bd90600590602084019062000861565b5050825160209384012082519284019290922060e08390526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818901819052818301979097526060810194909452608080850193909352308483018190528151808603909301835260c09485019091528151919096012090529290925261012052506200015d90503382620001ba565b50505062000adb565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620001d18282620001d560201b62000e3b1760201c565b5050565b620001ec82826200028c60201b62000ecb1760201c565b6001600160e01b0362000200620003898216565b11156200026d5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b60648201526084015b60405180910390fd5b62000286600962000fbe6200038f60201b1783620003a4565b50505050565b6001600160a01b038216620002e45760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000264565b620002f26000838362000556565b806003600082825462000306919062000a53565b90915550506001600160a01b038216600090815260016020526040812080548392906200033590849062000a53565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3620001d160008383620005f6565b60035490565b60006200039d828462000a53565b9392505050565b825460009081908015620003f65785620003c060018362000a6e565b81548110620003d357620003d362000a88565b60009182526020909120015464010000000090046001600160e01b0316620003f9565b60005b6001600160e01b031692506200041083858760201c565b915060008111801562000454575043866200042d60018462000a6e565b8154811062000440576200044062000a88565b60009182526020909120015463ffffffff16145b15620004c85762000470826200060e60201b62000fca1760201c565b866200047e60018462000a6e565b8154811062000491576200049162000a88565b9060005260206000200160000160046101000a8154816001600160e01b0302191690836001600160e01b031602179055506200054d565b856040518060400160405280620004ea436200067d60201b620010371760201c565b63ffffffff1681526020016200050b856200060e60201b62000fca1760201c565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b50935093915050565b600a54600160a01b900460ff1680156200057a5750600a54600160a81b900460ff16155b15620005f157600a54604051637e2f3afd60e01b81526001600160a01b03858116600483015284811660248301526044820184905290911690637e2f3afd90606401600060405180830381600087803b158015620005d757600080fd5b505af1158015620005ec573d6000803e3d6000fd5b505050505b505050565b620005f1838383620006e460201b6200109c1760201c565b60006001600160e01b03821115620006795760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840162000264565b5090565b600063ffffffff821115620006795760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840162000264565b620006fc838383620005f160201b620010ce1760201c565b6001600160a01b03838116600090815260076020526040808220548584168352912054620005f1929182169116838183148015906200073b5750600081115b15620005f1576001600160a01b03831615620007c8576001600160a01b03831660009081526008602090815260408220829162000785919062000853901b620010d31785620003a4565b91509150846001600160a01b031660008051602062002e2f8339815191528383604051620007bd929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615620005f1576001600160a01b0382166000908152600860209081526040822082916200080c91906200038f901b62000fbe1785620003a4565b91509150836001600160a01b031660008051602062002e2f833981519152838360405162000844929190918252602082015260400190565b60405180910390a25050505050565b60006200039d828462000a6e565b8280546200086f9062000a9e565b90600052602060002090601f016020900481019282620008935760008555620008de565b82601f10620008ae57805160ff1916838001178555620008de565b82800160010185558215620008de579182015b82811115620008de578251825591602001919060010190620008c1565b50620006799291505b80821115620006795760008155600101620008e7565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200092557600080fd5b81516001600160401b0380821115620009425762000942620008fd565b604051601f8301601f19908116603f011681019082821181831017156200096d576200096d620008fd565b816040528381526020925086838588010111156200098a57600080fd5b600091505b83821015620009ae57858201830151818301840152908201906200098f565b83821115620009c05760008385830101525b9695505050505050565b600080600060608486031215620009e057600080fd5b83516001600160401b0380821115620009f857600080fd5b62000a068783880162000913565b9450602086015191508082111562000a1d57600080fd5b5062000a2c8682870162000913565b925050604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b6000821982111562000a695762000a6962000a3d565b500190565b60008282101562000a835762000a8362000a3d565b500390565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168062000ab357607f821691505b6020821081141562000ad557634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e0516101005161012051610140516122f962000b366000396000610c0f015260006114f801526000611547015260006115220152600061147b015260006114a5015260006114cf01526122f96000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063715018a61161011a578063a457c2d7116100ad578063c3cda5201161007c578063c3cda5201461045c578063d505accf1461046f578063dd62ed3e14610482578063f1127ed8146104bb578063f2fde38b146104f857600080fd5b8063a457c2d71461041b578063a9059cbb1461042e578063af20025214610441578063c17d2a061461045457600080fd5b80638da5cb5b116100e95780638da5cb5b146103dc5780638e539e8c146103ed57806395d89b41146104005780639ab24eb01461040857600080fd5b8063715018a61461039b57806378f74560146103a357806379cc6790146103b65780637ecebe00146103c957600080fd5b80633a46b1a81161019257806359c002271161016157806359c00227146103245780635c19a95c146103375780636fcfff451461034a57806370a082311461037257600080fd5b80633a46b1a8146102a457806342966c68146102b75780634aaee112146102cc578063587cde1e146102e057600080fd5b806326898da9116101ce57806326898da914610266578063313ce5671461027a5780633644e51514610289578063395093511461029157600080fd5b806306fdde0314610200578063095ea7b31461021e57806318160ddd1461024157806323b872dd14610253575b600080fd5b61020861050b565b6040516102159190611f53565b60405180910390f35b61023161022c366004611fc4565b61059d565b6040519015158152602001610215565b6003545b604051908152602001610215565b610231610261366004611fee565b6105b5565b600a5461023190600160a01b900460ff1681565b60405160128152602001610215565b6102456105d9565b61023161029f366004611fc4565b6105e8565b6102456102b2366004611fc4565b610627565b6102ca6102c536600461202a565b6106a6565b005b600a5461023190600160a81b900460ff1681565b61030c6102ee366004612043565b6001600160a01b039081166000908152600760205260409020541690565b6040516001600160a01b039091168152602001610215565b600a5461030c906001600160a01b031681565b6102ca610345366004612043565b6106b3565b61035d610358366004612043565b6106bd565b60405163ffffffff9091168152602001610215565b610245610380366004612043565b6001600160a01b031660009081526001602052604090205490565b6102ca6106e5565b6102ca6103b1366004612043565b61071b565b6102ca6103c4366004611fc4565b6107d0565b6102456103d7366004612043565b6107e9565b6000546001600160a01b031661030c565b6102456103fb36600461202a565b610807565b610208610863565b610245610416366004612043565b610872565b610231610429366004611fc4565b6108f9565b61023161043c366004611fc4565b61098b565b6102ca61044f36600461205e565b610999565b6102ca6109e1565b6102ca61046a366004612091565b610a85565b6102ca61047d3660046120e9565b610bbb565b610245610490366004612153565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6104ce6104c9366004612186565b610d1f565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610215565b6102ca610506366004612043565b610da3565b60606004805461051a906121c6565b80601f0160208091040260200160405190810160405280929190818152602001828054610546906121c6565b80156105935780601f1061056857610100808354040283529160200191610593565b820191906000526020600020905b81548152906001019060200180831161057657829003601f168201915b5050505050905090565b6000336105ab8185856110df565b5060019392505050565b6000336105c3858285611203565b6105ce85858561128f565b506001949350505050565b60006105e361146e565b905090565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091906105ab9082908690610622908790612211565b6110df565b600043821061067d5760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e65640060448201526064015b60405180910390fd5b6001600160a01b038316600090815260086020526040902061069f9083611595565b9392505050565b6106b03382611652565b50565b6106b0338261165c565b6001600160a01b0381166000908152600860205260408120546106df90611037565b92915050565b6000546001600160a01b0316331461070f5760405162461bcd60e51b815260040161067490612229565b61071960006116d6565b565b6000546001600160a01b031633146107455760405162461bcd60e51b815260040161067490612229565b600a546001600160a01b0316156107ae5760405162461bcd60e51b815260206004820152602760248201527f536e6374546f6b656e3a2063616e206f6e6c7920626520696e697469616c697a6044820152666564206f6e636560c81b6064820152608401610674565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6107db823383611203565b6107e58282611652565b5050565b6001600160a01b0381166000908152600660205260408120546106df565b60004382106108585760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564006044820152606401610674565b6106df600983611595565b60606005805461051a906121c6565b6001600160a01b03811660009081526008602052604081205480156108e6576001600160a01b03831660009081526008602052604090206108b460018361225e565b815481106108c4576108c4612275565b60009182526020909120015464010000000090046001600160e01b03166108e9565b60005b6001600160e01b03169392505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091908381101561097e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610674565b6105ce82868684036110df565b6000336105ab81858561128f565b6000546001600160a01b031633146109c35760405162461bcd60e51b815260040161067490612229565b600a8054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610a0b5760405162461bcd60e51b815260040161067490612229565b600a54600160a81b900460ff1615610a705760405162461bcd60e51b815260206004820152602260248201527f536e6374546f6b656e3a20626f742070726576656e74696f6e2064697361626c604482015261195960f21b6064820152608401610674565b600a805460ff60a81b1916600160a81b179055565b83421115610ad55760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610674565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610b4f90610b479060a00160405160208183030381529060405280519060200120611726565b858585611774565b9050610b5a8161179c565b8614610ba85760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610674565b610bb2818861165c565b50505050505050565b83421115610c0b5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610674565b60007f0000000000000000000000000000000000000000000000000000000000000000888888610c3a8c61179c565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610c9582611726565b90506000610ca582878787611774565b9050896001600160a01b0316816001600160a01b031614610d085760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610674565b610d138a8a8a6110df565b50505050505050505050565b60408051808201909152600080825260208201526001600160a01b0383166000908152600860205260409020805463ffffffff8416908110610d6357610d63612275565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b6000546001600160a01b03163314610dcd5760405162461bcd60e51b815260040161067490612229565b6001600160a01b038116610e325760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610674565b6106b0816116d6565b610e458282610ecb565b6003546001600160e01b031015610eb75760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608401610674565b610ec56009610fbe836117c4565b50505050565b6001600160a01b038216610f215760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610674565b610f2d6000838361193d565b8060036000828254610f3f9190612211565b90915550506001600160a01b03821660009081526001602052604081208054839290610f6c908490612211565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36107e5600083836119cf565b600061069f8284612211565b60006001600160e01b038211156110335760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610674565b5090565b600063ffffffff8211156110335760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610674565b6001600160a01b038381166000908152600760205260408082205485841683529120546110ce929182169116836119da565b505050565b600061069f828461225e565b6001600160a01b0383166111415760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610674565b6001600160a01b0382166111a25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610674565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600260209081526040808320938616835292905220546000198114610ec557818110156112825760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610674565b610ec584848484036110df565b6001600160a01b0383166112f35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610674565b6001600160a01b0382166113555760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610674565b61136083838361193d565b6001600160a01b038316600090815260016020526040902054818110156113d85760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610674565b6001600160a01b0380851660009081526001602052604080822085850390559185168152908120805484929061140f908490612211565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161145b91815260200190565b60405180910390a3610ec58484846119cf565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156114c757507f000000000000000000000000000000000000000000000000000000000000000046145b156114f157507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b8154600090815b818110156115f95760006115b08284611b17565b9050848682815481106115c5576115c5612275565b60009182526020909120015463ffffffff1611156115e5578092506115f3565b6115f0816001612211565b91505b5061159c565b811561163d578461160b60018461225e565b8154811061161b5761161b612275565b60009182526020909120015464010000000090046001600160e01b0316611640565b60005b6001600160e01b031695945050505050565b6107e58282611b32565b6001600160a01b03828116600081815260076020818152604080842080546001845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610ec58284836119da565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006106df61173361146e565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061178587878787611b4a565b9150915061179281611c37565b5095945050505050565b6001600160a01b03811660009081526006602052604090208054600181018255905b50919050565b82546000908190801561180f57856117dd60018361225e565b815481106117ed576117ed612275565b60009182526020909120015464010000000090046001600160e01b0316611812565b60005b6001600160e01b0316925061182b83858763ffffffff16565b91506000811180156118695750438661184560018461225e565b8154811061185557611855612275565b60009182526020909120015463ffffffff16145b156118c95761187782610fca565b8661188360018461225e565b8154811061189357611893612275565b9060005260206000200160000160046101000a8154816001600160e01b0302191690836001600160e01b03160217905550611934565b8560405180604001604052806118de43611037565b63ffffffff1681526020016118f285610fca565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b50935093915050565b600a54600160a01b900460ff1680156119605750600a54600160a81b900460ff16155b156110ce57600a54604051637e2f3afd60e01b81526001600160a01b03858116600483015284811660248301526044820184905290911690637e2f3afd90606401600060405180830381600087803b1580156119bb57600080fd5b505af1158015610bb2573d6000803e3d6000fd5b6110ce83838361109c565b816001600160a01b0316836001600160a01b0316141580156119fc5750600081115b156110ce576001600160a01b03831615611a8a576001600160a01b03831660009081526008602052604081208190611a37906110d3856117c4565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611a7f929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156110ce576001600160a01b03821660009081526008602052604081208190611ac090610fbe856117c4565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611b08929190918252602082015260400190565b60405180910390a25050505050565b6000611b26600284841861228b565b61069f90848416612211565b611b3c8282611df2565b610ec560096110d3836117c4565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611b815750600090506003611c2e565b8460ff16601b14158015611b9957508460ff16601c14155b15611baa5750600090506004611c2e565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611bfe573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611c2757600060019250925050611c2e565b9150600090505b94509492505050565b6000816004811115611c4b57611c4b6122ad565b1415611c545750565b6001816004811115611c6857611c686122ad565b1415611cb65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610674565b6002816004811115611cca57611cca6122ad565b1415611d185760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610674565b6003816004811115611d2c57611d2c6122ad565b1415611d855760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610674565b6004816004811115611d9957611d996122ad565b14156106b05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610674565b6001600160a01b038216611e525760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610674565b611e5e8260008361193d565b6001600160a01b03821660009081526001602052604090205481811015611ed25760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610674565b6001600160a01b0383166000908152600160205260408120838303905560038054849290611f0190849061225e565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36110ce836000846119cf565b600060208083528351808285015260005b81811015611f8057858101830151858201604001528201611f64565b81811115611f92576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114611fbf57600080fd5b919050565b60008060408385031215611fd757600080fd5b611fe083611fa8565b946020939093013593505050565b60008060006060848603121561200357600080fd5b61200c84611fa8565b925061201a60208501611fa8565b9150604084013590509250925092565b60006020828403121561203c57600080fd5b5035919050565b60006020828403121561205557600080fd5b61069f82611fa8565b60006020828403121561207057600080fd5b8135801515811461069f57600080fd5b803560ff81168114611fbf57600080fd5b60008060008060008060c087890312156120aa57600080fd5b6120b387611fa8565b955060208701359450604087013593506120cf60608801612080565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561210457600080fd5b61210d88611fa8565b965061211b60208901611fa8565b9550604088013594506060880135935061213760808901612080565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561216657600080fd5b61216f83611fa8565b915061217d60208401611fa8565b90509250929050565b6000806040838503121561219957600080fd5b6121a283611fa8565b9150602083013563ffffffff811681146121bb57600080fd5b809150509250929050565b600181811c908216806121da57607f821691505b602082108114156117be57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115612224576122246121fb565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082821015612270576122706121fb565b500390565b634e487b7160e01b600052603260045260246000fd5b6000826122a857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fdfea2646970667358221220b19faddcacf6c5bb54981d88b62e442b04632ef230de205b4ebc1f3a6d0c037764736f6c634300080c0033dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000033b2e3c9fd0803ce80000000000000000000000000000000000000000000000000000000000000000000010536e616b65204369747920546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004534e435400000000000000000000000000000000000000000000000000000000