22.8k txs
316.1k calls
constructor
constructor(address _mintAddress) payable
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
bottomPoll
viewfunction bottomPoll() view returns (address)
buyAmount
viewfunction buyAmount(address) view returns (uint256)
deadAddress
viewfunction deadAddress() view returns (address)
decimals
viewfunction decimals() view returns (uint8)
getPrice
viewfunction getPrice(address token0, address token1, uint256 amount) view returns (uint256)
getSellLimit
viewfunction getSellLimit(address account) view returns (uint256)
inTime
viewfunction inTime() view returns (uint256)
limitedTimeEnable
viewfunction limitedTimeEnable() view returns (bool)
makrWallet
viewfunction makrWallet() view returns (address)
name
viewfunction name() view returns (string)
nftWallet
viewfunction nftWallet() view returns (address)
owner
viewfunction owner() view returns (address)
router
viewfunction router() view returns (address)
symbol
viewfunction symbol() view returns (string)
thReward
viewfunction thReward() view returns (address)
totalSupply
viewfunction totalSupply() view returns (uint256)
tradingEnable
viewfunction tradingEnable() view returns (bool)
uniswapV2Factory
viewfunction uniswapV2Factory() view returns (address)
uniswapV2Router
viewfunction uniswapV2Router() view returns (address)
USDT
viewfunction USDT() view returns (address)
usdtPair
viewfunction usdtPair() view returns (address)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
renounceOwnership
nonpayablefunction renounceOwnership()
setBottomPoll
nonpayablefunction setBottomPoll(address _bottomPoll)
setExcludeFromFees
nonpayablefunction setExcludeFromFees(address account, bool excluded)
setExcludeMultipleAccountsFromFees
nonpayablefunction setExcludeMultipleAccountsFromFees(address[] accounts, bool excluded)
setReward
nonpayablefunction setReward(address _thReward)
setSellLimit
nonpayablefunction setSellLimit(address account, uint256 amount)
setTradingEnable
nonpayablefunction setTradingEnable(uint256 _inTime)
setWallets
nonpayablefunction setWallets(address _makrWallet, address _nftWallet)
transfer
nonpayablefunction transfer(address to, uint256 value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 value) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
ERC20InsufficientAllowance
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed)
ERC20InsufficientBalance
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed)
ERC20InvalidApprover
error ERC20InvalidApprover(address approver)
ERC20InvalidReceiver
error ERC20InvalidReceiver(address receiver)
ERC20InvalidSender
error ERC20InvalidSender(address sender)
ERC20InvalidSpender
error ERC20InvalidSpender(address spender)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x60c06040527355d398326f99059ff775485246999027b319795573ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1681525061dead73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff16815250604051616d3a380380616d3a83398181016040528101906100a19190612162565b6100af6105b760201b60201c565b6040518060400160405280600681526020017f54687269766500000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f5468726976650000000000000000000000000000000000000000000000000000815250816003908161012a91906123ca565b50806004908161013a91906123ca565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101ad575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101a491906124a8565b60405180910390fd5b6101bc816105be60201b60201c565b5060016006819055507310ed43c718714eb63d5aa57b78b54704e256024e60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6b204fce5e3e250261100000009050600160075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f6102f26105b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103fd828261068160201b60201c565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610467573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048b9190612162565b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9c65396306080516040518363ffffffff1660e01b81526004016105289291906124c1565b6020604051808303815f875af1158015610544573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105689190612162565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061012c6014819055505050612ce0565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106f1575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106e891906124a8565b60405180910390fd5b6107025f838361070660201b60201c565b5050565b5f3290508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614801561077d57508373ffffffffffffffffffffffffffffffffffffffff166107656105b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16145b80156107d0575060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561080757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156108225761081c8483610db960201b60201c565b50610db4565b5f821480610876575060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806108c7575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156108e3576108dd848484610fd860201b60201c565b50610db4565b600b60149054906101000a900460ff16610932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092990612542565b60405180910390fd5b5f61094630608051856111f160201b60201c565b9050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806109ef5750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610cb157600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610b7657600b60169054906101000a900460ff1615610ae0576014546006610a6c919061258d565b600c54610a7991906125ce565b421015610acd576810dbfdf4405a7c0000811115610acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac39061264b565b60405180910390fd5b5b610add85846113a460201b60201c565b92505b610b308160115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461165860201b90919060201c565b60115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610c5f565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c5e57600b60169054906101000a900460ff1615610bf257610bef85846113a460201b60201c565b92505b610c038582856116b560201b60201c565b9250600b60159054906101000a900460ff16610c5d576001600b60156101000a81548160ff021916908315150217905550610c42611a1760201b60201c565b5f600b60156101000a81548160ff0219169083151502179055505b5b5b5f610c876064610c79600287611ac660201b90919060201c565b611b3d60201b90919060201c565b9050610c9a863083610fd860201b60201c565b610cad8185611b8c60201b90919060201c565b9350505b5f60105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f811115610d9f5783811115610d5b57610d158482611b8c60201b90919060201c565b60105f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610d9e565b5f60105f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b610db0868686610fd860201b60201c565b5050505b505050565b600b60149054906101000a900460ff16610e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dff90612542565b60405180910390fd5b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7f906126b3565b60405180910390fd5b610ed88160105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b8c60201b90919060201c565b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610f4b82600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610fd860201b60201c565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636c197ff583836040518363ffffffff1660e01b8152600401610fa79291906126e0565b5f604051808303815f87803b158015610fbe575f5ffd5b505af1158015610fd0573d5f5f3e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611028578060025f82825461101c91906125ce565b925050819055506110f6565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156110b1578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016110a893929190612707565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361113d578060025f8282540392505081905550611187565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111e4919061273c565b60405180910390a3505050565b5f5f600267ffffffffffffffff81111561120e5761120d612197565b5b60405190808252806020026020018201604052801561123c5781602001602082028036833780820191505090505b50905084815f8151811061125357611252612755565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083816001815181106112a2576112a1612755565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f85846040518363ffffffff1660e01b8152600401611339929190612839565b5f60405180830381865afa158015611353573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061137b91906129b4565b90508060018151811061139157611390612755565b5b6020026020010151925050509392505050565b5f81905060145460066113b7919061258d565b600c546113c491906125ce565b42101561144b575f6113f360646113e5601486611ac660201b90919060201c565b611b3d60201b90919060201c565b90506114088184611b8c60201b90919060201c565b91505f811115611445576114448460125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610fd860201b60201c565b5b50611652565b601454600761145a919061258d565b600c5461146791906125ce565b4210156114ee575f6114966064611488601186611ac660201b90919060201c565b611b3d60201b90919060201c565b90506114ab8184611b8c60201b90919060201c565b91505f8111156114e8576114e78460125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610fd860201b60201c565b5b50611651565b60145460086114fd919061258d565b600c5461150a91906125ce565b421015611591575f611539606461152b600c86611ac660201b90919060201c565b611b3d60201b90919060201c565b905061154e8184611b8c60201b90919060201c565b91505f81111561158b5761158a8460125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610fd860201b60201c565b5b50611650565b60145460096115a0919061258d565b600c546115ad91906125ce565b421015611634575f6115dc60646115ce600786611ac660201b90919060201c565b611b3d60201b90919060201c565b90506115f18184611b8c60201b90919060201c565b91505f81111561162e5761162d8460125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610fd860201b60201c565b5b5061164f565b5f600b60166101000a81548160ff0219169083151502179055505b5b5b5b92915050565b5f5f828461166691906125ce565b9050838110156116ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a290612a45565b60405180910390fd5b8091505092915050565b5f8190508260115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106117935761174d8360115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b8c60201b90919060201c565b60115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611a10565b5f60115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205411801561181b57508260115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054105b15611951575f6118976064611889600a61187b60115f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205489611b8c60201b90919060201c565b611ac660201b90919060201c565b611b3d60201b90919060201c565b90505f81111561194b575f6118b560805130846111f160201b60201c565b90505f811115611907576118f186600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610fd860201b60201c565b6119048185611b8c60201b90919060201c565b92505b5f60115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b50611a0f565b5f611979606461196b600a86611ac660201b90919060201c565b611b3d60201b90919060201c565b90505f8111156119cb576119b585600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610fd860201b60201c565b6119c88184611b8c60201b90919060201c565b91505b5f60115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5b9392505050565b5f611a2730611bdb60201b60201c565b90505f811115611ac3575f611a46600483611b3d60201b90919060201c565b9050611a7960125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611c2060201b60201c565b5f611a8d8284611b8c60201b90919060201c565b9050611ac060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611c2060201b60201c565b50505b50565b5f5f8303611ad6575f9050611b37565b5f8284611ae3919061258d565b9050828482611af29190612a90565b14611b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2990612b30565b60405180910390fd5b809150505b92915050565b5f611b8483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e4d60201b60201c565b905092915050565b5f611bd383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611eae60201b60201c565b905092915050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8590612b98565b60405180910390fd5b5f600267ffffffffffffffff811115611caa57611ca9612197565b5b604051908082528060200260200182016040528015611cd85781602001602082028036833780820191505090505b50905030815f81518110611cef57611cee612755565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060805181600181518110611d4057611d3f612755565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dac30600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f1060201b60201c565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f848761012c42611dfb91906125ce565b6040518663ffffffff1660e01b8152600401611e1b959493929190612bef565b5f604051808303815f87803b158015611e32575f5ffd5b505af1158015611e44573d5f5f3e3d5ffd5b50505050505050565b5f5f83118290611e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8a9190612c8d565b60405180910390fd5b505f8385611ea19190612a90565b9050809150509392505050565b5f838311158290611ef5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eec9190612c8d565b60405180910390fd5b505f8385611f039190612cad565b9050809150509392505050565b611f238383836001611f2860201b60201c565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611f98575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611f8f91906124a8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612008575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611fff91906124a8565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156120f1578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516120e8919061273c565b60405180910390a35b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61213182612108565b9050919050565b61214181612127565b811461214b575f5ffd5b50565b5f8151905061215c81612138565b92915050565b5f6020828403121561217757612176612100565b5b5f6121848482850161214e565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061220857607f821691505b60208210810361221b5761221a6121c4565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261227d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612242565b6122878683612242565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6122cb6122c66122c18461229f565b6122a8565b61229f565b9050919050565b5f819050919050565b6122e4836122b1565b6122f86122f0826122d2565b84845461224e565b825550505050565b5f5f905090565b61230f612300565b61231a8184846122db565b505050565b5b8181101561233d576123325f82612307565b600181019050612320565b5050565b601f8211156123825761235381612221565b61235c84612233565b8101602085101561236b578190505b61237f61237785612233565b83018261231f565b50505b505050565b5f82821c905092915050565b5f6123a25f1984600802612387565b1980831691505092915050565b5f6123ba8383612393565b9150826002028217905092915050565b6123d38261218d565b67ffffffffffffffff8111156123ec576123eb612197565b5b6123f682546121f1565b612401828285612341565b5f60209050601f831160018114612432575f8415612420578287015190505b61242a85826123af565b865550612491565b601f19841661244086612221565b5f5b8281101561246757848901518255600182019150602085019450602081019050612442565b868310156124845784890151612480601f891682612393565b8355505b6001600288020188555050505b505050505050565b6124a281612127565b82525050565b5f6020820190506124bb5f830184612499565b92915050565b5f6040820190506124d45f830185612499565b6124e16020830184612499565b9392505050565b5f82825260208201905092915050565b7f6e6f7400000000000000000000000000000000000000000000000000000000005f82015250565b5f61252c6003836124e8565b9150612537826124f8565b602082019050919050565b5f6020820190508181035f83015261255981612520565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125978261229f565b91506125a28361229f565b92508282026125b08161229f565b915082820484148315176125c7576125c6612560565b5b5092915050565b5f6125d88261229f565b91506125e38361229f565b92508282019050808211156125fb576125fa612560565b5b92915050565b7f6661696c000000000000000000000000000000000000000000000000000000005f82015250565b5f6126356004836124e8565b915061264082612601565b602082019050919050565b5f6020820190508181035f83015261266281612629565b9050919050565b7f6c696d69740000000000000000000000000000000000000000000000000000005f82015250565b5f61269d6005836124e8565b91506126a882612669565b602082019050919050565b5f6020820190508181035f8301526126ca81612691565b9050919050565b6126da8161229f565b82525050565b5f6040820190506126f35f830185612499565b61270060208301846126d1565b9392505050565b5f60608201905061271a5f830186612499565b61272760208301856126d1565b61273460408301846126d1565b949350505050565b5f60208201905061274f5f8301846126d1565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127b481612127565b82525050565b5f6127c583836127ab565b60208301905092915050565b5f602082019050919050565b5f6127e782612782565b6127f1818561278c565b93506127fc8361279c565b805f5b8381101561282c57815161281388826127ba565b975061281e836127d1565b9250506001810190506127ff565b5085935050505092915050565b5f60408201905061284c5f8301856126d1565b818103602083015261285e81846127dd565b90509392505050565b5f5ffd5b5f601f19601f8301169050919050565b6128848261286b565b810181811067ffffffffffffffff821117156128a3576128a2612197565b5b80604052505050565b5f6128b56120f7565b90506128c1828261287b565b919050565b5f67ffffffffffffffff8211156128e0576128df612197565b5b602082029050602081019050919050565b5f5ffd5b6128fe8161229f565b8114612908575f5ffd5b50565b5f81519050612919816128f5565b92915050565b5f61293161292c846128c6565b6128ac565b90508083825260208201905060208402830185811115612954576129536128f1565b5b835b8181101561297d5780612969888261290b565b845260208401935050602081019050612956565b5050509392505050565b5f82601f83011261299b5761299a612867565b5b81516129ab84826020860161291f565b91505092915050565b5f602082840312156129c9576129c8612100565b5b5f82015167ffffffffffffffff8111156129e6576129e5612104565b5b6129f284828501612987565b91505092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612a2f601b836124e8565b9150612a3a826129fb565b602082019050919050565b5f6020820190508181035f830152612a5c81612a23565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612a9a8261229f565b9150612aa58361229f565b925082612ab557612ab4612a63565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b1a6021836124e8565b9150612b2582612ac0565b604082019050919050565b5f6020820190508181035f830152612b4781612b0e565b9050919050565b7f496e76616c696420726563697069656e740000000000000000000000000000005f82015250565b5f612b826011836124e8565b9150612b8d82612b4e565b602082019050919050565b5f6020820190508181035f830152612baf81612b76565b9050919050565b5f819050919050565b5f612bd9612bd4612bcf84612bb6565b6122a8565b61229f565b9050919050565b612be981612bbf565b82525050565b5f60a082019050612c025f8301886126d1565b612c0f6020830187612be0565b8181036040830152612c2181866127dd565b9050612c306060830185612499565b612c3d60808301846126d1565b9695505050505050565b8281835e5f83830152505050565b5f612c5f8261218d565b612c6981856124e8565b9350612c79818560208601612c47565b612c828161286b565b840191505092915050565b5f6020820190508181035f830152612ca58184612c55565b905092915050565b5f612cb78261229f565b9150612cc28361229f565b9250828203905081811115612cda57612cd9612560565b5b92915050565b60805160a051614024612d165f395f610c1001525f818161112601528181611df901528181612b8a0152612fb701526140245ff3fe608060405260043610610207575f3560e01c8063715018a611610117578063c54e44eb1161009f578063dd62ed3e1161006e578063dd62ed3e146107d3578063de4ae9e81461080f578063e5932c4014610837578063f2fde38b1461085f578063f887ea401461088757610283565b8063c54e44eb14610731578063d3f6a1571461075b578063d63cad2214610783578063d72b06c9146107ab57610283565b806395d89b41116100e657806395d89b411461063b578063a9059cbb14610665578063a9dd14d6146106a1578063b1e37008146106dd578063b7352a191461070757610283565b8063715018a6146105a95780638b855325146105bf5780638da5cb5b146105e95780639082d3341461061357610283565b806323b872dd1161019a57806349f34aca1161016957806349f34aca146104b357806359d0f713146104dd578063625cb67e146105075780636779a4451461054357806370a082311461056d57610283565b806323b872dd146103e757806327c8f83514610423578063313ce5671461044d57806344f1c02b1461047757610283565b80631693e8d4116101d65780631693e8d41461033f5780631694505e1461036957806318160ddd1461039357806323a811c8146103bd57610283565b806306fdde031461028757806307a1f525146102b1578063095ea7b3146102db5780630d5c1a9d1461031757610283565b36610283576102146108b1565b600b60149054906101000a900460ff16610263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025a9061320e565b60405180910390fd5b5f3490506102786102726108f7565b826108fe565b5061028161098b565b005b5f5ffd5b348015610292575f5ffd5b5061029b610995565b6040516102a8919061328c565b60405180910390f35b3480156102bc575f5ffd5b506102c5610a25565b6040516102d29190613326565b60405180910390f35b3480156102e6575f5ffd5b5061030160048036038101906102fc91906133be565b610a4a565b60405161030e9190613416565b60405180910390f35b348015610322575f5ffd5b5061033d6004803603810190610338919061342f565b610a6c565b005b34801561034a575f5ffd5b50610353610b7a565b6040516103609190613416565b60405180910390f35b348015610374575f5ffd5b5061037d610b8d565b60405161038a919061347a565b60405180910390f35b34801561039e575f5ffd5b506103a7610bb2565b6040516103b491906134a2565b60405180910390f35b3480156103c8575f5ffd5b506103d1610bbb565b6040516103de91906134ca565b60405180910390f35b3480156103f2575f5ffd5b5061040d600480360381019061040891906134e3565b610be0565b60405161041a9190613416565b60405180910390f35b34801561042e575f5ffd5b50610437610c0e565b60405161044491906134ca565b60405180910390f35b348015610458575f5ffd5b50610461610c32565b60405161046e919061354e565b60405180910390f35b348015610482575f5ffd5b5061049d6004803603810190610498919061342f565b610c3a565b6040516104aa91906134a2565b60405180910390f35b3480156104be575f5ffd5b506104c7610c80565b6040516104d49190613416565b60405180910390f35b3480156104e8575f5ffd5b506104f1610c93565b6040516104fe9190613587565b60405180910390f35b348015610512575f5ffd5b5061052d6004803603810190610528919061342f565b610cb8565b60405161053a91906134a2565b60405180910390f35b34801561054e575f5ffd5b50610557610ccd565b60405161056491906135c0565b60405180910390f35b348015610578575f5ffd5b50610593600480360381019061058e919061342f565b610cf2565b6040516105a091906134a2565b60405180910390f35b3480156105b4575f5ffd5b506105bd610d37565b005b3480156105ca575f5ffd5b506105d3610d4a565b6040516105e091906134a2565b60405180910390f35b3480156105f4575f5ffd5b506105fd610d50565b60405161060a91906134ca565b60405180910390f35b34801561061e575f5ffd5b50610639600480360381019061063491906133be565b610d78565b005b348015610646575f5ffd5b5061064f610e75565b60405161065c919061328c565b60405180910390f35b348015610670575f5ffd5b5061068b600480360381019061068691906133be565b610f05565b6040516106989190613416565b60405180910390f35b3480156106ac575f5ffd5b506106c760048036038101906106c291906134e3565b610f27565b6040516106d491906134a2565b60405180910390f35b3480156106e8575f5ffd5b506106f16110da565b6040516106fe91906134ca565b60405180910390f35b348015610712575f5ffd5b5061071b6110ff565b60405161072891906134ca565b60405180910390f35b34801561073c575f5ffd5b50610745611124565b60405161075291906134ca565b60405180910390f35b348015610766575f5ffd5b50610781600480360381019061077c91906135d9565b611148565b005b34801561078e575f5ffd5b506107a960048036038101906107a49190613641565b611325565b005b3480156107b6575f5ffd5b506107d160048036038101906107cc919061367f565b6113da565b005b3480156107de575f5ffd5b506107f960048036038101906107f491906135d9565b611442565b60405161080691906134a2565b60405180910390f35b34801561081a575f5ffd5b506108356004803603810190610830919061370b565b6114c4565b005b348015610842575f5ffd5b5061085d6004803603810190610858919061342f565b61156a565b005b34801561086a575f5ffd5b506108856004803603810190610880919061342f565b611681565b005b348015610892575f5ffd5b5061089b611705565b6040516108a891906134ca565b60405180910390f35b6002600654036108ed576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600681905550565b5f33905090565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663acb0bc9582846040518363ffffffff1660e01b815260040161095991906134ca565b5f604051808303818588803b158015610970575f5ffd5b505af1158015610982573d5f5f3e3d5ffd5b50505050505050565b6001600681905550565b6060600380546109a490613795565b80601f01602080910402602001604051908101604052809291908181526020018280546109d090613795565b8015610a1b5780601f106109f257610100808354040283529160200191610a1b565b820191905f5260205f20905b8154815290600101906020018083116109fe57829003601f168201915b5050505050905090565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f610a546108f7565b9050610a6181858561172a565b600191505092915050565b610a7461173c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad99061380f565b60405180910390fd5b80600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b600b60149054906101000a900460ff1681565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f610bea6108f7565b9050610bf78582856117c3565b610c02858585611856565b60019150509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f6012905090565b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b600b60169054906101000a900460ff1681565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6011602052805f5260405f205f915090505481565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d3f61173c565b610d485f611946565b565b60145481565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610db86108f7565b73ffffffffffffffffffffffffffffffffffffffff1614610e0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0590613877565b60405180910390fd5b610e166108b1565b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610e6291906138c2565b92505081905550610e7161098b565b5050565b606060048054610e8490613795565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb090613795565b8015610efb5780601f10610ed257610100808354040283529160200191610efb565b820191905f5260205f20905b815481529060010190602001808311610ede57829003601f168201915b5050505050905090565b5f5f610f0f6108f7565b9050610f1c818585611856565b600191505092915050565b5f5f600267ffffffffffffffff811115610f4457610f436138f5565b5b604051908082528060200260200182016040528015610f725781602001602082028036833780820191505090505b50905084815f81518110610f8957610f88613922565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508381600181518110610fd857610fd7613922565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f85846040518363ffffffff1660e01b815260040161106f929190613a06565b5f60405180830381865afa158015611089573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906110b19190613b53565b9050806001815181106110c7576110c6613922565b5b6020026020010151925050509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b61115061173c565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156111b857505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6111f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ee90613be4565b60405180910390fd5b8160125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61132d61173c565b80151560075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515146113d6578060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5050565b6113e261173c565b5f600c540361140e576001600b60166101000a81548160ff02191690831515021790555042600c819055505b80601481905550600b60149054906101000a900460ff1615600b60146101000a81548160ff02191690831515021790555050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6114cc61173c565b5f5f90505b83839050811015611564578160075f8686858181106114f3576114f2613922565b5b9050602002016020810190611508919061342f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506114d1565b50505050565b61157261173c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115a9575f5ffd5b80600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61168961173c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116f9575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016116f091906134ca565b60405180910390fd5b61170281611946565b50565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117378383836001611a09565b505050565b6117446108f7565b73ffffffffffffffffffffffffffffffffffffffff16611762610d50565b73ffffffffffffffffffffffffffffffffffffffff16146117c1576117856108f7565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016117b891906134ca565b60405180910390fd5b565b5f6117ce8484611442565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156118505781811015611841578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161183893929190613c02565b60405180910390fd5b61184f84848484035f611a09565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118c6575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016118bd91906134ca565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611936575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161192d91906134ca565b60405180910390fd5b611941838383611bd8565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611a79575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611a7091906134ca565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ae9575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611ae091906134ca565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611bd2578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611bc991906134a2565b60405180910390a35b50505050565b5f3290508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148015611c4957508373ffffffffffffffffffffffffffffffffffffffff16611c316108f7565b73ffffffffffffffffffffffffffffffffffffffff16145b8015611c9c575060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611cd357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611ce857611ce2848361226d565b50612268565b5f821480611d3c575060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611d8d575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611da357611d9d848484612486565b50612268565b600b60149054906101000a900460ff16611df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de99061320e565b60405180910390fd5b5f611e1e307f000000000000000000000000000000000000000000000000000000000000000085610f27565b9050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611ec75750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561216b57600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361204857600b60169054906101000a900460ff1615611fb2576014546006611f449190613c37565b600c54611f5191906138c2565b421015611fa5576810dbfdf4405a7c0000811115611fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9b90613cc2565b60405180910390fd5b5b611faf858461269f565b92505b6120028160115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461293b90919063ffffffff16565b60115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061211f565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361211e57600b60169054906101000a900460ff16156120be576120bb858461269f565b92505b6120c9858285612998565b9250600b60159054906101000a900460ff1661211d576001600b60156101000a81548160ff021916908315150217905550612102612d06565b5f600b60156101000a81548160ff0219169083151502179055505b5b5b5f6121476064612139600287612da390919063ffffffff16565b612e1a90919063ffffffff16565b9050612154863083612486565b6121678185612e6390919063ffffffff16565b9350505b5f60105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111156122595783811115612215576121cf8482612e6390919063ffffffff16565b60105f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612258565b5f60105f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b612264868686612486565b5050505b505050565b600b60149054906101000a900460ff166122bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b39061320e565b60405180910390fd5b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054101561233c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233390613d2a565b60405180910390fd5b61238c8160105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e6390919063ffffffff16565b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506123f982600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612486565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636c197ff583836040518363ffffffff1660e01b8152600401612455929190613d48565b5f604051808303815f87803b15801561246c575f5ffd5b505af115801561247e573d5f5f3e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124d6578060025f8282546124ca91906138c2565b925050819055506125a4565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561255f578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161255693929190613c02565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036125eb578060025f8282540392505081905550612635565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161269291906134a2565b60405180910390a3505050565b5f81905060145460066126b29190613c37565b600c546126bf91906138c2565b421015612740575f6126ee60646126e0601486612da390919063ffffffff16565b612e1a90919063ffffffff16565b90506127038184612e6390919063ffffffff16565b91505f81111561273a576127398460125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612486565b5b50612935565b601454600761274f9190613c37565b600c5461275c91906138c2565b4210156127dd575f61278b606461277d601186612da390919063ffffffff16565b612e1a90919063ffffffff16565b90506127a08184612e6390919063ffffffff16565b91505f8111156127d7576127d68460125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612486565b5b50612934565b60145460086127ec9190613c37565b600c546127f991906138c2565b42101561287a575f612828606461281a600c86612da390919063ffffffff16565b612e1a90919063ffffffff16565b905061283d8184612e6390919063ffffffff16565b91505f811115612874576128738460125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612486565b5b50612933565b60145460096128899190613c37565b600c5461289691906138c2565b421015612917575f6128c560646128b7600786612da390919063ffffffff16565b612e1a90919063ffffffff16565b90506128da8184612e6390919063ffffffff16565b91505f811115612911576129108460125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612486565b5b50612932565b5f600b60166101000a81548160ff0219169083151502179055505b5b5b5b92915050565b5f5f828461294991906138c2565b90508381101561298e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298590613db9565b60405180910390fd5b8091505092915050565b5f8190508260115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612a7657612a308360115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e6390919063ffffffff16565b60115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612cff565b5f60115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054118015612afe57508260115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054105b15612c46575f612b7a6064612b6c600a612b5e60115f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205489612e6390919063ffffffff16565b612da390919063ffffffff16565b612e1a90919063ffffffff16565b90505f811115612c40575f612bb07f00000000000000000000000000000000000000000000000000000000000000003084610f27565b90505f811115612bfc57612be686600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612486565b612bf98185612e6390919063ffffffff16565b92505b5f60115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b50612cfe565b5f612c6e6064612c60600a86612da390919063ffffffff16565b612e1a90919063ffffffff16565b90505f811115612cba57612ca485600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612486565b612cb78184612e6390919063ffffffff16565b91505b5f60115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5b9392505050565b5f612d1030610cf2565b90505f811115612da0575f612d2f600483612e1a90919063ffffffff16565b9050612d5c60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612eac565b5f612d708284612e6390919063ffffffff16565b9050612d9d60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612eac565b50505b50565b5f5f8303612db3575f9050612e14565b5f8284612dc09190613c37565b9050828482612dcf9190613e04565b14612e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0690613ea4565b60405180910390fd5b809150505b92915050565b5f612e5b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130f1565b905092915050565b5f612ea483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613152565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1190613f0c565b60405180910390fd5b5f600267ffffffffffffffff811115612f3657612f356138f5565b5b604051908082528060200260200182016040528015612f645781602001602082028036833780820191505090505b50905030815f81518110612f7b57612f7a613922565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110612fea57612fe9613922565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061305030600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461172a565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f848761012c4261309f91906138c2565b6040518663ffffffff1660e01b81526004016130bf959493929190613f63565b5f604051808303815f87803b1580156130d6575f5ffd5b505af11580156130e8573d5f5f3e3d5ffd5b50505050505050565b5f5f83118290613137576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312e919061328c565b60405180910390fd5b505f83856131459190613e04565b9050809150509392505050565b5f838311158290613199576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613190919061328c565b60405180910390fd5b505f83856131a79190613fbb565b9050809150509392505050565b5f82825260208201905092915050565b7f6e6f7400000000000000000000000000000000000000000000000000000000005f82015250565b5f6131f86003836131b4565b9150613203826131c4565b602082019050919050565b5f6020820190508181035f830152613225816131ec565b9050919050565b5f81519050919050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61325e8261322c565b61326881856131b4565b9350613278818560208601613236565b61328181613244565b840191505092915050565b5f6020820190508181035f8301526132a48184613254565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6132ee6132e96132e4846132ac565b6132cb565b6132ac565b9050919050565b5f6132ff826132d4565b9050919050565b5f613310826132f5565b9050919050565b61332081613306565b82525050565b5f6020820190506133395f830184613317565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61335a826132ac565b9050919050565b61336a81613350565b8114613374575f5ffd5b50565b5f8135905061338581613361565b92915050565b5f819050919050565b61339d8161338b565b81146133a7575f5ffd5b50565b5f813590506133b881613394565b92915050565b5f5f604083850312156133d4576133d3613348565b5b5f6133e185828601613377565b92505060206133f2858286016133aa565b9150509250929050565b5f8115159050919050565b613410816133fc565b82525050565b5f6020820190506134295f830184613407565b92915050565b5f6020828403121561344457613443613348565b5b5f61345184828501613377565b91505092915050565b5f613464826132f5565b9050919050565b6134748161345a565b82525050565b5f60208201905061348d5f83018461346b565b92915050565b61349c8161338b565b82525050565b5f6020820190506134b55f830184613493565b92915050565b6134c481613350565b82525050565b5f6020820190506134dd5f8301846134bb565b92915050565b5f5f5f606084860312156134fa576134f9613348565b5b5f61350786828701613377565b935050602061351886828701613377565b9250506040613529868287016133aa565b9150509250925092565b5f60ff82169050919050565b61354881613533565b82525050565b5f6020820190506135615f83018461353f565b92915050565b5f613571826132f5565b9050919050565b61358181613567565b82525050565b5f60208201905061359a5f830184613578565b92915050565b5f6135aa826132f5565b9050919050565b6135ba816135a0565b82525050565b5f6020820190506135d35f8301846135b1565b92915050565b5f5f604083850312156135ef576135ee613348565b5b5f6135fc85828601613377565b925050602061360d85828601613377565b9150509250929050565b613620816133fc565b811461362a575f5ffd5b50565b5f8135905061363b81613617565b92915050565b5f5f6040838503121561365757613656613348565b5b5f61366485828601613377565b92505060206136758582860161362d565b9150509250929050565b5f6020828403121561369457613693613348565b5b5f6136a1848285016133aa565b91505092915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126136cb576136ca6136aa565b5b8235905067ffffffffffffffff8111156136e8576136e76136ae565b5b602083019150836020820283011115613704576137036136b2565b5b9250929050565b5f5f5f6040848603121561372257613721613348565b5b5f84013567ffffffffffffffff81111561373f5761373e61334c565b5b61374b868287016136b6565b9350935050602061375e8682870161362d565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806137ac57607f821691505b6020821081036137bf576137be613768565b5b50919050565b7f496e76616c696420626f74746f6d20706f6c6c206164647265737300000000005f82015250565b5f6137f9601b836131b4565b9150613804826137c5565b602082019050919050565b5f6020820190508181035f830152613826816137ed565b9050919050565b7f6f6e6c79526577617264000000000000000000000000000000000000000000005f82015250565b5f613861600a836131b4565b915061386c8261382d565b602082019050919050565b5f6020820190508181035f83015261388e81613855565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6138cc8261338b565b91506138d78361338b565b92508282019050808211156138ef576138ee613895565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61398181613350565b82525050565b5f6139928383613978565b60208301905092915050565b5f602082019050919050565b5f6139b48261394f565b6139be8185613959565b93506139c983613969565b805f5b838110156139f95781516139e08882613987565b97506139eb8361399e565b9250506001810190506139cc565b5085935050505092915050565b5f604082019050613a195f830185613493565b8181036020830152613a2b81846139aa565b90509392505050565b613a3d82613244565b810181811067ffffffffffffffff82111715613a5c57613a5b6138f5565b5b80604052505050565b5f613a6e61333f565b9050613a7a8282613a34565b919050565b5f67ffffffffffffffff821115613a9957613a986138f5565b5b602082029050602081019050919050565b5f81519050613ab881613394565b92915050565b5f613ad0613acb84613a7f565b613a65565b90508083825260208201905060208402830185811115613af357613af26136b2565b5b835b81811015613b1c5780613b088882613aaa565b845260208401935050602081019050613af5565b5050509392505050565b5f82601f830112613b3a57613b396136aa565b5b8151613b4a848260208601613abe565b91505092915050565b5f60208284031215613b6857613b67613348565b5b5f82015167ffffffffffffffff811115613b8557613b8461334c565b5b613b9184828501613b26565b91505092915050565b7f496e76616c69642077616c6c65742061646472657373000000000000000000005f82015250565b5f613bce6016836131b4565b9150613bd982613b9a565b602082019050919050565b5f6020820190508181035f830152613bfb81613bc2565b9050919050565b5f606082019050613c155f8301866134bb565b613c226020830185613493565b613c2f6040830184613493565b949350505050565b5f613c418261338b565b9150613c4c8361338b565b9250828202613c5a8161338b565b91508282048414831517613c7157613c70613895565b5b5092915050565b7f6661696c000000000000000000000000000000000000000000000000000000005f82015250565b5f613cac6004836131b4565b9150613cb782613c78565b602082019050919050565b5f6020820190508181035f830152613cd981613ca0565b9050919050565b7f6c696d69740000000000000000000000000000000000000000000000000000005f82015250565b5f613d146005836131b4565b9150613d1f82613ce0565b602082019050919050565b5f6020820190508181035f830152613d4181613d08565b9050919050565b5f604082019050613d5b5f8301856134bb565b613d686020830184613493565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613da3601b836131b4565b9150613dae82613d6f565b602082019050919050565b5f6020820190508181035f830152613dd081613d97565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e0e8261338b565b9150613e198361338b565b925082613e2957613e28613dd7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e8e6021836131b4565b9150613e9982613e34565b604082019050919050565b5f6020820190508181035f830152613ebb81613e82565b9050919050565b7f496e76616c696420726563697069656e740000000000000000000000000000005f82015250565b5f613ef66011836131b4565b9150613f0182613ec2565b602082019050919050565b5f6020820190508181035f830152613f2381613eea565b9050919050565b5f819050919050565b5f613f4d613f48613f4384613f2a565b6132cb565b61338b565b9050919050565b613f5d81613f33565b82525050565b5f60a082019050613f765f830188613493565b613f836020830187613f54565b8181036040830152613f9581866139aa565b9050613fa460608301856134bb565b613fb16080830184613493565b9695505050505050565b5f613fc58261338b565b9150613fd08361338b565b9250828203905081811115613fe857613fe7613895565b5b9291505056fea2646970667358221220d87af0c74c34d286e7e0cb0a53cafbef2c0de92d79aa27ef52a98724407680dc64736f6c634300081c0033000000000000000000000000c6fcc71c0eb7b731be0630d9d5deb74bec1083ae