[ { "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": "address", "name": "adr", "type": "address" } ], "name": "Authorized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "cap", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "period", "type": "uint256" } ], "name": "AutoBuybackSettingsUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountAVAX", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountToken", "type": "uint256" } ], "name": "AutoLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "AutoLiquifyUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountAVAX", "type": "uint256" } ], "name": "Buyback", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "gas", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "autoClaim", "type": "bool" } ], "name": "DistributorSettingsUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "holder", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "DividendExemptUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "holder", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "FeeExemptUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "autoLiquidityReceiver", "type": "address" }, { "indexed": false, "internalType": "address", "name": "marketingFeeReceiver", "type": "address" }, { "indexed": false, "internalType": "address", "name": "devFeeReceiver", "type": "address" } ], "name": "FeeReceiversUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "liquidityFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "buybackFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "reflectionFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "marketingFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "devFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "feeDenominator", "type": "uint256" } ], "name": "FeesUpdated", "type": "event" }, { "anonymous": false, "inputs": [], "name": "Launch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "holder", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "MaxwalletExemptUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountToken", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountAVAX", "type": "uint256" } ], "name": "SwapBack", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SwapBackSettingsUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "holder", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "TxLimitExemptUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TxLimitUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "adr", "type": "address" } ], "name": "Unauthorized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "banned", "type": "bool" } ], "name": "WalletBanStatusUpdated", "type": "event" }, { "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": "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": "uint256", "name": "amount", "type": "uint256" } ], "name": "buybackAVAX", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "buybackWEI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "devFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "distributor", "outputs": [ { "internalType": "contract DividendDistributor", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAccumulatedFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAutoBuybackSettings", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAutoLiquifySettings", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getSwapBackSettings", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "selling", "type": "bool" } ], "name": "getTotalFee", "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": "address", "name": "account", "type": "address" } ], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchedAt", "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": "bool", "name": "_enabled", "type": "bool" } ], "name": "setAutoLiquifyEnabled", "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" }, { "internalType": "bool", "name": "_autoClaim", "type": "bool" } ], "name": "setDistributorSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_autoLiquidityReceiver", "type": "address" }, { "internalType": "address", "name": "_marketingFeeReceiver", "type": "address" }, { "internalType": "address", "name": "_devFeeReceiver", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "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": "_devFee", "type": "uint256" }, { "internalType": "uint256", "name": "_feeDenominator", "type": "uint256" } ], "name": "setFees", "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": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setTxLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setmaxwalletExempt", "outputs": [], "stateMutability": "nonpayable", "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": [], "name": "transfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "adr", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "unauthorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080604052600280546001600160a01b03199081167360781c2586d68229fde47564546784ab3faca9821790915560038054821673b31f66aa3c1e785363f0875a1b74e27b85fd66c71790556004805490911661dead17905568056bc75e2d63100000600555670de0b6b3a7640000600655671158e460913d0000600755600f805461010060ff19918216600190811761ff0019169190911790925560c860105561012c6012556101f4601381905560145560158290556105dd60165561271060175560208054821690556026805460ff60a01b191690556207a12060275569152d02c7e14af68000006028556029805490911690911790556658d15e17628000602a553480156200011057600080fd5b50600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff1916909217909155601d805490921673e54ca86531e17ef3616d22ca28b0d458b6c891061791829055825163c45a015560e01b815292516001600160a01b03929092169263c45a01559260048083019392829003018186803b158015620001a057600080fd5b505afa158015620001b5573d6000803e3d6000fd5b505050506040513d6020811015620001cc57600080fd5b5051600354604080516364e329cb60e11b81526001600160a01b0392831660048201523060248201529051919092169163c9c653969160448083019260209291908290030181600087803b1580156200022457600080fd5b505af115801562000239573d6000803e3d6000fd5b505050506040513d60208110156200025057600080fd5b5051601e80546001600160a01b0319166001600160a01b03928316179055306000908152600960209081526040808320601d8054861685529252918290206000199055549051911690620002a4906200042f565b6001600160a01b03909116815260405190819003602001906000f080158015620002d2573d6000803e3d6000fd5b50602680546001600160a01b039283166001600160a01b031991821617909155336000818152600a60209081526040808320805460ff199081166001908117909255600b84528285208054821683179055600d84528285208054821683179055308086528386208054831684179055601e80548a1687528487208054841685179055600480548b16885285882080548516861790557ff1f55f311aad8536c8cd31b44da3f8acc536d79afca0902290d6b7fba1991a10805485168617905590548a168752600c8652848720805484168517905590865283862080548316841790555490971684528184208054909716179095556018805485168417905560198054851684179055601a805490941683179093556005548282526008845284822081905584519081529351919390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a36200043d565b6110c5806200324283390190565b612df5806200044d6000396000f3fe6080604052600436106102815760003560e01c80638a4068dd1161014f578063dab84ee7116100c1578063f1f3bca31161007a578063f1f3bca314610a0f578063f2fde38b14610a3b578063f708a64f14610a6e578063f84ba65d14610aa9578063f887ea4014610ae4578063fe9fbb8014610af957610288565b8063dab84ee7146108f6578063db8d55f11461090b578063dd62ed3e1461095a578063df20fd4914610995578063e96fada2146109c7578063f0b37c04146109dc57610288565b8063b6a5d7de11610113578063b6a5d7de1461080f578063bf56b37114610842578063bfe1092814610857578063ca33e64c1461086c578063cb213c1214610881578063d7c01032146108b157610288565b80638a4068dd1461077a57806395d89b41146102cd578063998a6b5f1461078f578063a8aa1b31146107c1578063a9059cbb146107d657610288565b806354200d6f116101f357806367822dfe116101ac57806367822dfe1461068d57806370a08231146106b75780637880aadc146106ea5780637d1db4a51461071f57806382247ec014610734578063893d20e81461074957610288565b806354200d6f1461055157806356f965d71461057d578063571ac8b0146105c75780635c85974f146105fa5780635df45a3714610624578063658d4b7f1461065257610288565b80631ba8eee7116102455780631ba8eee7146103f55780631d54613d1461044557806323b872dd146104805780632d48e896146104c35780632f54bf6e146104f3578063313ce5671461052657610288565b8063048c7baf1461028d57806306fdde03146102cd578063095ea7b314610357578063113f49a2146103a457806318160ddd146103ce57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102cb600480360360808110156102b057600080fd5b50803515159060208101359060408101359060600135610b2c565b005b3480156102d957600080fd5b506102e2610be9565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561031c578181015183820152602001610304565b50505050905090810190601f1680156103495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036357600080fd5b506103906004803603604081101561037a57600080fd5b506001600160a01b038135169060200135610c0f565b604080519115158252519081900360200190f35b3480156103b057600080fd5b506102cb600480360360208110156103c757600080fd5b5035610c76565b3480156103da57600080fd5b506103e3610cca565b60408051918252519081900360200190f35b34801561040157600080fd5b506102cb600480360360e081101561041857600080fd5b50803515159060208101359060408101359060608101359060808101359060a08101359060c00135610cd0565b34801561045157600080fd5b506102cb6004803603604081101561046857600080fd5b506001600160a01b0381351690602001351515610ddc565b34801561048c57600080fd5b50610390600480360360608110156104a357600080fd5b506001600160a01b03813581169160208101359091169060400135610e88565b3480156104cf57600080fd5b506102cb600480360360408110156104e657600080fd5b5080359060200135610f4a565b3480156104ff57600080fd5b506103906004803603602081101561051657600080fd5b50356001600160a01b0316611002565b34801561053257600080fd5b5061053b611019565b6040805160ff9092168252519081900360200190f35b34801561055d57600080fd5b506102cb6004803603602081101561057457600080fd5b5035151561101e565b34801561058957600080fd5b506105926110b5565b6040805196151587526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b3480156105d357600080fd5b50610390600480360360208110156105ea57600080fd5b50356001600160a01b03166110d5565b34801561060657600080fd5b506102cb6004803603602081101561061d57600080fd5b50356110e3565b34801561063057600080fd5b50610639611181565b6040805192835260208301919091528051918290030190f35b34801561065e57600080fd5b506102cb6004803603604081101561067557600080fd5b506001600160a01b038135169060200135151561118b565b34801561069957600080fd5b506102cb600480360360208110156106b057600080fd5b5035611237565b3480156106c357600080fd5b506103e3600480360360208110156106da57600080fd5b50356001600160a01b0316611292565b3480156106f657600080fd5b506106ff6112ad565b604080519315158452602084019290925282820152519081900360600190f35b34801561072b57600080fd5b506103e36112c5565b34801561074057600080fd5b506103e36112cb565b34801561075557600080fd5b5061075e6112d1565b604080516001600160a01b039092168252519081900360200190f35b34801561078657600080fd5b506102cb6112e0565b34801561079b57600080fd5b506102cb600480360360408110156107b257600080fd5b50803590602001351515611375565b3480156107cd57600080fd5b5061075e61142e565b3480156107e257600080fd5b50610390600480360360408110156107f957600080fd5b506001600160a01b03813516906020013561143d565b34801561081b57600080fd5b506102cb6004803603602081101561083257600080fd5b50356001600160a01b031661144a565b34801561084e57600080fd5b506103e36114e9565b34801561086357600080fd5b5061075e6114ef565b34801561087857600080fd5b5061075e6114fe565b34801561088d57600080fd5b5061089661150d565b60408051921515835260208301919091528051918290030190f35b3480156108bd57600080fd5b506102cb600480360360608110156108d457600080fd5b506001600160a01b03813581169160208101358216916040909101351661151b565b34801561090257600080fd5b5061075e6115e5565b34801561091757600080fd5b506109206115f4565b6040805197151588526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b34801561096657600080fd5b506103e36004803603604081101561097d57600080fd5b506001600160a01b0381358116916020013516611618565b3480156109a157600080fd5b506102cb600480360360408110156109b857600080fd5b50803515159060200135611643565b3480156109d357600080fd5b5061075e6116df565b3480156109e857600080fd5b506102cb600480360360208110156109ff57600080fd5b50356001600160a01b03166116ee565b348015610a1b57600080fd5b506103e360048036036020811015610a3257600080fd5b50351515611789565b348015610a4757600080fd5b506102cb60048036036020811015610a5e57600080fd5b50356001600160a01b03166117c8565b348015610a7a57600080fd5b506102cb60048036036040811015610a9157600080fd5b506001600160a01b0381351690602001351515611879565b348015610ab557600080fd5b506102cb60048036036040811015610acc57600080fd5b506001600160a01b0381351690602001351515611a4d565b348015610af057600080fd5b5061075e611af9565b348015610b0557600080fd5b5061039060048036036020811015610b1c57600080fd5b50356001600160a01b0316611b08565b610b3533611b08565b610b74576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6020805485151560ff1990911681178255602185905560006022556023849055602483905543602555604080519182529181018590528082018490526060810183905290517f07e4a4dc3e8013db5de426f27688d245ba84f9f9195eed42e7a94acb0a565b6f9181900360800190a150505050565b60408051808201909152600c81526b2120a12ca830b733b7b634b760a11b602082015290565b3360008181526009602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b610c7f33611b08565b610cbe576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b610cc781611b26565b50565b60055490565b610cd933611b08565b610d18576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600f805460ff19168815151790556012859055601384905560148390556015829055610d5082610d4a85818989611b73565b90611b73565b6016819055601087905560178290558190610d6b9088611b73565b10610d7557600080fd5b60408051881515815260208101889052808201879052606081018690526080810185905260a0810184905260c0810183905290517f76d099a416dfc2ebb98aadbbac897c0d02a441d0c4fb2e3a9fdf6414d6dcfea99181900360e00190a150505050505050565b610de533611b08565b610e24576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d6020908152604091829020805460ff191685151590811790915582519384529083015280517f463f81492419927b6b1aef7271d6d7da08fb28638f175f3f7961b1571911f0409281900390910190a15050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610f35576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610f10918490611bcd565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610f40848484611c64565b90505b9392505050565b610f5333611b08565b610f92576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602654604080516316a4744b60e11b8152600481018590526024810184905290516001600160a01b0390921691632d48e8969160448082019260009290919082900301818387803b158015610fe657600080fd5b505af1158015610ffa573d6000803e3d6000fd5b505050505050565b6000546001600160a01b038281169116145b919050565b600990565b61102733611b08565b611066576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600f8054821515610100810261ff00199092169190911790915560408051918252517f075af1ef3c1829076b56416deceff9df2103194b5dfbf756f8557478b494f7ff9181900360200190a150565b60205460215460225460235460245460255460ff90951694909192939495565b6000610c7082600019610c0f565b6110ec33611b08565b61112b576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b620186a06005548161113957fe5b0481101561114657600080fd5b60068190556040805182815290517fa53407ff336a78b145e1a297adce2a5d7a54e6c31d13b4e69e04aad80b07b44b9181900360200190a150565b601b54601c549091565b61119433611b08565b6111d3576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600a6020908152604091829020805460ff191685151590811790915582519384529083015280517f4d5771454588f51370a8a2e7e151354b6de0dc3159b14821b4ad76bc04c28bc79281900390910190a15050565b61124033611b08565b61127f576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b610cc781670de0b6b3a764000002611b26565b6001600160a01b031660009081526008602052604090205490565b600f54601154602a5461010090920460ff1692909190565b60065481565b60075481565b6000546001600160a01b031690565b6112e933611b08565b611328576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b33600081815260086020908152604080832080546005805460288054918201909255820190925590548251908152915190949392600080516020612da0833981519152928290030190a350565b61137e33611b08565b6113bd576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b620f42408211156113cd57600080fd5b60278290556026805460ff60a01b1916600160a01b8315159081029190911790915560408051848152602081019290925280517f5fdd419a37de0633d9df0f25b1b1f9a77e5794e82e87c24bc9ded94c0990b1769281900390910190a15050565b601e546001600160a01b031681565b6000610f43338484611c64565b61145333611002565b61148d576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b038116600081815260016020818152604092839020805460ff1916909217909155815192835290517fdc84e3a4c83602050e3865df792a4e6800211a79ac60db94e703a820ce8929249281900390910190a150565b601f5481565b6026546001600160a01b031681565b6018546001600160a01b031681565b602954602a5460ff90911691565b61152433611b08565b611563576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601880546001600160a01b038086166001600160a01b03199283168117909355601980548683169084168117909155601a805492861692909316821790925560408051938452602084019290925282820152517f12b4cfbea7a8dac3b859f7b88ff33db6082e4c6bb29a58b3d8edbd58ed7420289181900360600190a1505050565b601a546001600160a01b031681565b600f5460125460135460145460155460105460175460ff9096169590919293949596565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b61164c33611b08565b61168b576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6029805460ff1916831515908117909155602a829055604080519182526020820183905280517f30e0f7c488b6c70123097f13cf387e140b0e0b8c9d9e3473e502f35b035d377c9281900390910190a15050565b6019546001600160a01b031681565b6116f733611002565b611731576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b038116600081815260016020908152604091829020805460ff19169055815192835290517f8e4a23d6a5d81f013eca4bc92aeb9214ccafcaebd1f097c350c922d6e19122d59281900390910190a150565b600043601f54600101106117ac576017546117a5906001612081565b9050611014565b816117b957601654610c70565b601054601654610c7091611b73565b6117d133611002565b61180b576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b61188233611b08565b6118c1576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03821630148015906118e85750601e546001600160a01b03838116911614155b6118f157600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff1916821580159190911790915561198e5760265460408051630a5b654b60e11b81526001600160a01b03858116600483015260006024830181905292519316926314b6ca969260448084019391929182900301818387803b15801561197157600080fd5b505af1158015611985573d6000803e3d6000fd5b50505050611a05565b6026546001600160a01b03838116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b1580156119ec57600080fd5b505af1158015611a00573d6000803e3d6000fd5b505050505b604080516001600160a01b0384168152821515602082015281517e8548b19959a911110b36c03f6148fa56fbcc2ce2553abf33112aa00bbdfd6a929181900390910190a15050565b611a5633611b08565b611a95576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600b6020908152604091829020805460ff191685151590811790915582519384529083015280517fe1fc1cdd7520f99d4b4715966557867ae295b281f90d30b3631bae054b7f196c9281900390910190a15050565b601d546001600160a01b031681565b6001600160a01b031660009081526001602052604090205460ff1690565b600454611b3d9082906001600160a01b03166120c3565b6040805182815290517fd33075670012f1689703c1e45a2b858dbe814a49e78c19fa053e181156e480699181900360200190a150565b600082820183811015610f43576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008184841115611c5c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c21578181015183820152602001611c09565b50505050905090810190601f168015611c4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166000908152600e602052604081205460ff1615611cc5576040805162461bcd60e51b815260206004820152601060248201526f14d95b99195c881a5cc818985b9b995960821b604482015290519081900360640190fd5b6001600160a01b0383166000908152600e602052604090205460ff1615611d29576040805162461bcd60e51b8152602060048201526013602482015272149958da5c1a595b9d081a5cc818985b9b9959606a1b604482015290519081900360640190fd5b602b5460ff1615611d4657611d3f84848461221a565b9050610f43565b611d4f846122e9565b611d598483612349565b611d6383836123bb565b611d6b612445565b15611d7857611d78612496565b611d80612a65565b15611d8d57611d8d612ab7565b611d95612afe565b158015611daf5750601e546001600160a01b038481169116145b15611dde576001600160a01b038416600090815260086020526040902054611dd657600080fd5b611dde612b06565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611e30918490611bcd565b6001600160a01b038516600090815260086020526040812091909155611e5585612b48565b611e5f5782611e6a565b611e6a858585612b78565b6001600160a01b038516600090815260086020526040902054909150611e909082611b73565b6001600160a01b038086166000908152600860209081526040808320949094559188168152600c909152205460ff16611f34576026546001600160a01b03868116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b158015611f2157600080fd5b505af1925050508015611f32575060015b505b6001600160a01b0384166000908152600c602052604090205460ff16611fc5576026546001600160a01b03858116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b158015611fb257600080fd5b505af1925050508015611fc3575060015b505b602654600160a01b900460ff161561203d57602654602754604080516001624d3b8760e01b031981526004810192909252516001600160a01b039092169163ffb2c4799160248082019260009290919082900301818387803b15801561202a57600080fd5b505af192505050801561203b575060015b505b836001600160a01b0316856001600160a01b0316600080516020612da0833981519152836040518082815260200191505060405180910390a3506001949350505050565b6000610f4383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bcd565b602b805460ff19166001179055604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b03169183915060009061210b57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061213957fe5b6001600160a01b03928316602091820292909201810191909152601d5460405163c57559dd60e01b815260006004820181815287861660448401524260648401819052608060248501908152885160848601528851959097169663c57559dd968b9694958a958c95939260a49092019187810191028083838b5b838110156121cb5781810151838201526020016121b3565b50505050905001955050505050506000604051808303818588803b1580156121f257600080fd5b505af1158015612206573d6000803e3d6000fd5b5050602b805460ff19169055505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461226b918490611bcd565b6001600160a01b03808616600090815260086020526040808220939093559085168152205461229a9083611b73565b6001600160a01b038085166000818152600860209081526040918290209490945580518681529051919392881692600080516020612da083398151915292918290030190a35060019392505050565b6122f1612afe565b80612300575061230081611b08565b610cc7576040805162461bcd60e51b815260206004820152601560248201527428393296a630bab731b410283937ba32b1ba34b7b760591b604482015290519081900360640190fd5b6006548111158061237257506001600160a01b0382166000908152600b602052604090205460ff165b6123b7576040805162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015290519081900360640190fd5b5050565b6007546001600160a01b03831660009081526008602052604090205482011115806123fe57506001600160a01b0382166000908152600d602052604090205460ff165b6123b7576040805162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015290519081900360640190fd5b601e546000906001600160a01b031633148015906124665750602b5460ff16155b8015612474575060295460ff165b80156124915750602a543060009081526008602052604090205410155b905090565b602b805460ff19166001179055602a54601154108015906124be5750600f54610100900460ff165b1561271b57602a546011546124d291612081565b601155602a546000906124e6906002612c7e565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061251a57fe5b6001600160a01b03928316602091820292909201015260035482519116908290600190811061254557fe5b6001600160a01b03928316602091820292909201810191909152601d54604051633b158ab160e11b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763762b1562978c9795968c9690939260c49091019187820191028083838b5b838110156125df5781810151838201526020016125c7565b505050509050019650505050505050600060405180830381600087803b15801561260857600080fd5b505af115801561261c573d6000803e3d6000fd5b505050506000612635824761208190919063ffffffff16565b601d5460185460408051637c8d9fb960e11b81523060048201526024810189905260006044820181905260648201526001600160a01b0392831660848201524260a4820152905193945091169163f91b3f7291849160c480830192606092919082900301818588803b1580156126aa57600080fd5b505af11580156126be573d6000803e3d6000fd5b50505050506040513d60608110156126d557600080fd5b5050604080518281526020810186905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a150505050612a59565b602a54604080516002808252606082018352600092602083019080368337019050509050308160008151811061274d57fe5b6001600160a01b03928316602091820292909201015260035482519116908290600190811061277857fe5b6001600160a01b03928316602091820292909201810191909152601d54604051633b158ab160e11b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763762b1562978c9795968c9690939260c49091019187820191028083838b5b838110156128125781810151838201526020016127fa565b505050509050019650505050505050600060405180830381600087803b15801561283b57600080fd5b505af115801561284f573d6000803e3d6000fd5b505050506000612868824761208190919063ffffffff16565b9050600061288d60165461288760135485612cc090919063ffffffff16565b90612c7e565b905060006128ac60165461288760145486612cc090919063ffffffff16565b905060006128cb60165461288760155487612cc090919063ffffffff16565b9050602660009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561291d57600080fd5b505af19350505050801561292f575060015b506019546040516000916001600160a01b03169061753090859084818181858888f193505050503d8060008114612982576040519150601f19603f3d011682016040523d82523d6000602084013e612987565b606091505b5050905080156129a257601b5461299e9084611b73565b601b555b601a546040516001600160a01b03909116906175309084906000818181858888f193505050503d80600081146129f4576040519150601f19603f3d011682016040523d82523d6000602084013e6129f9565b606091505b50909150508015612a1557601c54612a119083611b73565b601c555b604080518981526020810187905281517f05ab84b321981d7d9a13402e494604c50821bcb5f2400d128fa06cd6451113d4929181900390910190a150505050505050505b602b805460ff19169055565b601e546000906001600160a01b03163314801590612a865750602b5460ff16155b8015612a94575060205460ff165b8015612aa65750436024546025540111155b801561249157505060235447101590565b602354600454612ad091906001600160a01b03166120c3565b43602555602354602254612ae391611b73565b60228190556021541015612afc576020805460ff191690555b565b601f54151590565b43601f556026805460ff60a01b1916600160a01b1790556040517f02ac8168caf2f254b394bd39e19417c5c28124ab89c9bc2d44921b19808e266990600090a1565b600f5460009060ff168015610c705750506001600160a01b03166000908152600a602052604090205460ff161590565b601754601e546000918291612baa919061288790612ba3906001600160a01b03898116911614611789565b8690612cc0565b30600090815260086020526040902054909150612bc79082611b73565b30600081815260086020908152604091829020939093558051848152905191926001600160a01b03891692600080516020612da08339815191529281900390910190a3601e546001600160a01b038581169116148015612c2e5750600f54610100900460ff165b15612c6b57612c67612c5e612c50601054601654611b7390919063ffffffff16565b601054612887908590612cc0565b60115490611b73565b6011555b612c758382612081565b95945050505050565b6000610f4383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d19565b600082612ccf57506000610c70565b82820282848281612cdc57fe5b0414610f435760405162461bcd60e51b8152600401808060200182810382526021815260200180612d7f6021913960400191505060405180910390fd5b60008183612d685760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611c21578181015183820152602001611c09565b506000838581612d7457fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122086f5db9845e02c64776d0b4e1d282fbe54288e2425816f7b747469a4e9b35b8564736f6c634300070600336080604052600180546001600160a01b03199081167360781c2586d68229fde47564546784ab3faca982179091556002805490911673b31f66aa3c1e785363f0875a1b74e27b85fd66c71790556ec097ce7bc90715b34b9f1000000000600c55610384600d55670de0b6b3a7640000600e5534801561007d57600080fd5b506040516110c53803806110c5833981810160405260208110156100a057600080fd5b50516001600160a01b0381166100ca5773e54ca86531e17ef3616d22ca28b0d458b6c891066100cc565b805b600380546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610fbf806101066000396000f3fe6080604052600436106100f35760003560e01c8063ce7c2ac21161008a578063efca2eed11610059578063efca2eed146102f6578063f0fc6bca1461030b578063ffb2c47914610320578063ffd49c841461034a576100f3565b8063ce7c2ac214610255578063d0e30db0146102a6578063e2d2e219146102ae578063edf35253146102c3576100f3565b80633a98ef39116100c65780633a98ef39146101bd5780634fab0ae8146101d25780635e6056bb146101e7578063997664d714610240576100f3565b806311ce023d146100f857806314b6ca961461011f57806328fd31981461015a5780632d48e8961461018d575b600080fd5b34801561010457600080fd5b5061010d61035f565b60408051918252519081900360200190f35b34801561012b57600080fd5b506101586004803603604081101561014257600080fd5b506001600160a01b038135169060200135610365565b005b34801561016657600080fd5b5061010d6004803603602081101561017d57600080fd5b50356001600160a01b03166104a8565b34801561019957600080fd5b50610158600480360360408110156101b057600080fd5b5080359060200135610534565b3480156101c957600080fd5b5061010d610594565b3480156101de57600080fd5b5061010d61059a565b3480156101f357600080fd5b5061021a6004803603602081101561020a57600080fd5b50356001600160a01b03166105a0565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561024c57600080fd5b5061010d6105cd565b34801561026157600080fd5b506102886004803603602081101561027857600080fd5b50356001600160a01b03166105d3565b60408051938452602084019290925282820152519081900360600190f35b6101586105f4565b3480156102ba57600080fd5b5061010d6108aa565b3480156102cf57600080fd5b50610158600480360360208110156102e657600080fd5b50356001600160a01b03166108b0565b34801561030257600080fd5b5061010d6108bc565b34801561031757600080fd5b506101586108c2565b34801561032c57600080fd5b506101586004803603602081101561034357600080fd5b50356108cd565b34801561035657600080fd5b5061010d6109fb565b600c5481565b6000546001600160a01b0316331461037c57600080fd5b61038582610a01565b6000811180156103ab57506001600160a01b038216600090815260076020526040902054155b156103be576103b982610b85565b6103f1565b801580156103e357506001600160a01b03821660009081526007602052604090205415155b156103f1576103f182610be6565b6001600160a01b03821660009081526007602052604090205460085461042291839161041c91610cd3565b90610d1e565b6008556001600160a01b038216600090815260076020526040902081905561044981610d78565b6001600160a01b03831660008181526007602090815260409182902060010193909355805191825291810183905281517f465bc1e774b3c331b04932a22f9781dbb864defe943d70548ba9b8af6c528b5c929181900390910190a15050565b6001600160a01b0381166000908152600760205260408120546104cd5750600061052f565b6001600160a01b0382166000908152600760205260408120546104ef90610d78565b6001600160a01b0384166000908152600760205260409020600101549091508082116105205760009250505061052f565b61052a8282610cd3565b925050505b919050565b6000546001600160a01b0316331461054b57600080fd5b600d829055600e819055604080518381526020810183905281517f4bee245ad45dacfa3feb4cc8a61ace735c47b485fb8a399ce9e3f6c87aade418929181900390910190a15050565b60085481565b600e5481565b600854600a546001600160a01b038316600090815260076020526040902080546002909101549193509193565b60095481565b60076020526000908152604090208054600182015460029092015490919083565b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561063f57600080fd5b505afa158015610653573d6000803e3d6000fd5b505050506040513d602081101561066957600080fd5b50516040805160028082526060820183529293506000929091602083019080368337505060025482519293506001600160a01b0316918391506000906106ab57fe5b6001600160a01b03928316602091820292909201015260018054835192169183919081106106d557fe5b6001600160a01b0392831660209182029290920181019190915260035460405163c57559dd60e01b815260006004820181815230604484018190524260648501819052608060248601908152895160848701528951969098169763c57559dd97349795968b969495939460a49091019187810191028083838b5b8381101561076757818101518382015260200161074f565b50505050905001955050505050506000604051808303818588803b15801561078e57600080fd5b505af11580156107a2573d6000803e3d6000fd5b5050600154604080516370a0823160e01b815230600482015290516000955061082d94508793506001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156107fb57600080fd5b505afa15801561080f573d6000803e3d6000fd5b505050506040513d602081101561082557600080fd5b505190610cd3565b60095490915061083d9082610d1e565b600955600854600c546108679161085e916108589085610d95565b90610dee565b600b5490610d1e565b600b55604080513481526020810183905281517fa3af609bf46297028ce551832669030f9effef2b02606d02cbbcc40fe6b47c55929181900390910190a1505050565b600b5481565b6108b981610a01565b50565b600a5481565b6108cb33610a01565b565b6000546001600160a01b031633146108e457600080fd5b600454806108f257506108b9565b6000805a90506000805b858410801561090a57508482105b156109b05784600f541061091e576000600f555b61094a6004600f548154811061093057fe5b6000918252602090912001546001600160a01b0316610e30565b1561097f5761097b6004600f548154811061096157fe5b6000918252602090912001546001600160a01b0316610a01565b6001015b61099461098d5a8590610cd3565b8590610d1e565b93505a600f8054600190810190915590935091909101906108fc565b600f54604080518481526020810184905280820192909252517f96b82f6a439ac2d3939f479dd110e1915927d68eac70cf39a47cf294d53234ee9181900360600190a1505050505050565b600d5481565b6001600160a01b038116600090815260076020526040902054610a23576108b9565b6000610a2e826104a8565b90508015610b8157600a54610a439082610d1e565b600a556001546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610a9c57600080fd5b505af1158015610ab0573d6000803e3d6000fd5b505050506040513d6020811015610ac657600080fd5b50506001600160a01b03821660009081526006602090815260408083204290556007909152902060020154610afb9082610d1e565b6001600160a01b0383166000908152600760205260409020600281019190915554610b2590610d78565b6001600160a01b03831660008181526007602090815260409182902060010193909355805191825291810183905281517f33ad5d6b2a46b5457e0d36286a2686a0390b0821dedbbdf8dcdcda64f4782c68929181900390910190a15b5050565b600480546001600160a01b039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90910180546001600160a01b0319169091179055565b600480546000198101908110610bf857fe5b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610c3057fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916000198101908110610c7e57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610cae57fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610d1583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e6c565b90505b92915050565b600082820183811015610d15576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610d18600c54610858600b5485610d9590919063ffffffff16565b600082610da457506000610d18565b82820282848281610db157fe5b0414610d155760405162461bcd60e51b8152600401808060200182810382526021815260200180610f696021913960400191505060405180910390fd5b6000610d1583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610f03565b600d546001600160a01b0382166000908152600660205260408120549091429101108015610d185750600e54610e65836104a8565b1192915050565b60008184841115610efb5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ec0578181015183820152602001610ea8565b50505050905090810190601f168015610eed5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610f525760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610ec0578181015183820152602001610ea8565b506000838581610f5e57fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220b713bde38d08df5bf8d5f723d19114f7d2271aca1d811c760ede264e18b3cefc64736f6c63430007060033