[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountAVAX", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountBOG", "type": "uint256" } ], "name": "AutoLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "BuybackMultiplierActive", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "MASK", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "Sweep", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "WAVAX", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isFree", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "approveMax", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "authorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "autoBuybackEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "autoLiquidityReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "checkFree", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "clearBuybackMultiplier", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "distributorAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "enableTransfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "getLiquidityBacking", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_transferAmount", "type": "uint256" } ], "name": "getSwapAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "isAuthorized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "target", "type": "uint256" }, { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "isOverLiquified", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "launchedAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchedAtTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IDEXRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_cap", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint256", "name": "_period", "type": "uint256" } ], "name": "setAutoBuybackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" }, { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "setBuybackMultiplierSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minPeriod", "type": "uint256" }, { "internalType": "uint256", "name": "_minDistribution", "type": "uint256" } ], "name": "setDistributionCriteria", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" } ], "name": "setDistributorSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_autoLiquidityReceiver", "type": "address" }, { "internalType": "address", "name": "_marketingFeeReceiver", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_buybackFee", "type": "uint256" }, { "internalType": "uint256", "name": "_reflectionFee", "type": "uint256" }, { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_feeDenominator", "type": "uint256" } ], "name": "setFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "setFree", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsDividendExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsFeeExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsTxLimitExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setMaxWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_maxPercTransfer", "type": "uint256" }, { "internalType": "uint256", "name": "_max", "type": "uint256" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_target", "type": "uint256" }, { "internalType": "uint256", "name": "_denominator", "type": "uint256" } ], "name": "setTargetLiquidity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setTxLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapPercentMax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapThresholdMax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "transferEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "adr", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "triggerBuybackMultiplier", "type": "bool" } ], "name": "triggerZeusBuyback", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "unSetFree", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "unauthorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
608060405260028054600160ff1990911617610100600160a81b031916747761e2338b35bceb6bda6ce477ef012bde7ae611001790556003805473b31f66aa3c1e785363f0875a1b74e27b85fd66c76001600160a01b0319918216179091556004805461dead908316179055600580549091169055620000826012600a6200078c565b620000959066038d7ea4c6800062000877565b600655620000b56064600654620005fe60201b6200166f1790919060201c565b600755620000d56028600654620005fe60201b6200166f1790919060201c565b600855600f805460ff1990811690915561012c60105560006011556101f46012556102bc6013556105dc60145561271060155560168054739fde35b985c1e5c597bf94c2cee8ef2da60130366001600160a01b03199182168117909255601780549091169091179055601e60188190556064601981905560c8909155601f5561070860215560228054821690556207a120602b55602c805490911660011790556032602d556006546200018c90611388906200071e565b602e553480156200019c57600080fd5b50600080546001600160a01b0319163390811782558152600160208190526040909120805460ff191690911790556002546000199060ff16620001f4577360ae616a2155ee3d9a68541ba4544862310933d462000242565b7360ae616a2155ee3d9a68541ba4544862310933d460405162000217906200067f565b620002239190620006c4565b604051809103906000f08015801562000240573d6000803e3d6000fd5b505b601a80546001600160a01b0319166001600160a01b0392831617908190556040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b1580156200029b57600080fd5b505afa158015620002b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d691906200069b565b6003546040516364e329cb60e11b81526001600160a01b039283169263c9c65396926200030b929116903090600401620006d8565b602060405180830381600087803b1580156200032657600080fd5b505af11580156200033b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036191906200069b565b601b80546001600160a01b0319166001600160a01b03928316179055306000908152600a602090815260408083207360ae616a2155ee3d9a68541ba4544862310933d484528252808320859055601a80548516845292819020859055915482516315ab88c960e31b8152925193169263ad5c4648926004808201939291829003018186803b158015620003f357600080fd5b505afa15801562000408573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042e91906200069b565b600380546001600160a01b0319166001600160a01b039283161790819055601a546002546040519184169392831692610100909104169062000470906200068d565b6200047e93929190620006f2565b604051809103906000f0801580156200049b573d6000803e3d6000fd5b50602980546001600160a01b039283166001600160a01b03199182161791829055602a8054821692841692909217909155336000818152600b60209081526040808320805460ff199081166001908117909255600c84528285208054821683179055601b5488168552600d845282852080548216831790553085528285208054821683179055600454909716845281842080548816821790558484526023909252909120805490941617909255601680549091169091179055620005747360ae616a2155ee3d9a68541ba4544862310933d48262000613565b50601a546200058d906001600160a01b03168262000613565b50601b54620005a6906001600160a01b03168262000613565b506006543360008181526009602052604080822084905551919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620005ef9162000715565b60405180910390a350620008af565b60006200060c82846200071e565b9392505050565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906200066e90869062000715565b60405180910390a350600192915050565b610bd1806200312283390190565b6111868062003cf383390190565b600060208284031215620006ad578081fd5b81516001600160a01b03811681146200060c578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b90815260200190565b6000826200073a57634e487b7160e01b81526012600452602481fd5b500490565b80825b600180861162000753575062000783565b81870482111562000768576200076862000899565b808616156200077657918102915b9490941c93800262000742565b94509492505050565b60006200060c60001960ff851684600082620007ab575060016200060c565b81620007ba575060006200060c565b8160018114620007d35760028114620007de5762000812565b60019150506200060c565b60ff841115620007f257620007f262000899565b6001841b9150848211156200080b576200080b62000899565b506200060c565b5060208310610133831016604e8410600b84101617156200084a575081810a8381111562000844576200084462000899565b6200060c565b6200085984848460016200073f565b8086048211156200086e576200086e62000899565b02949350505050565b600081600019048311821515161562000894576200089462000899565b500290565b634e487b7160e01b600052601160045260246000fd5b61286380620008bf6000396000f3fe6080604052600436106103855760003560e01c80637d1db4a5116101d1578063c9e8a11e11610102578063f0b37c04116100a0578063f708a64f1161006f578063f708a64f1461098a578063f84ba65d146109aa578063f887ea40146109ca578063fe9fbb80146109df5761038c565b8063f0b37c0414610915578063f1b50c1d14610935578063f2fde38b1461094a578063f5cfec0a1461096a5761038c565b8063d51ed1c8116100dc578063d51ed1c8146108ab578063dd62ed3e146108cb578063e91f214e146108eb578063e96fada2146109005761038c565b8063c9e8a11e14610861578063ca33e64c14610876578063d08893581461088b5761038c565b8063a51af4c51161016f578063b210b06d11610149578063b210b06d14610802578063b6a5d7de14610817578063bf56b37114610837578063c6d2577d1461084c5761038c565b8063a51af4c5146107b8578063a8aa1b31146107cd578063a9059cbb146107e25761038c565b806389ef69f6116101ab57806389ef69f61461074357806395d89b41146107635780639d1944f514610778578063a4b45c00146107985761038c565b80637d1db4a51461070457806382247ec014610719578063893d20e81461072e5761038c565b80632d48e896116102b6578063571ac8b0116102545780636ddd1713116102235780636ddd1713146106985780637088fb7f146106ad57806370a08231146106c257806373b295c2146106e25761038c565b8063571ac8b0146106185780635c85974f146106385780635d0044ca14610658578063658d4b7f146106785761038c565b80633425c001116102905780633425c001146105ae5780633bb8a8d4146105ce5780633c997e25146105e35780634cd412d5146106035761038c565b80632d48e8961461054c5780632f54bf6e1461056c578063313ce5671461058c5761038c565b806318160ddd116103235780632375ce40116102fd5780632375ce40146104d757806323b872dd146104f7578063296020e7146105175780632b112e49146105375761038c565b806318160ddd146104805780631afc2b3a146104a2578063201e7991146104b75761038c565b806306fdde031161035f57806306fdde03146103e857806307c89fe814610413578063095ea7b3146104405780631161ae39146104605761038c565b806301339c2114610391578063048c7baf146103a857806304a66b48146103c85761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a66109ff565b005b3480156103b457600080fd5b506103a66103c33660046123b3565b610a57565b3480156103d457600080fd5b506103a66103e336600461249e565b610aa5565b3480156103f457600080fd5b506103fd610b1b565b60405161040a91906125c6565b60405180910390f35b34801561041f57600080fd5b5061043361042e36600461228e565b610b3d565b60405161040a9190612586565b34801561044c57600080fd5b5061043361045b366004612356565b610b87565b34801561046c57600080fd5b5061043361047b366004612425565b610bf1565b34801561048c57600080fd5b50610495610c05565b60405161040a9190612733565b3480156104ae57600080fd5b50610495610c0b565b3480156104c357600080fd5b506103a66104d2366004612425565b610c11565b3480156104e357600080fd5b506103a66104f2366004612446565b610c41565b34801561050357600080fd5b506104336105123660046122e2565b610c96565b34801561052357600080fd5b5061043361053236600461228e565b610d5a565b34801561054357600080fd5b50610495610d6f565b34801561055857600080fd5b506103a6610567366004612425565b610db8565b34801561057857600080fd5b5061043361058736600461228e565b610e45565b34801561059857600080fd5b506105a1610e59565b60405161040a9190612786565b3480156105ba57600080fd5b506103a66105c936600461228e565b610e5e565b3480156105da57600080fd5b50610433610ea4565b3480156105ef57600080fd5b506104956105fe3660046123eb565b610ead565b34801561060f57600080fd5b50610433610eeb565b34801561062457600080fd5b5061043361063336600461228e565b610ef4565b34801561064457600080fd5b506103a66106533660046123eb565b610f08565b34801561066457600080fd5b506103a66106733660046123eb565b610f4e565b34801561068457600080fd5b506103a6610693366004612322565b610f94565b3480156106a457600080fd5b50610433610fe4565b3480156106b957600080fd5b506103a6610fed565b3480156106ce57600080fd5b506104956106dd36600461228e565b61106c565b3480156106ee57600080fd5b506106f7611087565b60405161040a919061251e565b34801561071057600080fd5b50610495611096565b34801561072557600080fd5b5061049561109c565b34801561073a57600080fd5b506106f76110a2565b34801561074f57600080fd5b506103a661075e36600461228e565b6110b1565b34801561076f57600080fd5b506103fd6110fa565b34801561078457600080fd5b506103a66107933660046123eb565b611118565b3480156107a457600080fd5b506103a66107b33660046122aa565b611151565b3480156107c457600080fd5b506106f76111a4565b3480156107d957600080fd5b506106f76111b3565b3480156107ee57600080fd5b506104336107fd366004612356565b6111c2565b34801561080e57600080fd5b506103a66111cf565b34801561082357600080fd5b506103a661083236600461228e565b6111fb565b34801561084357600080fd5b50610495611247565b34801561085857600080fd5b5061049561124d565b34801561086d57600080fd5b50610495611253565b34801561088257600080fd5b506106f7611259565b34801561089757600080fd5b506103a66108a6366004612381565b611268565b3480156108b757600080fd5b506104956108c63660046123eb565b6112a7565b3480156108d757600080fd5b506104956108e63660046122aa565b6112e1565b3480156108f757600080fd5b5061049561130c565b34801561090c57600080fd5b506106f7611320565b34801561092157600080fd5b506103a661093036600461228e565b61132f565b34801561094157600080fd5b506103a6611375565b34801561095657600080fd5b506103a661096536600461228e565b6113a9565b34801561097657600080fd5b506103a6610985366004612403565b61143e565b34801561099657600080fd5b506103a66109a5366004612322565b6114c2565b3480156109b657600080fd5b506103a66109c5366004612322565b6115f2565b3480156109d657600080fd5b506106f7611642565b3480156109eb57600080fd5b506104336109fa36600461228e565b611651565b610a0833611651565b610a2d5760405162461bcd60e51b8152600401610a249061270e565b60405180910390fd5b601c5415610a4d5760405162461bcd60e51b8152600401610a24906126c4565b43601c5542601d55565b610a6033611651565b610a7c5760405162461bcd60e51b8152600401610a249061270e565b6022805460ff191694151594909417909355602491909155600060255560265560275543602855565b610aae33611651565b610aca5760405162461bcd60e51b8152600401610a249061270e565b6010859055601184905560128390556013829055610af482610aee8581898961167b565b9061167b565b6014556015819055610b076004826127ac565b60145410610b1457600080fd5b5050505050565b6040805180820190915260088152671159d9d41c9a5b9d60c21b602082015290565b6000610b4833611651565b610b645760405162461bcd60e51b8152600401610a249061270e565b506001600160a01b0381166000908152600e602052604090205460ff165b919050565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610be0908690612733565b60405180910390a350600192915050565b600082610bfd836112a7565b119392505050565b60065490565b602e5481565b610c1a33611651565b610c365760405162461bcd60e51b8152600401610a249061270e565b601891909155601955565b610c4a33611651565b610c665760405162461bcd60e51b8152600401610a249061270e565b6002610c7283856127ac565b11158015610c7f57508183115b610c8857600080fd5b601e92909255601f55602155565b6006546001600160a01b0384166000908152600a60209081526040808320338452909152812054909114610d45576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600a82528381203382529091529190912054610d20918490611687565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b610d508484846116b3565b90505b9392505050565b600e6020526000908152604090205460ff1681565b600554600090610db390610d8b906001600160a01b031661106c565b600454610dad90610da4906001600160a01b031661106c565b60065490611a9a565b90611a9a565b905090565b610dc133611651565b610ddd5760405162461bcd60e51b8152600401610a249061270e565b6029546040516316a4744b60e11b81526001600160a01b0390911690632d48e89690610e0f9085908590600401612778565b600060405180830381600087803b158015610e2957600080fd5b505af1158015610e3d573d6000803e3d6000fd5b505050505050565b6000546001600160a01b0390811691161490565b601290565b610e6733611651565b610e835760405162461bcd60e51b8152600401610a249061270e565b6001600160a01b03166000908152600e60205260409020805460ff19169055565b60225460ff1681565b600080610ed06064610eca602d5486611aa690919063ffffffff16565b9061166f565b9050602e548111610ee15780610d53565b602e549392505050565b600f5460ff1681565b6000610f0282600654610b87565b92915050565b610f1133611651565b610f2d5760405162461bcd60e51b8152600401610a249061270e565b6103e8600654610f3d91906127ac565b811015610f4957600080fd5b600755565b610f5733611651565b610f735760405162461bcd60e51b8152600401610a249061270e565b6103e8600654610f8391906127ac565b811015610f8f57600080fd5b600855565b610f9d33611651565b610fb95760405162461bcd60e51b8152600401610a249061270e565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b602c5460ff1681565b610ff633611651565b6110125760405162461bcd60e51b8152600401610a249061270e565b6040514790339082906110249061251b565b60006040518083038185875af1925050503d8060008114611061576040519150601f19603f3d011682016040523d82523d6000602084013e611066565b606091505b50505050565b6001600160a01b031660009081526009602052604090205490565b6003546001600160a01b031681565b60075481565b60085481565b6000546001600160a01b031690565b6110ba33611651565b6110d65760405162461bcd60e51b8152600401610a249061270e565b6001600160a01b03166000908152600e60205260409020805460ff19166001179055565b6040805180820190915260048152635045474760e01b602082015290565b61112133611651565b61113d5760405162461bcd60e51b8152600401610a249061270e565b620b71b0811061114c57600080fd5b602b55565b61115a33611651565b6111765760405162461bcd60e51b8152600401610a249061270e565b601680546001600160a01b039384166001600160a01b03199182161790915560178054929093169116179055565b602a546001600160a01b031681565b601b546001600160a01b031681565b6000610d533384846116b3565b6111d833611651565b6111f45760405162461bcd60e51b8152600401610a249061270e565b6000602055565b61120433610e45565b6112205760405162461bcd60e51b8152600401610a24906126ee565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b601c5481565b601d5481565b602d5481565b6016546001600160a01b031681565b61127133611651565b61128d5760405162461bcd60e51b8152600401610a249061270e565b602c805460ff191693151593909317909255602d55602e55565b6000610f026112b4610d6f565b601b54610eca906112da906002906112d4906001600160a01b031661106c565b90611aa6565b8590611aa6565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b6fffffffffffffffffffffffffffffffff81565b6017546001600160a01b031681565b61133833610e45565b6113545760405162461bcd60e51b8152600401610a24906126ee565b6001600160a01b03166000908152600160205260409020805460ff19169055565b61137e33611651565b61139a5760405162461bcd60e51b8152600401610a249061270e565b600f805460ff19166001179055565b6113b233610e45565b6113ce5760405162461bcd60e51b8152600401610a24906126ee565b600080546001600160a01b0319166001600160a01b0383169081178255815260016020819052604091829020805460ff19169091179055517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639061143390839061251e565b60405180910390a150565b61144733611651565b6114635760405162461bcd60e51b8152600401610a249061270e565b60045461147a9083906001600160a01b0316611ab2565b80156114be57426020556021546040517f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a916114b591612733565b60405180910390a15b5050565b6114cb33611651565b6114e75760405162461bcd60e51b8152600401610a249061270e565b6001600160a01b038216301480159061150e5750601b546001600160a01b03838116911614155b61151757600080fd5b6001600160a01b0382166000908152600d60205260409020805460ff191682158015919091179091556115ae57602954604051630a5b654b60e11b81526001600160a01b03909116906314b6ca9690611577908590600090600401612532565b600060405180830381600087803b15801561159157600080fd5b505af11580156115a5573d6000803e3d6000fd5b505050506114be565b6029546001600160a01b0383811660009081526009602052604090819020549051630a5b654b60e11b815291909216916314b6ca9691610e0f918691600401612532565b6115fb33611651565b6116175760405162461bcd60e51b8152600401610a249061270e565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b601a546001600160a01b031681565b6001600160a01b031660009081526001602052604090205460ff1690565b6000610d5382846127ac565b6000610d538284612794565b600081848411156116ab5760405162461bcd60e51b8152600401610a2491906125c6565b505050900390565b600f5460009060ff16806116cb57506116cb33611651565b806116da57506116da84611651565b6116f65760405162461bcd60e51b8152600401610a249061267b565b602f5460ff16156117135761170c848484611bd7565b9050610d53565b601b546000906001600160a01b038581169116148061174e57506001600160a01b0384167360ae616a2155ee3d9a68541ba4544862310933d4145b905061175a8584611c7a565b8015801561178157506001600160a01b0384166000908152600e602052604090205460ff16155b156117ca576008546001600160a01b0385166000908152600960205260409020546117ad908590612794565b106117ca5760405162461bcd60e51b8152600401610a2490612644565b80156117fc576117d983611cbf565b156117e7576117e783611d16565b6117ef6120f4565b156117fc576117fc61214f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03881660009081526009909152919091205461184e918590611687565b6001600160a01b03861660009081526009602052604081209190915561187386612196565b61187d5783611888565b6118888686866121b5565b6001600160a01b0386166000908152600960205260409020549091506118ae908261167b565b6001600160a01b038087166000908152600960209081526040808320949094559189168152600d909152205460ff16611952576029546001600160a01b0387811660009081526009602052604090819020549051630a5b654b60e11b815291909216916314b6ca9691611925918a91600401612532565b600060405180830381600087803b15801561193f57600080fd5b505af1925050508015611950575060015b505b6001600160a01b0385166000908152600d602052604090205460ff166119e3576029546001600160a01b0386811660009081526009602052604090819020549051630a5b654b60e11b815291909216916314b6ca96916119b6918991600401612532565b600060405180830381600087803b1580156119d057600080fd5b505af19250505080156119e1575060015b505b602954602b546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c47991611a1791600401612733565b600060405180830381600087803b158015611a3157600080fd5b505af1925050508015611a42575060015b50846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a869190612733565b60405180910390a350600195945050505050565b6000610d5382846127eb565b6000610d5382846127cc565b602f805460ff19166001179055604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b031691839150600090611b0e57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611b5057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601a5460405163b6f9de9560e01b815291169063b6f9de95908590611b9690600090869088904290600401612591565b6000604051808303818588803b158015611baf57600080fd5b505af1158015611bc3573d6000803e3d6000fd5b5050602f805460ff19169055505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600990915291822054611c28918490611687565b6001600160a01b038086166000908152600960205260408082209390935590851681522054611c57908361167b565b6001600160a01b0384166000908152600960205260409020555060019392505050565b60075481111580611ca357506001600160a01b0382166000908152600c602052604090205460ff165b6114be5760405162461bcd60e51b8152600401610a2490612619565b601b546000906001600160a01b03163314801590611ce05750602f5460ff16155b8015611cee5750602c5460ff165b8015610f025750611cfe82610ead565b30600090815260096020526040902054101592915050565b602f805460ff19166001179055601854601954600091611d3591610bf1565b611d4157601054611d44565b60005b90506000611d5183610ead565b90506000611d736002610eca601454610eca8787611aa690919063ffffffff16565b90506000611d818383611a9a565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611dc957634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600354825191169082906001908110611e0857634e487b7160e01b600052603260045260246000fd5b6001600160a01b039092166020928302919091019091015247611e2a8361225a565b601a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e6390869060009087903090429060040161273c565b600060405180830381600087803b158015611e7d57600080fd5b505af1158015611e91573d6000803e3d6000fd5b505050506000611eaa8247611a9a90919063ffffffff16565b90506000611ec5611ebc89600261166f565b60145490611a9a565b90506000611eda6002610eca8481878e611aa6565b90506000611ef783610eca60125487611aa690919063ffffffff16565b90506000611f1484610eca60135488611aa690919063ffffffff16565b9050602960009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015611f6657600080fd5b505af193505050508015611f78575060015b506017546040516001600160a01b03909116908290611f969061251b565b60006040518083038185875af1925050503d8060008114611fd3576040519150601f19603f3d011682016040523d82523d6000602084013e611fd8565b606091505b5050891590506120dc57611feb8961225a565b601a60009054906101000a90046001600160a01b03166001600160a01b031663f305d71984308c600080601660009054906101000a90046001600160a01b0316426040518863ffffffff1660e01b815260040161204d9695949392919061254b565b6060604051808303818588803b15801561206657600080fd5b505af115801561207a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061209f9190612471565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a6040516120d3929190612778565b60405180910390a15b5050602f805460ff1916905550505050505050505050565b601b546000906001600160a01b031633148015906121155750602f5460ff16155b8015612123575060225460ff165b801561213e57504360275460285461213b9190612794565b11155b8015610db357505060265447101590565b60265460045461216891906001600160a01b0316611ab2565b4360285560265460255461217b9161167b565b60258190556024541015612194576022805460ff191690555b565b6001600160a01b03166000908152600b602052604090205460ff161590565b6000806121d3601554610eca60145486611aa690919063ffffffff16565b306000908152600960205260409020549091506121f0908261167b565b30600081815260096020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061223f908590612733565b60405180910390a36122518382611a9a565b95945050505050565b60025460ff161561227b57601a546114be906001600160a01b031682610b87565b50565b80358015158114610b8257600080fd5b60006020828403121561229f578081fd5b8135610d5381612818565b600080604083850312156122bc578081fd5b82356122c781612818565b915060208301356122d781612818565b809150509250929050565b6000806000606084860312156122f6578081fd5b833561230181612818565b9250602084013561231181612818565b929592945050506040919091013590565b60008060408385031215612334578182fd5b823561233f81612818565b915061234d6020840161227e565b90509250929050565b60008060408385031215612368578182fd5b823561237381612818565b946020939093013593505050565b600080600060608486031215612395578283fd5b61239e8461227e565b95602085013595506040909401359392505050565b600080600080608085870312156123c8578081fd5b6123d18561227e565b966020860135965060408601359560600135945092505050565b6000602082840312156123fc578081fd5b5035919050565b60008060408385031215612415578182fd5b8235915061234d6020840161227e565b60008060408385031215612437578182fd5b50508035926020909101359150565b60008060006060848603121561245a578283fd5b505081359360208301359350604090920135919050565b600080600060608486031215612485578283fd5b8351925060208401519150604084015190509250925092565b600080600080600060a086880312156124b5578081fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000815180845260208085019450808401835b838110156125105781516001600160a01b0316875295820195908201906001016124eb565b509495945050505050565b90565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000858252608060208301526125aa60808301866124d8565b6001600160a01b03949094166040830152506060015292915050565b6000602080835283518082850152825b818110156125f2578581018301518582016040015282016125d6565b818111156126035783604083870101525b50601f01601f1916929092016040019392505050565b602080825260119082015270151608131a5b5a5d08115e18d959591959607a1b604082015260600190565b6020808252601d908201527f4d61782077616c6c657420686173206265656e20747269676765726564000000604082015260600190565b60208082526029908201527f5472616e7366657220697320656e61626c6564206f72207573657220697320616040820152681d5d1a1bdc9a5e995960ba1b606082015260800190565b60208082526010908201526f105b1c9958591e481b185d5b98da195960821b604082015260600190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b90815260200190565b600086825285602083015260a0604083015261275b60a08301866124d8565b6001600160a01b0394909416606083015250608001529392505050565b918252602082015260400190565b60ff91909116815260200190565b600082198211156127a7576127a7612802565b500190565b6000826127c757634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156127e6576127e6612802565b500290565b6000828210156127fd576127fd612802565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461227b57600080fdfea2646970667358221220d1484ebc798ce84654a9c4a0fb3dc64455122dd8424603bc78783a494542e7e964736f6c63430008000033608060405234801561001057600080fd5b50604051610bd1380380610bd183398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610082565b600060208284031215610065578081fd5b81516001600160a01b038116811461007b578182fd5b9392505050565b610b40806100916000396000f3fe6080604052600436106100705760003560e01c8063b0f479a11161004e578063b0f479a1146100e2578063b6f9de95146100f7578063c45a01551461010a578063f305d7191461011f57610070565b80635c11d79514610075578063791ac94714610097578063ad5c4648146100b7575b600080fd5b34801561008157600080fd5b506100956100903660046108f5565b610141565b005b3480156100a357600080fd5b506100956100b23660046108f5565b6102fb565b3480156100c357600080fd5b506100cc61047a565b6040516100d991906109db565b60405180910390f35b3480156100ee57600080fd5b506100cc610506565b610095610105366004610890565b610515565b34801561011657600080fd5b506100cc610588565b61013261012d366004610813565b6105d7565b6040516100d993929190610adc565b60008484600081811061016457634e487b7160e01b600052603260045260246000fd5b905060200201602081019061017991906107d4565b6040516323b872dd60e01b81529091506001600160a01b038216906323b872dd906101ac90339030908c906004016109ef565b602060405180830381600087803b1580156101c657600080fd5b505af11580156101da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fe9190610870565b5060005460405163095ea7b360e01b81526001600160a01b038381169263095ea7b39261023392909116908b90600401610a13565b602060405180830381600087803b15801561024d57600080fd5b505af1158015610261573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102859190610870565b50600054604051635c11d79560e01b81526001600160a01b0390911690635c11d795906102c0908a908a908a908a908a908a90600401610a9e565b600060405180830381600087803b1580156102da57600080fd5b505af11580156102ee573d6000803e3d6000fd5b5050505050505050505050565b60008484600081811061031e57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061033391906107d4565b6040516323b872dd60e01b81529091506001600160a01b038216906323b872dd9061036690339030908c906004016109ef565b602060405180830381600087803b15801561038057600080fd5b505af1158015610394573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b89190610870565b5060005460405163095ea7b360e01b81526001600160a01b038381169263095ea7b3926103ed92909116908b90600401610a13565b602060405180830381600087803b15801561040757600080fd5b505af115801561041b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043f9190610870565b50600054604051633b158ab160e11b81526001600160a01b039091169063762b1562906102c0908a908a908a908a908a908a90600401610a9e565b60008060009054906101000a90046001600160a01b03166001600160a01b03166373b295c26040518163ffffffff1660e01b815260040160206040518083038186803b1580156104c957600080fd5b505afa1580156104dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050191906107f7565b905090565b6000546001600160a01b031690565b60005460405163c57559dd60e01b81526001600160a01b039091169063c57559dd90349061054f9089908990899089908990600401610a67565b6000604051808303818588803b15801561056857600080fd5b505af115801561057c573d6000803e3d6000fd5b50505050505050505050565b60008060009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156104c957600080fd5b6040516323b872dd60e01b81526000908190819089906001600160a01b038216906323b872dd90610610903390309087906004016109ef565b602060405180830381600087803b15801561062a57600080fd5b505af115801561063e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106629190610870565b5060005460405163095ea7b360e01b81526001600160a01b038381169263095ea7b39261069792909116908890600401610a13565b602060405180830381600087803b1580156106b157600080fd5b505af11580156106c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e99190610870565b50600054604051637c8d9fb960e11b81526001600160a01b039091169063f91b3f72903490610726908e908e908e908e908e908e90600401610a2c565b6060604051808303818588803b15801561073f57600080fd5b505af1158015610753573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107789190610966565b9350935093505096509650969350505050565b60008083601f84011261079c578182fd5b50813567ffffffffffffffff8111156107b3578182fd5b60208301915083602080830285010111156107cd57600080fd5b9250929050565b6000602082840312156107e5578081fd5b81356107f081610af2565b9392505050565b600060208284031215610808578081fd5b81516107f081610af2565b60008060008060008060c0878903121561082b578182fd5b863561083681610af2565b9550602087013594506040870135935060608701359250608087013561085b81610af2565b8092505060a087013590509295509295509295565b600060208284031215610881578081fd5b815180151581146107f0578182fd5b6000806000806000608086880312156108a7578081fd5b85359450602086013567ffffffffffffffff8111156108c4578182fd5b6108d08882890161078b565b90955093505060408601356108e481610af2565b949793965091946060013592915050565b60008060008060008060a0878903121561090d578182fd5b8635955060208701359450604087013567ffffffffffffffff811115610931578283fd5b61093d89828a0161078b565b909550935050606087013561095181610af2565b80925050608087013590509295509295509295565b60008060006060848603121561097a578283fd5b8351925060208401519150604084015190509250925092565b60008284526020808501945082825b858110156109d05781356109b581610af2565b6001600160a01b0316875295820195908201906001016109a2565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600086825260806020830152610a81608083018688610993565b6001600160a01b0394909416604083015250606001529392505050565b600087825286602083015260a06040830152610abe60a083018688610993565b6001600160a01b039490941660608301525060800152949350505050565b9283526020830191909152604082015260600190565b6001600160a01b0381168114610b0757600080fd5b5056fea2646970667358221220e6944b50536847f38f4615e7702c34d68bbabf684776ed3be0682643acf8f9b064736f6c6343000800003360806040526ec097ce7bc90715b34b9f1000000000600c55610e10600d55678ac7230489e80000600e5534801561003557600080fd5b50604051611186380380611186833981016040819052610054916100bc565b600380546001600160a01b039485166001600160a01b031991821617909155600080548216331790556002805493851693821693909317909255600180549190931691161790556100fe565b80516001600160a01b03811681146100b757600080fd5b919050565b6000806000606084860312156100d0578283fd5b6100d9846100a0565b92506100e7602085016100a0565b91506100f5604085016100a0565b90509250925092565b6110798061010d6000396000f3fe6080604052600436106100dd5760003560e01c8063cb1217e11161007f578063e2d2e21911610059578063e2d2e21914610205578063efca2eed1461021a578063ffb2c4791461022f578063ffd49c841461024f576100dd565b8063cb1217e1146101ae578063ce7c2ac2146101ce578063d0e30db0146101fd576100dd565b80632d48e896116100bb5780632d48e8961461014f5780633a98ef391461016f5780634fab0ae814610184578063997664d714610199576100dd565b806311ce023d146100e257806314b6ca961461010d57806328fd31981461012f575b600080fd5b3480156100ee57600080fd5b506100f7610264565b6040516101049190610f3b565b60405180910390f35b34801561011957600080fd5b5061012d610128366004610de4565b61026a565b005b34801561013b57600080fd5b506100f761014a366004610dca565b610391565b34801561015b57600080fd5b5061012d61016a366004610e75565b61041d565b34801561017b57600080fd5b506100f761043f565b34801561019057600080fd5b506100f7610445565b3480156101a557600080fd5b506100f761044b565b3480156101ba57600080fd5b5061012d6101c9366004610e0d565b610451565b3480156101da57600080fd5b506101ee6101e9366004610dca565b61045e565b60405161010493929190610f80565b61012d61047f565b34801561021157600080fd5b506100f76106f2565b34801561022657600080fd5b506100f76106f8565b34801561023b57600080fd5b5061012d61024a366004610e45565b6106fe565b34801561025b57600080fd5b506100f761081c565b600c5481565b6000546001600160a01b0316331461028157600080fd5b6001600160a01b038216600090815260076020526040902054156102aa576102aa826000610822565b6000811180156102d057506001600160a01b038216600090815260076020526040902054155b156102e3576102de82610b66565b610316565b8015801561030857506001600160a01b03821660009081526007602052604090205415155b156103165761031682610bc7565b6001600160a01b03821660009081526007602052604090205460085461034791839161034191610d14565b90610d27565b6008556001600160a01b038216600090815260076020526040902081905561036e81610d33565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b0381166000908152600760205260408120546103b657506000610418565b6001600160a01b0382166000908152600760205260408120546103d890610d33565b6001600160a01b03841660009081526007602052604090206001015490915080821161040957600092505050610418565b6104138282610d14565b925050505b919050565b6000546001600160a01b0316331461043457600080fd5b600d91909155600e55565b60085481565b600e5481565b60095481565b61045b3382610822565b50565b60076020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b0316331461049657600080fd5b6001546040516370a0823160e01b81526000916001600160a01b0316906370a08231906104c7903090600401610ed9565b60206040518083038186803b1580156104df57600080fd5b505afa1580156104f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105179190610e5d565b6040805160028082526060820183529293506000929091602083019080368337505060025482519293506001600160a01b03169183915060009061056b57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260018054835192169183919081106105a957634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260035460405163b6f9de9560e01b815291169063b6f9de959034906105ef90600090869030904290600401610f06565b6000604051808303818588803b15801561060857600080fd5b505af115801561061c573d6000803e3d6000fd5b50506001546040516370a0823160e01b8152600094506106b093508692506001600160a01b03909116906370a082319061065a903090600401610ed9565b60206040518083038186803b15801561067257600080fd5b505afa158015610686573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106aa9190610e5d565b90610d14565b6009549091506106c09082610d27565b600955600854600c546106ea916106e1916106db9085610d56565b90610d62565b600b5490610d27565b600b55505050565b600b5481565b600a5481565b6000546001600160a01b0316331461071557600080fd5b60045480610723575061045b565b6000805a905060005b848310801561073a57508381105b156108155783600f541061074e576000600f555b61078e6004600f548154811061077457634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316610d6e565b156107d3576107d36004600f54815481106107b957634e487b7160e01b600052603260045260246000fd5b60009182526020822001546001600160a01b031690610822565b6107e86107e15a8490610d14565b8490610d27565b92505a600f805491935060006107fd83611004565b9190505550808061080d90611004565b91505061072c565b5050505050565b600d5481565b6001600160a01b03821660009081526007602052604090205461084457610b62565b600061084f83610391565b90508015610b6057600a546108649082610d27565b600a5581801561088557506000546001546001600160a01b03908116911614155b15610a605760015460035460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926108c0929116908590600401610eed565b602060405180830381600087803b1580156108da57600080fd5b505af11580156108ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109129190610e29565b506040805160038082526080820190925260009160208201606080368337505060015482519293506001600160a01b03169183915060009061096457634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526002548251911690829060019081106109a357634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526000548251911690829060029081106109e257634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600354604051635c11d79560e01b8152911690635c11d79590610a2890859060009086908a904290600401610f44565b600060405180830381600087803b158015610a4257600080fd5b505af1158015610a56573d6000803e3d6000fd5b5050505050610ae6565b60015460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610a929086908590600401610eed565b602060405180830381600087803b158015610aac57600080fd5b505af1158015610ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae49190610e29565b505b6001600160a01b03831660009081526006602090815260408083204290556007909152902060020154610b199082610d27565b6001600160a01b0384166000908152600760205260409020600281019190915554610b4390610d33565b6001600160a01b0384166000908152600760205260409020600101555b505b5050565b600480546001600160a01b039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90910180546001600160a01b0319169091179055565b60048054610bd790600190610fed565b81548110610bf557634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610c4157634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260059182905260408120546004805491939291610c8d90600190610fed565b81548110610cab57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610cef57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610d208284610fed565b9392505050565b6000610d208284610f96565b6000610d50600c546106db600b5485610d5690919063ffffffff16565b92915050565b6000610d208284610fce565b6000610d208284610fae565b600d546001600160a01b03821660009081526006602052604081205490914291610d989190610f96565b108015610d505750600e54610dac83610391565b1192915050565b80356001600160a01b038116811461041857600080fd5b600060208284031215610ddb578081fd5b610d2082610db3565b60008060408385031215610df6578081fd5b610dff83610db3565b946020939093013593505050565b600060208284031215610e1e578081fd5b8135610d2081611035565b600060208284031215610e3a578081fd5b8151610d2081611035565b600060208284031215610e56578081fd5b5035919050565b600060208284031215610e6e578081fd5b5051919050565b60008060408385031215610e87578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b83811015610ece5781516001600160a01b031687529582019590820190600101610ea9565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b600085825260806020830152610f1f6080830186610e96565b6001600160a01b03949094166040830152506060015292915050565b90815260200190565b600086825285602083015260a06040830152610f6360a0830186610e96565b6001600160a01b0394909416606083015250608001529392505050565b9283526020830191909152604082015260600190565b60008219821115610fa957610fa961101f565b500190565b600082610fc957634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610fe857610fe861101f565b500290565b600082821015610fff57610fff61101f565b500390565b60006000198214156110185761101861101f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b801515811461045b57600080fdfea2646970667358221220818af06f5f1ed3991d159b79468722bee6ca3fda6fb4d6ffd067f5f4b0d8eac564736f6c63430008000033