[ { "inputs": [ { "internalType": "address", "name": "root_", "type": "address" }, { "internalType": "uint256", "name": "instantRedemptionBP_", "type": "uint256" }, { "internalType": "uint256", "name": "vestingPeriod_", "type": "uint256" }, { "internalType": "address", "name": "smartWalletChecker_", "type": "address" } ], "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": "redeemer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "InstantRedemption", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "minter", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "MinterStatusSet", "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": false, "internalType": "address", "name": "newROOT", "type": "address" } ], "name": "ROOTMigration", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "SenderStatusSet", "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": "claimant", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "VestingClaimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "vestor", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "start", "type": "uint256" } ], "name": "VestingCreated", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "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": "claimVested", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "claimant", "type": "address" } ], "name": "claimable", "outputs": [ { "internalType": "uint256", "name": "totalClaimable", "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": "token", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "emergencyWithdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "claimant", "type": "address" } ], "name": "getTotalUserVestings", "outputs": [ { "internalType": "uint256", "name": "totalVestings", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "claimant", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getVesting", "outputs": [ { "internalType": "uint256", "name": "total", "type": "uint256" }, { "internalType": "uint256", "name": "claimed", "type": "uint256" }, { "internalType": "uint256", "name": "start", "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": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "instantRedemption", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "instantRedemptionBP", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isMinter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isSender", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "lowestUnvestedIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "root_", "type": "address" } ], "name": "migrateROOT", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "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": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "root", "outputs": [ { "internalType": "contract ROOT", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "minter", "type": "address" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setSender", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_checker", "type": "address" } ], "name": "setSmartWalletChecker", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "smartWalletChecker", "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": "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" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "vest", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "vestPeriod", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "vestings", "outputs": [ { "internalType": "uint256", "name": "total", "type": "uint256" }, { "internalType": "uint256", "name": "claimed", "type": "uint256" }, { "internalType": "uint256", "name": "start", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b50604051620025c4380380620025c48339810160408190526200003491620001e6565b604080518082018252600680825265195cd493d3d560d21b6020808401829052845180860190955291845290830152906003620000728382620002d6565b506004620000818282620002d6565b5050506200009e620000986200017360201b60201c565b62000177565b60016006556001600160a01b038416620000ee5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b60448201526064015b60405180910390fd5b6001600160a01b038116620001355760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401620000e5565b600780546001600160a01b039586166001600160a01b031991821617909155600a93909355600b91909155600e8054919093169116179055620003a2565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b0381168114620001e157600080fd5b919050565b60008060008060808587031215620001fd57600080fd5b6200020885620001c9565b935060208501519250604085015191506200022660608601620001c9565b905092959194509250565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200025c57607f821691505b6020821081036200027d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002d157600081815260208120601f850160051c81016020861015620002ac5750805b601f850160051c820191505b81811015620002cd57828155600101620002b8565b5050505b505050565b81516001600160401b03811115620002f257620002f262000231565b6200030a8162000303845462000247565b8462000283565b602080601f831160018114620003425760008415620003295750858301515b600019600386901b1c1916600185901b178555620002cd565b600085815260208120601f198616915b82811015620003735788860151825594840194600190910190840162000352565b5085821015620003925787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61221280620003b26000396000f3fe608060405234801561001057600080fd5b50600436106102055760003560e01c80638da5cb5b1161011a578063cf456ae7116100ad578063e38434631161007c578063e38434631461048e578063e63ea408146104b1578063eb4a1f34146104c4578063ebf0c717146104d7578063f2fde38b146104ea57600080fd5b8063cf456ae714610457578063d01c44cd1461046a578063dd3a153b14610472578063dd62ed3e1461047b57600080fd5b8063aa271e1a116100e9578063aa271e1a14610405578063affd9e9014610428578063bd84477d14610431578063cf2c550c1461044457600080fd5b80638da5cb5b146103c657806395d89b41146103d7578063a457c2d7146103df578063a9059cbb146103f257600080fd5b8063395093511161019d57806367d2a92a1161016c57806367d2a92a1461032157806370a0823114610341578063715018a61461036a57806372280253146103725780637df148541461039b57600080fd5b806339509351146102ba5780633e05a36d146102cd578063402914f5146102fb57806340c10f191461030e57600080fd5b806318160ddd116101d957806318160ddd1461027357806323b872dd146102855780632797c6c814610298578063313ce567146102ab57600080fd5b8062d412d11461020a578063030150531461021f57806306fdde0314610232578063095ea7b314610250575b600080fd5b61021d610218366004611f32565b6104fd565b005b61021d61022d366004611f5c565b6106c5565b61023a610734565b6040516102479190611fa2565b60405180910390f35b61026361025e366004611f32565b6107c6565b6040519015158152602001610247565b6002545b604051908152602001610247565b610263610293366004611fd5565b6107e0565b61021d6102a6366004611f32565b610804565b60405160128152602001610247565b6102636102c8366004611f32565b610971565b6102e06102db366004611f32565b610993565b60408051938452602084019290925290820152606001610247565b610277610309366004611f5c565b610a70565b61021d61031c366004611f32565b610d2a565b61027761032f366004611f5c565b600d6020526000908152604090205481565b61027761034f366004611f5c565b6001600160a01b031660009081526020819052604090205490565b61021d610df0565b610277610380366004611f5c565b6001600160a01b03166000908152600c602052604090205490565b600e546103ae906001600160a01b031681565b6040516001600160a01b039091168152602001610247565b6005546001600160a01b03166103ae565b61023a610e04565b6102636103ed366004611f32565b610e13565b610263610400366004611f32565b610e8e565b610263610413366004611f5c565b60086020526000908152604090205460ff1681565b610277600a5481565b6102e061043f366004611f32565b610e9c565b61021d61045236600461201f565b610ede565b61021d61046536600461201f565b610f46565b61021d610fa6565b610277600b5481565b610277610489366004612056565b611371565b61026361049c366004611f5c565b60096020526000908152604090205460ff1681565b61021d6104bf366004611fd5565b61139c565b61021d6104d2366004611f5c565b6113bd565b6007546103ae906001600160a01b031681565b61021d6104f8366004611f5c565b611546565b6105056115bf565b3233146105c557600e546001600160a01b031661053d5760405162461bcd60e51b815260040161053490612089565b60405180910390fd5b600e54604051631846d2f560e31b81523360048201526001600160a01b039091169063c23697a890602401602060405180830381865afa158015610585573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a991906120b2565b6105c55760405162461bcd60e51b815260040161053490612089565b6105cf3382611618565b6000612710600a54836105e291906120e5565b6105ec91906120fc565b905060006105fa828461211e565b600754909150610614906001600160a01b0316858461174a565b600754604051630852cd8d60e31b8152600481018390526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561065a57600080fd5b505af115801561066e573d6000803e3d6000fd5b50505050836001600160a01b03167ffc56f23467339e65693347adf175cbede4694966cbdaa235dda8687a6ea542a9836040516106ad91815260200190565b60405180910390a250506106c16001600655565b5050565b6106cd61179c565b6001600160a01b0381166107125760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610534565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b60606003805461074390612131565b80601f016020809104026020016040519081016040528092919081815260200182805461076f90612131565b80156107bc5780601f10610791576101008083540402835291602001916107bc565b820191906000526020600020905b81548152906001019060200180831161079f57829003601f168201915b5050505050905090565b6000336107d48185856117f6565b60019150505b92915050565b6000336107ee85828561191a565b6107f9858585611994565b506001949350505050565b3233146108bb57600e546001600160a01b03166108335760405162461bcd60e51b815260040161053490612089565b600e54604051631846d2f560e31b81523360048201526001600160a01b039091169063c23697a890602401602060405180830381865afa15801561087b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089f91906120b2565b6108bb5760405162461bcd60e51b815260040161053490612089565b6108c36115bf565b6108cd3382611618565b6001600160a01b0382166000818152600c602090815260408083208151606081018352868152808401858152428285018181528454600180820187559589529787902093516003909802909301968755905192860192909255516002909401939093558051858152918201929092527f9ade76f4385de306666dfb21a52b27d52db0fde8ad0f515fa261f532cac60d21910160405180910390a26106c16001600655565b6000336107d48185856109848383611371565b61098e9190612165565b6117f6565b6001600160a01b0382166000908152600c60205260408120805482918291859081106109c1576109c1612178565b9060005260206000209060030201600001549250600c6000866001600160a01b03166001600160a01b031681526020019081526020016000208481548110610a0b57610a0b612178565b9060005260206000209060030201600101549150600c6000866001600160a01b03166001600160a01b031681526020019081526020016000208481548110610a5557610a55612178565b90600052602060002090600302016002015490509250925092565b6001600160a01b0381166000908152600d60205260408120545b6001600160a01b0383166000908152600c6020526040902054811015610d24576001600160a01b0383166000908152600c60205260409020805482908110610ad457610ad4612178565b600091825260208083206003909202909101546001600160a01b0386168352600c9091526040909120805483908110610b0f57610b0f612178565b9060005260206000209060030201600101540315610d1257600b546001600160a01b0384166000908152600c6020526040902080544292919084908110610b5857610b58612178565b906000526020600020906003020160020154610b749190612165565b1015610c19576001600160a01b0383166000908152600c60205260409020805482908110610ba457610ba4612178565b906000526020600020906003020160010154600c6000856001600160a01b03166001600160a01b031681526020019081526020016000208281548110610bec57610bec612178565b906000526020600020906003020160000154610c08919061211e565b610c129083612165565b9150610d12565b6001600160a01b0383166000908152600c60205260409020805482908110610c4357610c43612178565b906000526020600020906003020160010154600b54600c6000866001600160a01b03166001600160a01b031681526020019081526020016000208381548110610c8e57610c8e612178565b90600052602060002090600302016002015442610cab919061211e565b6001600160a01b0386166000908152600c60205260409020805485908110610cd557610cd5612178565b906000526020600020906003020160000154610cf191906120e5565b610cfb91906120fc565b610d05919061211e565b610d0f9083612165565b91505b80610d1c8161218e565b915050610a8a565b50919050565b3360009081526008602052604090205460ff16610d7e5760405162461bcd60e51b815260206004820152601260248201527132b9a927a7aa1d103737ba1036b4b73a32b960711b6044820152606401610534565b610d8882826119fc565b6007546040516340c10f1960e01b8152306004820152602481018390526001600160a01b03909116906340c10f1990604401600060405180830381600087803b158015610dd457600080fd5b505af1158015610de8573d6000803e3d6000fd5b505050505050565b610df861179c565b610e026000611abb565b565b60606004805461074390612131565b60003381610e218286611371565b905083811015610e815760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610534565b6107f982868684036117f6565b6000336107d4818585611994565b600c6020528160005260406000208181548110610eb857600080fd5b600091825260209091206003909102018054600182015460029092015490935090915083565b610ee661179c565b6001600160a01b038216600081815260096020908152604091829020805460ff191685151590811790915591519182527f32d4e6dac56b89405fa59bee6c486a6c2eab95347f199330feda3fd159a472df91015b60405180910390a25050565b610f4e61179c565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527fd182c89e6644407784567c6c659af9b3faca1f14dbffa720f426987727d7e9b39101610f3a565b32331461105d57600e546001600160a01b0316610fd55760405162461bcd60e51b815260040161053490612089565b600e54604051631846d2f560e31b81523360048201526001600160a01b039091169063c23697a890602401602060405180830381865afa15801561101d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104191906120b2565b61105d5760405162461bcd60e51b815260040161053490612089565b6110656115bf565b336000908152600d60205260408120545b336000908152600c602052604090205481101561131957600b54336000908152600c60205260409020805442929190849081106110b5576110b5612178565b9060005260206000209060030201600201546110d19190612165565b116111f357336000908152600c602052604090208054829081106110f7576110f7612178565b906000526020600020906003020160010154600c6000336001600160a01b03166001600160a01b03168152602001908152602001600020828154811061113f5761113f612178565b90600052602060002090600302016000015461115b919061211e565b6111659083612165565b336000908152600c602052604090208054919350908290811061118a5761118a612178565b60009182526020808320600390920290910154338352600c90915260409091208054839081106111bc576111bc612178565b9060005260206000209060030201600101819055508060016111de9190612165565b336000908152600d6020526040902055611307565b600b54336000908152600c6020526040812080549192918490811061121a5761121a612178565b90600052602060002090600302016002015442611237919061211e565b336000908152600c6020526040902080548590811061125857611258612178565b90600052602060002090600302016000015461127491906120e5565b61127e91906120fc565b336000908152600c60205260409020805491925090839081106112a3576112a3612178565b906000526020600020906003020160010154816112c0919061211e565b6112ca9084612165565b336000908152600c6020526040902080549194508291849081106112f0576112f0612178565b906000526020600020906003020160010181905550505b806113118161218e565b915050611076565b50600754611331906001600160a01b0316338361174a565b60405181815233907f9fe9b7be9d151c7a8b6de49a1312ff27a15096d0d1d12999af85fe4310e0b1259060200160405180910390a250610e026001600655565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6113a461179c565b6113b86001600160a01b038416838361174a565b505050565b6113c561179c565b6007546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561140e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143291906121a7565b600780546001600160a01b0319166001600160a01b0385169081179091556040516370a0823160e01b81523060048201529192506000916370a0823190602401602060405180830381865afa15801561148f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b391906121a7565b9050818110156115055760405162461bcd60e51b815260206004820152601860248201527f6573524f4f543a206d6967726174696f6e206661696c656400000000000000006044820152606401610534565b6040516001600160a01b03841681527f42a3d90d44cf60bae0ab820d813678b1182fcee5236003d22ee03cf4ef9438f19060200160405180910390a1505050565b61154e61179c565b6001600160a01b0381166115b35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610534565b6115bc81611abb565b50565b6002600654036116115760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610534565b6002600655565b6001600160a01b0382166116785760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610534565b6001600160a01b038216600090815260208190526040902054818110156116ec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610534565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526113b8908490611b0d565b6005546001600160a01b03163314610e025760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610534565b6001600160a01b0383166118585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610534565b6001600160a01b0382166118b95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610534565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006119268484611371565b9050600019811461198e57818110156119815760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610534565b61198e84848484036117f6565b50505050565b6001600160a01b03831660009081526009602052604090205460ff166119f15760405162461bcd60e51b815260206004820152601260248201527132b9a927a7aa1d103737ba1039b2b73232b960711b6044820152606401610534565b6113b8838383611be2565b6001600160a01b038216611a525760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610534565b8060026000828254611a649190612165565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000611b62826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611d869092919063ffffffff16565b9050805160001480611b83575080806020019051810190611b8391906120b2565b6113b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610534565b6001600160a01b038316611c465760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610534565b6001600160a01b038216611ca85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610534565b6001600160a01b03831660009081526020819052604090205481811015611d205760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610534565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361198e565b6060611d958484600085611d9d565b949350505050565b606082471015611dfe5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610534565b600080866001600160a01b03168587604051611e1a91906121c0565b60006040518083038185875af1925050503d8060008114611e57576040519150601f19603f3d011682016040523d82523d6000602084013e611e5c565b606091505b5091509150611e6d87838387611e78565b979650505050505050565b60608315611ee7578251600003611ee0576001600160a01b0385163b611ee05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610534565b5081611d95565b611d958383815115611efc5781518083602001fd5b8060405162461bcd60e51b81526004016105349190611fa2565b80356001600160a01b0381168114611f2d57600080fd5b919050565b60008060408385031215611f4557600080fd5b611f4e83611f16565b946020939093013593505050565b600060208284031215611f6e57600080fd5b611f7782611f16565b9392505050565b60005b83811015611f99578181015183820152602001611f81565b50506000910152565b6020815260008251806020840152611fc1816040850160208701611f7e565b601f01601f19169190910160400192915050565b600080600060608486031215611fea57600080fd5b611ff384611f16565b925061200160208501611f16565b9150604084013590509250925092565b80151581146115bc57600080fd5b6000806040838503121561203257600080fd5b61203b83611f16565b9150602083013561204b81612011565b809150509250929050565b6000806040838503121561206957600080fd5b61207283611f16565b915061208060208401611f16565b90509250929050565b6020808252600f908201526e139bdd081dda1a5d195b1a5cdd1959608a1b604082015260600190565b6000602082840312156120c457600080fd5b8151611f7781612011565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107da576107da6120cf565b60008261211957634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156107da576107da6120cf565b600181811c9082168061214557607f821691505b602082108103610d2457634e487b7160e01b600052602260045260246000fd5b808201808211156107da576107da6120cf565b634e487b7160e01b600052603260045260246000fd5b6000600182016121a0576121a06120cf565b5060010190565b6000602082840312156121b957600080fd5b5051919050565b600082516121d2818460208701611f7e565b919091019291505056fea264697066735822122021c28eef22519bbfb5c11928dd4f50869c91d4b9d1c58dedd09b1a22e303e12b64736f6c63430008110033000000000000000000000000830fd690419ae8c767c5c0829ae0f702c4a918d600000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000093a8000000000000000000000000000b0b3f686a4deba16a00397ea775c120505ab26c