11 txs
45 calls
constructor
constructor(uint256 initialSupply, address _treasury, address _esteem)
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
bonusRate
viewfunction bonusRate() view returns (uint256)
calculateFavorBonuses
viewfunction calculateFavorBonuses(uint256 amount) view returns (uint256 userBonus, uint256 treasuryBonus)
decimals
viewfunction decimals() view returns (uint8)
esteem
viewfunction esteem() view returns (address)
esteemMinter
viewfunction esteemMinter() view returns (address)
isMarketPair
viewfunction isMarketPair(address) view returns (bool)
isMinter
viewfunction isMinter(address) view returns (bool)
isRouter
viewfunction isRouter(address) view returns (bool)
isTaxExempt
viewfunction isTaxExempt(address) view returns (bool)
MAX_TAX
viewfunction MAX_TAX() view returns (uint256)
MULTIPLIER
viewfunction MULTIPLIER() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
pendingBonus
viewfunction pendingBonus(address) view returns (uint256)
sellTax
viewfunction sellTax() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
treasury
viewfunction treasury() view returns (address)
treasuryBonusRate
viewfunction treasuryBonusRate() view returns (uint256)
addMinter
nonpayablefunction addMinter(address account)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
burn
nonpayablefunction burn(uint256 amount)
burnFrom
nonpayablefunction burnFrom(address account, uint256 amount)
claimBonus
nonpayablefunction claimBonus()
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
logBuy
nonpayablefunction logBuy(address user, uint256 amount)
mint
nonpayablefunction mint(address recipient_, uint256 amount_)
removeMinter
nonpayablefunction removeMinter(address account)
renounceOwnership
nonpayablefunction renounceOwnership()
setBonusRates
nonpayablefunction setBonusRates(uint256 _bonusRate, uint256 _treasuryBonusRate)
setEsteem
nonpayablefunction setEsteem(address _esteem)
setEsteemMinter
nonpayablefunction setEsteemMinter(address _esteemMinter)
setMarketPair
nonpayablefunction setMarketPair(address pair, bool value)
setRouter
nonpayablefunction setRouter(address _router, bool value)
setSellTax
nonpayablefunction setSellTax(uint256 _sellTax)
setTaxExempt
nonpayablefunction setTaxExempt(address account, bool exempt)
setTreasury
nonpayablefunction setTreasury(address _treasury)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
BonusRatesUpdated
event BonusRatesUpdated(uint256 newBonusRate, uint256 newtreasuryBonusRate)
EsteemBonusLogged
event EsteemBonusLogged(address indexed recipient, uint256 amount, uint256 treasuryAmount)
EsteemMinterUpdated
event EsteemMinterUpdated(address indexed newMinter)
EsteemTokenUpdated
event EsteemTokenUpdated(address indexed newEsteem)
MarketPairUpdated
event MarketPairUpdated(address indexed pair, bool isPair)
MinterAdded
event MinterAdded(address indexed account)
MinterRemoved
event MinterRemoved(address indexed account)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RouterUpdated
event RouterUpdated(address indexed router, bool isActive)
SellTaxUpdated
event SellTaxUpdated(uint256 newTax)
TaxExemptStatusUpdated
event TaxExemptStatusUpdated(address indexed account, bool isExempt)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
TreasuryUpdated
event TreasuryUpdated(address indexed newTreasury)
UserBonusClaimed
event UserBonusClaimed(address indexed recipient, uint256 amount)
errors
No errors.
creation bytecode
0x60806040526113886006556113886007556109c4600855348015610021575f80fd5b506040516143923803806143928339818101604052810190610043919061054c565b6040518060400160405280600a81526020017f4661766f722054455354000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f465553445400000000000000000000000000000000000000000000000000000081525081600390816100be91906107cd565b5080600490816100ce91906107cd565b5050506100ed6100e261028560201b60201c565b61028c60201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361015b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610152906108f6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036101c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c09061095e565b60405180910390fd5b8160095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061027d3361025b61034f60201b60201c565b600a6102679190610ae4565b856102729190610b2e565b61035760201b60201c565b505050610c32565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036103c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103bc90610bb9565b60405180910390fd5b6103d65f83836104b160201b60201c565b8060025f8282546103e79190610bd7565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104949190610c19565b60405180910390a36104ad5f83836104b660201b60201c565b5050565b505050565b505050565b5f80fd5b5f819050919050565b6104d1816104bf565b81146104db575f80fd5b50565b5f815190506104ec816104c8565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61051b826104f2565b9050919050565b61052b81610511565b8114610535575f80fd5b50565b5f8151905061054681610522565b92915050565b5f805f60608486031215610563576105626104bb565b5b5f610570868287016104de565b935050602061058186828701610538565b925050604061059286828701610538565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061061757607f821691505b60208210810361062a576106296105d3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261068c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610651565b6106968683610651565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6106d16106cc6106c7846104bf565b6106ae565b6104bf565b9050919050565b5f819050919050565b6106ea836106b7565b6106fe6106f6826106d8565b84845461065d565b825550505050565b5f90565b610712610706565b61071d8184846106e1565b505050565b5b81811015610740576107355f8261070a565b600181019050610723565b5050565b601f8211156107855761075681610630565b61075f84610642565b8101602085101561076e578190505b61078261077a85610642565b830182610722565b50505b505050565b5f82821c905092915050565b5f6107a55f198460080261078a565b1980831691505092915050565b5f6107bd8383610796565b9150826002028217905092915050565b6107d68261059c565b67ffffffffffffffff8111156107ef576107ee6105a6565b5b6107f98254610600565b610804828285610744565b5f60209050601f831160018114610835575f8415610823578287015190505b61082d85826107b2565b865550610894565b601f19841661084386610630565b5f5b8281101561086a57848901518255600182019150602085019450602081019050610845565b868310156108875784890151610883601f891682610796565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f496e76616c69642045737465656d2061646472657373000000000000000000005f82015250565b5f6108e060168361089c565b91506108eb826108ac565b602082019050919050565b5f6020820190508181035f83015261090d816108d4565b9050919050565b7f496e76616c6964205472656173757279206164647265737300000000000000005f82015250565b5f61094860188361089c565b915061095382610914565b602082019050919050565b5f6020820190508181035f8301526109758161093c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156109fe578086048111156109da576109d961097c565b5b60018516156109e95780820291505b80810290506109f7856109a9565b94506109be565b94509492505050565b5f82610a165760019050610ad1565b81610a23575f9050610ad1565b8160018114610a395760028114610a4357610a72565b6001915050610ad1565b60ff841115610a5557610a5461097c565b5b8360020a915084821115610a6c57610a6b61097c565b5b50610ad1565b5060208310610133831016604e8410600b8410161715610aa75782820a905083811115610aa257610aa161097c565b5b610ad1565b610ab484848460016109b5565b92509050818404811115610acb57610aca61097c565b5b81810290505b9392505050565b5f60ff82169050919050565b5f610aee826104bf565b9150610af983610ad8565b9250610b267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610a07565b905092915050565b5f610b38826104bf565b9150610b43836104bf565b9250828202610b51816104bf565b91508282048414831517610b6857610b6761097c565b5b5092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610ba3601f8361089c565b9150610bae82610b6f565b602082019050919050565b5f6020820190508181035f830152610bd081610b97565b9050919050565b5f610be1826104bf565b9150610bec836104bf565b9250828201905080821115610c0457610c0361097c565b5b92915050565b610c13816104bf565b82525050565b5f602082019050610c2c5f830184610c0a565b92915050565b61375380610c3f5f395ff3fe608060405234801561000f575f80fd5b5060043610610267575f3560e01c806379cc67901161014f578063aa271e1a116100c1578063ceb244af11610085578063ceb244af1461074a578063dd62ed3e14610766578063f0f4426014610796578063f2fde38b146107b2578063f3d7d282146107ce578063f8ba0260146107fe57610267565b8063aa271e1a14610694578063c075f5ab146106c4578063c16dd4a4146106f4578063c3c6467414610710578063cc1776d31461072c57610267565b806395d89b411161011357806395d89b41146105ad578063983b2d56146105cb5780639a5c1fd9146105e75780639f7d2bed14610618578063a457c2d714610634578063a9059cbb1461066457610267565b806379cc67901461051b57806382f087e61461053757806386a35f25146105555780638cd09d50146105735780638da5cb5b1461058f57610267565b8063313ce567116101e857806350635394116101ac578063506353941461047d5780635af123f414610487578063611fc1c3146104a557806361d027b3146104c357806370a08231146104e1578063715018a61461051157610267565b8063313ce567146103c757806339509351146103e55780633ecad2711461041557806340c10f191461044557806342966c681461046157610267565b806318160ddd1161022f57806318160ddd14610323578063192e3fbc146103415780631dc610401461035f57806323b872dd1461037b5780633092afd5146103ab57610267565b8063059f8b161461026b57806306fdde0314610289578063095ea7b3146102a75780630c3e0c4e146102d757806316c2be6b146102f3575b5f80fd5b61027361081a565b604051610280919061267a565b60405180910390f35b610291610820565b60405161029e9190612703565b60405180910390f35b6102c160048036038101906102bc91906127ab565b6108b0565b6040516102ce9190612803565b60405180910390f35b6102f160048036038101906102ec919061281c565b6108d2565b005b61030d6004803603810190610308919061281c565b6109ce565b60405161031a9190612803565b60405180910390f35b61032b6109eb565b604051610338919061267a565b60405180910390f35b6103496109f4565b60405161035691906128a2565b60405180910390f35b610379600480360381019061037491906128e5565b610a19565b005b61039560048036038101906103909190612923565b610ac7565b6040516103a29190612803565b60405180910390f35b6103c560048036038101906103c0919061281c565b610af5565b005b6103cf610b97565b6040516103dc919061298e565b60405180910390f35b6103ff60048036038101906103fa91906127ab565b610b9f565b60405161040c9190612803565b60405180910390f35b61042f600480360381019061042a919061281c565b610bd5565b60405161043c9190612803565b60405180910390f35b61045f600480360381019061045a91906127ab565b610bf2565b005b61047b600480360381019061047691906129a7565b610c89565b005b610485610c9d565b005b61048f610e3c565b60405161049c919061267a565b60405180910390f35b6104ad610e42565b6040516104ba91906129f2565b60405180910390f35b6104cb610e67565b6040516104d89190612a1a565b60405180910390f35b6104fb60048036038101906104f6919061281c565b610e8c565b604051610508919061267a565b60405180910390f35b610519610ed1565b005b610535600480360381019061053091906127ab565b610ee4565b005b61053f610f04565b60405161054c919061267a565b60405180910390f35b61055d610f0a565b60405161056a919061267a565b60405180910390f35b61058d600480360381019061058891906129a7565b610f10565b005b610597610f9e565b6040516105a49190612a1a565b60405180910390f35b6105b5610fc6565b6040516105c29190612703565b60405180910390f35b6105e560048036038101906105e0919061281c565b611056565b005b61060160048036038101906105fc91906129a7565b6110f9565b60405161060f929190612a33565b60405180910390f35b610632600480360381019061062d9190612a5a565b6111dc565b005b61064e600480360381019061064991906127ab565b61122f565b60405161065b9190612803565b60405180910390f35b61067e600480360381019061067991906127ab565b6112a4565b60405161068b9190612803565b60405180910390f35b6106ae60048036038101906106a9919061281c565b6112c6565b6040516106bb9190612803565b60405180910390f35b6106de60048036038101906106d9919061281c565b6112e3565b6040516106eb919061267a565b60405180910390f35b61070e600480360381019061070991906128e5565b6112f8565b005b61072a600480360381019061072591906128e5565b6113a6565b005b6107346114c2565b604051610741919061267a565b60405180910390f35b610764600480360381019061075f919061281c565b6114c8565b005b610780600480360381019061077b9190612a98565b6115c4565b60405161078d919061267a565b60405180910390f35b6107b060048036038101906107ab919061281c565b611646565b005b6107cc60048036038101906107c7919061281c565b611742565b005b6107e860048036038101906107e3919061281c565b6117c4565b6040516107f59190612803565b60405180910390f35b610818600480360381019061081391906127ab565b6117e1565b005b61271081565b60606003805461082f90612b03565b80601f016020809104026020016040519081016040528092919081815260200182805461085b90612b03565b80156108a65780601f1061087d576101008083540402835291602001916108a6565b820191905f5260205f20905b81548152906001019060200180831161088957829003601f168201915b5050505050905090565b5f806108ba6119cc565b90506108c78185856119d3565b600191505092915050565b6108da611b96565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093f90612b7d565b60405180910390fd5b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f587f3bb4a08a183033c0fe85e075a109c37bfe6d1aabbcad47065b04ac949f0960405160405180910390a250565b600d602052805f5260405f205f915054906101000a900460ff1681565b5f600254905090565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a21611b96565b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f8af110e2cdec2af97569417a7ea26d5f5965e7cd29aee2f497eeb460cbefa30382604051610abb9190612803565b60405180910390a25050565b5f80610ad16119cc565b9050610ade858285611c14565b610ae9858585611c9f565b60019150509392505050565b610afd611b96565b5f600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b5f6012905090565b5f80610ba96119cc565b9050610bca818585610bbb85896115c4565b610bc59190612bc8565b6119d3565b600191505092915050565b600c602052805f5260405f205f915054906101000a900460ff1681565b600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7290612c45565b60405180910390fd5b610c858282611db0565b5050565b610c9a610c946119cc565b82611efe565b50565b5f60105f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1790612cad565b60405180910390fd5b5f60105f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b8152600401610dbe929190612ccb565b5f604051808303815f87803b158015610dd5575f80fd5b505af1158015610de7573d5f803e3d5ffd5b505050503373ffffffffffffffffffffffffffffffffffffffff167f57c71c1294e43a9954063d38fa4a34721e1612d54a8d5588f6d0cd3cf816d0a882604051610e31919061267a565b60405180910390a250565b60075481565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ed9611b96565b610ee25f6120c1565b565b610ef682610ef06119cc565b83611c14565b610f008282611efe565b5050565b60085481565b61138881565b610f18611b96565b611388811115610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5490612d3c565b60405180910390fd5b806006819055507fa6255338a5f732d64ceba7f4c18182567f9d1067eb984b46d478b37d72a52d1181604051610f93919061267a565b60405180910390a150565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610fd590612b03565b80601f016020809104026020016040519081016040528092919081815260200182805461100190612b03565b801561104c5780601f106110235761010080835404028352916020019161104c565b820191905f5260205f20905b81548152906001019060200180831161102f57829003601f168201915b5050505050905090565b61105e611b96565b6001600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b5f805f670de0b6b3a764000090505f670de0b6b3a7640000828661111d9190612d5a565b6111279190612dc8565b90505f6127106007548361113b9190612d5a565b6111459190612dc8565b90505f67de0b6b3a7640000090505f8111611195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118c90612e42565b60405180910390fd5b80670de0b6b3a7640000836111aa9190612d5a565b6111b49190612dc8565b9550612710600854876111c79190612d5a565b6111d19190612dc8565b945050505050915091565b6111e4611b96565b81600781905550806008819055507f21c0bf6ad8ca3495c68d9665bc81b236730941773307cd244084a23018e112628282604051611223929190612a33565b60405180910390a15050565b5f806112396119cc565b90505f61124682866115c4565b90508381101561128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290612ed0565b60405180910390fd5b61129882868684036119d3565b60019250505092915050565b5f806112ae6119cc565b90506112bb818585611c9f565b600191505092915050565b600e602052805f5260405f205f915054906101000a900460ff1681565b6010602052805f5260405f205f915090505481565b611300611b96565b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f160ff69a72bc70f3e792a86c87d27070e421562197f032d96bcab11c5010222e8260405161139a9190612803565b60405180910390a25050565b6113ae611b96565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141390612f38565b60405180910390fd5b80600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fab5814e9f0dc78998a367cdeb77f1143370431cce307f90adb6db02f49fd768a826040516114b69190612803565b60405180910390a25050565b60065481565b6114d0611b96565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361153e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153590612fa0565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f812c5c488043e57d6aaa09f7c68a7aff11bb9f77a045ab3f6d5c3b8463b2b0c260405160405180910390a250565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61164e611b96565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b390613008565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d160405160405180910390a250565b61174a611b96565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117af90613096565b60405180910390fd5b6117c1816120c1565b50565b600f602052805f5260405f205f915054906101000a900460ff1681565b600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661186a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186190613124565b60405180910390fd5b5f80611875836110f9565b915091508160105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546118c59190612bc8565b92505081905550600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1960095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611949929190612ccb565b5f604051808303815f87803b158015611960575f80fd5b505af1158015611972573d5f803e3d5ffd5b505050508373ffffffffffffffffffffffffffffffffffffffff167fed99cad7a633c73356c17121bd6e7ef8dbe38cb792a7bbe236e4ec33efe4c21d83836040516119be929190612a33565b60405180910390a250505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a38906131b2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa690613240565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b89919061267a565b60405180910390a3505050565b611b9e6119cc565b73ffffffffffffffffffffffffffffffffffffffff16611bbc610f9e565b73ffffffffffffffffffffffffffffffffffffffff1614611c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c09906132a8565b60405180910390fd5b565b5f611c1f84846115c4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611c995781811015611c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8290613310565b60405180910390fd5b611c9884848484036119d3565b5b50505050565b5f611caa8484612184565b80611cbb5750611cba8484612228565b5b15611cd157611ccb848484612320565b50611dab565b5f611cdc858561258c565b90505f611ce986866125f2565b9050818015611cf55750805b15611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c9061339e565b60405180910390fd5b8015611d595761271060065485611d4c9190612d5a565b611d569190612dc8565b92505b5f831115611d9c57611d8d8660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685612320565b8284611d9991906133bc565b93505b611da7868686612320565b5050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1590613439565b60405180910390fd5b611e295f8383612658565b8060025f828254611e3a9190612bc8565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ee7919061267a565b60405180910390a3611efa5f838361265d565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f63906134c7565b60405180910390fd5b611f77825f83612658565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff190613555565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120a9919061267a565b60405180910390a36120bc835f8461265d565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806122205750600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b905092915050565b5f600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156122c65750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156123185750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361238e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612385906135e3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f390613671565b60405180910390fd5b612407838383612658565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561248a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612481906136ff565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612573919061267a565b60405180910390a361258684848461265d565b50505050565b5f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156125ea57506125e88383612228565b155b905092915050565b5f600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612650575061264e8383612228565b155b905092915050565b505050565b505050565b5f819050919050565b61267481612662565b82525050565b5f60208201905061268d5f83018461266b565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6126d582612693565b6126df818561269d565b93506126ef8185602086016126ad565b6126f8816126bb565b840191505092915050565b5f6020820190508181035f83015261271b81846126cb565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61275082612727565b9050919050565b61276081612746565b811461276a575f80fd5b50565b5f8135905061277b81612757565b92915050565b61278a81612662565b8114612794575f80fd5b50565b5f813590506127a581612781565b92915050565b5f80604083850312156127c1576127c0612723565b5b5f6127ce8582860161276d565b92505060206127df85828601612797565b9150509250929050565b5f8115159050919050565b6127fd816127e9565b82525050565b5f6020820190506128165f8301846127f4565b92915050565b5f6020828403121561283157612830612723565b5b5f61283e8482850161276d565b91505092915050565b5f819050919050565b5f61286a61286561286084612727565b612847565b612727565b9050919050565b5f61287b82612850565b9050919050565b5f61288c82612871565b9050919050565b61289c81612882565b82525050565b5f6020820190506128b55f830184612893565b92915050565b6128c4816127e9565b81146128ce575f80fd5b50565b5f813590506128df816128bb565b92915050565b5f80604083850312156128fb576128fa612723565b5b5f6129088582860161276d565b9250506020612919858286016128d1565b9150509250929050565b5f805f6060848603121561293a57612939612723565b5b5f6129478682870161276d565b93505060206129588682870161276d565b925050604061296986828701612797565b9150509250925092565b5f60ff82169050919050565b61298881612973565b82525050565b5f6020820190506129a15f83018461297f565b92915050565b5f602082840312156129bc576129bb612723565b5b5f6129c984828501612797565b91505092915050565b5f6129dc82612871565b9050919050565b6129ec816129d2565b82525050565b5f602082019050612a055f8301846129e3565b92915050565b612a1481612746565b82525050565b5f602082019050612a2d5f830184612a0b565b92915050565b5f604082019050612a465f83018561266b565b612a53602083018461266b565b9392505050565b5f8060408385031215612a7057612a6f612723565b5b5f612a7d85828601612797565b9250506020612a8e85828601612797565b9150509250929050565b5f8060408385031215612aae57612aad612723565b5b5f612abb8582860161276d565b9250506020612acc8582860161276d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612b1a57607f821691505b602082108103612b2d57612b2c612ad6565b5b50919050565b7f496e76616c69642045737465656d204d696e74657220616464726573730000005f82015250565b5f612b67601d8361269d565b9150612b7282612b33565b602082019050919050565b5f6020820190508181035f830152612b9481612b5b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612bd282612662565b9150612bdd83612662565b9250828201905080821115612bf557612bf4612b9b565b5b92915050565b7f4e6f7420617574686f72697a656420746f206d696e74000000000000000000005f82015250565b5f612c2f60168361269d565b9150612c3a82612bfb565b602082019050919050565b5f6020820190508181035f830152612c5c81612c23565b9050919050565b7f4e6f20626f6e757320617661696c61626c6500000000000000000000000000005f82015250565b5f612c9760128361269d565b9150612ca282612c63565b602082019050919050565b5f6020820190508181035f830152612cc481612c8b565b9050919050565b5f604082019050612cde5f830185612a0b565b612ceb602083018461266b565b9392505050565b7f53656c6c2074617820746f6f20686967680000000000000000000000000000005f82015250565b5f612d2660118361269d565b9150612d3182612cf2565b602082019050919050565b5f6020820190508181035f830152612d5381612d1a565b9050919050565b5f612d6482612662565b9150612d6f83612662565b9250828202612d7d81612662565b91508282048414831517612d9457612d93612b9b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612dd282612662565b9150612ddd83612662565b925082612ded57612dec612d9b565b5b828204905092915050565b7f496e76616c69642045737465656d2072617465000000000000000000000000005f82015250565b5f612e2c60138361269d565b9150612e3782612df8565b602082019050919050565b5f6020820190508181035f830152612e5981612e20565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612eba60258361269d565b9150612ec582612e60565b604082019050919050565b5f6020820190508181035f830152612ee781612eae565b9050919050565b7f496e76616c696420726f757465722061646472657373000000000000000000005f82015250565b5f612f2260168361269d565b9150612f2d82612eee565b602082019050919050565b5f6020820190508181035f830152612f4f81612f16565b9050919050565b7f496e76616c69642045737465656d2061646472657373000000000000000000005f82015250565b5f612f8a60168361269d565b9150612f9582612f56565b602082019050919050565b5f6020820190508181035f830152612fb781612f7e565b9050919050565b7f496e76616c6964205472656173757279206164647265737300000000000000005f82015250565b5f612ff260188361269d565b9150612ffd82612fbe565b602082019050919050565b5f6020820190508181035f83015261301f81612fe6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61308060268361269d565b915061308b82613026565b604082019050919050565b5f6020820190508181035f8301526130ad81613074565b9050919050565b7f4f6e6c7920617070726f76656420726f757465722063616e206c6f67206275795f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f61310e60218361269d565b9150613119826130b4565b604082019050919050565b5f6020820190508181035f83015261313b81613102565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61319c60248361269d565b91506131a782613142565b604082019050919050565b5f6020820190508181035f8301526131c981613190565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61322a60228361269d565b9150613235826131d0565b604082019050919050565b5f6020820190508181035f8301526132578161321e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61329260208361269d565b915061329d8261325e565b602082019050919050565b5f6020820190508181035f8301526132bf81613286565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6132fa601d8361269d565b9150613305826132c6565b602082019050919050565b5f6020820190508181035f830152613327816132ee565b9050919050565b7f43616e6e6f742062757920616e642073656c6c20696e207468652073616d65205f8201527f7472616e73616374696f6e000000000000000000000000000000000000000000602082015250565b5f613388602b8361269d565b91506133938261332e565b604082019050919050565b5f6020820190508181035f8301526133b58161337c565b9050919050565b5f6133c682612662565b91506133d183612662565b92508282039050818111156133e9576133e8612b9b565b5b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f613423601f8361269d565b915061342e826133ef565b602082019050919050565b5f6020820190508181035f83015261345081613417565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134b160218361269d565b91506134bc82613457565b604082019050919050565b5f6020820190508181035f8301526134de816134a5565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f61353f60228361269d565b915061354a826134e5565b604082019050919050565b5f6020820190508181035f83015261356c81613533565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135cd60258361269d565b91506135d882613573565b604082019050919050565b5f6020820190508181035f8301526135fa816135c1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61365b60238361269d565b915061366682613601565b604082019050919050565b5f6020820190508181035f8301526136888161364f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6136e960268361269d565b91506136f48261368f565b604082019050919050565b5f6020820190508181035f830152613716816136dd565b905091905056fea2646970667358221220b1d791103ad75964bc74774b4fc27e9b8351de9eea5a6bb9062fbbe4f6036f7264736f6c634300081a003300000000000000000000000000000000000000000000000000000000000027100000000000000000000000005e9e3457433b4b767e458abecaf4128eeb3dcc970000000000000000000000009aea2185b4cc1a8fd5034112bf8429b13932af2c