[ { "inputs": [ { "internalType": "address", "name": "_routerAddress", "type": "address" }, { "internalType": "address", "name": "_devWallet", "type": "address" }, { "internalType": "address", "name": "_buybackWallet", "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": "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": [ { "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": "buyTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buybackWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "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": [], "name": "devWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dynamicTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "enableTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "excludeFromFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "excludeFromReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "includeInReward", "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": "isExcludedFromFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromReward", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSellTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWalletAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "offlineBlocks", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "weiAmount", "type": "uint256" } ], "name": "rescueETH", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_tokenAddr", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "rescueTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_rfi", "type": "uint256" }, { "internalType": "uint256", "name": "_dev", "type": "uint256" }, { "internalType": "uint256", "name": "_buyback", "type": "uint256" } ], "name": "setTaxesPercentage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "startBlock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapEnabled", "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": "taxesPercentage", "outputs": [ { "internalType": "uint256", "name": "rfi", "type": "uint256" }, { "internalType": "uint256", "name": "dev", "type": "uint256" }, { "internalType": "uint256", "name": "buyBack", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "rAmount", "type": "uint256" } ], "name": "tokenFromReflection", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalRfi", "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": "tradingEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "updateBuyThreshold", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newWallet", "type": "address" } ], "name": "updateBuybackWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newWallet", "type": "address" } ], "name": "updateDevWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "updateDynamicTax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "updateMaxSellTax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "updateMaxTx", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "updateMaxWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newRouter", "type": "address" }, { "internalType": "address", "name": "newPair", "type": "address" } ], "name": "updateRouterAndPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" } ], "name": "updateSwapEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "updateSwapThreshold", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526012600a62000014919062000f0f565b633b9aca0062000025919062000f60565b600b55600b546000196200003a919062000fda565b60001962000049919062001012565b600c556012600a6200005c919062000f0f565b621e84806200006c919062000f60565b600e556012600a6200007f919062000f0f565b6301312d0062000090919062000f60565b600f556012600a620000a3919062000f0f565b6301312d00620000b4919062000f60565b6010556012600a620000c7919062000f0f565b620f4240620000d7919062000f60565b6011556005601355609660145560c8601555601460165560c8601755604051806060016040528060238152602001601e81526020016023815250601860008201518160000155602082015181600101556040820151816002015550503480156200014057600080fd5b5060405162005e2938038062005e298339818101604052810190620001669190620010b7565b620001866200017a6200065960201b60201c565b6200066160201b60201c565b600083905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ff919062001113565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000267573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028d919062001113565b6040518363ffffffff1660e01b8152600401620002ac92919062001156565b6020604051808303816000875af1158015620002cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f2919062001113565b905081600760036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003a9600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200072560201b60201c565b620003bc61dead6200072560201b60201c565b600c54600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555083600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b5460405162000646919062001194565b60405180910390a35050505050620013f2565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620007356200096060201b60201c565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615620007c5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007bc9062001212565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115620008a2576200085e600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620009f160201b60201c565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b620009706200065960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200099662000a6560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620009ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009e69062001284565b60405180910390fd5b565b6000600c5482111562000a3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a32906200131c565b60405180910390fd5b600062000a4d62000a8e60201b60201c565b9050808362000a5d91906200133e565b915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600062000aa362000abc60201b60201c565b91509150808262000ab591906200133e565b9250505090565b6000806000600c5490506000600b54905060005b60068054905081101562000d3b5782600160006006848154811062000afa5762000af962001376565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118062000bec575081600260006006848154811062000b845762000b8362001376565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1562000c0557600c54600b549450945050505062000d71565b600160006006838154811062000c205762000c1f62001376565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548362000c93919062001012565b9250600260006006838154811062000cb05762000caf62001376565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548262000d23919062001012565b9150808062000d3290620013a5565b91505062000ad0565b50600b54600c5462000d4e91906200133e565b82101562000d6857600c54600b5493509350505062000d71565b81819350935050505b9091565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000e035780860481111562000ddb5762000dda62000d75565b5b600185161562000deb5780820291505b808102905062000dfb8562000da4565b945062000dbb565b94509492505050565b60008262000e1e576001905062000ef1565b8162000e2e576000905062000ef1565b816001811462000e47576002811462000e525762000e88565b600191505062000ef1565b60ff84111562000e675762000e6662000d75565b5b8360020a91508482111562000e815762000e8062000d75565b5b5062000ef1565b5060208310610133831016604e8410600b841016171562000ec25782820a90508381111562000ebc5762000ebb62000d75565b5b62000ef1565b62000ed1848484600162000db1565b9250905081840481111562000eeb5762000eea62000d75565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000f1c8262000ef8565b915062000f298362000f02565b925062000f587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e0c565b905092915050565b600062000f6d8262000ef8565b915062000f7a8362000ef8565b925082820262000f8a8162000ef8565b9150828204841483151762000fa45762000fa362000d75565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000fe78262000ef8565b915062000ff48362000ef8565b92508262001007576200100662000fab565b5b828206905092915050565b60006200101f8262000ef8565b91506200102c8362000ef8565b925082820390508181111562001047576200104662000d75565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200107f8262001052565b9050919050565b620010918162001072565b81146200109d57600080fd5b50565b600081519050620010b18162001086565b92915050565b600080600060608486031215620010d357620010d26200104d565b5b6000620010e386828701620010a0565b9350506020620010f686828701620010a0565b92505060406200110986828701620010a0565b9150509250925092565b6000602082840312156200112c576200112b6200104d565b5b60006200113c84828501620010a0565b91505092915050565b620011508162001072565b82525050565b60006040820190506200116d600083018562001145565b6200117c602083018462001145565b9392505050565b6200118e8162000ef8565b82525050565b6000602082019050620011ab600083018462001183565b92915050565b600082825260208201905092915050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b6000620011fa601b83620011b1565b91506200120782620011c2565b602082019050919050565b600060208201905081810360008301526200122d81620011eb565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200126c602083620011b1565b9150620012798262001234565b602082019050919050565b600060208201905081810360008301526200129f816200125d565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600062001304602a83620011b1565b91506200131182620012a6565b604082019050919050565b600060208201905081810360008301526200133781620012f5565b9050919050565b60006200134b8262000ef8565b9150620013588362000ef8565b9250826200136b576200136a62000fab565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000620013b28262000ef8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620013e757620013e662000d75565b5b600182019050919050565b614a2780620014026000396000f3fe6080604052600436106103035760003560e01c8063715018a611610190578063a8aa1b31116100dc578063cea9d26f11610095578063df8408fe1161006f578063df8408fe14610b8f578063f13cff4114610bb8578063f2fde38b14610be3578063f887ea4014610c0c5761030a565b8063cea9d26f14610afe578063dd62ed3e14610b27578063deab8aea14610b645761030a565b8063a8aa1b31146109ee578063a9059cbb14610a19578063aa4bde2814610a56578063c2d0ffca14610a81578063cc1776d314610aaa578063cc274b2914610ad55761030a565b80638ea5220f11610149578063963fbc5011610123578063963fbc50146109345780639e252f001461095d578063a411209a14610986578063a457c2d7146109b15761030a565b80638ea5220f146108b5578063924de9b7146108e057806395d89b41146109095761030a565b8063715018a6146107cb578063799754d7146107e257806388f820201461080b5780638a8c523c146108485780638c0b5e221461085f5780638da5cb5b1461088a5761030a565b8063313ce5671161024f5780634da86156116102085780635342acb4116101e25780635342acb4146106fb578063649011c8146107385780636ddd17131461076357806370a082311461078e5761030a565b80634da861561461067c5780634f7041a5146106a757806352390c02146106d25761030a565b8063313ce5671461056c5780633685d4191461059757806339509351146105c057806340b28c2f146105fd57806348cd4cb1146106265780634ada218b146106515761030a565b8063095ea7b3116102bc5780631a661181116102965780631a6611811461049e5780631c499ab0146104c957806323b872dd146104f25780632d8381191461052f5761030a565b8063095ea7b31461040d57806318160ddd1461044a5780631816467f146104755761030a565b8063029514f71461030f5780630445b6671461033c57806304dacd501461036757806306fdde0314610390578063079bf867146103bb5780630858fa35146103e45761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c37565b60405161033393929190613628565b60405180910390f35b34801561034857600080fd5b50610351610c4f565b60405161035e919061365f565b60405180910390f35b34801561037357600080fd5b5061038e600480360381019061038991906136dd565b610c55565b005b34801561039c57600080fd5b506103a5610d1b565b6040516103b2919061379a565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd91906137e8565b610d58565b005b3480156103f057600080fd5b5061040b60048036038101906104069190613815565b610d6a565b005b34801561041957600080fd5b50610434600480360381019061042f9190613868565b610e0e565b60405161044191906138c3565b60405180910390f35b34801561045657600080fd5b5061045f610e2c565b60405161046c919061365f565b60405180910390f35b34801561048157600080fd5b5061049c600480360381019061049791906136dd565b610e36565b005b3480156104aa57600080fd5b506104b3610efc565b6040516104c0919061365f565b60405180910390f35b3480156104d557600080fd5b506104f060048036038101906104eb91906137e8565b610f02565b005b3480156104fe57600080fd5b50610519600480360381019061051491906138de565b610f2c565b60405161052691906138c3565b60405180910390f35b34801561053b57600080fd5b50610556600480360381019061055191906137e8565b61102d565b604051610563919061365f565b60405180910390f35b34801561057857600080fd5b50610581611094565b60405161058e919061394d565b60405180910390f35b3480156105a357600080fd5b506105be60048036038101906105b991906136dd565b61109d565b005b3480156105cc57600080fd5b506105e760048036038101906105e29190613868565b61135e565b6040516105f491906138c3565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190613968565b61140a565b005b34801561063257600080fd5b5061063b611498565b604051610648919061365f565b60405180910390f35b34801561065d57600080fd5b5061066661149e565b60405161067391906138c3565b60405180910390f35b34801561068857600080fd5b506106916114b1565b60405161069e919061365f565b60405180910390f35b3480156106b357600080fd5b506106bc6114b7565b6040516106c9919061365f565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f491906136dd565b6114bd565b005b34801561070757600080fd5b50610722600480360381019061071d91906136dd565b6116e4565b60405161072f91906138c3565b60405180910390f35b34801561074457600080fd5b5061074d61173a565b60405161075a919061365f565b60405180910390f35b34801561076f57600080fd5b50610778611740565b60405161078591906138c3565b60405180910390f35b34801561079a57600080fd5b506107b560048036038101906107b091906136dd565b611753565b6040516107c2919061365f565b60405180910390f35b3480156107d757600080fd5b506107e061183e565b005b3480156107ee57600080fd5b50610809600480360381019061080491906137e8565b611852565b005b34801561081757600080fd5b50610832600480360381019061082d91906136dd565b61187c565b60405161083f91906138c3565b60405180910390f35b34801561085457600080fd5b5061085d6118d2565b005b34801561086b57600080fd5b50610874611919565b604051610881919061365f565b60405180910390f35b34801561089657600080fd5b5061089f61191f565b6040516108ac91906139b7565b60405180910390f35b3480156108c157600080fd5b506108ca611948565b6040516108d791906139b7565b60405180910390f35b3480156108ec57600080fd5b50610907600480360381019061090291906139fe565b61196e565b005b34801561091557600080fd5b5061091e611993565b60405161092b919061379a565b60405180910390f35b34801561094057600080fd5b5061095b600480360381019061095691906137e8565b6119d0565b005b34801561096957600080fd5b50610984600480360381019061097f91906137e8565b6119e2565b005b34801561099257600080fd5b5061099b611a34565b6040516109a8919061365f565b60405180910390f35b3480156109bd57600080fd5b506109d860048036038101906109d39190613868565b611a3a565b6040516109e591906138c3565b60405180910390f35b3480156109fa57600080fd5b50610a03611b2e565b604051610a1091906139b7565b60405180910390f35b348015610a2557600080fd5b50610a406004803603810190610a3b9190613868565b611b54565b604051610a4d91906138c3565b60405180910390f35b348015610a6257600080fd5b50610a6b611b72565b604051610a78919061365f565b60405180910390f35b348015610a8d57600080fd5b50610aa86004803603810190610aa391906137e8565b611b78565b005b348015610ab657600080fd5b50610abf611ba2565b604051610acc919061365f565b60405180910390f35b348015610ae157600080fd5b50610afc6004803603810190610af791906137e8565b611ba8565b005b348015610b0a57600080fd5b50610b256004803603810190610b2091906138de565b611bd2565b005b348015610b3357600080fd5b50610b4e6004803603810190610b499190613968565b611c5e565b604051610b5b919061365f565b60405180910390f35b348015610b7057600080fd5b50610b79611ce5565b604051610b8691906139b7565b60405180910390f35b348015610b9b57600080fd5b50610bb66004803603810190610bb19190613a2b565b611d0b565b005b348015610bc457600080fd5b50610bcd611d6e565b604051610bda919061365f565b60405180910390f35b348015610bef57600080fd5b50610c0a6004803603810190610c0591906136dd565b611d74565b005b348015610c1857600080fd5b50610c21611df7565b604051610c2e9190613aca565b60405180910390f35b60188060000154908060010154908060020154905083565b600e5481565b610c5d611e1d565b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600f81526020017f416e7469204a65657420546f6b656e0000000000000000000000000000000000815250905090565b610d60611e1d565b8060178190555050565b610d72611e1d565b6064818385610d819190613b14565b610d8b9190613b14565b14610dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc290613b94565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506018600082015181600001556020820151816001015560408201518160020155905050505050565b6000610e22610e1b611e9b565b8484611ea3565b6001905092915050565b6000600b54905090565b610e3e611e1d565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d5481565b610f0a611e1d565b6012600a610f189190613ce7565b81610f239190613d32565b60108190555050565b6000610f3984848461206c565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f84611e9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffb90613de6565b60405180910390fd5b61102185611010611e9b565b858461101c9190613e06565b611ea3565b60019150509392505050565b6000600c54821115611074576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106b90613eac565b60405180910390fd5b600061107e6125c1565b9050808361108c9190613efb565b915050919050565b60006012905090565b6110a5611e1d565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112890613f78565b60405180910390fd5b60005b60068054905081101561135a578173ffffffffffffffffffffffffffffffffffffffff166006828154811061116c5761116b613f98565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361134757600660016006805490506111c69190613e06565b815481106111d7576111d6613f98565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006828154811061121657611215613f98565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600680548061130d5761130c613fc7565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561135a565b808061135290613ff6565b915050611134565b5050565b600061140061136b611e9b565b848460036000611379611e9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113fb9190613b14565b611ea3565b6001905092915050565b611412611e1d565b81600760036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60125481565b600760029054906101000a900460ff1681565b60165481565b60145481565b6114c5611e1d565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611552576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115499061408a565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611626576115e2600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461102d565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60135481565b600760009054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156117ee57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611839565b611836600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461102d565b90505b919050565b611846611e1d565b61185060006125e5565b565b61185a611e1d565b6012600a6118689190613ce7565b816118739190613d32565b60118190555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6118da611e1d565b6001600760026101000a81548160ff0219169083151502179055506001600760006101000a81548160ff02191690831515021790555043601281905550565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611976611e1d565b80600760006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600681526020017f4e4f4a4545540000000000000000000000000000000000000000000000000000815250905090565b6119d8611e1d565b8060168190555050565b6119ea611e1d565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a30573d6000803e3d6000fd5b5050565b60175481565b60008060036000611a49611e9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afd9061411c565b60405180910390fd5b611b23611b11611e9b565b858584611b1e9190613e06565b611ea3565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b68611b61611e9b565b848461206c565b6001905092915050565b60105481565b611b80611e1d565b6012600a611b8e9190613ce7565b81611b999190613d32565b600f8190555050565b60155481565b611bb0611e1d565b6012600a611bbe9190613ce7565b81611bc99190613d32565b600e8190555050565b611bda611e1d565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611c1592919061413c565b6020604051808303816000875af1158015611c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c58919061417a565b50505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d13611e1d565b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60115481565b611d7c611e1d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de290614219565b60405180910390fd5b611df4816125e5565b50565b600760039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e25611e9b565b73ffffffffffffffffffffffffffffffffffffffff16611e4361191f565b73ffffffffffffffffffffffffffffffffffffffff1614611e99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9090614285565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0990614317565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f78906143a9565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161205f919061365f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d29061443b565b60405180910390fd5b6000811161211e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612115906144cd565b60405180910390fd5b61212783611753565b811115612169576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121609061455f565b60405180910390fd5b6000601454141580156121885750600760029054906101000a900460ff165b156121ae574360135460125461219e9190613b14565b10156121ad5760006014819055505b5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122545750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561245357600760029054906101000a900460ff166122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229f906145cb565b60405180910390fd5b600f548211156122ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e490614637565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461239b576010548261234f85611753565b6123599190613b14565b111561239a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612391906146c9565b60405180910390fd5b5b60019050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561240a5750436013546012546124089190613b14565b105b15612452576000905060115482106124515760165460155410612447576016546015600082825461243b9190613e06565b92505081905550612450565b60006015819055505b5b5b5b6000600e5461246130611753565b10159050600760019054906101000a900460ff1615801561248e5750600760009054906101000a900460ff165b80156124975750805b80156124f15750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156125475750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561259d5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156125ae576125ad600e546126a9565b5b6125ba85858585612806565b5050505050565b60008060006125ce612d07565b9150915080826125de9190613efb565b9250505090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600760016101000a81548160ff02191690831515021790555060004790506126d282612fa5565b600081476126e09190613e06565b9050600060186000015460646126f69190613e06565b905060008103612708575050506127e8565b6000816018600101548461271c9190613d32565b6127269190613efb565b9050600081111561277d5761277c81600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166131e890919063ffffffff16565b5b6000818461278b9190613e06565b905060008111156127e2576127e181600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166131e890919063ffffffff16565b5b50505050505b6000600760016101000a81548160ff02191690831515021790555050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612864576000612867565b60015b905060006128768484846132dc565b90508180156128825750825b801561289c57504360135460125461289a9190613b14565b105b156128e5576017546016546015546128b49190613b14565b11156128c8576017546015819055506128e4565b601654601560008282546128dc9190613b14565b925050819055505b5b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156129c65783600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129829190613e06565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612aab578060800151600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a679190613b14565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8060000151600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afa9190613e06565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060200151600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8c9190613b14565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600081604001511180612be6575060008160a00151115b15612bfe57612bfd81604001518260a0015161332f565b5b600081606001511180612c15575060008160c00151115b15612c2d57612c2c81606001518260c00151613365565b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360800151604051612c8e919061365f565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c00151604051612cf7919061365f565b60405180910390a3505050505050565b6000806000600c5490506000600b54905060005b600680549050811015612f6f57826001600060068481548110612d4157612d40613f98565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180612e2f5750816002600060068481548110612dc757612dc6613f98565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15612e4657600c54600b5494509450505050612fa1565b6001600060068381548110612e5e57612e5d613f98565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612ecf9190613e06565b92506002600060068381548110612ee957612ee8613f98565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482612f5a9190613e06565b91508080612f6790613ff6565b915050612d1b565b50600b54600c54612f809190613efb565b821015612f9857600c54600b54935093505050612fa1565b81819350935050505b9091565b6000600267ffffffffffffffff811115612fc257612fc16146e9565b5b604051908082528060200260200182016040528015612ff05781602001602082028036833780820191505090505b509050308160008151811061300857613007613f98565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d3919061472d565b816001815181106130e7576130e6613f98565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061314e30600760039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ea3565b600760039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016131b2959493929190614853565b600060405180830381600087803b1580156131cc57600080fd5b505af11580156131e0573d6000803e3d6000fd5b505050505050565b8047101561322b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613222906148f9565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516132519061494a565b60006040518083038185875af1925050503d806000811461328e576040519150601f19603f3d011682016040523d82523d6000602084013e613293565b606091505b50509050806132d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ce906149d1565b60405180910390fd5b505050565b6132e46135d2565b6132ef848484613468565b90506133048185856132ff6125c1565b61355e565b8460000185602001866040018760600184815250848152508481525084815250505050509392505050565b81600c60008282546133419190613e06565b9250508190555080600d600082825461335a9190613b14565b925050819055505050565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561340e5780600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546134069190613b14565b925050819055505b81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461345d9190613b14565b925050819055505050565b6134706135d2565b826134845783816080018181525050613557565b60008261349357601454613497565b6015545b905060006064601860000154836134ae9190613d32565b6134b89190613efb565b90506000606460186000015460646134d09190613e06565b846134db9190613d32565b6134e59190613efb565b90506103e882886134f69190613d32565b6135009190613efb565b8460a00181815250506103e881886135189190613d32565b6135229190613efb565b8460c00181815250508360c001518460a00151886135409190613e06565b61354a9190613e06565b8460800181815250505050505b9392505050565b60008060008084876135709190613d32565b93508561358957838460008093509350935093506135c7565b848860a001516135999190613d32565b9150848860c001516135ab9190613d32565b90508082856135ba9190613e06565b6135c49190613e06565b92505b945094509450949050565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000819050919050565b6136228161360f565b82525050565b600060608201905061363d6000830186613619565b61364a6020830185613619565b6136576040830184613619565b949350505050565b60006020820190506136746000830184613619565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136aa8261367f565b9050919050565b6136ba8161369f565b81146136c557600080fd5b50565b6000813590506136d7816136b1565b92915050565b6000602082840312156136f3576136f261367a565b5b6000613701848285016136c8565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613744578082015181840152602081019050613729565b60008484015250505050565b6000601f19601f8301169050919050565b600061376c8261370a565b6137768185613715565b9350613786818560208601613726565b61378f81613750565b840191505092915050565b600060208201905081810360008301526137b48184613761565b905092915050565b6137c58161360f565b81146137d057600080fd5b50565b6000813590506137e2816137bc565b92915050565b6000602082840312156137fe576137fd61367a565b5b600061380c848285016137d3565b91505092915050565b60008060006060848603121561382e5761382d61367a565b5b600061383c868287016137d3565b935050602061384d868287016137d3565b925050604061385e868287016137d3565b9150509250925092565b6000806040838503121561387f5761387e61367a565b5b600061388d858286016136c8565b925050602061389e858286016137d3565b9150509250929050565b60008115159050919050565b6138bd816138a8565b82525050565b60006020820190506138d860008301846138b4565b92915050565b6000806000606084860312156138f7576138f661367a565b5b6000613905868287016136c8565b9350506020613916868287016136c8565b9250506040613927868287016137d3565b9150509250925092565b600060ff82169050919050565b61394781613931565b82525050565b6000602082019050613962600083018461393e565b92915050565b6000806040838503121561397f5761397e61367a565b5b600061398d858286016136c8565b925050602061399e858286016136c8565b9150509250929050565b6139b18161369f565b82525050565b60006020820190506139cc60008301846139a8565b92915050565b6139db816138a8565b81146139e657600080fd5b50565b6000813590506139f8816139d2565b92915050565b600060208284031215613a1457613a1361367a565b5b6000613a22848285016139e9565b91505092915050565b60008060408385031215613a4257613a4161367a565b5b6000613a50858286016136c8565b9250506020613a61858286016139e9565b9150509250929050565b6000819050919050565b6000613a90613a8b613a868461367f565b613a6b565b61367f565b9050919050565b6000613aa282613a75565b9050919050565b6000613ab482613a97565b9050919050565b613ac481613aa9565b82525050565b6000602082019050613adf6000830184613abb565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b1f8261360f565b9150613b2a8361360f565b9250828201905080821115613b4257613b41613ae5565b5b92915050565b7f546f74616c206d75737420626520313030000000000000000000000000000000600082015250565b6000613b7e601183613715565b9150613b8982613b48565b602082019050919050565b60006020820190508181036000830152613bad81613b71565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613c0b57808604811115613be757613be6613ae5565b5b6001851615613bf65780820291505b8081029050613c0485613bb4565b9450613bcb565b94509492505050565b600082613c245760019050613ce0565b81613c325760009050613ce0565b8160018114613c485760028114613c5257613c81565b6001915050613ce0565b60ff841115613c6457613c63613ae5565b5b8360020a915084821115613c7b57613c7a613ae5565b5b50613ce0565b5060208310610133831016604e8410600b8410161715613cb65782820a905083811115613cb157613cb0613ae5565b5b613ce0565b613cc38484846001613bc1565b92509050818404811115613cda57613cd9613ae5565b5b81810290505b9392505050565b6000613cf28261360f565b9150613cfd83613931565b9250613d2a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613c14565b905092915050565b6000613d3d8261360f565b9150613d488361360f565b9250828202613d568161360f565b91508282048414831517613d6d57613d6c613ae5565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613dd0602883613715565b9150613ddb82613d74565b604082019050919050565b60006020820190508181036000830152613dff81613dc3565b9050919050565b6000613e118261360f565b9150613e1c8361360f565b9250828203905081811115613e3457613e33613ae5565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613e96602a83613715565b9150613ea182613e3a565b604082019050919050565b60006020820190508181036000830152613ec581613e89565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f068261360f565b9150613f118361360f565b925082613f2157613f20613ecc565b5b828204905092915050565b7f4163636f756e74206973206e6f74206578636c75646564000000000000000000600082015250565b6000613f62601783613715565b9150613f6d82613f2c565b602082019050919050565b60006020820190508181036000830152613f9181613f55565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60006140018261360f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361403357614032613ae5565b5b600182019050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b6000614074601b83613715565b915061407f8261403e565b602082019050919050565b600060208201905081810360008301526140a381614067565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614106602583613715565b9150614111826140aa565b604082019050919050565b60006020820190508181036000830152614135816140f9565b9050919050565b600060408201905061415160008301856139a8565b61415e6020830184613619565b9392505050565b600081519050614174816139d2565b92915050565b6000602082840312156141905761418f61367a565b5b600061419e84828501614165565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614203602683613715565b915061420e826141a7565b604082019050919050565b60006020820190508181036000830152614232816141f6565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061426f602083613715565b915061427a82614239565b602082019050919050565b6000602082019050818103600083015261429e81614262565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614301602483613715565b915061430c826142a5565b604082019050919050565b60006020820190508181036000830152614330816142f4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614393602283613715565b915061439e82614337565b604082019050919050565b600060208201905081810360008301526143c281614386565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614425602583613715565b9150614430826143c9565b604082019050919050565b6000602082019050818103600083015261445481614418565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006144b7602983613715565b91506144c28261445b565b604082019050919050565b600060208201905081810360008301526144e6816144aa565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000614549603183613715565b9150614554826144ed565b604082019050919050565b600060208201905081810360008301526145788161453c565b9050919050565b7f4c697175696469747920686173206e6f74206265656e20616464656420796574600082015250565b60006145b5602083613715565b91506145c08261457f565b602082019050919050565b600060208201905081810360008301526145e4816145a8565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000614621601d83613715565b915061462c826145eb565b602082019050919050565b6000602082019050818103600083015261465081614614565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006146b3602183613715565b91506146be82614657565b604082019050919050565b600060208201905081810360008301526146e2816146a6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050614727816136b1565b92915050565b6000602082840312156147435761474261367a565b5b600061475184828501614718565b91505092915050565b6000819050919050565b600061477f61477a6147758461475a565b613a6b565b61360f565b9050919050565b61478f81614764565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6147ca8161369f565b82525050565b60006147dc83836147c1565b60208301905092915050565b6000602082019050919050565b600061480082614795565b61480a81856147a0565b9350614815836147b1565b8060005b8381101561484657815161482d88826147d0565b9750614838836147e8565b925050600181019050614819565b5085935050505092915050565b600060a0820190506148686000830188613619565b6148756020830187614786565b818103604083015261488781866147f5565b905061489660608301856139a8565b6148a36080830184613619565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006148e3601d83613715565b91506148ee826148ad565b602082019050919050565b60006020820190508181036000830152614912816148d6565b9050919050565b600081905092915050565b50565b6000614934600083614919565b915061493f82614924565b600082019050919050565b600061495582614927565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006149bb603a83613715565b91506149c68261495f565b604082019050919050565b600060208201905081810360008301526149ea816149ae565b905091905056fea264697066735822122024032edfc4e3b12a0c7513aa0b414e6cea1639bceb28bb8ba8260b1ae832e93064736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000009dd925372c123e8d2209ca1b42ab7a96bcfd9c490000000000000000000000000e39750305741583770ce872de109fa795ae9e5c