Loading
[ { "inputs": [], "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": "DELEGATION_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": "DOMAIN_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "END_OF_YEAR_ONE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMIT_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "YEAR_ONE_CAP", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint32", "name": "", "type": "uint32" } ], "name": "checkpoints", "outputs": [ { "internalType": "uint32", "name": "fromBlock", "type": "uint32" }, { "internalType": "uint256", "name": "votes", "type": "uint256" } ], "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": "delegator", "type": "address" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getCurrentVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "expiry", "type": "uint256" } ], "name": "getDelegationDigest", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "getPermitDigest", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "getPriorVotes", "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": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "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": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "permitNonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "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": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "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" } ]
60c06040523480156200001157600080fd5b50604051806040016040528060118152602001702137b7902334b730b731b2902a37b5b2b760791b81525060405180604001604052806005815260200164424f4f464960d81b8152508181818181600390805190602001906200007692919062000207565b5080516200008c90600490602084019062000207565b506200009a915050620000fc565b6080525050600a80546001600160a01b03191633908117909155604051909250600091507f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3620000f3426301e13380620002ad565b60a05262000311565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866620001296200016d565b805160209091012046604080516020810194909452830191909152606082015230608082015260a00160405160208183030381529060405280519060200120905090565b6060600380546200017e90620002d4565b80601f0160208091040260200160405190810160405280929190818152602001828054620001ac90620002d4565b8015620001fd5780601f10620001d157610100808354040283529160200191620001fd565b820191906000526020600020905b815481529060010190602001808311620001df57829003601f168201915b5050505050905090565b8280546200021590620002d4565b90600052602060002090601f01602090048101928262000239576000855562000284565b82601f106200025457805160ff191683800117855562000284565b8280016001018555821562000284579182015b828111156200028457825182559160200191906001019062000267565b506200029292915062000296565b5090565b5b8082111562000292576000815560010162000297565b60008219821115620002cf57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620002e957607f821691505b602082108114156200030b57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05161203d6200035a600039600081816104ca015261086a0152600081816102fb0152818161079e01528181610d2701528181610e5a0152611496015261203d6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063715018a61161011a578063b4b5ea57116100ad578063d505accf1161007c578063d505accf146104ec578063dd62ed3e146104ff578063e7a324dc14610538578063f1127ed81461055f578063f2fde38b146105b657600080fd5b8063b4b5ea571461048d578063b57862d9146104a0578063c3cda520146104b2578063c6857ebd146104c557600080fd5b806395d89b41116100e957806395d89b411461044c578063a457c2d714610454578063a9059cbb14610467578063ac9ebbd01461047a57600080fd5b8063715018a614610400578063782d6fe1146104085780637ecebe001461041b5780638da5cb5b1461043b57600080fd5b8063313ce56711610192578063587cde1e11610161578063587cde1e146103455780635c19a95c146103895780636fcfff451461039c57806370a08231146103d757600080fd5b8063313ce567146102e75780633644e515146102f6578063395093511461031d57806340c10f191461033057600080fd5b806320606b70116101ce57806320606b701461027357806323b872dd1461029a5780632c19e8b5146102ad57806330adf81f146102c057600080fd5b806306fdde0314610200578063095ea7b31461021e57806318160ddd14610241578063191d0ffc14610253575b600080fd5b6102086105c9565b6040516102159190611e25565b60405180910390f35b61023161022c366004611d15565b61065b565b6040519015158152602001610215565b6002545b604051908152602001610215565b610245610261366004611bd4565b60096020526000908152604090205481565b6102457f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6102316102a8366004611c22565b610672565b6102456102bb366004611c5e565b610721565b6102457f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60405160128152602001610215565b6102457f000000000000000000000000000000000000000000000000000000000000000081565b61023161032b366004611d15565b6107f3565b61034361033e366004611d15565b61082f565b005b610371610353366004611bd4565b6001600160a01b039081166000908152600560205260409020541690565b6040516001600160a01b039091168152602001610215565b610343610397366004611bd4565b610905565b6103c26103aa366004611bd4565b60076020526000908152604090205463ffffffff1681565b60405163ffffffff9091168152602001610215565b6102456103e5366004611bd4565b6001600160a01b031660009081526020819052604090205490565b610343610912565b610245610416366004611d15565b610995565b610245610429366004611bd4565b60086020526000908152604090205481565b600a546001600160a01b0316610371565b610208610c05565b610231610462366004611d15565b610c14565b610231610475366004611d15565b610cad565b610245610488366004611d3f565b610cba565b61024561049b366004611bd4565b610d7a565b6102456a084595161401484a00000081565b6103436104c0366004611d72565b610def565b6102457f000000000000000000000000000000000000000000000000000000000000000081565b6103436104fa366004611cab565b61107f565b61024561050d366004611bef565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6102457fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b61059a61056d366004611dca565b60066020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b6040805163ffffffff9093168352602083019190915201610215565b6103436105c4366004611bd4565b611184565b6060600380546105d890611f5c565b80601f016020809104026020016040519081016040528092919081815260200182805461060490611f5c565b80156106515780601f1061062657610100808354040283529160200191610651565b820191906000526020600020905b81548152906001019060200180831161063457829003601f168201915b5050505050905090565b600061066833848461127e565b5060015b92915050565b600061067f8484846113a2565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156107095760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610716853385840361127e565b506001949350505050565b604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960208201526001600160a01b038088169282019290925290851660608201526080810183905260a0810184905260c08101829052600090819060e00160405160208183030381529060405280519060200120905060007f0000000000000000000000000000000000000000000000000000000000000000826040516020016107cf929190611e0a565b60408051808303601f19018152919052805160209091012098975050505050505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161066891859061082a908690611eaf565b61127e565b33610842600a546001600160a01b031690565b6001600160a01b0316146108685760405162461bcd60e51b815260040161070090611e7a565b7f00000000000000000000000000000000000000000000000000000000000000004210156108f7576a084595161401484a000000816108a660025490565b6108b09190611eaf565b11156108f75760405162461bcd60e51b815260206004820152601660248201527536b4b73a103bb7bab6321032bc31b2b2b21031b0b81760511b6044820152606401610700565b61090182826113e4565b5050565b61090f3382611413565b50565b33610925600a546001600160a01b031690565b6001600160a01b03161461094b5760405162461bcd60e51b815260040161070090611e7a565b600a546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600a80546001600160a01b0319169055565b6000438210610a015760405162461bcd60e51b815260206004820152603260248201527f455243323057697468566f74696e673a3a6765745072696f72566f7465733a206044820152711b9bdd081e595d0819195d195c9b5a5b995960721b6064820152608401610700565b6001600160a01b03831660009081526007602052604090205463ffffffff1680610a2f57600091505061066c565b6001600160a01b03841660009081526006602052604081208491610a54600185611f37565b63ffffffff90811682526020820192909252604001600020541611610abd576001600160a01b038416600090815260066020526040812090610a97600184611f37565b63ffffffff1663ffffffff1681526020019081526020016000206001015491505061066c565b6001600160a01b038416600090815260066020908152604080832083805290915290205463ffffffff16831015610af857600091505061066c565b600080610b06600184611f37565b90505b8163ffffffff168163ffffffff161115610bce5760006002610b2b8484611f37565b610b359190611eef565b610b3f9083611f37565b6001600160a01b038816600090815260066020908152604080832063ffffffff8086168552908352928190208151808301909252805490931680825260019093015491810191909152919250871415610ba25760200151945061066c9350505050565b805163ffffffff16871115610bb957819350610bc7565b610bc4600183611f37565b92505b5050610b09565b506001600160a01b038516600090815260066020908152604080832063ffffffff9094168352929052206001015491505092915050565b6060600480546105d890611f5c565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610c965760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610700565b610ca3338585840361127e565b5060019392505050565b60006106683384846113a2565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038516918101919091526060810183905260808101829052600090819060a00160405160208183030381529060405280519060200120905060007f000000000000000000000000000000000000000000000000000000000000000082604051602001610d58929190611e0a565b60408051808303601f1901815291905280516020909101209695505050505050565b6001600160a01b03811660009081526007602052604081205463ffffffff1680610da5576000610de8565b6001600160a01b038316600090815260066020526040812090610dc9600184611f37565b63ffffffff1663ffffffff168152602001908152602001600020600101545b9392505050565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b03881691810191909152606081018690526080810185905260009060a00160405160208183030381529060405280519060200120905060007f000000000000000000000000000000000000000000000000000000000000000082604051602001610e8b929190611e0a565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff89169284019290925260608301879052608083018690529092509060019060a0016020604051602081039080840390855afa158015610ef6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610f735760405162461bcd60e51b815260206004820152603160248201527f455243323057697468566f74696e673a3a64656c656761746542795369673a20604482015270696e76616c6964207369676e617475726560781b6064820152608401610700565b6001600160a01b0381166000908152600860205260408120805491610f9783611f97565b919050558814610fff5760405162461bcd60e51b815260206004820152602d60248201527f455243323057697468566f74696e673a3a64656c656761746542795369673a2060448201526c696e76616c6964206e6f6e636560981b6064820152608401610700565b864211156110695760405162461bcd60e51b815260206004820152603160248201527f455243323057697468566f74696e673a3a64656c656761746542795369673a206044820152701cda59db985d1d5c9948195e1c1a5c9959607a1b6064820152608401610700565b611073818a611413565b5050505b505050505050565b428410156110c15760405162461bcd60e51b815260206004820152600f60248201526e1c195c9b5a5d0e8e995e1c1a5c9959608a1b6044820152606401610700565b6001600160a01b038716600090815260096020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a91908661110e83611f97565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905061116f8882868686611492565b61117a88888861127e565b5050505050505050565b33611197600a546001600160a01b031690565b6001600160a01b0316146111bd5760405162461bcd60e51b815260040161070090611e7a565b6001600160a01b0381166112225760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610700565b600a546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166112e05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610700565b6001600160a01b0382166113415760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610700565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6113ad8383836115c9565b6001600160a01b038084166000908152600560205260408082205485841683529120546113df92918216911683611797565b505050565b6113ee82826118f6565b6001600160a01b03808316600090815260056020526040812054610901921683611797565b6001600160a01b038281166000818152600560208181526040808420805485845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a461148c828483611797565b50505050565b60007f0000000000000000000000000000000000000000000000000000000000000000856040516020016114c7929190611e0a565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015611532573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906115685750866001600160a01b0316816001600160a01b0316145b6115c05760405162461bcd60e51b8152602060048201526024808201527f417263683a3a76616c69646174655369673a20696e76616c6964207369676e616044820152637475726560e01b6064820152608401610700565b50505050505050565b6001600160a01b03831661162d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610700565b6001600160a01b03821661168f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610700565b6001600160a01b038316600090815260208190526040902054818110156117075760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610700565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061173e908490611eaf565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161178a91815260200190565b60405180910390a361148c565b816001600160a01b0316836001600160a01b0316141580156117b95750600081115b156113df576001600160a01b0383161561185c576001600160a01b03831660009081526007602052604081205463ffffffff1690816117f957600061183c565b6001600160a01b03851660009081526006602052604081209061181d600185611f37565b63ffffffff1663ffffffff168152602001908152602001600020600101545b9050600061184a8483611f20565b9050611858868484846119d5565b5050505b6001600160a01b038216156113df576001600160a01b03821660009081526007602052604081205463ffffffff1690816118975760006118da565b6001600160a01b0384166000908152600660205260408120906118bb600185611f37565b63ffffffff1663ffffffff168152602001908152602001600020600101545b905060006118e88483611eaf565b9050611077858484846119d5565b6001600160a01b03821661194c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610700565b806002600082825461195e9190611eaf565b90915550506001600160a01b0382166000908152602081905260408120805483929061198b908490611eaf565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60006119f9436040518060600160405280603f8152602001611fc9603f9139611b77565b905060008463ffffffff16118015611a5357506001600160a01b038516600090815260066020526040812063ffffffff831691611a37600188611f37565b63ffffffff908116825260208201929092526040016000205416145b15611a9c576001600160a01b03851660009081526006602052604081208391611a7d600188611f37565b63ffffffff168152602081019190915260400160002060010155611b2c565b60408051808201825263ffffffff838116825260208083018681526001600160a01b038a166000908152600683528581208a851682529092529390209151825463ffffffff191691161781559051600191820155611afb908590611ec7565b6001600160a01b0386166000908152600760205260409020805463ffffffff191663ffffffff929092169190911790555b60408051848152602081018490526001600160a01b038716917fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724910160405180910390a25050505050565b6000816401000000008410611b9f5760405162461bcd60e51b81526004016107009190611e25565b509192915050565b80356001600160a01b0381168114611bbe57600080fd5b919050565b803560ff81168114611bbe57600080fd5b600060208284031215611be657600080fd5b610de882611ba7565b60008060408385031215611c0257600080fd5b611c0b83611ba7565b9150611c1960208401611ba7565b90509250929050565b600080600060608486031215611c3757600080fd5b611c4084611ba7565b9250611c4e60208501611ba7565b9150604084013590509250925092565b600080600080600060a08688031215611c7657600080fd5b611c7f86611ba7565b9450611c8d60208701611ba7565b94979496505050506040830135926060810135926080909101359150565b600080600080600080600060e0888a031215611cc657600080fd5b611ccf88611ba7565b9650611cdd60208901611ba7565b95506040880135945060608801359350611cf960808901611bc3565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215611d2857600080fd5b611d3183611ba7565b946020939093013593505050565b600080600060608486031215611d5457600080fd5b611d5d84611ba7565b95602085013595506040909401359392505050565b60008060008060008060c08789031215611d8b57600080fd5b611d9487611ba7565b95506020870135945060408701359350611db060608801611bc3565b92506080870135915060a087013590509295509295509295565b60008060408385031215611ddd57600080fd5b611de683611ba7565b9150602083013563ffffffff81168114611dff57600080fd5b809150509250929050565b61190160f01b81526002810192909252602282015260420190565b600060208083528351808285015260005b81811015611e5257858101830151858201604001528201611e36565b81811115611e64576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115611ec257611ec2611fb2565b500190565b600063ffffffff808316818516808303821115611ee657611ee6611fb2565b01949350505050565b600063ffffffff80841680611f1457634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b600082821015611f3257611f32611fb2565b500390565b600063ffffffff83811690831681811015611f5457611f54611fb2565b039392505050565b600181811c90821680611f7057607f821691505b60208210811415611f9157634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611fab57611fab611fb2565b5060010190565b634e487b7160e01b600052601160045260246000fdfe455243323057697468566f74696e673a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473a2646970667358221220ee4ca8142bfac243e133bab2cfefb28b9e89286b4a20189a5d62d444956f16ac64736f6c63430008070033