[ { "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": "buyTaxTotal", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "buyMarketingTax", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "buyProjectTax", "type": "uint256" } ], "name": "BuyFeeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "DisabledTransferDelay", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromLimits", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "LimitsRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldWallet", "type": "address" } ], "name": "MarketingWalletUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "maxTx", "type": "uint256" } ], "name": "MaxTxUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "maxWallet", "type": "uint256" } ], "name": "MaxWalletUpdated", "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": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldWallet", "type": "address" } ], "name": "ProjectWalletUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "sellTaxTotal", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "sellMarketingTax", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "sellProjectTax", "type": "uint256" } ], "name": "SellFeeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "swapBackValueMin", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "swapBackValueMax", "type": "uint256" } ], "name": "SwapbackSettingsUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "TradingEnabled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "UpdateUniswapV2Router", "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": [ { "internalType": "address", "name": "newWallet", "type": "address" } ], "name": "changeMarketingWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newWallet", "type": "address" } ], "name": "changeProjectWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_target", "type": "address" } ], "name": "checkMappings", "outputs": [ { "internalType": "bool", "name": "_transferTaxExempt", "type": "bool" }, { "internalType": "bool", "name": "_transferLimitExempt", "type": "bool" }, { "internalType": "bool", "name": "_automatedMarketMakerPairs", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "dexPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "enableTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "feeExempt", "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": [], "name": "maxTxValues", "outputs": [ { "internalType": "bool", "name": "_limitsEnabled", "type": "bool" }, { "internalType": "uint256", "name": "_maxWallet", "type": "uint256" }, { "internalType": "uint256", "name": "_maxTx", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "receiverwallets", "outputs": [ { "internalType": "address", "name": "_marketingWallet", "type": "address" }, { "internalType": "address", "name": "_projectWallet", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rmvLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "updAds", "type": "address" }, { "internalType": "bool", "name": "isEx", "type": "bool" } ], "name": "setExemptFromMaxLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxTxLimit", "type": "uint256" } ], "name": "setMaxTxLimitAmnt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxWalletLimit", "type": "uint256" } ], "name": "setMaxWalletLimitAmnt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_devFee", "type": "uint256" } ], "name": "setTaxesBuyTx", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_devFee", "type": "uint256" } ], "name": "setTaxesSellTx", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_min", "type": "uint256" }, { "internalType": "uint256", "name": "_max", "type": "uint256" } ], "name": "setValueSwapBack", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapbackValues", "outputs": [ { "internalType": "bool", "name": "_swapbackEnabled", "type": "bool" }, { "internalType": "uint256", "name": "_swapBackValueMin", "type": "uint256" }, { "internalType": "uint256", "name": "_swapBackValueMax", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "taxValues", "outputs": [ { "internalType": "uint256", "name": "_buyTaxTotal", "type": "uint256" }, { "internalType": "uint256", "name": "_buyMarketingTax", "type": "uint256" }, { "internalType": "uint256", "name": "_buyProjectTax", "type": "uint256" }, { "internalType": "uint256", "name": "_sellTaxTotal", "type": "uint256" }, { "internalType": "uint256", "name": "_sellMarketingTax", "type": "uint256" }, { "internalType": "uint256", "name": "_sellProjectTax", "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" }, { "stateMutability": "payable", "type": "receive" } ]
60c06040526000600560156101000a81548160ff0219169083151502179055506001600860006101000a81548160ff0219169083151502179055506000600c60006101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280600c81526020017f536f6e206f66205472756d7000000000000000000000000000000000000000008152506040518060400160405280600681526020017f424152524f4e00000000000000000000000000000000000000000000000000008152508160039081620000e0919062000f1f565b508060049081620000f2919062000f1f565b5050506200011562000109620005f860201b60201c565b6200060060201b60201c565b6000734752ba5dbc23f44d87826276bf6fd6b1c372ad24905062000141816001620006c660201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e7919062001070565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200024f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000275919062001070565b6040518363ffffffff1660e01b815260040162000294929190620010b3565b6020604051808303816000875af1158015620002b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002da919062001070565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200032260a0516001620006c660201b60201c565b6200033760a05160016200080060201b60201c565b6000601990506000806019905060008062000357620008a160201b60201c565b600a62000365919062001270565b633b9aca00620003769190620012c1565b90506103e8600a826200038a9190620012c1565b6200039691906200133b565b600a819055506103e8600a82620003ae9190620012c1565b620003ba91906200133b565b6009819055506103e8600182620003d29190620012c1565b620003de91906200133b565b6006819055506064600282620003f59190620012c1565b6200040191906200133b565b60078190555084600f8190555083601081905550601054600f5462000427919062001373565b600e8190555082601281905550816013819055506013546012546200044d919062001373565b601181905550736c669e037238403ae0e9dcd5c2f34c836ff024f9600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004fc336001620008aa60201b60201c565b6200050f306001620008aa60201b60201c565b6200052461dead6001620008aa60201b60201c565b62000559600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620008aa60201b60201c565b6200056c336001620006c660201b60201c565b6200057f306001620006c660201b60201c565b6200059461dead6001620006c660201b60201c565b620005c9600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620006c660201b60201c565b620005da33620009e460201b60201c565b620005ec338262000af960201b60201c565b505050505050620015a3565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620006d6620005f860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006fc62000c7160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000755576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200074c906200140f565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9282604051620007f491906200144e565b60405180910390a25050565b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60006012905090565b620008ba620005f860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620008e062000c7160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000939576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000930906200140f565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620009d891906200144e565b60405180910390a25050565b620009f4620005f860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000a1a62000c7160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000a73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a6a906200140f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000ae5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000adc90620014e1565b60405180910390fd5b62000af6816200060060201b60201c565b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000b6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b629062001553565b60405180910390fd5b62000b7f6000838362000c9b60201b60201c565b806002600082825462000b93919062001373565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000bea919062001373565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000c51919062001586565b60405180910390a362000c6d6000838362000ca060201b60201c565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d2757607f821691505b60208210810362000d3d5762000d3c62000cdf565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000da77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000d68565b62000db3868362000d68565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000e0062000dfa62000df48462000dcb565b62000dd5565b62000dcb565b9050919050565b6000819050919050565b62000e1c8362000ddf565b62000e3462000e2b8262000e07565b84845462000d75565b825550505050565b600090565b62000e4b62000e3c565b62000e5881848462000e11565b505050565b5b8181101562000e805762000e7460008262000e41565b60018101905062000e5e565b5050565b601f82111562000ecf5762000e998162000d43565b62000ea48462000d58565b8101602085101562000eb4578190505b62000ecc62000ec38562000d58565b83018262000e5d565b50505b505050565b600082821c905092915050565b600062000ef46000198460080262000ed4565b1980831691505092915050565b600062000f0f838362000ee1565b9150826002028217905092915050565b62000f2a8262000ca5565b67ffffffffffffffff81111562000f465762000f4562000cb0565b5b62000f52825462000d0e565b62000f5f82828562000e84565b600060209050601f83116001811462000f97576000841562000f82578287015190505b62000f8e858262000f01565b86555062000ffe565b601f19841662000fa78662000d43565b60005b8281101562000fd15784890151825560018201915060208501945060208101905062000faa565b8683101562000ff1578489015162000fed601f89168262000ee1565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062001038826200100b565b9050919050565b6200104a816200102b565b81146200105657600080fd5b50565b6000815190506200106a816200103f565b92915050565b60006020828403121562001089576200108862001006565b5b6000620010998482850162001059565b91505092915050565b620010ad816200102b565b82525050565b6000604082019050620010ca6000830185620010a2565b620010d96020830184620010a2565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200116e57808604811115620011465762001145620010e0565b5b6001851615620011565780820291505b808102905062001166856200110f565b945062001126565b94509492505050565b6000826200118957600190506200125c565b816200119957600090506200125c565b8160018114620011b25760028114620011bd57620011f3565b60019150506200125c565b60ff841115620011d257620011d1620010e0565b5b8360020a915084821115620011ec57620011eb620010e0565b5b506200125c565b5060208310610133831016604e8410600b84101617156200122d5782820a905083811115620012275762001226620010e0565b5b6200125c565b6200123c84848460016200111c565b92509050818404811115620012565762001255620010e0565b5b81810290505b9392505050565b600060ff82169050919050565b60006200127d8262000dcb565b91506200128a8362001263565b9250620012b97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001177565b905092915050565b6000620012ce8262000dcb565b9150620012db8362000dcb565b9250828202620012eb8162000dcb565b91508282048414831517620013055762001304620010e0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620013488262000dcb565b9150620013558362000dcb565b9250826200136857620013676200130c565b5b828204905092915050565b6000620013808262000dcb565b91506200138d8362000dcb565b9250828201905080821115620013a857620013a7620010e0565b5b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620013f7602083620013ae565b91506200140482620013bf565b602082019050919050565b600060208201905081810360008301526200142a81620013e8565b9050919050565b60008115159050919050565b620014488162001431565b82525050565b60006020820190506200146560008301846200143d565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000620014c9602683620013ae565b9150620014d6826200146b565b604082019050919050565b60006020820190508181036000830152620014fc81620014ba565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200153b601f83620013ae565b9150620015488262001503565b602082019050919050565b600060208201905081810360008301526200156e816200152c565b9050919050565b620015808162000dcb565b82525050565b60006020820190506200159d600083018462001575565b92915050565b60805160a0516146e2620015de600039600081816115470152611c730152600081816130bf015281816131a001526131c701526146e26000f3fe6080604052600436106101f15760003560e01c806378d188f81161010d578063bb85c6d1116100a0578063f21477d61161006f578063f21477d6146106f9578063f242ab4114610722578063f2fde38b1461074d578063f3dc390214610776578063fab82a8e146107a6576101f8565b8063bb85c6d11461062b578063cce383c414610654578063dd62ed3e1461067d578063e13b2007146106ba576101f8565b806399e5b5c8116100dc57806399e5b5c81461055f5780639a7a23d614610588578063a457c2d7146105b1578063a9059cbb146105ee576101f8565b806378d188f8146104c95780638a8c523c146104f25780638da5cb5b1461050957806395d89b4114610534576101f8565b806339509351116101855780636ed6a48d116101545780636ed6a48d1461043157806370a0823114610448578063715018a61461048557806377b5312c1461049c576101f8565b806339509351146103775780634363c486146103b45780634ada218b146103dd578063626d8c6414610408576101f8565b806323b872dd116101c157806323b872dd146102b9578063276404bb146102f6578063313ce5671461031f57806331f815111461034a576101f8565b8062d22c34146101fd57806306fdde0314610226578063095ea7b31461025157806318160ddd1461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f91906132ae565b6107d2565b005b34801561023257600080fd5b5061023b6108fd565b604051610248919061337e565b60405180910390f35b34801561025d57600080fd5b50610278600480360381019061027391906133fe565b61098f565b6040516102859190613459565b60405180910390f35b34801561029a57600080fd5b506102a36109ad565b6040516102b09190613483565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db919061349e565b6109b7565b6040516102ed9190613459565b60405180910390f35b34801561030257600080fd5b5061031d600480360381019061031891906132ae565b610aaf565b005b34801561032b57600080fd5b50610334610bda565b604051610341919061350d565b60405180910390f35b34801561035657600080fd5b5061035f610be3565b60405161036e93929190613528565b60405180910390f35b34801561038357600080fd5b5061039e600480360381019061039991906133fe565b610c09565b6040516103ab9190613459565b60405180910390f35b3480156103c057600080fd5b506103db60048036038101906103d6919061358b565b610cb5565b005b3480156103e957600080fd5b506103f2610dda565b6040516103ff9190613459565b60405180910390f35b34801561041457600080fd5b5061042f600480360381019061042a91906135cb565b610ded565b005b34801561043d57600080fd5b50610446610f0f565b005b34801561045457600080fd5b5061046f600480360381019061046a91906135f8565b610fd5565b60405161047c9190613483565b60405180910390f35b34801561049157600080fd5b5061049a61101d565b005b3480156104a857600080fd5b506104b16110a5565b6040516104c093929190613528565b60405180910390f35b3480156104d557600080fd5b506104f060048036038101906104eb919061358b565b6110cb565b005b3480156104fe57600080fd5b506105076111f0565b005b34801561051557600080fd5b5061051e6112d1565b60405161052b9190613634565b60405180910390f35b34801561054057600080fd5b506105496112fb565b604051610556919061337e565b60405180910390f35b34801561056b57600080fd5b50610586600480360381019061058191906135f8565b61138d565b005b34801561059457600080fd5b506105af60048036038101906105aa919061358b565b6114c9565b005b3480156105bd57600080fd5b506105d860048036038101906105d391906133fe565b6115e1565b6040516105e59190613459565b60405180910390f35b3480156105fa57600080fd5b50610615600480360381019061061091906133fe565b6116cc565b6040516106229190613459565b60405180910390f35b34801561063757600080fd5b50610652600480360381019061064d91906135f8565b6116ea565b005b34801561066057600080fd5b5061067b600480360381019061067691906135cb565b611826565b005b34801561068957600080fd5b506106a4600480360381019061069f919061364f565b611948565b6040516106b19190613483565b60405180910390f35b3480156106c657600080fd5b506106e160048036038101906106dc91906135f8565b6119cf565b6040516106f09392919061368f565b60405180910390f35b34801561070557600080fd5b50610720600480360381019061071b91906136c6565b611ac8565b005b34801561072e57600080fd5b50610737611c71565b6040516107449190613634565b60405180910390f35b34801561075957600080fd5b50610774600480360381019061076f91906135f8565b611c95565b005b34801561078257600080fd5b5061078b611d8c565b60405161079d96959493929190613719565b60405180910390f35b3480156107b257600080fd5b506107bb611dbb565b6040516107c992919061377a565b60405180910390f35b6107da611e0c565b73ffffffffffffffffffffffffffffffffffffffff166107f86112d1565b73ffffffffffffffffffffffffffffffffffffffff161461084e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610845906137ef565b60405180910390fd5b816012819055508060138190555060135460125461086c919061383e565b601181905550606460115411156108b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108af906138e4565b60405180910390fd5b7fcb5f36df892836a2eaedc349de29a7581176990398ee185d16eaa8f6c1abd8f16011546012546013546040516108f193929190613904565b60405180910390a15050565b60606003805461090c9061396a565b80601f01602080910402602001604051908101604052809291908181526020018280546109389061396a565b80156109855780601f1061095a57610100808354040283529160200191610985565b820191906000526020600020905b81548152906001019060200180831161096857829003601f168201915b5050505050905090565b60006109a361099c611e0c565b8484611e14565b6001905092915050565b6000600254905090565b60006109c4848484611fdd565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a0f611e0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8690613a0d565b60405180910390fd5b610aa385610a9b611e0c565b858403611e14565b60019150509392505050565b610ab7611e0c565b73ffffffffffffffffffffffffffffffffffffffff16610ad56112d1565b73ffffffffffffffffffffffffffffffffffffffff1614610b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b22906137ef565b60405180910390fd5b81600f8190555080601081905550601054600f54610b49919061383e565b600e819055506064600e541115610b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8c90613a9f565b60405180910390fd5b7f38513c502b0ab4834ac1df9502b76f75dcf7092469782cfd0db7fe664388e25e600e54600f54601054604051610bce93929190613904565b60405180910390a15050565b60006012905090565b6000806000600860009054906101000a900460ff1692506009549150600a549050909192565b6000610cab610c16611e0c565b848460016000610c24611e0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ca6919061383e565b611e14565b6001905092915050565b610cbd611e0c565b73ffffffffffffffffffffffffffffffffffffffff16610cdb6112d1565b73ffffffffffffffffffffffffffffffffffffffff1614610d31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d28906137ef565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610dce9190613459565b60405180910390a25050565b600c60009054906101000a900460ff1681565b610df5611e0c565b73ffffffffffffffffffffffffffffffffffffffff16610e136112d1565b73ffffffffffffffffffffffffffffffffffffffff1614610e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e60906137ef565b60405180910390fd5b6005811015610ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea490613b31565b60405180910390fd5b6103e8610eb86109ad565b82610ec39190613b51565b610ecd9190613bc2565b6009819055507f12528a3c61e0f3b2d6fc707a9fc58b1af86e252cad0d7f4c154ebeabb162dace600954604051610f049190613483565b60405180910390a150565b610f17611e0c565b73ffffffffffffffffffffffffffffffffffffffff16610f356112d1565b73ffffffffffffffffffffffffffffffffffffffff1614610f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f82906137ef565b60405180910390fd5b6000600860006101000a81548160ff021916908315150217905550427ff4eaa75eae08ae80c3daf791438dac1cff2cfd3b0bad2304ec7bbb067e50261660405160405180910390a2565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611025611e0c565b73ffffffffffffffffffffffffffffffffffffffff166110436112d1565b73ffffffffffffffffffffffffffffffffffffffff1614611099576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611090906137ef565b60405180910390fd5b6110a36000612a46565b565b6000806000600560159054906101000a900460ff16925060065491506007549050909192565b6110d3611e0c565b73ffffffffffffffffffffffffffffffffffffffff166110f16112d1565b73ffffffffffffffffffffffffffffffffffffffff1614611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113e906137ef565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc92826040516111e49190613459565b60405180910390a25050565b6111f8611e0c565b73ffffffffffffffffffffffffffffffffffffffff166112166112d1565b73ffffffffffffffffffffffffffffffffffffffff161461126c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611263906137ef565b60405180910390fd5b6001600c60006101000a81548160ff0219169083151502179055506001600560156101000a81548160ff021916908315150217905550427fb3da2db3dfc3778f99852546c6e9ab39ec253f9de7b0847afec61bd27878e92360405160405180910390a2565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461130a9061396a565b80601f01602080910402602001604051908101604052809291908181526020018280546113369061396a565b80156113835780601f1061135857610100808354040283529160200191611383565b820191906000526020600020905b81548152906001019060200180831161136657829003601f168201915b5050505050905090565b611395611e0c565b73ffffffffffffffffffffffffffffffffffffffff166113b36112d1565b73ffffffffffffffffffffffffffffffffffffffff1614611409576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611400906137ef565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fb91dbdeaf34f885ccae2d8abc3967cb03c079b6af2c7944e3893fd29427d75e760405160405180910390a380600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6114d1611e0c565b73ffffffffffffffffffffffffffffffffffffffff166114ef6112d1565b73ffffffffffffffffffffffffffffffffffffffff1614611545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153c906137ef565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ca90613c65565b60405180910390fd5b6115dd8282612b0c565b5050565b600080600160006115f0611e0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a490613cf7565b60405180910390fd5b6116c16116b8611e0c565b85858403611e14565b600191505092915050565b60006116e06116d9611e0c565b8484611fdd565b6001905092915050565b6116f2611e0c565b73ffffffffffffffffffffffffffffffffffffffff166117106112d1565b73ffffffffffffffffffffffffffffffffffffffff1614611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d906137ef565b60405180910390fd5b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8616c7a330e3cf61290821331585511f1e2778171e2b005fb5ec60cfe874dc6760405160405180910390a380600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61182e611e0c565b73ffffffffffffffffffffffffffffffffffffffff1661184c6112d1565b73ffffffffffffffffffffffffffffffffffffffff16146118a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611899906137ef565b60405180910390fd5b60028110156118e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118dd90613d63565b60405180910390fd5b6103e86118f16109ad565b826118fc9190613b51565b6119069190613bc2565b600a819055507fff3dd5e80294197918c284bbfc3dadd97d0b40ce92106110946329088f80068a600a5460405161193d9190613483565b60405180910390a150565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806000601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169250601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169150601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509193909250565b611ad0611e0c565b73ffffffffffffffffffffffffffffffffffffffff16611aee6112d1565b73ffffffffffffffffffffffffffffffffffffffff1614611b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3b906137ef565b60405180910390fd5b6001821015611b88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7f90613df5565b60405180910390fd5b81811015611bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc290613e87565b60405180910390fd5b82600560156101000a81548160ff02191690831515021790555061271082611bf16109ad565b611bfb9190613b51565b611c059190613bc2565b60068190555061271081611c176109ad565b611c219190613b51565b611c2b9190613bc2565b6007819055507f52cd2cdb42ff0eeec9362d7ed5b04f64c8d022697128b5378fc51cea7e63c779838383604051611c6493929190613528565b60405180910390a1505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611c9d611e0c565b73ffffffffffffffffffffffffffffffffffffffff16611cbb6112d1565b73ffffffffffffffffffffffffffffffffffffffff1614611d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d08906137ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7790613f19565b60405180910390fd5b611d8981612a46565b50565b600080600080600080600e549550600f5494506010549350601154925060125491506013549050909192939495565b600080600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915091509091565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7a90613fab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee99061403d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611fd09190613483565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361204c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612043906140cf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b290614161565b60405180910390fd5b600081036120d4576120cf83836000612bad565b612a41565b600860009054906101000a900460ff16156125cf576120f16112d1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561215f575061212f6112d1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121985750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121d2575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121eb5750600560149054906101000a900460ff16155b156125ce57600c60009054906101000a900460ff166122e557601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122a55750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6122e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122db906141f3565b60405180910390fd5b5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123885750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561242f57600a548111156123d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c990614285565b60405180910390fd5b6009546123de83610fd5565b826123e9919061383e565b111561242a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612421906142f1565b60405180910390fd5b6125cd565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124d25750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561252157600a5481111561251c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251390614383565b60405180910390fd5b6125cc565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125cb5760095461257e83610fd5565b82612589919061383e565b11156125ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c1906142f1565b60405180910390fd5b5b5b5b5b5b60006125da30610fd5565b9050600060065482101590508080156125ff5750600560159054906101000a900460ff165b80156126185750600560149054906101000a900460ff16155b801561266e5750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126c45750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561271a5750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561275e576001600560146101000a81548160ff021916908315150217905550612742612e2c565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128145750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561281e57600090505b60008115612a3157601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561288157506000601154115b1561291b576128ae60646128a060115488612fea90919063ffffffff16565b61300090919063ffffffff16565b9050601154601354826128c19190613b51565b6128cb9190613bc2565b601560008282546128dc919061383e565b92505081905550601154601254826128f49190613b51565b6128fe9190613bc2565b6014600082825461290f919061383e565b92505081905550612a0d565b601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561297657506000600e54115b15612a0c576129a36064612995600e5488612fea90919063ffffffff16565b61300090919063ffffffff16565b9050600e54601054826129b69190613b51565b6129c09190613bc2565b601560008282546129d1919061383e565b92505081905550600e54600f54826129e99190613b51565b6129f39190613bc2565b60146000828254612a04919061383e565b925050819055505b5b6000811115612a2257612a21873083612bad565b5b8085612a2e91906143a3565b94505b612a3c878787612bad565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c13906140cf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8290614161565b60405180910390fd5b612c96838383613016565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1390614449565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612daf919061383e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e139190613483565b60405180910390a3612e2684848461301b565b50505050565b6000612e3730610fd5565b905060008190506000808303612e4f57505050612fe8565b600754831115612e5f5760075492505b60008390506000479050612e7282613020565b6000612e87824761325d90919063ffffffff16565b90506000612eb286612ea460155485612fea90919063ffffffff16565b61300090919063ffffffff16565b905060006014819055506000601581905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051612f0a9061449a565b60006040518083038185875af1925050503d8060008114612f47576040519150601f19603f3d011682016040523d82523d6000602084013e612f4c565b606091505b505080955050600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612f989061449a565b60006040518083038185875af1925050503d8060008114612fd5576040519150601f19603f3d011682016040523d82523d6000602084013e612fda565b606091505b505080955050505050505050505b565b60008183612ff89190613b51565b905092915050565b6000818361300e9190613bc2565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561303d5761303c6144af565b5b60405190808252806020026020018201604052801561306b5781602001602082028036833780820191505090505b5090503081600081518110613083576130826144de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613128573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314c9190614522565b816001815181106131605761315f6144de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506131c5307f000000000000000000000000000000000000000000000000000000000000000084611e14565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613227959493929190614652565b600060405180830381600087803b15801561324157600080fd5b505af1158015613255573d6000803e3d6000fd5b505050505050565b6000818361326b91906143a3565b905092915050565b600080fd5b6000819050919050565b61328b81613278565b811461329657600080fd5b50565b6000813590506132a881613282565b92915050565b600080604083850312156132c5576132c4613273565b5b60006132d385828601613299565b92505060206132e485828601613299565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561332857808201518184015260208101905061330d565b60008484015250505050565b6000601f19601f8301169050919050565b6000613350826132ee565b61335a81856132f9565b935061336a81856020860161330a565b61337381613334565b840191505092915050565b600060208201905081810360008301526133988184613345565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133cb826133a0565b9050919050565b6133db816133c0565b81146133e657600080fd5b50565b6000813590506133f8816133d2565b92915050565b6000806040838503121561341557613414613273565b5b6000613423858286016133e9565b925050602061343485828601613299565b9150509250929050565b60008115159050919050565b6134538161343e565b82525050565b600060208201905061346e600083018461344a565b92915050565b61347d81613278565b82525050565b60006020820190506134986000830184613474565b92915050565b6000806000606084860312156134b7576134b6613273565b5b60006134c5868287016133e9565b93505060206134d6868287016133e9565b92505060406134e786828701613299565b9150509250925092565b600060ff82169050919050565b613507816134f1565b82525050565b600060208201905061352260008301846134fe565b92915050565b600060608201905061353d600083018661344a565b61354a6020830185613474565b6135576040830184613474565b949350505050565b6135688161343e565b811461357357600080fd5b50565b6000813590506135858161355f565b92915050565b600080604083850312156135a2576135a1613273565b5b60006135b0858286016133e9565b92505060206135c185828601613576565b9150509250929050565b6000602082840312156135e1576135e0613273565b5b60006135ef84828501613299565b91505092915050565b60006020828403121561360e5761360d613273565b5b600061361c848285016133e9565b91505092915050565b61362e816133c0565b82525050565b60006020820190506136496000830184613625565b92915050565b6000806040838503121561366657613665613273565b5b6000613674858286016133e9565b9250506020613685858286016133e9565b9150509250929050565b60006060820190506136a4600083018661344a565b6136b1602083018561344a565b6136be604083018461344a565b949350505050565b6000806000606084860312156136df576136de613273565b5b60006136ed86828701613576565b93505060206136fe86828701613299565b925050604061370f86828701613299565b9150509250925092565b600060c08201905061372e6000830189613474565b61373b6020830188613474565b6137486040830187613474565b6137556060830186613474565b6137626080830185613474565b61376f60a0830184613474565b979650505050505050565b600060408201905061378f6000830185613625565b61379c6020830184613625565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137d96020836132f9565b91506137e4826137a3565b602082019050919050565b60006020820190508181036000830152613808816137cc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061384982613278565b915061385483613278565b925082820190508082111561386c5761386b61380f565b5b92915050565b7f546f74616c2073656c6c206665652063616e6e6f74206265206869676865722060008201527f7468616e20313030250000000000000000000000000000000000000000000000602082015250565b60006138ce6029836132f9565b91506138d982613872565b604082019050919050565b600060208201905081810360008301526138fd816138c1565b9050919050565b60006060820190506139196000830186613474565b6139266020830185613474565b6139336040830184613474565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061398257607f821691505b6020821081036139955761399461393b565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006139f76028836132f9565b9150613a028261399b565b604082019050919050565b60006020820190508181036000830152613a26816139ea565b9050919050565b7f546f74616c20627579206665652063616e6e6f7420626520686967686572207460008201527f68616e2031303025000000000000000000000000000000000000000000000000602082015250565b6000613a896028836132f9565b9150613a9482613a2d565b604082019050919050565b60006020820190508181036000830152613ab881613a7c565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613b1b6024836132f9565b9150613b2682613abf565b604082019050919050565b60006020820190508181036000830152613b4a81613b0e565b9050919050565b6000613b5c82613278565b9150613b6783613278565b9250828202613b7581613278565b91508282048414831517613b8c57613b8b61380f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bcd82613278565b9150613bd883613278565b925082613be857613be7613b93565b5b828204905092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613c4f6039836132f9565b9150613c5a82613bf3565b604082019050919050565b60006020820190508181036000830152613c7e81613c42565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613ce16025836132f9565b9150613cec82613c85565b604082019050919050565b60006020820190508181036000830152613d1081613cd4565b9050919050565b7f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e3225600082015250565b6000613d4d6020836132f9565b9150613d5882613d17565b602082019050919050565b60006020820190508181036000830152613d7c81613d40565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e30312520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613ddf6034836132f9565b9150613dea82613d83565b604082019050919050565b60006020820190508181036000830152613e0e81613dd2565b9050919050565b7f6d6178696d756d20616d6f756e742063616e742062652068696768657220746860008201527f616e206d696e696d756d00000000000000000000000000000000000000000000602082015250565b6000613e71602a836132f9565b9150613e7c82613e15565b604082019050919050565b60006020820190508181036000830152613ea081613e64565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f036026836132f9565b9150613f0e82613ea7565b604082019050919050565b60006020820190508181036000830152613f3281613ef6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f956024836132f9565b9150613fa082613f39565b604082019050919050565b60006020820190508181036000830152613fc481613f88565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006140276022836132f9565b915061403282613fcb565b604082019050919050565b600060208201905081810360008301526140568161401a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006140b96025836132f9565b91506140c48261405d565b604082019050919050565b600060208201905081810360008301526140e8816140ac565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061414b6023836132f9565b9150614156826140ef565b604082019050919050565b6000602082019050818103600083015261417a8161413e565b9050919050565b7f5f7472616e736665723a3a2054726164696e67206973206e6f7420616374697660008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b60006141dd6022836132f9565b91506141e882614181565b604082019050919050565b6000602082019050818103600083015261420c816141d0565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d617854782e0000000000000000000000000000000000000000000000000000602082015250565b600061426f6026836132f9565b915061427a82614213565b604082019050919050565b6000602082019050818103600083015261429e81614262565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006142db6013836132f9565b91506142e6826142a5565b602082019050919050565b6000602082019050818103600083015261430a816142ce565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d617854782e00000000000000000000000000000000000000000000000000602082015250565b600061436d6027836132f9565b915061437882614311565b604082019050919050565b6000602082019050818103600083015261439c81614360565b9050919050565b60006143ae82613278565b91506143b983613278565b92508282039050818111156143d1576143d061380f565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006144336026836132f9565b915061443e826143d7565b604082019050919050565b6000602082019050818103600083015261446281614426565b9050919050565b600081905092915050565b50565b6000614484600083614469565b915061448f82614474565b600082019050919050565b60006144a582614477565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061451c816133d2565b92915050565b60006020828403121561453857614537613273565b5b60006145468482850161450d565b91505092915050565b6000819050919050565b6000819050919050565b600061457e6145796145748461454f565b614559565b613278565b9050919050565b61458e81614563565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6145c9816133c0565b82525050565b60006145db83836145c0565b60208301905092915050565b6000602082019050919050565b60006145ff82614594565b614609818561459f565b9350614614836145b0565b8060005b8381101561464557815161462c88826145cf565b9750614637836145e7565b925050600181019050614618565b5085935050505092915050565b600060a0820190506146676000830188613474565b6146746020830187614585565b818103604083015261468681866145f4565b90506146956060830185613625565b6146a26080830184613474565b969550505050505056fea2646970667358221220a8646104b2dde524a0900d39a378d126586487a7f38f6891493a0518a7e2c77664736f6c63430008130033