[ { "inputs": [ { "internalType": "address", "name": "tokenOwner", "type": "address" }, { "internalType": "address", "name": "_rewardToken", "type": "address" }, { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "uint8", "name": "decimals_", "type": "uint8" }, { "internalType": "uint256", "name": "_totalSupply", "type": "uint256" }, { "internalType": "uint8", "name": "_tokenRewardsFee", "type": "uint8" }, { "internalType": "uint8", "name": "_liquidityFee", "type": "uint8" }, { "internalType": "address", "name": "_router", "type": "address" }, { "internalType": "address", "name": "_basePair", "type": "address" } ], "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": true, "internalType": "uint256", "name": "newValue", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "oldValue", "type": "uint256" } ], "name": "GasForProcessingUpdated", "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": "uint256", "name": "iterations", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "claims", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "lastProcessedIndex", "type": "uint256" }, { "indexed": true, "internalType": "bool", "name": "automatic", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "gas", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "processor", "type": "address" } ], "name": "ProcessedDividendTracker", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SendDividends", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiqudity", "type": "uint256" } ], "name": "SwapAndLiquify", "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": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "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": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "basePair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "dividendTokenBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dividendTracker", "outputs": [ { "internalType": "contract DividendTracker", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "excludeFromDividends", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "gasForProcessing", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getAccountDividendsInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "int256", "name": "", "type": "int256" }, { "internalType": "int256", "name": "", "type": "int256" }, { "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": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getAccountDividendsInfoAtIndex", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "int256", "name": "", "type": "int256" }, { "internalType": "int256", "name": "", "type": "int256" }, { "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": "getClaimWait", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getLastProcessedIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMinimumTokenBalanceForDividends", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getNumberOfDividendTokenHolders", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalDividendsDistributed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "includeInFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromDividends", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintedByDxsale", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" } ], "name": "processDividendTracker", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newFee", "type": "uint256" } ], "name": "setLiquidityFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newFee", "type": "uint256" } ], "name": "setRewardFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setSwapTokensAtAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapTokensAtAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenRewardsFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "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": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "claimWait", "type": "uint256" } ], "name": "updateClaimWait", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "updateGasForProcessing", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "updateMinimumTokenBalanceForDividends", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "withdrawableDividendOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080604052600a805460ff60a01b1916600160a01b179055600b80546001600160a01b03191661dead1790556207a1206011553480156200003f57600080fd5b506040516200550a3803806200550a833981016040819052620000629162000806565b8751889088906200007b90600390602085019062000656565b5080516200009190600490602084019062000656565b5050506000620000a66200056a60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060ff808516600e819055908416600f819055620001119162000915565b601055600880546001600160a01b0319166001600160a01b038b16179055600b805460ff60a01b1916600160a01b60ff891602179055620001556127108662000930565b600d556008546001600160a01b03166200017187600a62000a52565b6200017f9061271062000a6a565b6200018b908762000930565b6040516200019990620006e5565b6001600160a01b0390921682526020820152604001604051809103906000f080158015620001cb573d6000803e3d6000fd5b50600c80546001600160a01b03199081166001600160a01b0393841617909155600980548216858416908117909155600a80549092169284169290921790556040805163c45a015560e01b81529051600091839163c45a0155916004808201926020929091908290030181865afa1580156200024b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000271919062000a8c565b600a546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af1158015620002c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e9919062000a8c565b600680546001600160a01b038086166001600160a01b031992831617909255600780548385169216919091179055600c5460405163031e79db60e41b815292935016906331e79db0906200034290839060040162000aaa565b600060405180830381600087803b1580156200035d57600080fd5b505af115801562000372573d6000803e3d6000fd5b5050600c5460405163031e79db60e41b81526001600160a01b0390911692506331e79db09150620003a890309060040162000aaa565b600060405180830381600087803b158015620003c357600080fd5b505af1158015620003d8573d6000803e3d6000fd5b5050600c5460405163031e79db60e41b81526001600160a01b0390911692506331e79db091506200040e908f9060040162000aaa565b600060405180830381600087803b1580156200042957600080fd5b505af11580156200043e573d6000803e3d6000fd5b5050600c54600b5460405163031e79db60e41b81526001600160a01b0392831694506331e79db0935062000479929091169060040162000aaa565b600060405180830381600087803b1580156200049457600080fd5b505af1158015620004a9573d6000803e3d6000fd5b5050600c5460405163031e79db60e41b81526001600160a01b0390911692506331e79db09150620004df90859060040162000aaa565b600060405180830381600087803b158015620004fa57600080fd5b505af11580156200050f573d6000803e3d6000fd5b505050506001600160a01b038c166000908152601260205260408082208054600160ff1991821681179092553084529190922080549091169091179055620005588c886200056e565b50505050505050505050505062000afa565b3390565b6001600160a01b038216620005c95760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620005dd919062000915565b90915550506001600160a01b038216600090815260208190526040812080548392906200060c90849062000915565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620006649062000abe565b90600052602060002090601f016020900481019282620006885760008555620006d3565b82601f10620006a357805160ff1916838001178555620006d3565b82800160010185558215620006d3579182015b82811115620006d3578251825591602001919060010190620006b6565b50620006e1929150620006f3565b5090565b61204e80620034bc83390190565b5b80821115620006e15760008155600101620006f4565b80516001600160a01b03811681146200072257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200074f57600080fd5b81516001600160401b03808211156200076c576200076c62000727565b604051601f8301601f19908116603f0116810190828211818310171562000797576200079762000727565b81604052838152602092508683858801011115620007b457600080fd5b600091505b83821015620007d85785820183015181830184015290820190620007b9565b83821115620007ea5760008385830101525b9695505050505050565b805160ff811681146200072257600080fd5b6000806000806000806000806000806101408b8d0312156200082757600080fd5b620008328b6200070a565b99506200084260208c016200070a565b60408c01519099506001600160401b03808211156200086057600080fd5b6200086e8e838f016200073d565b995060608d01519150808211156200088557600080fd5b50620008948d828e016200073d565b975050620008a560808c01620007f4565b955060a08b01519450620008bc60c08c01620007f4565b9350620008cc60e08c01620007f4565b9250620008dd6101008c016200070a565b9150620008ee6101208c016200070a565b90509295989b9194979a5092959850565b634e487b7160e01b600052601160045260246000fd5b600082198211156200092b576200092b620008ff565b500190565b6000826200094e57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111562000994578160001904821115620009785762000978620008ff565b808516156200098657918102915b93841c939080029062000958565b509250929050565b600082620009ad5750600162000a4c565b81620009bc5750600062000a4c565b8160018114620009d55760028114620009e05762000a00565b600191505062000a4c565b60ff841115620009f457620009f4620008ff565b50506001821b62000a4c565b5060208310610133831016604e8410600b841016171562000a25575081810a62000a4c565b62000a31838362000953565b806000190482111562000a485762000a48620008ff565b0290505b92915050565b600062000a6360ff8416836200099c565b9392505050565b600081600019048311821515161562000a875762000a87620008ff565b500290565b60006020828403121562000a9f57600080fd5b62000a63826200070a565b6001600160a01b0391909116815260200190565b600181811c9082168062000ad357607f821691505b60208210810362000af457634e487b7160e01b600052602260045260246000fd5b50919050565b6129b28062000b0a6000396000f3fe6080604052600436106102275760003560e01c806306fdde0314610233578063095ea7b31461025e5780630dcb2e891461028e57806313114a9d146102b05780631694505e146102d457806316a2f82a1461030157806318160ddd1461032157806323b872dd146103365780632c1f52161461035657806330bb4cff14610376578063313ce5671461038b57806331e79db0146103b7578063357bf15c146103d757806339509351146103f757806341a2ac701461041757806349bd5a5e146104375780634e71d92d14610457578063559246461461046c5780635930919b1461048d57806364b0f653146104ad5780636843cd84146104c2578063700bb191146104e257806370a0823114610502578063715018a614610522578063871c128d146105375780638da5cb5b1461055757806395d89b411461056c57806398118cb4146105815780639c1b8af514610597578063a26579ad146105ad578063a457c2d7146105c2578063a8b9d240146105e2578063a9059cbb14610602578063ad56c13c14610622578063afa4f3b214610687578063bdd4f29f146106a7578063c705c569146106bc578063dd62ed3e146106dc578063e0bf7fd114610722578063e2f4560514610752578063e57f14e114610768578063e708a0f914610788578063e7841ec01461079e578063e98030c7146107b3578063f27fd254146107d3578063f2fde38b146107f3578063f7c618c114610813578063f887ea401461083357600080fd5b3661022e57005b600080fd5b34801561023f57600080fd5b50610248610853565b604051610255919061246a565b60405180910390f35b34801561026a57600080fd5b5061027e6102793660046124d4565b6108e5565b6040519015158152602001610255565b34801561029a57600080fd5b506102ae6102a9366004612500565b6108fb565b005b3480156102bc57600080fd5b506102c660105481565b604051908152602001610255565b3480156102e057600080fd5b506006546102f4906001600160a01b031681565b6040516102559190612519565b34801561030d57600080fd5b506102ae61031c36600461252d565b610995565b34801561032d57600080fd5b506002546102c6565b34801561034257600080fd5b5061027e610351366004612551565b610a4b565b34801561036257600080fd5b50600c546102f4906001600160a01b031681565b34801561038257600080fd5b506102c6610af5565b34801561039757600080fd5b50600b54600160a01b900460ff1660405160ff9091168152602001610255565b3480156103c357600080fd5b506102ae6103d236600461252d565b610b68565b3480156103e357600080fd5b506102ae6103f2366004612500565b610bc7565b34801561040357600080fd5b5061027e6104123660046124d4565b610c2f565b34801561042357600080fd5b506102ae610432366004612500565b610c6b565b34801561044357600080fd5b506007546102f4906001600160a01b031681565b34801561046357600080fd5b506102ae610ccd565b34801561047857600080fd5b50600a5461027e90600160a01b900460ff1681565b34801561049957600080fd5b50600a546102f4906001600160a01b031681565b3480156104b957600080fd5b506102c6610d45565b3480156104ce57600080fd5b506102c66104dd36600461252d565b610d8f565b3480156104ee57600080fd5b506102ae6104fd366004612500565b610e07565b34801561050e57600080fd5b506102c661051d36600461252d565b610ec3565b34801561052e57600080fd5b506102ae610ede565b34801561054357600080fd5b506102ae610552366004612500565b610f45565b34801561056357600080fd5b506102f461108c565b34801561057857600080fd5b5061024861109b565b34801561058d57600080fd5b506102c6600f5481565b3480156105a357600080fd5b506102c660115481565b3480156105b957600080fd5b506102c66110aa565b3480156105ce57600080fd5b5061027e6105dd3660046124d4565b6110f4565b3480156105ee57600080fd5b506102c66105fd36600461252d565b61118d565b34801561060e57600080fd5b5061027e61061d3660046124d4565b6111be565b34801561062e57600080fd5b5061064261063d36600461252d565b6111cb565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e082015261010001610255565b34801561069357600080fd5b506102ae6106a2366004612500565b611269565b3480156106b357600080fd5b506102c66112f3565b3480156106c857600080fd5b5061027e6106d736600461252d565b61133d565b3480156106e857600080fd5b506102c66106f7366004612592565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561072e57600080fd5b5061027e61073d36600461252d565b60126020526000908152604090205460ff1681565b34801561075e57600080fd5b506102c6600d5481565b34801561077457600080fd5b506102ae61078336600461252d565b6113af565b34801561079457600080fd5b506102c6600e5481565b3480156107aa57600080fd5b506102c6611469565b3480156107bf57600080fd5b506102ae6107ce366004612500565b6114b3565b3480156107df57600080fd5b506106426107ee366004612500565b611513565b3480156107ff57600080fd5b506102ae61080e36600461252d565b611555565b34801561081f57600080fd5b506008546102f4906001600160a01b031681565b34801561083f57600080fd5b506009546102f4906001600160a01b031681565b606060038054610862906125cb565b80601f016020809104026020016040519081016040528092919081815260200182805461088e906125cb565b80156108db5780601f106108b0576101008083540402835291602001916108db565b820191906000526020600020905b8154815290600101906020018083116108be57829003601f168201915b5050505050905090565b60006108f2338484611620565b50600192915050565b3361090461108c565b6001600160a01b0316146109335760405162461bcd60e51b815260040161092a90612605565b60405180910390fd5b600c54604051630dcb2e8960e01b8152600481018390526001600160a01b0390911690630dcb2e89906024015b600060405180830381600087803b15801561097a57600080fd5b505af115801561098e573d6000803e3d6000fd5b5050505050565b3361099e61108c565b6001600160a01b0316146109c45760405162461bcd60e51b815260040161092a90612605565b6001600160a01b03811660009081526012602052604090205460ff16610a2a5760405162461bcd60e51b815260206004820152601b60248201527a1058d8dbdd5b9d081a5cc8185b1c9958591e481a5b98db1d591959602a1b604482015260640161092a565b6001600160a01b03166000908152601260205260409020805460ff19169055565b6000610a58848484611744565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610add5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161092a565b610aea8533858403611620565b506001949350505050565b600c54604080516342d359d760e11b815290516000926001600160a01b0316916385a6b3ae9160048083019260209291908290030181865afa158015610b3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b63919061263a565b905090565b33610b7161108c565b6001600160a01b031614610b975760405162461bcd60e51b815260040161092a90612605565b600c5460405163031e79db60e41b81526001600160a01b03909116906331e79db090610960908490600401612519565b33610bd061108c565b6001600160a01b031614610bf65760405162461bcd60e51b815260040161092a90612605565b600f811115610c175760405162461bcd60e51b815260040161092a90612653565b600f819055600e54610c299082612694565b60105550565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108f2918590610c66908690612694565b611620565b33610c7461108c565b6001600160a01b031614610c9a5760405162461bcd60e51b815260040161092a90612605565b600f811115610cbb5760405162461bcd60e51b815260040161092a90612653565b600e819055600f54610c299082612694565b600c5460405163bc4c4b3760e01b8152336004820152600060248201526001600160a01b039091169063bc4c4b37906044016020604051808303816000875af1158015610d1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4291906126ac565b50565b600c54604080516304ddf6ef60e11b815290516000926001600160a01b0316916309bbedde9160048083019260209291908290030181865afa158015610b3f573d6000803e3d6000fd5b600c546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610dc0908590600401612519565b602060405180830381865afa158015610ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e01919061263a565b92915050565b600c546040516001624d3b8760e01b0319815260048101839052600091829182916001600160a01b03169063ffb2c479906024016060604051808303816000875af1158015610e5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7e91906126ce565b925092509250326001600160a01b03166000151560008051602061293d83398151915285858589604051610eb594939291906126fc565b60405180910390a350505050565b6001600160a01b031660009081526020819052604090205490565b33610ee761108c565b6001600160a01b031614610f0d5760405162461bcd60e51b815260040161092a90612605565b6005546040516000916001600160a01b03169060008051602061295d833981519152908390a3600580546001600160a01b0319169055565b33610f4e61108c565b6001600160a01b031614610f745760405162461bcd60e51b815260040161092a90612605565b62030d408110158015610f8a57506207a1208111155b610ff35760405162461bcd60e51b815260206004820152603460248201527f676173466f7250726f63657373696e67206d757374206265206265747765656e6044820152730203230302c30303020616e64203530302c3030360641b606482015260840161092a565b60115481036110595760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f742075706461746520676173466f7250726f63657373696e67207460448201526b6f2073616d652076616c756560a01b606482015260840161092a565b60115460405182907f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db790600090a3601155565b6005546001600160a01b031690565b606060048054610862906125cb565b600c5460408051631bc9e27b60e21b815290516000926001600160a01b031691636f2789ec9160048083019260209291908290030181865afa158015610b3f573d6000803e3d6000fd5b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111765760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161092a565b6111833385858403611620565b5060019392505050565b600c546040516302a2e74960e61b81526000916001600160a01b03169063a8b9d24090610dc0908590600401612519565b60006108f2338484611744565b600c5460405163fbcbc0f160e01b815260009182918291829182918291829182916001600160a01b039091169063fbcbc0f19061120c908c90600401612519565b61010060405180830381865afa15801561122a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124e9190612717565b97509750975097509750975097509750919395975091939597565b3361127261108c565b6001600160a01b0316146112985760405162461bcd60e51b815260040161092a90612605565b620f42406112a560025490565b6112af9190612781565b81116112ee5760405162461bcd60e51b815260206004820152600e60248201526d416d6f756e7420746f6f206c6f7760901b604482015260640161092a565b600d55565b600c5460408051632f842d8560e21b815290516000926001600160a01b03169163be10b6149160048083019260209291908290030181865afa158015610b3f573d6000803e3d6000fd5b600c5460405163c705c56960e01b81526000916001600160a01b03169063c705c5699061136e908590600401612519565b602060405180830381865afa15801561138b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0191906126ac565b336113b861108c565b6001600160a01b0316146113de5760405162461bcd60e51b815260040161092a90612605565b6001600160a01b03811660009081526012602052604090205460ff16156114455760405162461bcd60e51b815260206004820152601b60248201527a1058d8dbdd5b9d081a5cc8185b1c9958591e48195e18db1d591959602a1b604482015260640161092a565b6001600160a01b03166000908152601260205260409020805460ff19166001179055565b600c546040805163039e107b60e61b815290516000926001600160a01b03169163e7841ec09160048083019260209291908290030181865afa158015610b3f573d6000803e3d6000fd5b336114bc61108c565b6001600160a01b0316146114e25760405162461bcd60e51b815260040161092a90612605565b600c5460405163e98030c760e01b8152600481018390526001600160a01b039091169063e98030c790602401610960565b600c54604051635183d6fd60e01b81526004810183905260009182918291829182918291829182916001600160a01b0390911690635183d6fd9060240161120c565b3361155e61108c565b6001600160a01b0316146115845760405162461bcd60e51b815260040161092a90612605565b6001600160a01b0381166000908152601260205260409020805460ff191660011790556115b08161133d565b61161757600c5460405163031e79db60e41b81526001600160a01b03909116906331e79db0906115e4908490600401612519565b600060405180830381600087803b1580156115fe57600080fd5b505af1158015611612573d6000803e3d6000fd5b505050505b610d4281611ad1565b6001600160a01b0383166116825760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161092a565b6001600160a01b0382166116e35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161092a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661176a5760405162461bcd60e51b815260040161092a906127a3565b6001600160a01b0382166117905760405162461bcd60e51b815260040161092a906127e8565b806000036117a9576117a483836000611baf565b505050565b60006117b430610ec3565b600d54909150811080159081906117d55750600b54600160a81b900460ff16155b80156117fa57506117e461108c565b6001600160a01b0316856001600160a01b031614155b801561181f575061180961108c565b6001600160a01b0316846001600160a01b031614155b801561182d57506000601054115b1561189a57600b805460ff60a81b1916600160a81b179055601054600f5460009190611859908561282b565b6118639190612781565b905061186e81611cf6565b600061187930610ec3565b9050801561188a5761188a81611d7d565b5050600b805460ff60a81b191690555b600b546001600160a01b03861660009081526012602052604090205460ff600160a81b9092048216159116806118e857506001600160a01b03851660009081526012602052604090205460ff165b156118f1575060005b80801561190057506000601054115b1561193c576000606460105486611917919061282b565b6119219190612781565b905061192d818661284a565b945061193a873083611baf565b505b611947868686611baf565b600c546001600160a01b031663e30443bc8761196281610ec3565b6040518363ffffffff1660e01b815260040161197f929190612861565b600060405180830381600087803b15801561199957600080fd5b505af19250505080156119aa575060015b50600c546001600160a01b031663e30443bc866119c681610ec3565b6040518363ffffffff1660e01b81526004016119e3929190612861565b600060405180830381600087803b1580156119fd57600080fd5b505af1925050508015611a0e575060015b50600b54600160a81b900460ff16611ac957601154600c546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c479906024016060604051808303816000875af1925050508015611a8d575060408051601f3d908101601f19168201909252611a8a918101906126ce565b60015b15611ac757604051329060019060008051602061293d83398151915290611abb908790879087908b906126fc565b60405180910390a35050505b505b505050505050565b33611ada61108c565b6001600160a01b031614611b005760405162461bcd60e51b815260040161092a90612605565b6001600160a01b038116611b655760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161092a565b6005546040516001600160a01b0380841692169060008051602061295d83398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611bd55760405162461bcd60e51b815260040161092a906127a3565b6001600160a01b038216611bfb5760405162461bcd60e51b815260040161092a906127e8565b6001600160a01b03831660009081526020819052604090205481811015611c735760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161092a565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611caa908490612694565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eb591815260200190565b6000611d03600283612781565b90506000611d11828461284a565b905047611d1d83611f1d565b6000611d29824761284a565b9050611d35838261214b565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15050505050565b611d878130612344565b6008546040516370a0823160e01b81526000916001600160a01b0316906370a0823190611db8903090600401612519565b602060405180830381865afa158015611dd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df9919061263a565b600854600c5460405163a9059cbb60e01b81529293506000926001600160a01b039283169263a9059cbb92611e35929116908690600401612861565b6020604051808303816000875af1158015611e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7891906126ac565b905080156117a457600c54604051632287d53b60e11b8152600481018490526001600160a01b039091169063450faa7690602401600060405180830381600087803b158015611ec657600080fd5b505af1158015611eda573d6000803e3d6000fd5b505060408051868152602081018690527f80195cc573b02cc48460cbca6e6e4cc85ddb91959d946e1c3025ea3d87942dc3935001905060405180910390a1505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f5257611f5261287a565b6001600160a01b039283166020918202929092010152600a54825191169082906001908110611f8357611f8361287a565b6001600160a01b039283166020918202929092010152600654611fa99130911684611620565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611fe2908590600090869030904290600401612890565b600060405180830381600087803b158015611ffc57600080fd5b505af192505050801561200d575060015b612147573d80801561203b576040519150601f19603f3d011682016040523d82523d6000602084013e612040565b606091505b50600654604051633b158ab160e11b81526001600160a01b039091169063762b15629061207a908690600090879030904290600401612890565b600060405180830381600087803b15801561209457600080fd5b505af19250505080156120a5575060015b6117a4573d8080156120d3576040519150601f19603f3d011682016040523d82523d6000602084013e6120d8565b606091505b5060065460405163791ac94760e01b81526001600160a01b039091169063791ac94790612112908790600090889030904290600401612890565b600060405180830381600087803b15801561212c57600080fd5b505af1158015612140573d6000803e3d6000fd5b5050505050505b5050565b6006546121639030906001600160a01b031684611620565b600654600b5460405163f305d71960e01b81526001600160a01b039283169263f305d7199285926121a39230928992600092839216904290600401612901565b60606040518083038185885af1935050505080156121de575060408051601f3d908101601f191682019092526121db918101906126ce565b60015b61098e573d80801561220c576040519150601f19603f3d011682016040523d82523d6000602084013e612211565b606091505b50600654600b54604051637c8d9fb960e11b81526001600160a01b039283169263f91b3f729286926122529230928a92600092839216904290600401612901565b60606040518083038185885af19350505050801561228d575060408051601f3d908101601f1916820190925261228a918101906126ce565b60015b611ac9573d8080156122bb576040519150601f19603f3d011682016040523d82523d6000602084013e6122c0565b606091505b50600654600b5460405163f305d71960e01b81526001600160a01b039283169263f305d7199287926123019230928b92600092839216904290600401612901565b60606040518083038185885af115801561231f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ac791906126ce565b6040805160038082526080820190925260009160208201606080368337019050509050308160008151811061237b5761237b61287a565b6001600160a01b039283166020918202929092010152600a548251911690829060019081106123ac576123ac61287a565b6001600160a01b0392831660209182029290920101526008548251911690829060029081106123dd576123dd61287a565b6001600160a01b0392831660209182029290920101526006546124039130911685611620565b600654604051635c11d79560e01b81526001600160a01b0390911690635c11d7959061243c908690600090869088904290600401612890565b600060405180830381600087803b15801561245657600080fd5b505af1158015611ac7573d6000803e3d6000fd5b600060208083528351808285015260005b818110156124975785810183015185820160400152820161247b565b818111156124a9576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610d4257600080fd5b600080604083850312156124e757600080fd5b82356124f2816124bf565b946020939093013593505050565b60006020828403121561251257600080fd5b5035919050565b6001600160a01b0391909116815260200190565b60006020828403121561253f57600080fd5b813561254a816124bf565b9392505050565b60008060006060848603121561256657600080fd5b8335612571816124bf565b92506020840135612581816124bf565b929592945050506040919091013590565b600080604083850312156125a557600080fd5b82356125b0816124bf565b915060208301356125c0816124bf565b809150509250929050565b600181811c908216806125df57607f821691505b6020821081036125ff57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561264c57600080fd5b5051919050565b602080825260119082015270466565206f7574206f662072616e67652160781b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156126a7576126a761267e565b500190565b6000602082840312156126be57600080fd5b8151801515811461254a57600080fd5b6000806000606084860312156126e357600080fd5b8351925060208401519150604084015190509250925092565b93845260208401929092526040830152606082015260800190565b600080600080600080600080610100898b03121561273457600080fd5b885161273f816124bf565b809850506020890151965060408901519550606089015194506080890151935060a0890151925060c0890151915060e089015190509295985092959890939650565b60008261279e57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60008160001904831182151516156128455761284561267e565b500290565b60008282101561285c5761285c61267e565b500390565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128e05784516001600160a01b0316835293830193918301916001016128bb565b50506001600160a01b03969096166060850152505050608001529392505050565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c0019056fec864333d6121033635ab41b29ae52f10a22cf4438c3e4f1c4c68518feb2f8a988be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a26469706673582212201677a4f976cd3752d3418eb4186018ee9ac69bc50c43103475d1769b00ba998164736f6c634300080e003360806040523480156200001157600080fd5b506040516200204e3803806200204e8339810160408190526200003491620001db565b6040805180820182526011808252702fa234bb34b232b7322faa3930b1b5b2b960791b6020808401828152855180870190965292855284015281518593918391839162000085916003919062000135565b5080516200009b90600490602084019062000135565b5050506000620000b06200013160201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35050600880546001600160a01b0319166001600160a01b03939093169290921790915550610e106013556014555062000253565b3390565b828054620001439062000217565b90600052602060002090601f016020900481019282620001675760008555620001b2565b82601f106200018257805160ff1916838001178555620001b2565b82800160010185558215620001b2579182015b82811115620001b257825182559160200191906001019062000195565b50620001c0929150620001c4565b5090565b5b80821115620001c05760008155600101620001c5565b60008060408385031215620001ef57600080fd5b82516001600160a01b03811681146200020757600080fd5b6020939093015192949293505050565b600181811c908216806200022c57607f821691505b6020821081036200024d57634e487b7160e01b600052602260045260246000fd5b50919050565b611deb80620002636000396000f3fe608060405234801561001057600080fd5b50600436106101c25760003560e01c806306fdde03146101c7578063095ea7b3146101e557806309bbedde146102085780630dcb2e891461021a57806318160ddd1461022f578063226cfa3d1461023757806323b872dd1461025757806327ce01471461026a5780633009a6091461027d578063313ce5671461028657806331e79db01461029557806339509351146102a8578063450faa76146102bb5780634e7b827f146102ce5780635183d6fd146102f15780636a474002146103495780636f2789ec1461035157806370a082311461035a578063715018a61461036d57806385a6b3ae146103755780638da5cb5b1461037e57806391b89fba1461039e57806395d89b41146103b1578063a457c2d7146103b9578063a8b9d240146103cc578063a9059cbb146103df578063aafd847a146103f2578063bc4c4b371461041b578063be10b6141461042e578063c705c56914610437578063dd62ed3e14610463578063e30443bc1461049c578063e7841ec0146104af578063e98030c7146104b7578063f2fde38b146104ca578063f7c618c1146104dd578063fbcbc0f1146104f0578063ffb2c47914610503575b600080fd5b6101cf610531565b6040516101dc91906119de565b60405180910390f35b6101f86101f3366004611a48565b6105c3565b60405190151581526020016101dc565b600c545b6040519081526020016101dc565b61022d610228366004611a74565b6105da565b005b60025461020c565b61020c610245366004611a8d565b60126020526000908152604090205481565b6101f8610265366004611ab1565b610617565b61020c610278366004611a8d565b6106c1565b61020c60105481565b604051601281526020016101dc565b61022d6102a3366004611a8d565b61070a565b6101f86102b6366004611a48565b610864565b61022d6102c9366004611a74565b6108a0565b6101f86102dc366004611a8d565b60116020526000908152604090205460ff1681565b6103046102ff366004611a74565b610965565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e0820152610100016101dc565b61022d610ab9565b61020c60135481565b61020c610368366004611a8d565b610b5d565b61022d610b78565b61020c600b5481565b610386610bdf565b6040516001600160a01b0390911681526020016101dc565b61020c6103ac366004611a8d565b610bee565b6101cf610bf9565b6101f86103c7366004611a48565b610c08565b61020c6103da366004611a8d565b610ca1565b6101f86103ed366004611a48565b610ccd565b61020c610400366004611a8d565b6001600160a01b03166000908152600a602052604090205490565b6101f8610429366004611b00565b610cda565b61020c60145481565b6101f8610445366004611a8d565b6001600160a01b031660009081526011602052604090205460ff1690565b61020c610471366004611b39565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61022d6104aa366004611a48565b610d8c565b60105461020c565b61022d6104c5366004611a74565b610ef3565b61022d6104d8366004611a8d565b61105a565b600854610386906001600160a01b031681565b6103046104fe366004611a8d565b611138565b610516610511366004611a74565b611298565b604080519384526020840192909252908201526060016101dc565b60606003805461054090611b67565b80601f016020809104026020016040519081016040528092919081815260200182805461056c90611b67565b80156105b95780601f1061058e576101008083540402835291602001916105b9565b820191906000526020600020905b81548152906001019060200180831161059c57829003601f168201915b5050505050905090565b60006105d03384846113b6565b5060015b92915050565b336105e3610bdf565b6001600160a01b0316146106125760405162461bcd60e51b815260040161060990611ba1565b60405180910390fd5b601455565b60006106248484846114da565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156106a95760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610609565b6106b685338584036113b6565b506001949350505050565b6001600160a01b038116600090815260096020526040812054600160801b906106e984610b5d565b6006546106f69190611bec565b6107009190611c0b565b6105d49190611c23565b33610713610bdf565b6001600160a01b0316146107395760405162461bcd60e51b815260040161060990611ba1565b6001600160a01b03811660009081526011602052604090205460ff16156107955760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48195e18db1d59195960821b6044820152606401610609565b6001600160a01b0381166000908152601160205260408120805460ff191660011790556107c3908290611531565b60405163131836e760e21b815273b5ab898d9531c55faf5a2b48e285ece9790a9a5c90634c60db9c906107fd90600c908590600401611c45565b60006040518083038186803b15801561081557600080fd5b505af4158015610829573d6000803e3d6000fd5b50506040516001600160a01b03841692507fa878b31040b2e6d0a9a3d3361209db3908ba62014b0dca52adbaee451d128b259150600090a250565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916105d091859061089b908690611c0b565b6113b6565b336108a9610bdf565b6001600160a01b0316146108cf5760405162461bcd60e51b815260040161060990611ba1565b60006108da60025490565b116108e457600080fd5b8015610962576002546108fb600160801b83611bec565b6109059190611c23565b600660008282546109169190611c0b565b909155505060405181815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a280600b5461095e9190611c0b565b600b555b50565b600080600080600080600080600c73b5ab898d9531c55faf5a2b48e285ece9790a9a5c63deb3d89690916040518263ffffffff1660e01b81526004016109ad91815260200190565b602060405180830381865af41580156109ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ee9190611c5c565b8910610a13575060009650600019955085945086935083925082915081905080610aae565b6040516368d54f3f60e11b8152600c6004820152602481018a905260009073b5ab898d9531c55faf5a2b48e285ece9790a9a5c9063d1aa9e7e90604401602060405180830381865af4158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190611c75565b9050610a9c81611138565b98509850985098509850985098509850505b919395975091939597565b60405162461bcd60e51b815260206004820152606760248201527f4469766964656e645f547261636b65723a20776974686472617744697669646560448201527f6e642064697361626c65642e20557365207468652027636c61696d272066756e60648201527f6374696f6e206f6e20746865206d61696e20455243323020746f6b656e20636f608482015266373a3930b1ba1760c91b60a482015260c401610609565b6001600160a01b031660009081526020819052604090205490565b33610b81610bdf565b6001600160a01b031614610ba75760405162461bcd60e51b815260040161060990611ba1565b6005546040516000916001600160a01b031690600080516020611d76833981519152908390a3600580546001600160a01b0319169055565b6005546001600160a01b031690565b60006105d482610ca1565b60606004805461054090611b67565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610c8a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610609565b610c9733858584036113b6565b5060019392505050565b6001600160a01b0381166000908152600a6020526040812054610cc3836106c1565b6105d49190611c92565b60006105d03384846114da565b600033610ce5610bdf565b6001600160a01b031614610d0b5760405162461bcd60e51b815260040161060990611ba1565b6000610d168461158a565b90508015610d82576001600160a01b038416600081815260126020526040908190204290555184151591907fa2c38e2d2fb7e3e1912d937fd1ca11ed6d51864dee4cfa7a7bf02becd7acf09290610d709085815260200190565b60405180910390a360019150506105d4565b5060009392505050565b33610d95610bdf565b6001600160a01b031614610dbb5760405162461bcd60e51b815260040161060990611ba1565b6001600160a01b03821660009081526011602052604090205460ff16610eef576014548110610e6c57610dee8282611531565b604051632f0ad01760e21b8152600c60048201526001600160a01b03831660248201526044810182905273b5ab898d9531c55faf5a2b48e285ece9790a9a5c9063bc2b405c9060640160006040518083038186803b158015610e4f57600080fd5b505af4158015610e63573d6000803e3d6000fd5b50505050610ee2565b610e77826000611531565b60405163131836e760e21b815273b5ab898d9531c55faf5a2b48e285ece9790a9a5c90634c60db9c90610eb190600c908690600401611c45565b60006040518083038186803b158015610ec957600080fd5b505af4158015610edd573d6000803e3d6000fd5b505050505b610eed826001610cda565b505b5050565b33610efc610bdf565b6001600160a01b031614610f225760405162461bcd60e51b815260040161060990611ba1565b610e108110158015610f365750618ca08111155b610fb65760405162461bcd60e51b815260206004820152604560248201527f4469766964656e645f547261636b65723a20636c61696d57616974206d75737460448201527f206265207570646174656420746f206265747765656e203120616e6420323420606482015264686f75727360d81b608482015260a401610609565b60135481036110275760405162461bcd60e51b815260206004820152603760248201527f4469766964656e645f547261636b65723a2043616e6e6f742075706461746520604482015276636c61696d5761697420746f2073616d652076616c756560481b6064820152608401610609565b60135460405182907f474ea64804364a1e29a4487ddb63c3342a2dd826ccd8acf48825e680a0e6f20f90600090a3601355565b33611063610bdf565b6001600160a01b0316146110895760405162461bcd60e51b815260040161060990611ba1565b6001600160a01b0381166110ee5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610609565b6005546040516001600160a01b03808416921690600080516020611d7683398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b600080600080600080600080889750600c73b5ab898d9531c55faf5a2b48e285ece9790a9a5c6317e142d190918a6040518363ffffffff1660e01b8152600401611183929190611c45565b602060405180830381865af41580156111a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c49190611c5c565b9650600019955060008712611226576010548711156111f1576010546111ea9088611ca9565b9550611226565b601054600c5460009110611206576000611216565b601054600c546112169190611c92565b90506112228189611ce8565b9650505b61122f88610ca1565b945061123a886106c1565b6001600160a01b038916600090815260126020526040902054909450925082611264576000611271565b6013546112719084611c0b565b915042821161128157600061128b565b61128b4283611c92565b9050919395975091939597565b600c54600090819081908082036112ba575050601054600092508291506113af565b6010546000805a90506000805b89841080156112d557508582105b1561139e57846112e481611d29565b600c54909650861090506112f757600094505b6000600c600001868154811061130f5761130f611d42565b60009182526020808320909101546001600160a01b03168083526012909152604090912054909150611340906116f1565b1561136357611350816001610cda565b15611363578161135f81611d29565b9250505b8261136d81611d29565b93505060005a90508085111561139557806113888688611c0b565b6113929190611c92565b95505b93506112c79050565b601085905590975095509193505050505b9193909250565b6001600160a01b0383166114185760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610609565b6001600160a01b0382166114795760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610609565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60405162461bcd60e51b815260206004820152602660248201527f4469766964656e645f547261636b65723a204e6f207472616e736665727320616044820152651b1b1bddd95960d21b6064820152608401610609565b600061153c83610b5d565b9050808211156115645760006115528284611c92565b905061155e8482611718565b50610eed565b80821015610eed5760006115788383611c92565b90506115848482611773565b50505050565b60008061159683610ca1565b905080156116e8576001600160a01b0383166000908152600a60205260409020546115c2908290611c0b565b6001600160a01b0384166000818152600a6020526040908190209290925590517fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d906116119084815260200190565b60405180910390a260085460405163a9059cbb60e01b81526001600160a01b03858116600483015260248201849052600092169063a9059cbb906044016020604051808303816000875af115801561166d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116919190611d58565b9050806116e1576001600160a01b0384166000908152600a60205260409020546116bc908390611c92565b6001600160a01b039094166000908152600a6020526040812094909455509192915050565b5092915050565b50600092915050565b60004282111561170357506000919050565b6013546117108342611c92565b101592915050565b61172282826117ae565b806006546117309190611bec565b6001600160a01b0383166000908152600960205260409020546117539190611ca9565b6001600160a01b0390921660009081526009602052604090209190915550565b61177d828261188f565b8060065461178b9190611bec565b6001600160a01b0383166000908152600960205260409020546117539190611ce8565b6001600160a01b0382166118045760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610609565b61181060008383610eed565b80600260008282546118229190611c0b565b90915550506001600160a01b0382166000908152602081905260408120805483929061184f908490611c0b565b90915550506040518181526001600160a01b03831690600090600080516020611d968339815191529060200160405180910390a3610eef60008383610eed565b6001600160a01b0382166118ef5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610609565b6118fb82600083610eed565b6001600160a01b0382166000908152602081905260409020548181101561196f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610609565b6001600160a01b038316600090815260208190526040812083830390556002805484929061199e908490611c92565b90915550506040518281526000906001600160a01b03851690600080516020611d968339815191529060200160405180910390a3610eed83600084610eed565b600060208083528351808285015260005b81811015611a0b578581018301518582016040015282016119ef565b81811115611a1d576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461096257600080fd5b60008060408385031215611a5b57600080fd5b8235611a6681611a33565b946020939093013593505050565b600060208284031215611a8657600080fd5b5035919050565b600060208284031215611a9f57600080fd5b8135611aaa81611a33565b9392505050565b600080600060608486031215611ac657600080fd5b8335611ad181611a33565b92506020840135611ae181611a33565b929592945050506040919091013590565b801515811461096257600080fd5b60008060408385031215611b1357600080fd5b8235611b1e81611a33565b91506020830135611b2e81611af2565b809150509250929050565b60008060408385031215611b4c57600080fd5b8235611b5781611a33565b91506020830135611b2e81611a33565b600181811c90821680611b7b57607f821691505b602082108103611b9b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611c0657611c06611bd6565b500290565b60008219821115611c1e57611c1e611bd6565b500190565b600082611c4057634e487b7160e01b600052601260045260246000fd5b500490565b9182526001600160a01b0316602082015260400190565b600060208284031215611c6e57600080fd5b5051919050565b600060208284031215611c8757600080fd5b8151611aaa81611a33565b600082821015611ca457611ca4611bd6565b500390565b60008083128015600160ff1b850184121615611cc757611cc7611bd6565b6001600160ff1b0384018313811615611ce257611ce2611bd6565b50500390565b600080821280156001600160ff1b0384900385131615611d0a57611d0a611bd6565b600160ff1b8390038412811615611d2357611d23611bd6565b50500190565b600060018201611d3b57611d3b611bd6565b5060010190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611d6a57600080fd5b8151611aaa81611af256fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206d51f9d7b16b209cba3e8e07289a4349099941531ce3f45237e5ae0c46eaf0a964736f6c634300080e003300000000000000000000000015901b9150c189cfb532c95100ea975c2f4ab34f000000000000000000000000b97ef9ef8734c71904d8002f8b6bc66dd9c48a6e00000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000000000005af3107a400000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000e54ca86531e17ef3616d22ca28b0d458b6c89106000000000000000000000000b31f66aa3c1e785363f0875a1b74e27b85fd66c70000000000000000000000000000000000000000000000000000000000000008746573742064697600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047464697600000000000000000000000000000000000000000000000000000000