[ { "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": [], "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": [], "name": "enableTrading", "outputs": [], "stateMutability": "nonpayable", "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": [ { "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": "launchedAt", "outputs": [ { "internalType": "uint256", "name": "", "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": "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" }, { "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": [], "name": "tradingEnable", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "zeroAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c06040526040518060400160405280600981526020017f4c6962726120496e750000000000000000000000000000000000000000000000815250600290816200004a9190620010af565b506040518060400160405280600681526020017fe29a96efb88f000000000000000000000000000000000000000000000000000081525060039081620000919190620010af565b50601260045f6101000a81548160ff021916908360ff16021790555060045f9054906101000a900460ff16600a620000ca91906200131c565b633b9aca00620000db91906200136c565b6005556200010b6064620000fc600260055462000c4c60201b90919060201c565b62000ccc60201b90919060201c565b6006556200013b60646200012c600260055462000c4c60201b90919060201c565b62000ccc60201b90919060201c565b600755606460085562000170606462000161600160055462000c4c60201b90919060201c565b62000ccc60201b90919060201c565b600f55600160105f6101000a81548160ff0219169083151502179055506001601060016101000a81548160ff0219169083151502179055506001601060026101000a81548160ff0219169083151502179055506001601060036101000a81548160ff0219169083151502179055506019601155601960125561dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152505f73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff168152503480156200025c575f80fd5b506200027d6200027162000d1d60201b60201c565b62000d2460201b60201c565b3360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200031f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200034591906200141b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003d191906200141b565b6040518363ffffffff1660e01b8152600401620003f09291906200145c565b6020604051808303815f875af11580156200040d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200043391906200141b565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f19600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f19600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060055460095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000c3d919062001498565b60405180910390a35062001657565b5f80830362000c5e575f905062000cc6565b5f828462000c6d91906200136c565b905082848262000c7e9190620014e0565b1462000cc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cb8906200159b565b60405180910390fd5b809150505b92915050565b5f62000d1583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000de560201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808311829062000e2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e25919062001635565b60405180910390fd5b505f838562000e3e9190620014e0565b9050809150509392505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000ec757607f821691505b60208210810362000edd5762000edc62000e82565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000f417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f04565b62000f4d868362000f04565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000f9762000f9162000f8b8462000f65565b62000f6e565b62000f65565b9050919050565b5f819050919050565b62000fb28362000f77565b62000fca62000fc18262000f9e565b84845462000f10565b825550505050565b5f90565b62000fe062000fd2565b62000fed81848462000fa7565b505050565b5b818110156200101457620010085f8262000fd6565b60018101905062000ff3565b5050565b601f82111562001063576200102d8162000ee3565b620010388462000ef5565b8101602085101562001048578190505b62001060620010578562000ef5565b83018262000ff2565b50505b505050565b5f82821c905092915050565b5f620010855f198460080262001068565b1980831691505092915050565b5f6200109f838362001074565b9150826002028217905092915050565b620010ba8262000e4b565b67ffffffffffffffff811115620010d657620010d562000e55565b5b620010e2825462000eaf565b620010ef82828562001018565b5f60209050601f83116001811462001125575f841562001110578287015190505b6200111c858262001092565b8655506200118b565b601f198416620011358662000ee3565b5f5b828110156200115e5784890151825560018201915060208501945060208101905062001137565b868310156200117e57848901516200117a601f89168262001074565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200121d57808604811115620011f557620011f462001193565b5b6001851615620012055780820291505b80810290506200121585620011c0565b9450620011d5565b94509492505050565b5f8262001237576001905062001309565b8162001246575f905062001309565b81600181146200125f57600281146200126a57620012a0565b600191505062001309565b60ff8411156200127f576200127e62001193565b5b8360020a91508482111562001299576200129862001193565b5b5062001309565b5060208310610133831016604e8410600b8410161715620012da5782820a905083811115620012d457620012d362001193565b5b62001309565b620012e98484846001620011cc565b9250905081840481111562001303576200130262001193565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620013288262000f65565b9150620013358362001310565b9250620013647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001226565b905092915050565b5f620013788262000f65565b9150620013858362000f65565b9250828202620013958162000f65565b91508282048414831517620013af57620013ae62001193565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620013e582620013ba565b9050919050565b620013f781620013d9565b811462001402575f80fd5b50565b5f815190506200141581620013ec565b92915050565b5f60208284031215620014335762001432620013b6565b5b5f620014428482850162001405565b91505092915050565b6200145681620013d9565b82525050565b5f604082019050620014715f8301856200144b565b6200148060208301846200144b565b9392505050565b620014928162000f65565b82525050565b5f602082019050620014ad5f83018462001487565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620014ec8262000f65565b9150620014f98362000f65565b9250826200150c576200150b620014b3565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200158360218362001517565b9150620015908262001527565b604082019050919050565b5f6020820190508181035f830152620015b48162001575565b9050919050565b5f5b83811015620015da578082015181840152602081019050620015bd565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620016018262000e4b565b6200160d818562001517565b93506200161f818560208601620015bb565b6200162a81620015e5565b840191505092915050565b5f6020820190508181035f8301526200164f8184620015f5565b905092915050565b60805160a0516142e8620016795f395f610bdf01525f610d2c01526142e85ff3fe6080604052600436106102b1575f3560e01c80637d1db4a511610174578063c16dd4a4116100db578063e6b2603b11610094578063f242ab411161006e578063f242ab4114610a7e578063f2fde38b14610aa8578063f872858a14610ad0578063fb0ecfa414610afa576102b8565b8063e6b2603b14610a16578063e9fd339414610a2c578063ee828db314610a56576102b8565b8063c16dd4a4146108fc578063c867d60b14610924578063cc1776d314610960578063cea9d26f1461098a578063dd62ed3e146109b2578063df8408fe146109ee576102b8565b8063a457c2d71161012d578063a457c2d7146107e0578063a9059cbb1461081c578063ae85ade614610858578063b94b0aef14610880578063bf56b371146108a8578063c04a5414146108d2576102b8565b80637d1db4a5146106e6578063807c2d9c146107105780638a8c523c1461073a5780638b42507f146107505780638da5cb5b1461078c57806395d89b41146107b6576102b8565b80634974d88f116102185780636ddd1713116101d15780636ddd17131461060457806370a082311461062e578063715018a61461066a578063728d41c91461068057806372ac2486146106a8578063751039fc146106d0576102b8565b80634974d88f146104fc5780634f7041a5146105245780635342acb41461054e5780635c85974f1461058a5780635e42358c146105b2578063651a8987146105dc576102b8565b806318160ddd1161026a57806318160ddd146103ca57806323b872dd146103f457806327c8f83514610430578063313ce5671461045a57806339509351146104845780633ecad271146104c0576102b8565b80630445b667146102bc57806306fdde03146102e65780630758d924146103105780630930907b1461033a578063095ea7b3146103645780631693e8d4146103a0576102b8565b366102b857005b5f80fd5b3480156102c7575f80fd5b506102d0610b22565b6040516102dd91906133c7565b60405180910390f35b3480156102f1575f80fd5b506102fa610b28565b604051610307919061346a565b60405180910390f35b34801561031b575f80fd5b50610324610bb8565b6040516103319190613504565b60405180910390f35b348015610345575f80fd5b5061034e610bdd565b60405161035b919061353d565b60405180910390f35b34801561036f575f80fd5b5061038a600480360381019061038591906135ae565b610c01565b6040516103979190613606565b60405180910390f35b3480156103ab575f80fd5b506103b4610c1e565b6040516103c19190613606565b60405180910390f35b3480156103d5575f80fd5b506103de610c2f565b6040516103eb91906133c7565b60405180910390f35b3480156103ff575f80fd5b5061041a6004803603810190610415919061361f565b610c38565b6040516104279190613606565b60405180910390f35b34801561043b575f80fd5b50610444610d2a565b604051610451919061353d565b60405180910390f35b348015610465575f80fd5b5061046e610d4e565b60405161047b919061368a565b60405180910390f35b34801561048f575f80fd5b506104aa60048036038101906104a591906135ae565b610d63565b6040516104b79190613606565b60405180910390f35b3480156104cb575f80fd5b506104e660048036038101906104e191906136a3565b610e11565b6040516104f39190613606565b60405180910390f35b348015610507575f80fd5b50610522600480360381019061051d91906136f8565b610e2e565b005b34801561052f575f80fd5b50610538610ec7565b60405161054591906133c7565b60405180910390f35b348015610559575f80fd5b50610574600480360381019061056f91906136a3565b610ecd565b6040516105819190613606565b60405180910390f35b348015610595575f80fd5b506105b060048036038101906105ab9190613723565b610eea565b005b3480156105bd575f80fd5b506105c6610f70565b6040516105d39190613606565b60405180910390f35b3480156105e7575f80fd5b5061060260048036038101906105fd919061374e565b610f83565b005b34801561060f575f80fd5b50610618611057565b6040516106259190613606565b60405180910390f35b348015610639575f80fd5b50610654600480360381019061064f91906136a3565b611069565b60405161066191906133c7565b60405180910390f35b348015610675575f80fd5b5061067e6110af565b005b34801561068b575f80fd5b506106a660048036038101906106a19190613723565b611136565b005b3480156106b3575f80fd5b506106ce60048036038101906106c991906136a3565b6111bc565b005b3480156106db575f80fd5b506106e461127b565b005b3480156106f1575f80fd5b506106fa611340565b60405161070791906133c7565b60405180910390f35b34801561071b575f80fd5b50610724611346565b60405161073191906133c7565b60405180910390f35b348015610745575f80fd5b5061074e61134c565b005b34801561075b575f80fd5b50610776600480360381019061077191906136a3565b611439565b6040516107839190613606565b60405180910390f35b348015610797575f80fd5b506107a0611456565b6040516107ad919061353d565b60405180910390f35b3480156107c1575f80fd5b506107ca61147d565b6040516107d7919061346a565b60405180910390f35b3480156107eb575f80fd5b50610806600480360381019061080191906135ae565b61150d565b6040516108139190613606565b60405180910390f35b348015610827575f80fd5b50610842600480360381019061083d91906135ae565b6115d5565b60405161084f9190613606565b60405180910390f35b348015610863575f80fd5b5061087e6004803603810190610879919061374e565b6115f3565b005b34801561088b575f80fd5b506108a660048036038101906108a1919061378c565b6116c7565b005b3480156108b3575f80fd5b506108bc611795565b6040516108c991906133c7565b60405180910390f35b3480156108dd575f80fd5b506108e661179b565b6040516108f3919061353d565b60405180910390f35b348015610907575f80fd5b50610922600480360381019061091d919061374e565b6117c0565b005b34801561092f575f80fd5b5061094a600480360381019061094591906136a3565b6118ef565b6040516109579190613606565b60405180910390f35b34801561096b575f80fd5b5061097461190c565b60405161098191906133c7565b60405180910390f35b348015610995575f80fd5b506109b060048036038101906109ab919061361f565b611912565b005b3480156109bd575f80fd5b506109d860048036038101906109d391906137dc565b611ade565b6040516109e591906133c7565b60405180910390f35b3480156109f9575f80fd5b50610a146004803603810190610a0f919061374e565b611b60565b005b348015610a21575f80fd5b50610a2a611c34565b005b348015610a37575f80fd5b50610a40611d6e565b604051610a4d9190613606565b60405180910390f35b348015610a61575f80fd5b50610a7c6004803603810190610a7791906136f8565b611d81565b005b348015610a89575f80fd5b50610a92611e1a565b604051610a9f919061353d565b60405180910390f35b348015610ab3575f80fd5b50610ace6004803603810190610ac991906136a3565b611e3f565b005b348015610adb575f80fd5b50610ae4611f35565b604051610af19190613606565b60405180910390f35b348015610b05575f80fd5b50610b206004803603810190610b1b919061381a565b611f48565b005b600f5481565b606060028054610b3790613885565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6390613885565b8015610bae5780601f10610b8557610100808354040283529160200191610bae565b820191905f5260205f20905b815481529060010190602001808311610b9157829003601f168201915b5050505050905090565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610c14610c0d611fd6565b8484611fdd565b6001905092915050565b60148054906101000a900460ff1681565b5f600554905090565b5f610c448484846121a0565b50610d1f84610c51611fd6565b610d1a856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e63650000000000000000815250600a5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cd1611fd6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128339092919063ffffffff16565b611fdd565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f60045f9054906101000a900460ff16905090565b5f610e07610d6f611fd6565b84610e0285600a5f610d7f611fd6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289590919063ffffffff16565b611fdd565b6001905092915050565b600c602052805f5260405f205f915054906101000a900460ff1681565b610e36611fd6565b73ffffffffffffffffffffffffffffffffffffffff16610e54611456565b73ffffffffffffffffffffffffffffffffffffffff1614610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea1906138ff565b60405180910390fd5b80601060036101000a81548160ff02191690831515021790555050565b60115481565b600b602052805f5260405f205f915054906101000a900460ff1681565b610ef2611fd6565b73ffffffffffffffffffffffffffffffffffffffff16610f10611456565b73ffffffffffffffffffffffffffffffffffffffff1614610f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5d906138ff565b60405180910390fd5b8060068190555050565b601060029054906101000a900460ff1681565b610f8b611fd6565b73ffffffffffffffffffffffffffffffffffffffff16610fa9611456565b73ffffffffffffffffffffffffffffffffffffffff1614610fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff6906138ff565b60405180910390fd5b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60105f9054906101000a900460ff1681565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110b7611fd6565b73ffffffffffffffffffffffffffffffffffffffff166110d5611456565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611122906138ff565b60405180910390fd5b6111345f6128f2565b565b61113e611fd6565b73ffffffffffffffffffffffffffffffffffffffff1661115c611456565b73ffffffffffffffffffffffffffffffffffffffff16146111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a9906138ff565b60405180910390fd5b8060078190555050565b6111c4611fd6565b73ffffffffffffffffffffffffffffffffffffffff166111e2611456565b73ffffffffffffffffffffffffffffffffffffffff1614611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f906138ff565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190613967565b60405180910390fd5b5f601060026101000a81548160ff0219169083151502179055505f601060036101000a81548160ff021916908315150217905550565b60065481565b60075481565b611354611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611372611456565b73ffffffffffffffffffffffffffffffffffffffff16146113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf906138ff565b60405180910390fd5b60148054906101000a900460ff1615611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140d906139cf565b60405180910390fd5b60016014806101000a81548160ff02191690831515021790555042601581905550565b600e602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461148c90613885565b80601f01602080910402602001604051908101604052809291908181526020018280546114b890613885565b80156115035780601f106114da57610100808354040283529160200191611503565b820191905f5260205f20905b8154815290600101906020018083116114e657829003601f168201915b5050505050905090565b5f6115cb611519611fd6565b846115c68560405180606001604052806025815260200161428e60259139600a5f611542611fd6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128339092919063ffffffff16565b611fdd565b6001905092915050565b5f6115e86115e1611fd6565b84846121a0565b506001905092915050565b6115fb611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611619611456565b73ffffffffffffffffffffffffffffffffffffffff161461166f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611666906138ff565b60405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174d90613967565b60405180910390fd5b8160105f6101000a81548160ff02191690831515021790555080601060016101000a81548160ff02191690831515021790555082600f81905550505050565b60155481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117c8611fd6565b73ffffffffffffffffffffffffffffffffffffffff166117e6611456565b73ffffffffffffffffffffffffffffffffffffffff161461183c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611833906138ff565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080156118eb5780600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5050565b600d602052805f5260405f205f915054906101000a900460ff1681565b60125481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199890613967565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff1683836040516024016119cc9291906139ed565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611a569190613a58565b5f604051808303815f865af19150503d805f8114611a8f576040519150601f19603f3d011682016040523d82523d5f602084013e611a94565b606091505b5050905080611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf90613ab8565b60405180910390fd5b50505050565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611b68611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611b86611456565b73ffffffffffffffffffffffffffffffffffffffff1614611bdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd3906138ff565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cba90613967565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051611ce890613af9565b5f6040518083038185875af1925050503d805f8114611d22576040519150601f19603f3d011682016040523d82523d5f602084013e611d27565b606091505b5050905080611d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6290613b57565b60405180910390fd5b50565b601060019054906101000a900460ff1681565b611d89611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611da7611456565b73ffffffffffffffffffffffffffffffffffffffff1614611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df4906138ff565b60405180910390fd5b80601060026101000a81548160ff02191690831515021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e47611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611e65611456565b73ffffffffffffffffffffffffffffffffffffffff1614611ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb2906138ff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2090613be5565b60405180910390fd5b611f32816128f2565b50565b601060039054906101000a900460ff1681565b611f50611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611f6e611456565b73ffffffffffffffffffffffffffffffffffffffff1614611fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbb906138ff565b60405180910390fd5b81601181905550806012819055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361204b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204290613c73565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b090613d01565b60405180910390fd5b80600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161219391906133c7565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036121d8575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361220f575f80fd5b5f821161221a575f80fd5b60165f9054906101000a900460ff1615612240576122398484846129b3565b905061282c565b60148054906101000a900460ff1661232d57600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806122ed5750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61232c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232390613d69565b60405180910390fd5b5b5f61233730611069565b90505f600f54821015905080801561235b575060165f9054906101000a900460ff16155b80156123ae5750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156123c5575060105f9054906101000a900460ff165b80156124185750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561246b5750600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561247a5761247982612b7d565b5b600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156125185750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156125305750601060029054906101000a900460ff165b1561257b5760065484111561257a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257190613dd1565b60405180910390fd5b5b612602846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060095f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128339092919063ffffffff16565b60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f61264e8787612c61565b6126625761265d878787612dbd565b612664565b845b9050601060039054906101000a900460ff1680156126c95750600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561272e576007546126ec826126de89611069565b61289590919063ffffffff16565b111561272d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272490613e39565b60405180910390fd5b5b61277e8160095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289590919063ffffffff16565b60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161281c91906133c7565b60405180910390a3600193505050505b9392505050565b5f83831115829061287a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612871919061346a565b60405180910390fd5b505f83856128889190613e84565b9050809150509392505050565b5f8082846128a39190613eb7565b9050838110156128e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128df90613f34565b60405180910390fd5b8091505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f612a3b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128339092919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612acc8260095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289590919063ffffffff16565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b6a91906133c7565b60405180910390a3600190509392505050565b600160165f6101000a81548160ff021916908315150217905550601060019054906101000a900460ff1615612bb257600f5490505b5f479050612bbf82612fd6565b5f612bd3824761324590919063ffffffff16565b90505f811115612c435760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612c41573d5f803e3d5ffd5b505b50505f60165f6101000a81548160ff02191690831515021790555050565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612cfd5750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612d0b5760019050612db7565b600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612da65750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612db3575f9050612db7565b5f90505b92915050565b5f80600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612e3e57612e37600854612e296011548661328e90919063ffffffff16565b61330590919063ffffffff16565b9050612eba565b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612eb957612eb6600854612ea86012548661328e90919063ffffffff16565b61330590919063ffffffff16565b90505b5b5f811115612fb957612f128160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289590919063ffffffff16565b60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612fb091906133c7565b60405180910390a35b612fcc818461324590919063ffffffff16565b9150509392505050565b5f600267ffffffffffffffff811115612ff257612ff1613f52565b5b6040519080825280602002602001820160405280156130205781602001602082028036833780820191505090505b50905030815f8151811061303757613036613f7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130ff9190613fc0565b8160018151811061311357613112613f7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506131793060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fdd565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016131db9594939291906140db565b5f604051808303815f87803b1580156131f2575f80fd5b505af1158015613204573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613239929190614133565b60405180910390a15050565b5f61328683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612833565b905092915050565b5f80830361329e575f90506132ff565b5f82846132ab9190614161565b90508284826132ba91906141cf565b146132fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f19061426f565b60405180910390fd5b809150505b92915050565b5f61334683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061334e565b905092915050565b5f8083118290613394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338b919061346a565b60405180910390fd5b505f83856133a291906141cf565b9050809150509392505050565b5f819050919050565b6133c1816133af565b82525050565b5f6020820190506133da5f8301846133b8565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156134175780820151818401526020810190506133fc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61343c826133e0565b61344681856133ea565b93506134568185602086016133fa565b61345f81613422565b840191505092915050565b5f6020820190508181035f8301526134828184613432565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6134cc6134c76134c28461348a565b6134a9565b61348a565b9050919050565b5f6134dd826134b2565b9050919050565b5f6134ee826134d3565b9050919050565b6134fe816134e4565b82525050565b5f6020820190506135175f8301846134f5565b92915050565b5f6135278261348a565b9050919050565b6135378161351d565b82525050565b5f6020820190506135505f83018461352e565b92915050565b5f80fd5b6135638161351d565b811461356d575f80fd5b50565b5f8135905061357e8161355a565b92915050565b61358d816133af565b8114613597575f80fd5b50565b5f813590506135a881613584565b92915050565b5f80604083850312156135c4576135c3613556565b5b5f6135d185828601613570565b92505060206135e28582860161359a565b9150509250929050565b5f8115159050919050565b613600816135ec565b82525050565b5f6020820190506136195f8301846135f7565b92915050565b5f805f6060848603121561363657613635613556565b5b5f61364386828701613570565b935050602061365486828701613570565b92505060406136658682870161359a565b9150509250925092565b5f60ff82169050919050565b6136848161366f565b82525050565b5f60208201905061369d5f83018461367b565b92915050565b5f602082840312156136b8576136b7613556565b5b5f6136c584828501613570565b91505092915050565b6136d7816135ec565b81146136e1575f80fd5b50565b5f813590506136f2816136ce565b92915050565b5f6020828403121561370d5761370c613556565b5b5f61371a848285016136e4565b91505092915050565b5f6020828403121561373857613737613556565b5b5f6137458482850161359a565b91505092915050565b5f806040838503121561376457613763613556565b5b5f61377185828601613570565b9250506020613782858286016136e4565b9150509250929050565b5f805f606084860312156137a3576137a2613556565b5b5f6137b08682870161359a565b93505060206137c1868287016136e4565b92505060406137d2868287016136e4565b9150509250925092565b5f80604083850312156137f2576137f1613556565b5b5f6137ff85828601613570565b925050602061381085828601613570565b9150509250929050565b5f80604083850312156138305761382f613556565b5b5f61383d8582860161359a565b925050602061384e8582860161359a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061389c57607f821691505b6020821081036138af576138ae613858565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6138e96020836133ea565b91506138f4826138b5565b602082019050919050565b5f6020820190508181035f830152613916816138dd565b9050919050565b7f496e76616c69642043616c6c65720000000000000000000000000000000000005f82015250565b5f613951600e836133ea565b915061395c8261391d565b602082019050919050565b5f6020820190508181035f83015261397e81613945565b9050919050565b7f547261646520456e61626c6564210000000000000000000000000000000000005f82015250565b5f6139b9600e836133ea565b91506139c482613985565b602082019050919050565b5f6020820190508181035f8301526139e6816139ad565b9050919050565b5f604082019050613a005f83018561352e565b613a0d60208301846133b8565b9392505050565b5f81519050919050565b5f81905092915050565b5f613a3282613a14565b613a3c8185613a1e565b9350613a4c8185602086016133fa565b80840191505092915050565b5f613a638284613a28565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f613aa26014836133ea565b9150613aad82613a6e565b602082019050919050565b5f6020820190508181035f830152613acf81613a96565b9050919050565b50565b5f613ae45f83613a1e565b9150613aef82613ad6565b5f82019050919050565b5f613b0382613ad9565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f613b416014836133ea565b9150613b4c82613b0d565b602082019050919050565b5f6020820190508181035f830152613b6e81613b35565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613bcf6026836133ea565b9150613bda82613b75565b604082019050919050565b5f6020820190508181035f830152613bfc81613bc3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613c5d6024836133ea565b9150613c6882613c03565b604082019050919050565b5f6020820190508181035f830152613c8a81613c51565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ceb6022836133ea565b9150613cf682613c91565b604082019050919050565b5f6020820190508181035f830152613d1881613cdf565b9050919050565b7f54726164696e67205061757365640000000000000000000000000000000000005f82015250565b5f613d53600e836133ea565b9150613d5e82613d1f565b602082019050919050565b5f6020820190508181035f830152613d8081613d47565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f613dbb6013836133ea565b9150613dc682613d87565b602082019050919050565b5f6020820190508181035f830152613de881613daf565b9050919050565b7f457863656564732057616c6c65740000000000000000000000000000000000005f82015250565b5f613e23600e836133ea565b9150613e2e82613def565b602082019050919050565b5f6020820190508181035f830152613e5081613e17565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613e8e826133af565b9150613e99836133af565b9250828203905081811115613eb157613eb0613e57565b5b92915050565b5f613ec1826133af565b9150613ecc836133af565b9250828201905080821115613ee457613ee3613e57565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f1e601b836133ea565b9150613f2982613eea565b602082019050919050565b5f6020820190508181035f830152613f4b81613f12565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613fba8161355a565b92915050565b5f60208284031215613fd557613fd4613556565b5b5f613fe284828501613fac565b91505092915050565b5f819050919050565b5f61400e61400961400484613feb565b6134a9565b6133af565b9050919050565b61401e81613ff4565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6140568161351d565b82525050565b5f614067838361404d565b60208301905092915050565b5f602082019050919050565b5f61408982614024565b614093818561402e565b935061409e8361403e565b805f5b838110156140ce5781516140b5888261405c565b97506140c083614073565b9250506001810190506140a1565b5085935050505092915050565b5f60a0820190506140ee5f8301886133b8565b6140fb6020830187614015565b818103604083015261410d818661407f565b905061411c606083018561352e565b61412960808301846133b8565b9695505050505050565b5f6040820190506141465f8301856133b8565b8181036020830152614158818461407f565b90509392505050565b5f61416b826133af565b9150614176836133af565b9250828202614184816133af565b9150828204841483151761419b5761419a613e57565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6141d9826133af565b91506141e4836133af565b9250826141f4576141f36141a2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6142596021836133ea565b9150614264826141ff565b604082019050919050565b5f6020820190508181035f8301526142868161424d565b905091905056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d111076e51f92ec7986fa8cc11f913739fe7bc469cb50859ad20870c0adb8fba64736f6c63430008150033