[ { "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": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "indexed": false, "internalType": "address[]", "name": "path", "type": "address[]" } ], "name": "SwapTokensForETH", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "EnableTxLimit", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_walletMax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "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": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "buyTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "checkWalletLimit", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deadAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "developmentWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dexPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dexRouter", "outputs": [ { "internalType": "contract IDexSwapRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "enableTxLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "enableWalletLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_adr", "type": "address" }, { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "excludeFromFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_adr", "type": "address" }, { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "excludeTxLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_adr", "type": "address" }, { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "excludeWalletLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": "", "type": "address" } ], "name": "isExcludedFromFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isMarketPair", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isTxLimitExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isWalletLimitExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "removeLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rescueFunds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "rescueTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_buySide", "type": "uint256" }, { "internalType": "uint256", "name": "_sellSide", "type": "uint256" } ], "name": "setBuyFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newWallet", "type": "address" } ], "name": "setDevelopmentWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_pair", "type": "address" } ], "name": "setManualPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_router", "type": "address" } ], "name": "setManualRouter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_pair", "type": "address" }, { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "setMarketPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLimit", "type": "uint256" } ], "name": "setMaxWalletLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_threshold", "type": "uint256" }, { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "bool", "name": "_limited", "type": "bool" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLimit", "type": "uint256" } ], "name": "setTxLimit", "outputs": [], "stateMutability": "nonpayable", "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": "swapbylimit", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "zeroAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c06040526040518060400160405280600781526020017f5065706520763200000000000000000000000000000000000000000000000000815250600190816200004a9190620010c7565b506040518060400160405280600681526020017f506570655632000000000000000000000000000000000000000000000000000081525060029081620000919190620010c7565b50601260035f6101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152505f73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1681525060026004556002600555606460075560035f9054906101000a900460ff16600a62000141919062001334565b66017e9d8602b40062000155919062001384565b600e55620001856064620001766001600e5462000c6460201b90919060201c565b62000ce460201b90919060201c565b600f55620001b56064620001a66001600e5462000c6460201b90919060201c565b62000ce460201b90919060201c565b601055620001e56064620001d66001600e5462000c6460201b90919060201c565b62000ce460201b90919060201c565b601155600160125f6101000a81548160ff0219169083151502179055506001601260016101000a81548160ff0219169083151502179055506001601260026101000a81548160ff0219169083151502179055506001601260036101000a81548160ff0219169083151502179055503480156200025f575f80fd5b50620002806200027462000d3560201b60201c565b62000d3c60201b60201c565b3360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000322573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000348919062001433565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003d4919062001433565b6040518363ffffffff1660e01b8152600401620003f392919062001474565b6020604051808303815f875af115801562000410573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000436919062001433565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550601460048190555060146005819055505f1960095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f1960095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600e5460085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405162000c559190620014b0565b60405180910390a3506200166f565b5f80830362000c76575f905062000cde565b5f828462000c85919062001384565b905082848262000c969190620014f8565b1462000cd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cd090620015b3565b60405180910390fd5b809150505b92915050565b5f62000d2d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000dfd60201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808311829062000e46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e3d91906200164d565b60405180910390fd5b505f838562000e569190620014f8565b9050809150509392505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000edf57607f821691505b60208210810362000ef55762000ef462000e9a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000f597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f1c565b62000f65868362000f1c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000faf62000fa962000fa38462000f7d565b62000f86565b62000f7d565b9050919050565b5f819050919050565b62000fca8362000f8f565b62000fe262000fd98262000fb6565b84845462000f28565b825550505050565b5f90565b62000ff862000fea565b6200100581848462000fbf565b505050565b5b818110156200102c57620010205f8262000fee565b6001810190506200100b565b5050565b601f8211156200107b57620010458162000efb565b620010508462000f0d565b8101602085101562001060578190505b620010786200106f8562000f0d565b8301826200100a565b50505b505050565b5f82821c905092915050565b5f6200109d5f198460080262001080565b1980831691505092915050565b5f620010b783836200108c565b9150826002028217905092915050565b620010d28262000e63565b67ffffffffffffffff811115620010ee57620010ed62000e6d565b5b620010fa825462000ec7565b6200110782828562001030565b5f60209050601f8311600181146200113d575f841562001128578287015190505b620011348582620010aa565b865550620011a3565b601f1984166200114d8662000efb565b5f5b8281101562001176578489015182556001820191506020850194506020810190506200114f565b8683101562001196578489015162001192601f8916826200108c565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562001235578086048111156200120d576200120c620011ab565b5b60018516156200121d5780820291505b80810290506200122d85620011d8565b9450620011ed565b94509492505050565b5f826200124f576001905062001321565b816200125e575f905062001321565b81600181146200127757600281146200128257620012b8565b600191505062001321565b60ff841115620012975762001296620011ab565b5b8360020a915084821115620012b157620012b0620011ab565b5b5062001321565b5060208310610133831016604e8410600b8410161715620012f25782820a905083811115620012ec57620012eb620011ab565b5b62001321565b620013018484846001620011e4565b925090508184048111156200131b576200131a620011ab565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620013408262000f7d565b91506200134d8362001328565b92506200137c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200123e565b905092915050565b5f620013908262000f7d565b91506200139d8362000f7d565b9250828202620013ad8162000f7d565b91508282048414831517620013c757620013c6620011ab565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620013fd82620013d2565b9050919050565b6200140f81620013f1565b81146200141a575f80fd5b50565b5f815190506200142d8162001404565b92915050565b5f602082840312156200144b576200144a620013ce565b5b5f6200145a848285016200141d565b91505092915050565b6200146e81620013f1565b82525050565b5f604082019050620014895f83018562001463565b62001498602083018462001463565b9392505050565b620014aa8162000f7d565b82525050565b5f602082019050620014c55f8301846200149f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620015048262000f7d565b9150620015118362000f7d565b925082620015245762001523620014cb565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200159b6021836200152f565b9150620015a8826200153f565b604082019050919050565b5f6020820190508181035f830152620015cc816200158d565b9050919050565b5f5b83811015620015f2578082015181840152602081019050620015d5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620016198262000e63565b6200162581856200152f565b935062001637818560208601620015d3565b6200164281620015fd565b840191505092915050565b5f6020820190508181035f8301526200166781846200160d565b905092915050565b60805160a05161447f6200169f5f395f8181610c330152610d9a01525f8181610d6f0152610dc6015261447f5ff3fe6080604052600436106102cc575f3560e01c8063751039fc11610174578063c867d60b116100db578063e9fd339411610094578063f2fde38b1161006e578063f2fde38b14610ad3578063f71b9bbf14610afb578063f872858a14610b23578063fb0ecfa414610b4d576102d3565b8063e9fd339414610a57578063ee828db314610a81578063f242ab4114610aa9576102d3565b8063c867d60b1461094f578063cc1776d31461098b578063cea9d26f146109b5578063dd62ed3e146109dd578063df8408fe14610a19578063e6b2603b14610a41576102d3565b8063a457c2d71161012d578063a457c2d714610835578063a9059cbb14610871578063ae85ade6146108ad578063b94b0aef146108d5578063c04a5414146108fd578063c16dd4a414610927576102d3565b8063751039fc1461073b5780637d1db4a514610751578063807c2d9c1461077b5780638b42507f146107a55780638da5cb5b146107e157806395d89b411461080b576102d3565b806342966c68116102335780635e42358c116101ec57806370a08231116101c657806370a0823114610699578063715018a6146106d5578063728d41c9146106eb57806372ac248614610713576102d3565b80635e42358c1461061d578063651a8987146106475780636ddd17131461066f576102d3565b806342966c68146105175780634974d88f1461053f5780634f7041a5146105675780635342acb41461059157806359fac517146105cd5780635c85974f146105f5576102d3565b806323b872dd1161028557806323b872dd146103e557806327c8f835146104215780632b112e491461044b578063313ce56714610475578063395093511461049f5780633ecad271146104db576102d3565b80630445b667146102d757806306fdde03146103015780630758d9241461032b5780630930907b14610355578063095ea7b31461037f57806318160ddd146103bb576102d3565b366102d357005b5f80fd5b3480156102e2575f80fd5b506102eb610b75565b6040516102f891906135c6565b60405180910390f35b34801561030c575f80fd5b50610315610b7b565b6040516103229190613669565b60405180910390f35b348015610336575f80fd5b5061033f610c0b565b60405161034c9190613703565b60405180910390f35b348015610360575f80fd5b50610369610c31565b604051610376919061373c565b60405180910390f35b34801561038a575f80fd5b506103a560048036038101906103a091906137ad565b610c55565b6040516103b29190613805565b60405180910390f35b3480156103c6575f80fd5b506103cf610c72565b6040516103dc91906135c6565b60405180910390f35b3480156103f0575f80fd5b5061040b6004803603810190610406919061381e565b610c7b565b6040516104189190613805565b60405180910390f35b34801561042c575f80fd5b50610435610d6d565b604051610442919061373c565b60405180910390f35b348015610456575f80fd5b5061045f610d91565b60405161046c91906135c6565b60405180910390f35b348015610480575f80fd5b50610489610e0e565b6040516104969190613889565b60405180910390f35b3480156104aa575f80fd5b506104c560048036038101906104c091906137ad565b610e23565b6040516104d29190613805565b60405180910390f35b3480156104e6575f80fd5b5061050160048036038101906104fc91906138a2565b610ed1565b60405161050e9190613805565b60405180910390f35b348015610522575f80fd5b5061053d600480360381019061053891906138cd565b610eee565b005b34801561054a575f80fd5b5061056560048036038101906105609190613922565b611087565b005b348015610572575f80fd5b5061057b611120565b60405161058891906135c6565b60405180910390f35b34801561059c575f80fd5b506105b760048036038101906105b291906138a2565b611126565b6040516105c49190613805565b60405180910390f35b3480156105d8575f80fd5b506105f360048036038101906105ee91906138a2565b611143565b005b348015610600575f80fd5b5061061b600480360381019061061691906138cd565b611203565b005b348015610628575f80fd5b50610631611289565b60405161063e9190613805565b60405180910390f35b348015610652575f80fd5b5061066d6004803603810190610668919061394d565b61129c565b005b34801561067a575f80fd5b50610683611370565b6040516106909190613805565b60405180910390f35b3480156106a4575f80fd5b506106bf60048036038101906106ba91906138a2565b611382565b6040516106cc91906135c6565b60405180910390f35b3480156106e0575f80fd5b506106e96113c8565b005b3480156106f6575f80fd5b50610711600480360381019061070c91906138cd565b61144f565b005b34801561071e575f80fd5b50610739600480360381019061073491906138a2565b6114d5565b005b348015610746575f80fd5b5061074f611594565b005b34801561075c575f80fd5b50610765611659565b60405161077291906135c6565b60405180910390f35b348015610786575f80fd5b5061078f61165f565b60405161079c91906135c6565b60405180910390f35b3480156107b0575f80fd5b506107cb60048036038101906107c691906138a2565b611665565b6040516107d89190613805565b60405180910390f35b3480156107ec575f80fd5b506107f5611682565b604051610802919061373c565b60405180910390f35b348015610816575f80fd5b5061081f6116a9565b60405161082c9190613669565b60405180910390f35b348015610840575f80fd5b5061085b600480360381019061085691906137ad565b611739565b6040516108689190613805565b60405180910390f35b34801561087c575f80fd5b50610897600480360381019061089291906137ad565b611801565b6040516108a49190613805565b60405180910390f35b3480156108b8575f80fd5b506108d360048036038101906108ce919061394d565b61181f565b005b3480156108e0575f80fd5b506108fb60048036038101906108f6919061398b565b6118f3565b005b348015610908575f80fd5b506109116119c1565b60405161091e919061373c565b60405180910390f35b348015610932575f80fd5b5061094d6004803603810190610948919061394d565b6119e6565b005b34801561095a575f80fd5b50610975600480360381019061097091906138a2565b611b15565b6040516109829190613805565b60405180910390f35b348015610996575f80fd5b5061099f611b32565b6040516109ac91906135c6565b60405180910390f35b3480156109c0575f80fd5b506109db60048036038101906109d6919061381e565b611b38565b005b3480156109e8575f80fd5b50610a0360048036038101906109fe91906139db565b611d04565b604051610a1091906135c6565b60405180910390f35b348015610a24575f80fd5b50610a3f6004803603810190610a3a919061394d565b611d86565b005b348015610a4c575f80fd5b50610a55611e5a565b005b348015610a62575f80fd5b50610a6b611f94565b604051610a789190613805565b60405180910390f35b348015610a8c575f80fd5b50610aa76004803603810190610aa29190613922565b611fa7565b005b348015610ab4575f80fd5b50610abd612040565b604051610aca919061373c565b60405180910390f35b348015610ade575f80fd5b50610af96004803603810190610af491906138a2565b612065565b005b348015610b06575f80fd5b50610b216004803603810190610b1c91906138a2565b61215b565b005b348015610b2e575f80fd5b50610b3761221a565b604051610b449190613805565b60405180910390f35b348015610b58575f80fd5b50610b736004803603810190610b6e9190613a19565b61222d565b005b60115481565b606060018054610b8a90613a84565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb690613a84565b8015610c015780601f10610bd857610100808354040283529160200191610c01565b820191905f5260205f20905b815481529060010190602001808311610be457829003601f168201915b5050505050905090565b601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610c68610c616122bb565b84846122c2565b6001905092915050565b5f600e54905090565b5f610c87848484612485565b50610d6284610c946122bb565b610d5d856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e6365000000000000000081525060095f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d146122bb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a2d9092919063ffffffff16565b6122c2565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610e09610dbe7f0000000000000000000000000000000000000000000000000000000000000000611382565b610dfb610dea7f0000000000000000000000000000000000000000000000000000000000000000611382565b600e54612a8f90919063ffffffff16565b612a8f90919063ffffffff16565b905090565b5f60035f9054906101000a900460ff16905090565b5f610ec7610e2f6122bb565b84610ec28560095f610e3f6122bb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ad890919063ffffffff16565b6122c2565b6001905092915050565b600b602052805f5260405f205f915054906101000a900460ff1681565b5f3390508160085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6990613afe565b60405180910390fd5b610fc28260085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a8f90919063ffffffff16565b60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061101882600e54612a8f90919063ffffffff16565b600e819055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161107b91906135c6565b60405180910390a35050565b61108f6122bb565b73ffffffffffffffffffffffffffffffffffffffff166110ad611682565b73ffffffffffffffffffffffffffffffffffffffff1614611103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fa90613b66565b60405180910390fd5b80601260036101000a81548160ff02191690831515021790555050565b60045481565b600a602052805f5260405f205f915054906101000a900460ff1681565b61114b6122bb565b73ffffffffffffffffffffffffffffffffffffffff16611169611682565b73ffffffffffffffffffffffffffffffffffffffff16146111bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b690613b66565b60405180910390fd5b80601260046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61120b6122bb565b73ffffffffffffffffffffffffffffffffffffffff16611229611682565b73ffffffffffffffffffffffffffffffffffffffff161461127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127690613b66565b60405180910390fd5b80600f8190555050565b601260029054906101000a900460ff1681565b6112a46122bb565b73ffffffffffffffffffffffffffffffffffffffff166112c2611682565b73ffffffffffffffffffffffffffffffffffffffff1614611318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130f90613b66565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60125f9054906101000a900460ff1681565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6113d06122bb565b73ffffffffffffffffffffffffffffffffffffffff166113ee611682565b73ffffffffffffffffffffffffffffffffffffffff1614611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143b90613b66565b60405180910390fd5b61144d5f612b35565b565b6114576122bb565b73ffffffffffffffffffffffffffffffffffffffff16611475611682565b73ffffffffffffffffffffffffffffffffffffffff16146114cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c290613b66565b60405180910390fd5b8060108190555050565b6114dd6122bb565b73ffffffffffffffffffffffffffffffffffffffff166114fb611682565b73ffffffffffffffffffffffffffffffffffffffff1614611551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154890613b66565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161a90613bce565b60405180910390fd5b5f601260026101000a81548160ff0219169083151502179055505f601260036101000a81548160ff021916908315150217905550565b600f5481565b60105481565b600d602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546116b890613a84565b80601f01602080910402602001604051908101604052809291908181526020018280546116e490613a84565b801561172f5780601f106117065761010080835404028352916020019161172f565b820191905f5260205f20905b81548152906001019060200180831161171257829003601f168201915b5050505050905090565b5f6117f76117456122bb565b846117f2856040518060600160405280602581526020016144256025913960095f61176e6122bb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a2d9092919063ffffffff16565b6122c2565b6001905092915050565b5f61181461180d6122bb565b8484612485565b506001905092915050565b6118276122bb565b73ffffffffffffffffffffffffffffffffffffffff16611845611682565b73ffffffffffffffffffffffffffffffffffffffff161461189b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189290613b66565b60405180910390fd5b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611982576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197990613bce565b60405180910390fd5b8160125f6101000a81548160ff02191690831515021790555080601260016101000a81548160ff02191690831515021790555082601181905550505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6119ee6122bb565b73ffffffffffffffffffffffffffffffffffffffff16611a0c611682565b73ffffffffffffffffffffffffffffffffffffffff1614611a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5990613b66565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015611b115780600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5050565b600c602052805f5260405f205f915054906101000a900460ff1681565b60055481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbe90613bce565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff168383604051602401611bf2929190613bec565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c7c9190613c57565b5f604051808303815f865af19150503d805f8114611cb5576040519150601f19603f3d011682016040523d82523d5f602084013e611cba565b606091505b5050905080611cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf590613cb7565b60405180910390fd5b50505050565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611d8e6122bb565b73ffffffffffffffffffffffffffffffffffffffff16611dac611682565b73ffffffffffffffffffffffffffffffffffffffff1614611e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df990613b66565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee090613bce565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051611f0e90613cf8565b5f6040518083038185875af1925050503d805f8114611f48576040519150601f19603f3d011682016040523d82523d5f602084013e611f4d565b606091505b5050905080611f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8890613d56565b60405180910390fd5b50565b601260019054906101000a900460ff1681565b611faf6122bb565b73ffffffffffffffffffffffffffffffffffffffff16611fcd611682565b73ffffffffffffffffffffffffffffffffffffffff1614612023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201a90613b66565b60405180910390fd5b80601260026101000a81548160ff02191690831515021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61206d6122bb565b73ffffffffffffffffffffffffffffffffffffffff1661208b611682565b73ffffffffffffffffffffffffffffffffffffffff16146120e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d890613b66565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361214f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214690613de4565b60405180910390fd5b61215881612b35565b50565b6121636122bb565b73ffffffffffffffffffffffffffffffffffffffff16612181611682565b73ffffffffffffffffffffffffffffffffffffffff16146121d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ce90613b66565b60405180910390fd5b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260039054906101000a900460ff1681565b6122356122bb565b73ffffffffffffffffffffffffffffffffffffffff16612253611682565b73ffffffffffffffffffffffffffffffffffffffff16146122a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a090613b66565b60405180910390fd5b81600481905550806005819055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232790613e72565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361239e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239590613f00565b60405180910390fd5b8060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161247891906135c6565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036124bd575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124f4575f80fd5b5f82116124ff575f80fd5b601360149054906101000a900460ff16156125265761251f848484612bf6565b9050612a26565b5f61253030611382565b90505f60115482101590508080156125555750601360149054906101000a900460ff16155b80156125a85750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156125bf575060125f9054906101000a900460ff165b80156126125750600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156126655750600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156126745761267382612dc0565b5b600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156127125750600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561272a5750601260029054906101000a900460ff165b1561277557600f54841115612774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276b90613f68565b60405180910390fd5b5b6127fc846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060085f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a2d9092919063ffffffff16565b60085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6128488787612ea6565b61285c57612857878787613002565b61285e565b845b9050601260039054906101000a900460ff1680156128c35750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612928576010546128e6826128d889611382565b612ad890919063ffffffff16565b1115612927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291e90613fd0565b60405180910390fd5b5b6129788160085f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ad890919063ffffffff16565b60085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a1691906135c6565b60405180910390a3600193505050505b9392505050565b5f838311158290612a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6b9190613669565b60405180910390fd5b505f8385612a82919061401b565b9050809150509392505050565b5f612ad083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a2d565b905092915050565b5f808284612ae6919061404e565b905083811015612b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b22906140cb565b60405180910390fd5b8091505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f612c7e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a2d9092919063ffffffff16565b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612d0f8260085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ad890919063ffffffff16565b60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612dad91906135c6565b60405180910390a3600190509392505050565b6001601360146101000a81548160ff021916908315150217905550601260019054906101000a900460ff1615612df65760115490505b5f479050612e038261321b565b5f612e178247612a8f90919063ffffffff16565b90505f811115612e875760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612e85573d5f803e3d5ffd5b505b50505f601360146101000a81548160ff02191690831515021790555050565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612f425750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612f505760019050612ffc565b600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612feb5750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612ff8575f9050612ffc565b5f90505b92915050565b5f80600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156130835761307c60075461306e6004548661348d90919063ffffffff16565b61350490919063ffffffff16565b90506130ff565b600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156130fe576130fb6007546130ed6005548661348d90919063ffffffff16565b61350490919063ffffffff16565b90505b5b5f8111156131fe576131578160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ad890919063ffffffff16565b60085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131f591906135c6565b60405180910390a35b6132118184612a8f90919063ffffffff16565b9150509392505050565b5f600267ffffffffffffffff811115613237576132366140e9565b5b6040519080825280602002602001820160405280156132655781602001602082028036833780820191505090505b50905030815f8151811061327c5761327b614116565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613321573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133459190614157565b8160018151811061335957613358614116565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506133c030601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846122c2565b601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613423959493929190614272565b5f604051808303815f87803b15801561343a575f80fd5b505af115801561344c573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516134819291906142ca565b60405180910390a15050565b5f80830361349d575f90506134fe565b5f82846134aa91906142f8565b90508284826134b99190614366565b146134f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134f090614406565b60405180910390fd5b809150505b92915050565b5f61354583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061354d565b905092915050565b5f8083118290613593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161358a9190613669565b60405180910390fd5b505f83856135a19190614366565b9050809150509392505050565b5f819050919050565b6135c0816135ae565b82525050565b5f6020820190506135d95f8301846135b7565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156136165780820151818401526020810190506135fb565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61363b826135df565b61364581856135e9565b93506136558185602086016135f9565b61365e81613621565b840191505092915050565b5f6020820190508181035f8301526136818184613631565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6136cb6136c66136c184613689565b6136a8565b613689565b9050919050565b5f6136dc826136b1565b9050919050565b5f6136ed826136d2565b9050919050565b6136fd816136e3565b82525050565b5f6020820190506137165f8301846136f4565b92915050565b5f61372682613689565b9050919050565b6137368161371c565b82525050565b5f60208201905061374f5f83018461372d565b92915050565b5f80fd5b6137628161371c565b811461376c575f80fd5b50565b5f8135905061377d81613759565b92915050565b61378c816135ae565b8114613796575f80fd5b50565b5f813590506137a781613783565b92915050565b5f80604083850312156137c3576137c2613755565b5b5f6137d08582860161376f565b92505060206137e185828601613799565b9150509250929050565b5f8115159050919050565b6137ff816137eb565b82525050565b5f6020820190506138185f8301846137f6565b92915050565b5f805f6060848603121561383557613834613755565b5b5f6138428682870161376f565b93505060206138538682870161376f565b925050604061386486828701613799565b9150509250925092565b5f60ff82169050919050565b6138838161386e565b82525050565b5f60208201905061389c5f83018461387a565b92915050565b5f602082840312156138b7576138b6613755565b5b5f6138c48482850161376f565b91505092915050565b5f602082840312156138e2576138e1613755565b5b5f6138ef84828501613799565b91505092915050565b613901816137eb565b811461390b575f80fd5b50565b5f8135905061391c816138f8565b92915050565b5f6020828403121561393757613936613755565b5b5f6139448482850161390e565b91505092915050565b5f806040838503121561396357613962613755565b5b5f6139708582860161376f565b92505060206139818582860161390e565b9150509250929050565b5f805f606084860312156139a2576139a1613755565b5b5f6139af86828701613799565b93505060206139c08682870161390e565b92505060406139d18682870161390e565b9150509250925092565b5f80604083850312156139f1576139f0613755565b5b5f6139fe8582860161376f565b9250506020613a0f8582860161376f565b9150509250929050565b5f8060408385031215613a2f57613a2e613755565b5b5f613a3c85828601613799565b9250506020613a4d85828601613799565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613a9b57607f821691505b602082108103613aae57613aad613a57565b5b50919050565b7f496e73756666696369656e742042616c616e63652100000000000000000000005f82015250565b5f613ae86015836135e9565b9150613af382613ab4565b602082019050919050565b5f6020820190508181035f830152613b1581613adc565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613b506020836135e9565b9150613b5b82613b1c565b602082019050919050565b5f6020820190508181035f830152613b7d81613b44565b9050919050565b7f496e76616c69642043616c6c65720000000000000000000000000000000000005f82015250565b5f613bb8600e836135e9565b9150613bc382613b84565b602082019050919050565b5f6020820190508181035f830152613be581613bac565b9050919050565b5f604082019050613bff5f83018561372d565b613c0c60208301846135b7565b9392505050565b5f81519050919050565b5f81905092915050565b5f613c3182613c13565b613c3b8185613c1d565b9350613c4b8185602086016135f9565b80840191505092915050565b5f613c628284613c27565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f613ca16014836135e9565b9150613cac82613c6d565b602082019050919050565b5f6020820190508181035f830152613cce81613c95565b9050919050565b50565b5f613ce35f83613c1d565b9150613cee82613cd5565b5f82019050919050565b5f613d0282613cd8565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f613d406014836135e9565b9150613d4b82613d0c565b602082019050919050565b5f6020820190508181035f830152613d6d81613d34565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613dce6026836135e9565b9150613dd982613d74565b604082019050919050565b5f6020820190508181035f830152613dfb81613dc2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613e5c6024836135e9565b9150613e6782613e02565b604082019050919050565b5f6020820190508181035f830152613e8981613e50565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613eea6022836135e9565b9150613ef582613e90565b604082019050919050565b5f6020820190508181035f830152613f1781613ede565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f613f526013836135e9565b9150613f5d82613f1e565b602082019050919050565b5f6020820190508181035f830152613f7f81613f46565b9050919050565b7f457863656564732057616c6c65740000000000000000000000000000000000005f82015250565b5f613fba600e836135e9565b9150613fc582613f86565b602082019050919050565b5f6020820190508181035f830152613fe781613fae565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614025826135ae565b9150614030836135ae565b925082820390508181111561404857614047613fee565b5b92915050565b5f614058826135ae565b9150614063836135ae565b925082820190508082111561407b5761407a613fee565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6140b5601b836135e9565b91506140c082614081565b602082019050919050565b5f6020820190508181035f8301526140e2816140a9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061415181613759565b92915050565b5f6020828403121561416c5761416b613755565b5b5f61417984828501614143565b91505092915050565b5f819050919050565b5f6141a56141a061419b84614182565b6136a8565b6135ae565b9050919050565b6141b58161418b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6141ed8161371c565b82525050565b5f6141fe83836141e4565b60208301905092915050565b5f602082019050919050565b5f614220826141bb565b61422a81856141c5565b9350614235836141d5565b805f5b8381101561426557815161424c88826141f3565b97506142578361420a565b925050600181019050614238565b5085935050505092915050565b5f60a0820190506142855f8301886135b7565b61429260208301876141ac565b81810360408301526142a48186614216565b90506142b3606083018561372d565b6142c060808301846135b7565b9695505050505050565b5f6040820190506142dd5f8301856135b7565b81810360208301526142ef8184614216565b90509392505050565b5f614302826135ae565b915061430d836135ae565b925082820261431b816135ae565b9150828204841483151761433257614331613fee565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614370826135ae565b915061437b836135ae565b92508261438b5761438a614339565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6143f06021836135e9565b91506143fb82614396565b604082019050919050565b5f6020820190508181035f83015261441d816143e4565b905091905056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122009757a10df41ff77ac7d78934f9932eeeaf5d11c9ab9dff5a3cd76b738326c7164736f6c63430008150033