[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountBNB", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountBOG", "type": "uint256" } ], "name": "AutoLiquify", "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": 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": "_maxTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_walletMax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "approveMax", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "blacklistMode", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buybackFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "canUseBlacklist", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountPercentage", "type": "uint256" } ], "name": "clearStuckBalance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "disableBlacklistDONTUSETHIS", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "enable_blacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "fullWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "isAuth", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isFeeExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isPair", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isTxLimitExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchedAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "manage_blacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "marketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "nativeFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "openTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceBlacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" }, { "internalType": "uint256", "name": "tokens", "type": "uint256" } ], "name": "rescueToken", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "restrictWhales", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract DexRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newMktWallet", "type": "address" }, { "internalType": "address", "name": "newblaWallet", "type": "address" }, { "internalType": "address", "name": "newbuybackWallet", "type": "address" }, { "internalType": "address", "name": "newLpWallet", "type": "address" }, { "internalType": "address", "name": "newNativeWallet", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLiqFee", "type": "uint256" }, { "internalType": "uint256", "name": "newMarketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "newbuybackFee", "type": "uint256" }, { "internalType": "uint256", "name": "newblaFee", "type": "uint256" }, { "internalType": "uint256", "name": "newNativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "extraSellFee", "type": "uint256" } ], "name": "setFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsFeeExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsTxLimitExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" }, { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "setSwapbackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setTakeBuyfee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setTakeSellfee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setTakeTransferfee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLimit", "type": "uint256" } ], "name": "setTxLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLimit", "type": "uint256" } ], "name": "setWalletLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapAndLiquifyByLimitOnly", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapAndLiquifyEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "takeBuyFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "takeSellFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "takeTransferFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalFeeIfSelling", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingOpen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "newStatus", "type": "bool" } ], "name": "tradingStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526012600a62000014919062000ff0565b633b9aca0062000025919062001041565b6002556103e8600a6002546200003c919062001041565b620000489190620010d1565b6003556103e8600a6002546200005f919062001041565b6200006b9190620010d1565b600455737a250d5630b4cf539739df2c5dacb4c659f2488d600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560146101000a81548160ff0219169083151502179055506000600a556000600b556001600c556001600d556000600e556000600f5560006010556001601160006101000a81548160ff0219169083151502179055506001601160016101000a81548160ff0219169083151502179055506001601160026101000a81548160ff0219169083151502179055506000601a60006101000a81548160ff0219169083151502179055506001601a60016101000a81548160ff0219169083151502179055506001601a60026101000a81548160ff0219169083151502179055506001601c60016101000a81548160ff0219169083151502179055506000601c60026101000a81548160ff0219169083151502179055506107d06004600254620001ed919062001041565b620001f99190620010d1565b601d553480156200020957600080fd5b5060006200021c62000deb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000403573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000429919062001173565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d8919062001173565b306040518363ffffffff1660e01b8152600401620004f8929190620011b6565b6020604051808303816000875af115801562000518573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053e919062001173565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160186000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016009600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073117fe25bfe7799120c5f6b9f21bf61f18fcf83a4601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073117fe25bfe7799120c5f6b9f21bf61f18fcf83a4601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507349acfe47695061ef2bbd81dfec335505042b9ba5601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073117fe25bfe7799120c5f6b9f21bf61f18fcf83a4601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000d26600c5462000d12600e5462000cfe600d5462000cea600b54600a5462000df360201b62002def1790919060201c565b62000df360201b62002def1790919060201c565b62000df360201b62002def1790919060201c565b62000df360201b62002def1790919060201c565b600f81905550600f54601081905550600254600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000ddd9190620011f4565b60405180910390a3620012cf565b600033905090565b600080828462000e04919062001211565b90508381101562000e4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e4390620012ad565b60405180910390fd5b8091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ee45780860481111562000ebc5762000ebb62000e56565b5b600185161562000ecc5780820291505b808102905062000edc8562000e85565b945062000e9c565b94509492505050565b60008262000eff576001905062000fd2565b8162000f0f576000905062000fd2565b816001811462000f28576002811462000f335762000f69565b600191505062000fd2565b60ff84111562000f485762000f4762000e56565b5b8360020a91508482111562000f625762000f6162000e56565b5b5062000fd2565b5060208310610133831016604e8410600b841016171562000fa35782820a90508381111562000f9d5762000f9c62000e56565b5b62000fd2565b62000fb2848484600162000e92565b9250905081840481111562000fcc5762000fcb62000e56565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ffd8262000fd9565b91506200100a8362000fe3565b9250620010397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000eed565b905092915050565b60006200104e8262000fd9565b91506200105b8362000fd9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562001097576200109662000e56565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010de8262000fd9565b9150620010eb8362000fd9565b925082620010fe57620010fd620010a2565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200113b826200110e565b9050919050565b6200114d816200112e565b81146200115957600080fd5b50565b6000815190506200116d8162001142565b92915050565b6000602082840312156200118c576200118b62001109565b5b60006200119c848285016200115c565b91505092915050565b620011b0816200112e565b82525050565b6000604082019050620011cd6000830185620011a5565b620011dc6020830184620011a5565b9392505050565b620011ee8162000fd9565b82525050565b60006020820190506200120b6000830184620011e3565b92915050565b60006200121e8262000fd9565b91506200122b8362000fd9565b925082820190508082111562001246576200124562000e56565b5b92915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001295601b836200124c565b9150620012a2826200125d565b602082019050919050565b60006020820190508181036000830152620012c88162001286565b9050919050565b61574780620012df6000396000f3fe6080604052600436106103b15760003560e01c8063807c2d9c116101e7578063aba1193d1161010d578063f1d5f517116100a0578063fb32b5c21161006f578063fb32b5c214610dbd578063fbdec15314610de8578063fe575a8714610e11578063ffb54a9914610e4e576103b8565b8063f1d5f51714610d17578063f2fde38b14610d40578063f84ba65d14610d69578063f887ea4014610d92576103b8565b8063da00097d116100dc578063da00097d14610c47578063dd62ed3e14610c72578063e5e31b1314610caf578063f0ef821f14610cec576103b8565b8063aba1193d14610bb1578063bf56b37114610bda578063c9567bf914610c05578063ca987b0e14610c1c576103b8565b80638e2eee8411610185578063996f79c011610154578063996f79c014610af3578063a535598914610b1e578063a8aa1b3114610b49578063a9059cbb14610b74576103b8565b80638e2eee8414610a4b5780639153eb6c14610a7457806395d89b4114610a9d57806398118cb414610ac8576103b8565b8063893d20e8116101c1578063893d20e81461098d578063896648c1146109b85780638b42507f146109e35780638da5cb5b14610a20576103b8565b8063807c2d9c1461091057806386a22eff1461093b57806386f6c3c114610964576103b8565b806344de2e4c116102d7578063705409331161026a5780637cc5d7eb116102395780637cc5d7eb1461087c5780637d1db4a5146108a55780637df4d744146108d05780637fa442ff146108e7576103b8565b806370540933146107d257806370a08231146107fd578063715018a61461083a57806375f0a87414610851576103b8565b80635e562f3b116102a65780635e562f3b1461073e5780635f18936114610767578063658d4b7f1461077e5780636b67c4df146107a7576103b8565b806344de2e4c146106825780634a74bb02146106ad578063571ac8b0146106d85780635c85974f14610715576103b8565b80631df4ccfc1161034f578063313ce5671161031e578063313ce567146105b257806333f3d628146105dd5780633b2d081c1461061a5780633f4218e014610645576103b8565b80631df4ccfc146104f657806323b872dd14610521578063299774911461055e5780632b112e4914610587576103b8565b80630d2959801161038b5780630d2959801461045057806318160ddd1461047957806318abb635146104a45780631da1db5e146104cd576103b8565b80630445b667146103bd57806306fdde03146103e8578063095ea7b314610413576103b8565b366103b857005b600080fd5b3480156103c957600080fd5b506103d2610e79565b6040516103df91906145af565b60405180910390f35b3480156103f457600080fd5b506103fd610e7f565b60405161040a919061465a565b60405180910390f35b34801561041f57600080fd5b5061043a60048036038101906104359190614710565b610ebc565b604051610447919061476b565b60405180910390f35b34801561045c57600080fd5b50610477600480360381019061047291906147b2565b610fae565b005b34801561048557600080fd5b5061048e6110af565b60405161049b91906145af565b60405180910390f35b3480156104b057600080fd5b506104cb60048036038101906104c691906147df565b6110b9565b005b3480156104d957600080fd5b506104f460048036038101906104ef919061485a565b61129a565b005b34801561050257600080fd5b5061050b611396565b60405161051891906145af565b60405180910390f35b34801561052d57600080fd5b5061054860048036038101906105439190614887565b61139c565b604051610555919061476b565b60405180910390f35b34801561056a57600080fd5b50610585600480360381019061058091906147b2565b61159c565b005b34801561059357600080fd5b5061059c61164e565b6040516105a991906145af565b60405180910390f35b3480156105be57600080fd5b506105c761168f565b6040516105d491906148f6565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff9190614710565b611698565b604051610611919061476b565b60405180910390f35b34801561062657600080fd5b5061062f611823565b60405161063c91906145af565b60405180910390f35b34801561065157600080fd5b5061066c60048036038101906106679190614911565b611829565b604051610679919061476b565b60405180910390f35b34801561068e57600080fd5b50610697611849565b6040516106a4919061476b565b60405180910390f35b3480156106b957600080fd5b506106c261185c565b6040516106cf919061476b565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa9190614911565b61186f565b60405161070c919061476b565b60405180910390f35b34801561072157600080fd5b5061073c6004803603810190610737919061485a565b6118a2565b005b34801561074a57600080fd5b50610765600480360381019061076091906147b2565b61199f565b005b34801561077357600080fd5b5061077c611aa0565b005b34801561078a57600080fd5b506107a560048036038101906107a0919061493e565b611b52565b005b3480156107b357600080fd5b506107bc611c42565b6040516107c991906145af565b60405180910390f35b3480156107de57600080fd5b506107e7611c48565b6040516107f4919061476b565b60405180910390f35b34801561080957600080fd5b50610824600480360381019061081f9190614911565b611c5b565b60405161083191906145af565b60405180910390f35b34801561084657600080fd5b5061084f611ca4565b005b34801561085d57600080fd5b50610866611df7565b604051610873919061498d565b60405180910390f35b34801561088857600080fd5b506108a3600480360381019061089e919061493e565b611e1d565b005b3480156108b157600080fd5b506108ba611f0d565b6040516108c791906145af565b60405180910390f35b3480156108dc57600080fd5b506108e5611f13565b005b3480156108f357600080fd5b5061090e600480360381019061090991906147b2565b611fc5565b005b34801561091c57600080fd5b50610925612077565b60405161093291906145af565b60405180910390f35b34801561094757600080fd5b50610962600480360381019061095d919061493e565b61207d565b005b34801561097057600080fd5b5061098b600480360381019061098691906149a8565b61216d565b005b34801561099957600080fd5b506109a26122b6565b6040516109af919061498d565b60405180910390f35b3480156109c457600080fd5b506109cd6122c5565b6040516109da919061476b565b60405180910390f35b3480156109ef57600080fd5b50610a0a6004803603810190610a059190614911565b6122d8565b604051610a17919061476b565b60405180910390f35b348015610a2c57600080fd5b50610a356122f8565b604051610a42919061498d565b60405180910390f35b348015610a5757600080fd5b50610a726004803603810190610a6d9190614a9a565b612321565b005b348015610a8057600080fd5b50610a9b6004803603810190610a969190614911565b6124a8565b005b348015610aa957600080fd5b50610ab2612647565b604051610abf919061465a565b60405180910390f35b348015610ad457600080fd5b50610add612684565b604051610aea91906145af565b60405180910390f35b348015610aff57600080fd5b50610b0861268a565b604051610b1591906145af565b60405180910390f35b348015610b2a57600080fd5b50610b33612690565b604051610b40919061476b565b60405180910390f35b348015610b5557600080fd5b50610b5e6126a3565b604051610b6b919061498d565b60405180910390f35b348015610b8057600080fd5b50610b9b6004803603810190610b969190614710565b6126c9565b604051610ba8919061476b565b60405180910390f35b348015610bbd57600080fd5b50610bd86004803603810190610bd39190614afa565b6126de565b005b348015610be657600080fd5b50610bef612798565b604051610bfc91906145af565b60405180910390f35b348015610c1157600080fd5b50610c1a61279e565b005b348015610c2857600080fd5b50610c31612850565b604051610c3e91906145af565b60405180910390f35b348015610c5357600080fd5b50610c5c612856565b604051610c69919061476b565b60405180910390f35b348015610c7e57600080fd5b50610c996004803603810190610c949190614b3a565b612869565b604051610ca691906145af565b60405180910390f35b348015610cbb57600080fd5b50610cd66004803603810190610cd19190614911565b6128f0565b604051610ce3919061476b565b60405180910390f35b348015610cf857600080fd5b50610d01612910565b604051610d0e919061476b565b60405180910390f35b348015610d2357600080fd5b50610d3e6004803603810190610d39919061485a565b612923565b005b348015610d4c57600080fd5b50610d676004803603810190610d629190614911565b612a20565b005b348015610d7557600080fd5b50610d906004803603810190610d8b919061493e565b612be1565b005b348015610d9e57600080fd5b50610da7612cd1565b604051610db49190614bd9565b60405180910390f35b348015610dc957600080fd5b50610dd2612cf7565b604051610ddf919061476b565b60405180910390f35b348015610df457600080fd5b50610e0f6004803603810190610e0a91906147b2565b612d0a565b005b348015610e1d57600080fd5b50610e386004803603810190610e339190614911565b612dbc565b604051610e45919061476b565b60405180910390f35b348015610e5a57600080fd5b50610e63612ddc565b604051610e70919061476b565b60405180910390f35b601d5481565b60606040518060400160405280601a81526020017f4861727279506f747465724f62616d614d6f6a6f363636696e75000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f9c91906145af565b60405180910390a36001905092915050565b610fb6612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a90614c40565b60405180910390fd5b601a60029054906101000a900460ff16611092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108990614cac565b60405180910390fd5b80601a60006101000a81548160ff02191690831515021790555050565b6000600254905090565b6110c1612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114590614c40565b60405180910390fd5b81601160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b6112a2612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132690614c40565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc6064848461135c9190614cfb565b6113669190614d84565b9081150290604051600060405180830381858888f19350505050158015611391573d6000803e3d6000fd5b505050565b600f5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461158857611507826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e559092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611593848484612eb9565b90509392505050565b6115a4612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890614c40565b60405180910390fd5b80601160016101000a81548160ff02191690831515021790555050565b600061168a61165d6000611c5b565b61167c61166b61dead611c5b565b60025461367190919063ffffffff16565b61367190919063ffffffff16565b905090565b60006012905090565b60006116a2612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172690614c40565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361179d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179490614e01565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016117d8929190614e21565b6020604051808303816000875af11580156117f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181b9190614e5f565b905092915050565b600c5481565b60086020528060005260406000206000915054906101000a900460ff1681565b600560149054906101000a900460ff1681565b601c60019054906101000a900460ff1681565b600061189b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610ebc565b9050919050565b6118aa612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192e90614c40565b60405180910390fd5b600581101561197b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197290614efe565b60405180910390fd5b6103e88160025461198c9190614cfb565b6119969190614d84565b60038190555050565b6119a7612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2b90614c40565b60405180910390fd5b601a60029054906101000a900460ff16611a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7a90614f6a565b60405180910390fd5b80601a60016101000a81548160ff02191690831515021790555050565b611aa8612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2c90614c40565b60405180910390fd5b6000601a60026101000a81548160ff021916908315150217905550565b611b5a612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bde90614c40565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b5481565b601160019054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611cac612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3090614c40565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e25612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea990614c40565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60035481565b611f1b612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9f90614c40565b60405180910390fd5b6000601a60016101000a81548160ff021916908315150217905550565b611fcd612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461205a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205190614c40565b60405180910390fd5b80601160026101000a81548160ff02191690831515021790555050565b60045481565b612085612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210990614c40565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b612175612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f990614c40565b60405180910390fd5b85600a8190555084600b8190555083600c8190555082600d8190555081600e81905550612278600e5461226a600d5461225c600c5461224e600b54600a54612def90919063ffffffff16565b612def90919063ffffffff16565b612def90919063ffffffff16565b612def90919063ffffffff16565b600f8190555080600f5461228c9190614f8a565b6010819055506023600f546010546122a49190614f8a565b106122ae57600080fd5b505050505050565b60006122c06122f8565b905090565b601a60019054906101000a900460ff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b612329612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ad90614c40565b60405180910390fd5b601a60029054906101000a900460ff16612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc90614f6a565b60405180910390fd5b60005b838390508110156124a25781601b600086868581811061242b5761242a614fbe565b5b90506020020160208101906124409190614911565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061249b90614fed565b9050612408565b50505050565b6124b0612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461253d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253490614c40565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600481526020017f5065706500000000000000000000000000000000000000000000000000000000815250905090565b600a5481565b600e5481565b601160029054906101000a900460ff1681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006126d6338484612eb9565b905092915050565b6126e6612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276a90614c40565b60405180910390fd5b81601c60016101000a81548160ff02191690831515021790555080601d819055505050565b60195481565b6127a6612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282a90614c40565b60405180910390fd5b6001601a60006101000a81548160ff021916908315150217905550565b60105481565b601c60029054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900460ff1681565b61292b612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129af90614c40565b60405180910390fd5b60058110156129fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f390614efe565b60405180910390fd5b6103e881600254612a0d9190614cfb565b612a179190614d84565b60048190555050565b612a28612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aac90614c40565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1b906150a7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612be9612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6d90614c40565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a60029054906101000a900460ff1681565b612d12612e4d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9690614c40565b60405180910390fd5b80601160006101000a81548160ff02191690831515021790555050565b601b6020528060005260406000206000915054906101000a900460ff1681565b601a60009054906101000a900460ff1681565b6000808284612dfe9190614f8a565b905083811015612e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3a90615113565b60405180910390fd5b8091505092915050565b600033905090565b6000838311158290612e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e94919061465a565b60405180910390fd5b5060008385612eac9190615133565b9050809150509392505050565b6000601c60009054906101000a900460ff1615612ee257612edb8484846136bb565b905061366a565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f865750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fdb57601a60009054906101000a900460ff16612fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fd1906151b3565b60405180910390fd5b5b600354821115806130355750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613074576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306b9061521f565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156130da5750601c60009054906101000a900460ff16155b80156130f25750601c60019054906101000a900460ff165b801561313f5750601d54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561314d5761314c61388e565b5b613155613f6f565b1580156131ab5750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561323b576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411613232576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132299061528b565b60405180910390fd5b61323a613f7c565b5b601a60019054906101000a900460ff16156132de57601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156132dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132d4906152f7565b60405180910390fd5b5b613367826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e559092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134105750600560149054906101000a900460ff165b156134ac5760045461346a83600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612def90919063ffffffff16565b11156134ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134a290615363565b60405180910390fd5b5b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156135525750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61355c5782613568565b613567858585613f85565b5b90506135bc81600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612def90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161365c91906145af565b60405180910390a360019150505b9392505050565b60006136b383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612e55565b905092915050565b6000613746826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e559092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137db82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612def90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161387b91906145af565b60405180910390a3600190509392505050565b6001601c60006101000a81548160ff0219169083151502179055506000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600061393f600261393161390e600e54600f5461367190919063ffffffff16565b613923600a548761446f90919063ffffffff16565b6144e990919063ffffffff16565b6144e990919063ffffffff16565b90506000613956828461367190919063ffffffff16565b90506000600267ffffffffffffffff81111561397557613974615383565b5b6040519080825280602002602001820160405280156139a35781602001602082028036833780820191505090505b50905030816000815181106139bb576139ba614fbe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a8691906153c7565b81600181518110613a9a57613a99614fbe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613b389594939291906154ed565b600060405180830381600087803b158015613b5257600080fd5b505af1158015613b66573d6000803e3d6000fd5b5050505060004790506000613baf613b8a6002600a546144e990919063ffffffff16565b613ba1600e54600f5461367190919063ffffffff16565b61367190919063ffffffff16565b90506000613bed6002613bdf84613bd1600a548861446f90919063ffffffff16565b6144e990919063ffffffff16565b6144e990919063ffffffff16565b90506000613c1883613c0a600b548761446f90919063ffffffff16565b6144e990919063ffffffff16565b90506000613c4384613c35600d548861446f90919063ffffffff16565b6144e990919063ffffffff16565b90506000613c6e85613c60600c548961446f90919063ffffffff16565b6144e990919063ffffffff16565b90506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051613cbc90615578565b600060405180830381858888f193505050503d8060008114613cfa576040519150601f19603f3d011682016040523d82523d6000602084013e613cff565b606091505b5050905060009050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051613d5190615578565b600060405180830381858888f193505050503d8060008114613d8f576040519150601f19603f3d011682016040523d82523d6000602084013e613d94565b606091505b50508091505060009050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051613de890615578565b600060405180830381858888f193505050503d8060008114613e26576040519150601f19603f3d011682016040523d82523d6000602084013e613e2b565b606091505b5050809150506000905060008a1115613f4757601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308d600080601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613ec79695949392919061558d565b60606040518083038185885af1158015613ee5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613f0a9190615603565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858b604051613f3e929190615656565b60405180910390a15b50505050505050505050506000601c60006101000a81548160ff021916908315150217905550565b6000806019541415905090565b43601981905550565b600080600090506000601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613ff35750601160019054906101000a900460ff165b156140125761400f600e5460105461367190919063ffffffff16565b91505b601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156140775750601160009054906101000a900460ff165b1561409657614093600e54600f5461367190919063ffffffff16565b91505b601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561413a5750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561417857601160029054906101000a900460ff16156141725761416b600e5460105461367190919063ffffffff16565b9150614177565b600091505b5b60008211801561418a57506000600e54115b1561431a576141b760646141a9600e548761446f90919063ffffffff16565b6144e990919063ffffffff16565b905061422d8160066000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612def90919063ffffffff16565b60066000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161431191906145af565b60405180910390a35b60006143426064614334858861446f90919063ffffffff16565b6144e990919063ffffffff16565b905061439681600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612def90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161443691906145af565b60405180910390a361446382614455838861367190919063ffffffff16565b61367190919063ffffffff16565b93505050509392505050565b600080830361448157600090506144e3565b6000828461448f9190614cfb565b905082848261449e9190614d84565b146144de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016144d5906156f1565b60405180910390fd5b809150505b92915050565b600061452b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614533565b905092915050565b6000808311829061457a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614571919061465a565b60405180910390fd5b50600083856145899190614d84565b9050809150509392505050565b6000819050919050565b6145a981614596565b82525050565b60006020820190506145c460008301846145a0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156146045780820151818401526020810190506145e9565b60008484015250505050565b6000601f19601f8301169050919050565b600061462c826145ca565b61463681856145d5565b93506146468185602086016145e6565b61464f81614610565b840191505092915050565b600060208201905081810360008301526146748184614621565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006146b182614686565b9050919050565b6146c1816146a6565b81146146cc57600080fd5b50565b6000813590506146de816146b8565b92915050565b6146ed81614596565b81146146f857600080fd5b50565b60008135905061470a816146e4565b92915050565b600080604083850312156147275761472661467c565b5b6000614735858286016146cf565b9250506020614746858286016146fb565b9150509250929050565b60008115159050919050565b61476581614750565b82525050565b6000602082019050614780600083018461475c565b92915050565b61478f81614750565b811461479a57600080fd5b50565b6000813590506147ac81614786565b92915050565b6000602082840312156147c8576147c761467c565b5b60006147d68482850161479d565b91505092915050565b600080600080600060a086880312156147fb576147fa61467c565b5b6000614809888289016146cf565b955050602061481a888289016146cf565b945050604061482b888289016146cf565b935050606061483c888289016146cf565b925050608061484d888289016146cf565b9150509295509295909350565b6000602082840312156148705761486f61467c565b5b600061487e848285016146fb565b91505092915050565b6000806000606084860312156148a05761489f61467c565b5b60006148ae868287016146cf565b93505060206148bf868287016146cf565b92505060406148d0868287016146fb565b9150509250925092565b600060ff82169050919050565b6148f0816148da565b82525050565b600060208201905061490b60008301846148e7565b92915050565b6000602082840312156149275761492661467c565b5b6000614935848285016146cf565b91505092915050565b600080604083850312156149555761495461467c565b5b6000614963858286016146cf565b92505060206149748582860161479d565b9150509250929050565b614987816146a6565b82525050565b60006020820190506149a2600083018461497e565b92915050565b60008060008060008060c087890312156149c5576149c461467c565b5b60006149d389828a016146fb565b96505060206149e489828a016146fb565b95505060406149f589828a016146fb565b9450506060614a0689828a016146fb565b9350506080614a1789828a016146fb565b92505060a0614a2889828a016146fb565b9150509295509295509295565b600080fd5b600080fd5b600080fd5b60008083601f840112614a5a57614a59614a35565b5b8235905067ffffffffffffffff811115614a7757614a76614a3a565b5b602083019150836020820283011115614a9357614a92614a3f565b5b9250929050565b600080600060408486031215614ab357614ab261467c565b5b600084013567ffffffffffffffff811115614ad157614ad0614681565b5b614add86828701614a44565b93509350506020614af08682870161479d565b9150509250925092565b60008060408385031215614b1157614b1061467c565b5b6000614b1f8582860161479d565b9250506020614b30858286016146fb565b9150509250929050565b60008060408385031215614b5157614b5061467c565b5b6000614b5f858286016146cf565b9250506020614b70858286016146cf565b9150509250929050565b6000819050919050565b6000614b9f614b9a614b9584614686565b614b7a565b614686565b9050919050565b6000614bb182614b84565b9050919050565b6000614bc382614ba6565b9050919050565b614bd381614bb8565b82525050565b6000602082019050614bee6000830184614bca565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614c2a6020836145d5565b9150614c3582614bf4565b602082019050919050565b60006020820190508181036000830152614c5981614c1d565b9050919050565b7f43616e206e6f206c6f6e6765722070617573652074726164696e670000000000600082015250565b6000614c96601b836145d5565b9150614ca182614c60565b602082019050919050565b60006020820190508181036000830152614cc581614c89565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614d0682614596565b9150614d1183614596565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614d4a57614d49614ccc565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614d8f82614596565b9150614d9a83614596565b925082614daa57614da9614d55565b5b828204905092915050565b7f43616e742072656d6f766520746865206e617469766520746f6b656e00000000600082015250565b6000614deb601c836145d5565b9150614df682614db5565b602082019050919050565b60006020820190508181036000830152614e1a81614dde565b9050919050565b6000604082019050614e36600083018561497e565b614e4360208301846145a0565b9392505050565b600081519050614e5981614786565b92915050565b600060208284031215614e7557614e7461467c565b5b6000614e8384828501614e4a565b91505092915050565b7f57616c6c6574204c696d6974206e6565647320746f206265206174206c65617360008201527f7420302e35250000000000000000000000000000000000000000000000000000602082015250565b6000614ee86026836145d5565b9150614ef382614e8c565b604082019050919050565b60006020820190508181036000830152614f1781614edb565b9050919050565b7f43616e206e6f206c6f6e6765722061646420626c61636b6c6973747300000000600082015250565b6000614f54601c836145d5565b9150614f5f82614f1e565b602082019050919050565b60006020820190508181036000830152614f8381614f47565b9050919050565b6000614f9582614596565b9150614fa083614596565b9250828201905080821115614fb857614fb7614ccc565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614ff882614596565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361502a57615029614ccc565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006150916026836145d5565b915061509c82615035565b604082019050919050565b600060208201905081810360008301526150c081615084565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006150fd601b836145d5565b9150615108826150c7565b602082019050919050565b6000602082019050818103600083015261512c816150f0565b9050919050565b600061513e82614596565b915061514983614596565b925082820390508181111561516157615160614ccc565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061519d6014836145d5565b91506151a882615167565b602082019050919050565b600060208201905081810360008301526151cc81615190565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006152096011836145d5565b9150615214826151d3565b602082019050919050565b60006020820190508181036000830152615238816151fc565b9050919050565b7f5a65726f2062616c616e63652076696f6c617465642100000000000000000000600082015250565b60006152756016836145d5565b91506152808261523f565b602082019050919050565b600060208201905081810360008301526152a481615268565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b60006152e1600b836145d5565b91506152ec826152ab565b602082019050919050565b60006020820190508181036000830152615310816152d4565b9050919050565b7f4d61782077616c6c65742076696f6c6174656421000000000000000000000000600082015250565b600061534d6014836145d5565b915061535882615317565b602082019050919050565b6000602082019050818103600083015261537c81615340565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506153c1816146b8565b92915050565b6000602082840312156153dd576153dc61467c565b5b60006153eb848285016153b2565b91505092915050565b6000819050919050565b600061541961541461540f846153f4565b614b7a565b614596565b9050919050565b615429816153fe565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615464816146a6565b82525050565b6000615476838361545b565b60208301905092915050565b6000602082019050919050565b600061549a8261542f565b6154a4818561543a565b93506154af8361544b565b8060005b838110156154e05781516154c7888261546a565b97506154d283615482565b9250506001810190506154b3565b5085935050505092915050565b600060a08201905061550260008301886145a0565b61550f6020830187615420565b8181036040830152615521818661548f565b9050615530606083018561497e565b61553d60808301846145a0565b9695505050505050565b600081905092915050565b50565b6000615562600083615547565b915061556d82615552565b600082019050919050565b600061558382615555565b9150819050919050565b600060c0820190506155a2600083018961497e565b6155af60208301886145a0565b6155bc6040830187615420565b6155c96060830186615420565b6155d6608083018561497e565b6155e360a08301846145a0565b979650505050505050565b6000815190506155fd816146e4565b92915050565b60008060006060848603121561561c5761561b61467c565b5b600061562a868287016155ee565b935050602061563b868287016155ee565b925050604061564c868287016155ee565b9150509250925092565b600060408201905061566b60008301856145a0565b61567860208301846145a0565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006156db6021836145d5565b91506156e68261567f565b604082019050919050565b6000602082019050818103600083015261570a816156ce565b905091905056fea2646970667358221220812e2c19a482ec3d35ac561a966c3b6d76914ebb9b01ef4caa205f8dc97e22bc64736f6c63430008100033