[ { "inputs": [], "stateMutability": "payable", "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": "amount", "type": "uint256" } ], "name": "AutoLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "ContractSwapEnabledUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "sniperAddress", "type": "address" } ], "name": "SniperCaught", "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": "DEAD", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_hasLiqBeenAdded", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_ratios", "outputs": [ { "internalType": "uint16", "name": "rewards", "type": "uint16" }, { "internalType": "uint16", "name": "liquidity", "type": "uint16" }, { "internalType": "uint16", "name": "marketing", "type": "uint16" }, { "internalType": "uint16", "name": "dev", "type": "uint16" }, { "internalType": "uint16", "name": "total", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_taxRates", "outputs": [ { "internalType": "uint16", "name": "buyFee", "type": "uint16" }, { "internalType": "uint16", "name": "sellFee", "type": "uint16" }, { "internalType": "uint16", "name": "transferFee", "type": "uint16" } ], "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": [], "name": "approveContractContingency", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "router", "type": "address" } ], "name": "changeRouterContingency", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "contractSwapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "currentRouter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dexRouter", "outputs": [ { "internalType": "contract IRouter02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "enableTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getApproximateTotalUnpaidRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMaxTX", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMaxWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getSniperAmt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalReflected", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "shareholder", "type": "address" } ], "name": "getUserInfo", "outputs": [ { "internalType": "string", "name": "", "type": "string" }, { "internalType": "string", "name": "", "type": "string" }, { "internalType": "string", "name": "", "type": "string" }, { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "shareholder", "type": "address" } ], "name": "getUserRealizedGains", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "shareholder", "type": "address" } ], "name": "getUserUnpaidEarnings", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "giveMeWelfarePlease", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isDividendExcluded", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isFeeExcluded", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lpPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manualDepost", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "marketingWallet", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "percents", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "divisors", "type": "uint256[]" } ], "name": "multiSendPercents", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "multiSendTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "processReflect", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "removeBlacklisted", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "removeSniper", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "setBlacklistEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "setBlacklistEnabledMultiple", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "bool", "name": "processReflectEnabled", "type": "bool" } ], "name": "setContractSwapSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "setDividendExcluded", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "setExcludedFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" } ], "name": "setGasPriceLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "aInitializer", "type": "address" }, { "internalType": "address", "name": "cInitializer", "type": "address" } ], "name": "setInitializers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "setLpPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "percent", "type": "uint256" }, { "internalType": "uint256", "name": "divisor", "type": "uint256" } ], "name": "setMaxTxPercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "percent", "type": "uint256" }, { "internalType": "uint256", "name": "divisor", "type": "uint256" } ], "name": "setMaxWalletSize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newRouter", "type": "address" } ], "name": "setNewRouter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_antiSnipe", "type": "bool" }, { "internalType": "bool", "name": "_antiGas", "type": "bool" }, { "internalType": "bool", "name": "_antiBlock", "type": "bool" }, { "internalType": "bool", "name": "_antiSpecial", "type": "bool" } ], "name": "setProtectionSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "rewards", "type": "uint16" }, { "internalType": "uint16", "name": "liquidity", "type": "uint16" }, { "internalType": "uint16", "name": "marketing", "type": "uint16" } ], "name": "setRatios", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minPeriod", "type": "uint256" }, { "internalType": "uint256", "name": "_minReflection", "type": "uint256" }, { "internalType": "uint256", "name": "minReflectionMultiplier", "type": "uint256" } ], "name": "setReflectionCriteria", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" } ], "name": "setReflectorSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "thresholdPercent", "type": "uint256" }, { "internalType": "uint256", "name": "thresholdDivisor", "type": "uint256" }, { "internalType": "uint256", "name": "amountPercent", "type": "uint256" }, { "internalType": "uint256", "name": "amountDivisor", "type": "uint256" } ], "name": "setSwapSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "buyFee", "type": "uint16" }, { "internalType": "uint16", "name": "sellFee", "type": "uint16" }, { "internalType": "uint16", "name": "transferFee", "type": "uint16" } ], "name": "setTaxes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "marketing", "type": "address" } ], "name": "setWallets", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "staticVals", "outputs": [ { "internalType": "uint16", "name": "maxBuyTaxes", "type": "uint16" }, { "internalType": "uint16", "name": "maxSellTaxes", "type": "uint16" }, { "internalType": "uint16", "name": "maxTransferTaxes", "type": "uint16" }, { "internalType": "uint16", "name": "masterTaxDivisor", "type": "uint16" } ], "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": [], "name": "tradingEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": [ { "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", "name": "newOwner", "type": "address" } ], "name": "transferOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080604052600060035566038d7ea4c680006008556009805460ff1916811781556200002d90600a620007e3565b6008546200003c9190620007fb565b600a81905560408051606080820183526104e2808352602080840182905292840152600b805465ffffffffffff19166504e204e204e2179055825160a08101845260288152601081840152808401839052600c8183018190526064608092830181905281546001600160501b0319166864000c00200010002817909155845191820185526107d080835293820184905293810192909252612710910152600d80546001600160401b03191667271007d007d007d01790556012805461dead6001600160a01b031991821617909155601380548216905560148054733e13feb5aa79d85ce83a1dac90fdb10887e467849083161790556015805473c4302b2d6d9205acf6350a0c30a781bd6b286bf192169190911790559062000160906001620007fb565b6200016c91906200081d565b6016556064600a546005620001829190620007fb565b6200018e91906200081d565b601755620493e0601955601a805461ffff19169055600a54620001b590614e20906200081d565b601b556103e8600a546005620001cc9190620007fb565b620001d891906200081d565b601c55601d805463ffffff0019169055600a543360008181526001602090815260408083209490945581546001600160a01b031990811684179092556010805483167360ae616a2155ee3d9a68541ba4544862310933d4908117909155600e80549093168117909255835163c45a015560e01b815293519293919263c45a01559260048082019392918290030181865afa1580156200027b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a1919062000840565b6001600160a01b031663c9c65396600e60009054906101000a90046001600160a01b03166001600160a01b03166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000303573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000329919062000840565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000376573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039c919062000840565b600f80546001600160a01b0319166001600160a01b039283169081179091556000908152600260205260409020805460ff19166001179055601054620003e891339116600019620005a2565b601054620004049030906001600160a01b0316600019620005a2565b600e60009054906101000a90046001600160a01b03166001600160a01b03166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000458573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047e919062000840565b601180546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff199081166001908117909255308086528386208054831684179055855487168652600685528386208054831684179055600f5487168652838620805483168417905585528285208054821683179055601254861685528285208054821683179055601380548716865294839020805490911690911790559154600a5483519081529251339491909116927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92908290030190a36040516001600160a01b038216906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200086b565b6001600160a01b0383166200060a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166200066d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000601565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000725578160001904821115620007095762000709620006ce565b808516156200071757918102915b93841c9390800290620006e9565b509250929050565b6000826200073e57506001620007dd565b816200074d57506000620007dd565b8160018114620007665760028114620007715762000791565b6001915050620007dd565b60ff841115620007855762000785620006ce565b50506001821b620007dd565b5060208310610133831016604e8410600b8410161715620007b6575081810a620007dd565b620007c28383620006e4565b8060001904821115620007d957620007d9620006ce565b0290505b92915050565b6000620007f460ff8416836200072d565b9392505050565b6000816000190483118215151615620008185762000818620006ce565b500290565b6000826200083b57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200085357600080fd5b81516001600160a01b0381168114620007f457600080fd5b614f22806200087b6000396000f3fe6080604052600436106103c75760003560e01c80636b639a25116101f2578063c26dc4b71161010d578063eb50e70e116100a0578063f7c245ea1161006f578063f7c245ea14610cb7578063fb78680d14610ccc578063fdb78c0e14610cec578063fe575a8714610d0657600080fd5b8063eb50e70e14610c43578063eec2744e14610c63578063efe7dc9014610c83578063f7727e1414610ca257600080fd5b8063dd62ed3e116100dc578063dd62ed3e14610b9d578063dea528a114610be3578063e8a0e3f914610c03578063eafb5a3c14610c2357600080fd5b8063c26dc4b714610abc578063c6a276c214610adb578063cf84770614610afb578063d0b1449d14610b7d57600080fd5b80638a8c523c11610185578063a9059cbb11610154578063a9059cbb14610a23578063aa22b17214610a43578063ab5cb5a614610a63578063bca238aa14610a8357600080fd5b80638a8c523c146109b35780638da5cb5b1461098057806395d89b41146109c85780639dc6761514610a0e57600080fd5b806375f0a874116101c157806375f0a8741461094057806380c581d114610960578063893d20e8146109805780638a63bd9b1461099e57600080fd5b80636b639a25146108c05780636ebd0078146108e057806370a08231146108f5578063715018a61461092b57600080fd5b80632610eaca116102e2578063452ed4f11161027557806355dbc3691161024457806355dbc3691461083b578063590ffdce146108505780636372c68f146108705780636386c1c71461089057600080fd5b8063452ed4f1146107ba5780634ada218b146107da5780634fb2e45d146107fa57806350a8e0161461081a57600080fd5b806332cde664116102b157806332cde6641461073a57806333251a0b1461075a578063384f36b61461077a5780633f3cf56c1461079a57600080fd5b80632610eaca146106c357806329dd8798146106e35780632b112e4914610703578063313ce5671461071857600080fd5b80630fa604e41161035a578063218950bc11610329578063218950bc1461062a57806323b872dd1461064a578063255a2e541461066a57806326003957146106a357600080fd5b80630fa604e414610567578063122fea3b1461058a57806318160ddd146105aa5780631b6afa2d146105bf57600080fd5b80630758d924116103965780630758d924146104d757806309231602146104f7578063095ea7b31461051757806309a8f1791461054757600080fd5b806303fd2a45146103d357806305bbedb614610410578063069d955f1461043257806306fdde031461048857600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506012546103f3906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561041c57600080fd5b5061043061042b3660046145b8565b610d26565b005b34801561043e57600080fd5b50600b546104639061ffff808216916201000081048216916401000000009091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610407565b34801561049457600080fd5b5060408051808201909152600981527f415641205748414c45000000000000000000000000000000000000000000000060208201525b6040516104079190614662565b3480156104e357600080fd5b50600e546103f3906001600160a01b031681565b34801561050357600080fd5b50610430610512366004614675565b610e0d565b34801561052357600080fd5b5061053761053236600461468e565b610f3a565b6040519015158152602001610407565b34801561055357600080fd5b506104306105623660046146ba565b610fa7565b34801561057357600080fd5b5061057c61109a565b604051908152602001610407565b34801561059657600080fd5b506010546103f3906001600160a01b031681565b3480156105b657600080fd5b50600a5461057c565b3480156105cb57600080fd5b50600d546105fc9061ffff808216916201000081048216916401000000008204811691660100000000000090041684565b6040805161ffff95861681529385166020850152918416918301919091529091166060820152608001610407565b34801561063657600080fd5b506104306106453660046146e6565b6110c0565b34801561065657600080fd5b50610537610665366004614714565b6111c5565b34801561067657600080fd5b50610537610685366004614755565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156106af57600080fd5b506104306106be366004614772565b61123f565b3480156106cf57600080fd5b506104306106de3660046147ef565b611356565b3480156106ef57600080fd5b506104306106fe366004614853565b61147d565b34801561070f57600080fd5b5061057c611574565b34801561072457600080fd5b5060095460405160ff9091168152602001610407565b34801561074657600080fd5b506104306107553660046148c6565b6115c9565b34801561076657600080fd5b50610430610775366004614755565b6116e7565b34801561078657600080fd5b50610430610795366004614755565b611795565b3480156107a657600080fd5b506104306107b5366004614772565b611835565b3480156107c657600080fd5b50600f546103f3906001600160a01b031681565b3480156107e657600080fd5b50601d546105379062010000900460ff1681565b34801561080657600080fd5b50610430610815366004614755565b61194c565b34801561082657600080fd5b50601d54610537906301000000900460ff1681565b34801561084757600080fd5b5061057c611b99565b34801561085c57600080fd5b5061043061086b366004614909565b611c12565b34801561087c57600080fd5b5061057c61088b366004614755565b611c97565b34801561089c57600080fd5b506108b06108ab366004614755565b611d20565b6040516104079493929190614937565b3480156108cc57600080fd5b506104306108db366004614909565b611dc1565b3480156108ec57600080fd5b5061057c611f30565b34801561090157600080fd5b5061057c610910366004614755565b6001600160a01b031660009081526001602052604090205490565b34801561093757600080fd5b50610430611f51565b34801561094c57600080fd5b506014546103f3906001600160a01b031681565b34801561096c57600080fd5b5061043061097b366004614909565b61202f565b34801561098c57600080fd5b506000546001600160a01b03166103f3565b3480156109aa57600080fd5b506105376121e5565b3480156109bf57600080fd5b50610430612260565b3480156109d457600080fd5b5060408051808201909152600681527f415748414c45000000000000000000000000000000000000000000000000000060208201526104ca565b348015610a1a57600080fd5b5061043061248a565b348015610a2f57600080fd5b50610537610a3e36600461468e565b612502565b348015610a4f57600080fd5b50610430610a5e3660046148c6565b61250f565b348015610a6f57600080fd5b5061057c610a7e366004614755565b6126a0565b348015610a8f57600080fd5b50610537610a9e366004614755565b6001600160a01b031660009081526005602052604090205460ff1690565b348015610ac857600080fd5b506018546001600160a01b03163161057c565b348015610ae757600080fd5b50610430610af6366004614755565b6126ec565b348015610b0757600080fd5b50600c54610b489061ffff80821691620100008104821691640100000000820481169166010000000000008104821691680100000000000000009091041685565b6040805161ffff968716815294861660208601529285169284019290925283166060830152909116608082015260a001610407565b348015610b8957600080fd5b50610430610b98366004614675565b61279a565b348015610ba957600080fd5b5061057c610bb83660046146e6565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610bef57600080fd5b50610430610bfe36600461498f565b612808565b348015610c0f57600080fd5b50610430610c1e3660046149ad565b6128c0565b348015610c2f57600080fd5b50610430610c3e366004614755565b612a1e565b348015610c4f57600080fd5b50610430610c5e366004614755565b612dd9565b348015610c6f57600080fd5b50610430610c7e366004614909565b612e62565b348015610c8f57600080fd5b50601a5461053790610100900460ff1681565b348015610cae57600080fd5b50610430612f4f565b348015610cc357600080fd5b5061057c61300e565b348015610cd857600080fd5b50610430610ce7366004614a35565b613071565b348015610cf857600080fd5b50601a546105379060ff1681565b348015610d1257600080fd5b50610537610d21366004614755565b61310a565b6000546001600160a01b03163314610d855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b601d546040517f05bbedb60000000000000000000000000000000000000000000000000000000081526401000000009091046001600160a01b0316906305bbedb690610dd79085908590600401614aab565b600060405180830381600087803b158015610df157600080fd5b505af1158015610e05573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610e675760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b604b811015610eb85760405162461bcd60e51b815260206004820152600860248201527f546f6f206c6f772e0000000000000000000000000000000000000000000000006044820152606401610d7c565b601d546040517f09231602000000000000000000000000000000000000000000000000000000008152600481018390526401000000009091046001600160a01b0316906309231602906024015b600060405180830381600087803b158015610f1f57600080fd5b505af1158015610f33573d6000803e3d6000fd5b5050505050565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610f959086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146110015760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b61100c81600a614be2565b6110169083614bee565b6018546040517f8cd7f02e00000000000000000000000000000000000000000000000000000000815260048101869052602481018390529193506001600160a01b031690638cd7f02e90604401600060405180830381600087803b15801561107d57600080fd5b505af1158015611091573d6000803e3d6000fd5b50505050505050565b6009546000906110ae9060ff16600a614c0d565b6017546110bb9190614c1c565b905090565b6000546001600160a01b0316331461111a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b6001600160a01b038116301480159061113c57506001600160a01b0382163014155b801561115a5750816001600160a01b0316816001600160a01b031614155b61116357600080fd5b6018805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03928316179055601d80547fffffffffffffffff0000000000000000000000000000000000000000ffffffff166401000000009390921692909202179055565b6001600160a01b03831660009081526004602090815260408083203384529091528120546000191461122a576001600160a01b038416600090815260046020908152604080832033845290915281208054849290611224908490614c57565b90915550505b61123584848461319a565b90505b9392505050565b6000546001600160a01b031633146112995760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b6103e8600a546112a99190614c1c565b8183600a546112b89190614bee565b6112c29190614c1c565b10156113365760405162461bcd60e51b815260206004820152603260248201527f4d61782057616c6c657420616d74206d7573742062652061626f766520302e3160448201527f25206f6620746f74616c20737570706c792e00000000000000000000000000006064820152608401610d7c565b8082600a546113459190614bee565b61134f9190614c1c565b6017555050565b80518251146113a75760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610d7c565b60005b82518160ff16101561147857818160ff16815181106113cb576113cb614c6e565b602002602001015160016000336001600160a01b03166001600160a01b0316815260200190815260200160002054101561140457600080fd5b61146533848360ff168151811061141d5761141d614c6e565b60209081029190910101516009546114399060ff16600a614c0d565b858560ff168151811061144e5761144e614c6e565b60200260200101516114609190614bee565b61319a565b508061147081614c9d565b9150506113aa565b505050565b6000546001600160a01b031633146114d75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b601d546040517f0109da6900000000000000000000000000000000000000000000000000000000815285151560048201528415156024820152831515604482015282151560648201526401000000009091046001600160a01b031690630109da6990608401600060405180830381600087803b15801561155657600080fd5b505af115801561156a573d6000803e3d6000fd5b5050505050505050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49546012546001600160a01b03166000908152604081205490916115bc91614cbd565b600a546110bb9190614c57565b6000546001600160a01b031633146116235760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b600d5461ffff9081169084161180159061164d5750600d5461ffff62010000909104811690831611155b801561166b5750600d5461ffff640100000000909104811690821611155b61167457600080fd5b600b805461ffff9485167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909116176201000093851693909302929092177fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff166401000000009190931602919091179055565b6000546001600160a01b031633146117415760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b601d546040517f33251a0b0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152640100000000909204909116906333251a0b90602401610f05565b6000546001600160a01b031633146117ef5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b601d546301000000900460ff161561180657600080fd5b6010805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461188f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b6103e8600a5461189f9190614c1c565b8183600a546118ae9190614bee565b6118b89190614c1c565b101561192c5760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3125206f6620746f74616c20737570706c792e0000000000000000006064820152608401610d7c565b8082600a5461193b9190614bee565b6119459190614c1c565b6016555050565b6000546001600160a01b031633146119a65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b6001600160a01b038116611a225760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610d7c565b6012546001600160a01b0382811691161415611aa65760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610d7c565b600080546001600160a01b039081168252600560208181526040808520805460ff1990811690915585548516865260068084528287208054831690558786168752938352818620805482166001908117909155938352818620805490911684179055845490931684525290205415611b4157600080546001600160a01b03168082526001602052604090912054611b3f9190839061319a565b505b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000601d60049054906101000a90046001600160a01b03166001600160a01b03166355dbc3696040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bb9190614cd5565b6000546001600160a01b03163314611c6c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6018546040517fd59b2ffd0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600092169063d59b2ffd906024015b602060405180830381865afa158015611cfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa19190614cd5565b6018546040517f5e6056bb0000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526060928392839283921690635e6056bb90602401600060405180830381865afa158015611d8a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611db29190810190614d52565b93509350935093509193509193565b6000546001600160a01b03163314611e1b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b6001600160a01b0382163014801590611e425750600f546001600160a01b03838116911614155b611e4b57600080fd5b6001600160a01b0382166000908152600660205260409020805460ff19168215801591909117909155611eca576018546040517fdf047e9e0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152600060248301529091169063df047e9e90604401610dd7565b6018546001600160a01b03838116600081815260016020526040908190205490517fdf047e9e0000000000000000000000000000000000000000000000000000000081526004810192909252602482015291169063df047e9e90604401610dd7565b5050565b600954600090611f449060ff16600a614c0d565b6016546110bb9190614c1c565b6000546001600160a01b03163314611fab5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b600080546001600160a01b039081168252600560209081526040808420805460ff199081169091558454909316845260069091528083208054909216909155815473ffffffffffffffffffffffffffffffffffffffff191682555181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b031633146120895760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b80612102576001600160a01b03828116600081815260026020526040808220805460ff19169055601d5490517f80c581d1000000000000000000000000000000000000000000000000000000008152600481019390935260248301919091526401000000009004909116906380c581d190604401610dd7565b60035415612169576203f4806003544261211c9190614c57565b116121695760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f74207365742061206e657720706169722074686973207765656b216044820152606401610d7c565b6001600160a01b0382811660008181526002602052604090819020805460ff1916600190811790915542600355601d5491517f80c581d1000000000000000000000000000000000000000000000000000000008152600481019390935260248301526401000000009004909116906380c581d190604401610dd7565b600080546001600160a01b031633146122405760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b600e5461225a9030906001600160a01b031660001961356a565b50600190565b6000546001600160a01b031633146122ba5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b601d5462010000900460ff16156123135760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610d7c565b601d546301000000900460ff1661236c5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610d7c565b601d5464010000000090046001600160a01b03166123b657601d80547fffffffffffffffff0000000000000000000000000000000000000000ffffffff1630640100000000021790555b601d54600f546009546040517f6c115c340000000000000000000000000000000000000000000000000000000081526001600160a01b03928316600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260ff90911660648201526401000000009092041690636c115c3490608401600060405180830381600087803b15801561244957600080fd5b505af192505050801561245a575060015b50601d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1662010000179055565b6018546040517f2e6f0efd0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0390911690632e6f0efd90602401600060405180830381600087803b1580156124e857600080fd5b505af11580156124fc573d6000803e3d6000fd5b50505050565b600061123833848461319a565b6000546001600160a01b031633146125695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b806125748385614dff565b61257e9190614dff565b61258990600c614dff565b61ffff1660641461259957600080fd5b600c805461ffff8581167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909216919091176201000085831602177fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff16640100000000848316027fffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff1617660c0000000000001791829055660100000000000090910416816126478486614dff565b6126519190614dff565b61265b9190614dff565b600c805461ffff9290921668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff909216919091179055505050565b6018546040517ff6ed20170000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600092169063f6ed201790602401611cdf565b6000546001600160a01b031633146127465760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b601d546040517fc6a276c20000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526401000000009092049091169063c6a276c290602401610f05565b6000546001600160a01b031633146127f45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b620b71b0811061280357600080fd5b601955565b6000546001600160a01b031633146128625760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000169215157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169290921761010091151591909102179055565b815183511480156128d2575080518251145b61291e5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610d7c565b60005b83518160ff1610156124fc57818160ff168151811061294257612942614c6e565b6020026020010151838260ff168151811061295f5761295f614c6e565b6020026020010151600a546129749190614bee565b61297e9190614c1c565b33600090815260016020526040902054101561299957600080fd5b612a0b33858360ff16815181106129b2576129b2614c6e565b6020026020010151848460ff16815181106129cf576129cf614c6e565b6020026020010151868560ff16815181106129ec576129ec614c6e565b6020026020010151600a54612a019190614bee565b6114609190614c1c565b5080612a1681614c9d565b915050612921565b6000546001600160a01b03163314612a785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612abd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae19190614e25565b6001600160a01b031663e6a4390530846001600160a01b03166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b529190614e25565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015612bb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd99190614e25565b90506001600160a01b038116612d7757816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4b9190614e25565b6001600160a01b031663c9c6539630846001600160a01b03166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cbc9190614e25565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015612d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d459190614e25565b600f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055612da0565b600f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383161790555b600e805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03841690811790915561147890309060001961356a565b6000546001600160a01b03163314612e335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b6014805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b03163314612ebc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b601d546040517feec2744e0000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015283151560248301526401000000009092049091169063eec2744e90604401600060405180830381600087803b158015612f2d57600080fd5b505af1158015612f41573d6000803e3d6000fd5b50505050611f2c8282611dc1565b6000546001600160a01b03163314612fa95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b601860009054906101000a90046001600160a01b03166001600160a01b03166386d5c4be476040518263ffffffff1660e01b81526004016000604051808303818588803b158015612ff957600080fd5b505af19350505050801561300b575060015b50565b601854604080517f5695fa5800000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691635695fa589160048083019260209291908290030181865afa158015611bee573d6000803e3d6000fd5b6000546001600160a01b031633146130cb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d7c565b8284600a546130da9190614bee565b6130e49190614c1c565b601b55600a5481906130f7908490614bee565b6131019190614c1c565b601c5550505050565b601d546040517ffe575a870000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526000926401000000009004169063fe575a8790602401602060405180830381865afa158015613176573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa19190614e42565b60006001600160a01b0384166132185760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610d7c565b6001600160a01b0383166132945760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610d7c565b6000821161330a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610d7c565b61331484846136c2565b1561350a57601d5462010000900460ff166133715760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610d7c565b6001600160a01b03841660009081526002602052604090205460ff16806133b057506001600160a01b03831660009081526002602052604090205460ff165b1561342d5760165482111561342d5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785460448201527f78416d6f756e742e0000000000000000000000000000000000000000000000006064820152608401610d7c565b6010546001600160a01b0384811691161480159061346457506001600160a01b03831660009081526002602052604090205460ff16155b1561350a576017548261348c856001600160a01b031660009081526001602052604090205490565b6134969190614cbd565b111561350a5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201527f616c6c657453697a652e000000000000000000000000000000000000000000006064820152608401610d7c565b6001600160a01b03841660009081526005602052604090205460019060ff168061354c57506001600160a01b03841660009081526005602052604090205460ff165b15613555575060005b61356185858584613796565b95945050505050565b6001600160a01b0383166135e55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610d7c565b6001600160a01b0382166136615760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610d7c565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600080546001600160a01b038481169116148015906136ef57506000546001600160a01b03838116911614155b801561370657506000546001600160a01b03163214155b801561372b57506001600160a01b03821660009081526007602052604090205460ff16155b801561375057506001600160a01b03831660009081526007602052604090205460ff16155b801561376a57506012546001600160a01b03838116911614155b801561377e57506001600160a01b03821615155b8015611238575050506001600160a01b031630141590565b601d546000906301000000900460ff16613846576137b48585613a6c565b601d546301000000900460ff161580156137d357506137d385856136c2565b156138465760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e7366657220617420746869732060448201527f74696d652e0000000000000000000000000000000000000000000000000000006064820152608401610d7c565b61385085856136c2565b1561390557601d546040517fecd07a530000000000000000000000000000000000000000000000000000000081526001600160a01b0387811660048301528681166024830152604482018690526000926401000000009004169063ecd07a53906064016020604051808303816000875af19250505080156138ee575060408051601f3d908101601f191682019092526138eb91810190614e42565b60015b6138f757600080fd5b90508061390357600080fd5b505b6001600160a01b0385166000908152600160205260408120805485929061392d908490614c57565b9091555050601d5460ff161561394f57613948858585613c9e565b9050613a64565b30600090815260016020526040902054601c54811061396d5750601c545b601d5460ff1615801561399957506001600160a01b03861660009081526002602052604090205460ff16155b80156139a75750601a5460ff165b80156139b55750601b548110155b156139c3576139c381613d26565b8383156139d8576139d58787876141a3565b90505b6001600160a01b03861660009081526001602052604081208054839290613a00908490614cbd565b90915550613a10905087876142b8565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613a5591815260200190565b60405180910390a36001925050505b949350505050565b601d546301000000900460ff1615613aec5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152608401610d7c565b613af682826136c2565b158015613b105750600f546001600160a01b038281169116145b15611f2c576001600160a01b038083166000908152600760205260409020805460ff19166001179055601d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff1663010000001790819055640100000000900416613ba857601d80547fffffffffffffffff0000000000000000000000000000000000000000ffffffff1630640100000000021790555b6018546001600160a01b0316613bd8576018805473ffffffffffffffffffffffffffffffffffffffff1916301790555b601860009054906101000a90046001600160a01b03166001600160a01b0316638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613c2857600080fd5b505af1925050508015613c39575060015b50601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016610101179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200160405180910390a15050565b6001600160a01b038216600090815260016020526040812080548391908390613cc8908490614cbd565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613d1491815260200190565b60405180910390a35060019392505050565b601d805460ff19166001179055600c5461ffff6801000000000000000090910416613d5057614196565b306000908152600460209081526040808320600e546001600160a01b0316845290915290205460001914613da957306000908152600460209081526040808320600e546001600160a01b03168452909152902060001990555b600c5460009060029061ffff680100000000000000008204811691613dd691620100009091041685614bee565b613de09190614c1c565b613dea9190614c1c565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110613e2457613e24614c6e565b6001600160a01b039283166020918202929092010152601154825191169082906001908110613e5557613e55614c6e565b6001600160a01b039283166020918202929092010152600e541663762b1562613e7e8486614c57565b60008430426040518663ffffffff1660e01b8152600401613ea3959493929190614e5f565b600060405180830381600087803b158015613ebd57600080fd5b505af1158015613ed1573d6000803e3d6000fd5b5050600c544792506000915060029061ffff680100000000000000008204811691613f0491620100009091041685614bee565b613f0e9190614c1c565b613f189190614c1c565b600c54909150600090613f439061ffff62010000820481169168010000000000000000900416614e9b565b600c5461ffff9182169116613f588486614c57565b613f629190614bee565b613f6c9190614c1c565b9050841561405f57600e546012546040517ff91b3f720000000000000000000000000000000000000000000000000000000081523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f91b3f7290849060c40160606040518083038185885af1158015613ffd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906140229190614ebe565b505060408051848152602081018890527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b601860009054906101000a90046001600160a01b03166001600160a01b03166386d5c4be826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156140af57600080fd5b505af1935050505080156140c1575060015b50471561419057601554600c544794506001600160a01b03909116906108fc906141039061ffff64010000000082048116916601000000000000900416614dff565b600c5461ffff9182169161412291660100000000000090041687614bee565b61412c9190614c1c565b6040518115909202916000818181858888f19350505050158015614154573d6000803e3d6000fd5b506014546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561418e573d6000803e3d6000fd5b505b50505050505b50601d805460ff19169055565b600f5460009081906001600160a01b03868116911614156141cb5750600b5461ffff16614205565b600f546001600160a01b03858116911614156141f45750600b5462010000900461ffff16614205565b50600b54640100000000900461ffff165b806142135782915050611238565b600d546000906601000000000000900461ffff166142318386614bee565b61423b9190614c1c565b3060009081526001602052604081208054929350839290919061425f908490614cbd565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36142ae8185614c57565b9695505050505050565b6001600160a01b03821660009081526006602052604090205460ff16614362576018546001600160a01b03838116600081815260016020526040908190205490517fdf047e9e0000000000000000000000000000000000000000000000000000000081526004810192909252602482015291169063df047e9e90604401600060405180830381600087803b15801561434f57600080fd5b505af1925050508015614360575060015b505b6001600160a01b03811660009081526006602052604090205460ff1661440c576018546001600160a01b03828116600081815260016020526040908190205490517fdf047e9e0000000000000000000000000000000000000000000000000000000081526004810192909252602482015291169063df047e9e90604401600060405180830381600087803b1580156143f957600080fd5b505af192505050801561440a575060015b505b601a54610100900460ff1615611f2c576018546019546040517fa9e732bb0000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163a9e732bb9161446a9160040190815260200190565b600060405180830381600087803b15801561448457600080fd5b505af1925050508015614495575060015b611f2c575050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156144f5576144f561449d565b604052919050565b600067ffffffffffffffff8211156145175761451761449d565b5060051b60200190565b6001600160a01b038116811461300b57600080fd5b600082601f83011261454757600080fd5b8135602061455c614557836144fd565b6144cc565b82815260059290921b8401810191818101908684111561457b57600080fd5b8286015b8481101561459f57803561459281614521565b835291830191830161457f565b509695505050505050565b801515811461300b57600080fd5b600080604083850312156145cb57600080fd5b823567ffffffffffffffff8111156145e257600080fd5b6145ee85828601614536565b92505060208301356145ff816145aa565b809150509250929050565b60005b8381101561462557818101518382015260200161460d565b838111156124fc5750506000910152565b6000815180845261464e81602086016020860161460a565b601f01601f19169290920160200192915050565b6020815260006112386020830184614636565b60006020828403121561468757600080fd5b5035919050565b600080604083850312156146a157600080fd5b82356146ac81614521565b946020939093013593505050565b6000806000606084860312156146cf57600080fd5b505081359360208301359350604090920135919050565b600080604083850312156146f957600080fd5b823561470481614521565b915060208301356145ff81614521565b60008060006060848603121561472957600080fd5b833561473481614521565b9250602084013561474481614521565b929592945050506040919091013590565b60006020828403121561476757600080fd5b813561123881614521565b6000806040838503121561478557600080fd5b50508035926020909101359150565b600082601f8301126147a557600080fd5b813560206147b5614557836144fd565b82815260059290921b840181019181810190868411156147d457600080fd5b8286015b8481101561459f57803583529183019183016147d8565b6000806040838503121561480257600080fd5b823567ffffffffffffffff8082111561481a57600080fd5b61482686838701614536565b9350602085013591508082111561483c57600080fd5b5061484985828601614794565b9150509250929050565b6000806000806080858703121561486957600080fd5b8435614874816145aa565b93506020850135614884816145aa565b92506040850135614894816145aa565b915060608501356148a4816145aa565b939692955090935050565b803561ffff811681146148c157600080fd5b919050565b6000806000606084860312156148db57600080fd5b6148e4846148af565b92506148f2602085016148af565b9150614900604085016148af565b90509250925092565b6000806040838503121561491c57600080fd5b823561492781614521565b915060208301356145ff816145aa565b60808152600061494a6080830187614636565b828103602084015261495c8187614636565b905082810360408401526149708186614636565b905082810360608401526149848185614636565b979650505050505050565b600080604083850312156149a257600080fd5b8235614927816145aa565b6000806000606084860312156149c257600080fd5b833567ffffffffffffffff808211156149da57600080fd5b6149e687838801614536565b945060208601359150808211156149fc57600080fd5b614a0887838801614794565b93506040860135915080821115614a1e57600080fd5b50614a2b86828701614794565b9150509250925092565b60008060008060808587031215614a4b57600080fd5b5050823594602084013594506040840135936060013592509050565b600081518084526020808501945080840160005b83811015614aa05781516001600160a01b031687529582019590820190600101614a7b565b509495945050505050565b604081526000614abe6040830185614a67565b905082151560208301529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600181815b80851115614b39578160001904821115614b1f57614b1f614acf565b80851615614b2c57918102915b93841c9390800290614b03565b509250929050565b600082614b5057506001610fa1565b81614b5d57506000610fa1565b8160018114614b735760028114614b7d57614b99565b6001915050610fa1565b60ff841115614b8e57614b8e614acf565b50506001821b610fa1565b5060208310610133831016604e8410600b8410161715614bbc575081810a610fa1565b614bc68383614afe565b8060001904821115614bda57614bda614acf565b029392505050565b60006112388383614b41565b6000816000190483118215151615614c0857614c08614acf565b500290565b600061123860ff841683614b41565b600082614c52577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600082821015614c6957614c69614acf565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff821660ff811415614cb457614cb4614acf565b60010192915050565b60008219821115614cd057614cd0614acf565b500190565b600060208284031215614ce757600080fd5b5051919050565b600082601f830112614cff57600080fd5b815167ffffffffffffffff811115614d1957614d1961449d565b614d2c6020601f19601f840116016144cc565b818152846020838601011115614d4157600080fd5b613a6482602083016020870161460a565b60008060008060808587031215614d6857600080fd5b845167ffffffffffffffff80821115614d8057600080fd5b614d8c88838901614cee565b95506020870151915080821115614da257600080fd5b614dae88838901614cee565b94506040870151915080821115614dc457600080fd5b614dd088838901614cee565b93506060870151915080821115614de657600080fd5b50614df387828801614cee565b91505092959194509250565b600061ffff808316818516808303821115614e1c57614e1c614acf565b01949350505050565b600060208284031215614e3757600080fd5b815161123881614521565b600060208284031215614e5457600080fd5b8151611238816145aa565b85815284602082015260a060408201526000614e7e60a0830186614a67565b6001600160a01b0394909416606083015250608001529392505050565b600061ffff83811690831681811015614eb657614eb6614acf565b039392505050565b600080600060608486031215614ed357600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220a7571a1508e22a0cac990f78ecd3a28b763977aa2c6d62cfc1084ea09a5cf4b964736f6c634300080b0033