[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "buyTaxTotal", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "buyMarketingTax", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "buyProjectTax", "type": "uint256" } ], "name": "BuyFeeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "DisabledTransferDelay", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromLimits", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "LimitsRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldWallet", "type": "address" } ], "name": "MarketingWalletUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "maxTx", "type": "uint256" } ], "name": "MaxTxUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "maxWallet", "type": "uint256" } ], "name": "MaxWalletUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldWallet", "type": "address" } ], "name": "ProjectWalletUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "sellTaxTotal", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "sellMarketingTax", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "sellProjectTax", "type": "uint256" } ], "name": "SellFeeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetDexPair", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "swapBackValueMin", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "swapBackValueMax", "type": "uint256" } ], "name": "SwapbackSettingsUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "TradingEnabled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "UpdateUniswapV2Router", "type": "event" }, { "inputs": [ { "internalType": "address[]", "name": "bots_", "type": "address[]" } ], "name": "addBot", "outputs": [], "stateMutability": "nonpayable", "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": "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": [ { "internalType": "address[]", "name": "notbot", "type": "address[]" } ], "name": "delBots", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "dexPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "a", "type": "address" } ], "name": "isBot", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxTxLimit", "type": "uint256" } ], "name": "maxTxLimitSet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxWalletLimit", "type": "uint256" } ], "name": "maxWalletLimitset", "outputs": [], "stateMutability": "nonpayable", "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": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "setAddressAsExemptFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "updAds", "type": "address" }, { "internalType": "bool", "name": "isEx", "type": "bool" } ], "name": "setAddressAsExemptFromTxLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enable", "type": "bool" }, { "internalType": "uint256", "name": "_min", "type": "uint256" }, { "internalType": "uint256", "name": "_max", "type": "uint256" } ], "name": "setAmountsForMaxAndForMinSwapBack", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_anti", "type": "bool" } ], "name": "setAnti", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_devFee", "type": "uint256" } ], "name": "setBuyFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "setDevWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setDexPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newMktWal", "type": "address" } ], "name": "setMktWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newDevWal", "type": "address" } ], "name": "setProjWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_devFee", "type": "uint256" } ], "name": "setSellFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_devFee", "type": "uint256" } ], "name": "setTransferTax", "outputs": [], "stateMutability": "nonpayable", "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": "tradingEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "viewLimits", "outputs": [ { "internalType": "bool", "name": "_limitsEnabled", "type": "bool" }, { "internalType": "uint256", "name": "_maxWallet", "type": "uint256" }, { "internalType": "uint256", "name": "_maxTx", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_target", "type": "address" } ], "name": "viewMappings", "outputs": [ { "internalType": "bool", "name": "_transferTaxExempt", "type": "bool" }, { "internalType": "bool", "name": "_transferLimitExempt", "type": "bool" }, { "internalType": "bool", "name": "_automatedMarketMakerPairs", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "viewReceivers", "outputs": [ { "internalType": "address", "name": "_marketingWallet", "type": "address" }, { "internalType": "address", "name": "_projectWallet", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "viewSwapback", "outputs": [ { "internalType": "bool", "name": "_swapbackEnabled", "type": "bool" }, { "internalType": "uint256", "name": "_swapBackValueMin", "type": "uint256" }, { "internalType": "uint256", "name": "_swapBackValueMax", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "viewTaxes", "outputs": [ { "internalType": "uint256", "name": "_buyTaxTotal", "type": "uint256" }, { "internalType": "uint256", "name": "_buyMarketingTax", "type": "uint256" }, { "internalType": "uint256", "name": "_buyProjectTax", "type": "uint256" }, { "internalType": "uint256", "name": "_sellTaxTotal", "type": "uint256" }, { "internalType": "uint256", "name": "_sellMarketingTax", "type": "uint256" }, { "internalType": "uint256", "name": "_sellProjectTax", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c06040525f600560156101000a81548160ff021916908315150217905550600160085f6101000a81548160ff0219169083151502179055505f600c5f6101000a81548160ff0219169083151502179055506001601f5f6101000a81548160ff021916908315150217905550348015610076575f80fd5b506040518060400160405280600b81526020017f456c6f6e277320436f636b0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f45434f434b00000000000000000000000000000000000000000000000000000081525081600390816100f29190610e7c565b5080600490816101029190610e7c565b5050506101216101166105d960201b60201c565b6105e060201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d905061014a8160016106a360201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101eb9190610fa9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610250573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102749190610fa9565b6040518363ffffffff1660e01b8152600401610291929190610fe3565b6020604051808303815f875af11580156102ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102d19190610fa9565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505061031760a05160016106a360201b60201c565b61032a60a05160016107d160201b60201c565b5f601390505f80601390505f805f805f61034861086f60201b60201c565b600a6103549190611172565b66017e9d8602b40061036691906111bc565b90506103e860148261037891906111bc565b610382919061122a565b600a819055506103e860148261039891906111bc565b6103a2919061122a565b6009819055506103e86014826103b891906111bc565b6103c2919061122a565b6006819055506103e86014826103d891906111bc565b6103e2919061122a565b60078190555087600f8190555086601081905550601054600f54610406919061125a565b600e81905550856012819055508460138190555060135460125461042a919061125a565b601181905550836015819055508260168190555060165460155461044e919061125a565b6014819055508160198190555033600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506104ed33600161087760201b60201c565b6104fe30600161087760201b60201c565b61051161dead600161087760201b60201c565b610544600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161087760201b60201c565b6105553360016106a360201b60201c565b6105663060016106a360201b60201c565b61057961dead60016106a360201b60201c565b6105ac600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016106a360201b60201c565b6105bb336109a560201b60201c565b6105cb3382610aad60201b60201c565b505050505050505050611456565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6106b16105d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166106d5610c1060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161461072b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610722906112e7565b60405180910390fd5b80601c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc92826040516107c5919061131f565b60405180910390a25050565b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167f02d59e6bf2c101e2d8367c2a27c51357eccfebcca0d09aa27c00e24e946c0d6a60405160405180910390a35050565b5f6009905090565b6108856105d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166108a9610c1060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146108ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f6906112e7565b60405180910390fd5b80601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610999919061131f565b60405180910390a25050565b6109b36105d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166109d7610c1060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a24906112e7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a92906113a8565b60405180910390fd5b610aaa816105e060201b60201c565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1290611410565b60405180910390fd5b610b2c5f8383610c3860201b60201c565b8060025f828254610b3d919061125a565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610b8f919061125a565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bf3919061143d565b60405180910390a3610c0c5f8383610c3d60201b60201c565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610cbd57607f821691505b602082108103610cd057610ccf610c79565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610d327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610cf7565b610d3c8683610cf7565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610d80610d7b610d7684610d54565b610d5d565b610d54565b9050919050565b5f819050919050565b610d9983610d66565b610dad610da582610d87565b848454610d03565b825550505050565b5f90565b610dc1610db5565b610dcc818484610d90565b505050565b5b81811015610def57610de45f82610db9565b600181019050610dd2565b5050565b601f821115610e3457610e0581610cd6565b610e0e84610ce8565b81016020851015610e1d578190505b610e31610e2985610ce8565b830182610dd1565b50505b505050565b5f82821c905092915050565b5f610e545f1984600802610e39565b1980831691505092915050565b5f610e6c8383610e45565b9150826002028217905092915050565b610e8582610c42565b67ffffffffffffffff811115610e9e57610e9d610c4c565b5b610ea88254610ca6565b610eb3828285610df3565b5f60209050601f831160018114610ee4575f8415610ed2578287015190505b610edc8582610e61565b865550610f43565b601f198416610ef286610cd6565b5f5b82811015610f1957848901518255600182019150602085019450602081019050610ef4565b86831015610f365784890151610f32601f891682610e45565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f7882610f4f565b9050919050565b610f8881610f6e565b8114610f92575f80fd5b50565b5f81519050610fa381610f7f565b92915050565b5f60208284031215610fbe57610fbd610f4b565b5b5f610fcb84828501610f95565b91505092915050565b610fdd81610f6e565b82525050565b5f604082019050610ff65f830185610fd4565b6110036020830184610fd4565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561108c578086048111156110685761106761100a565b5b60018516156110775780820291505b808102905061108585611037565b945061104c565b94509492505050565b5f826110a4576001905061115f565b816110b1575f905061115f565b81600181146110c757600281146110d157611100565b600191505061115f565b60ff8411156110e3576110e261100a565b5b8360020a9150848211156110fa576110f961100a565b5b5061115f565b5060208310610133831016604e8410600b84101617156111355782820a9050838111156111305761112f61100a565b5b61115f565b6111428484846001611043565b925090508184048111156111595761115861100a565b5b81810290505b9392505050565b5f60ff82169050919050565b5f61117c82610d54565b915061118783611166565b92506111b47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611095565b905092915050565b5f6111c682610d54565b91506111d183610d54565b92508282026111df81610d54565b915082820484148315176111f6576111f561100a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61123482610d54565b915061123f83610d54565b92508261124f5761124e6111fd565b5b828204905092915050565b5f61126482610d54565b915061126f83610d54565b92508282019050808211156112875761128661100a565b5b92915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6112d160208361128d565b91506112dc8261129d565b602082019050919050565b5f6020820190508181035f8301526112fe816112c5565b9050919050565b5f8115159050919050565b61131981611305565b82525050565b5f6020820190506113325f830184611310565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61139260268361128d565b915061139d82611338565b604082019050919050565b5f6020820190508181035f8301526113bf81611386565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6113fa601f8361128d565b9150611405826113c6565b602082019050919050565b5f6020820190508181035f830152611427816113ee565b9050919050565b61143781610d54565b82525050565b5f6020820190506114505f83018461142e565b92915050565b60805160a05161518861148c5f395f81816120f001526122c601525f81816139cc01528181613aab0152613ad201526151885ff3fe608060405260043610610233575f3560e01c806370a082311161012d578063a457c2d7116100aa578063dd62ed3e1161006e578063dd62ed3e14610818578063e55648f414610854578063ebb2b6451461087c578063f242ab41146108a4578063f2fde38b146108ce5761023a565b8063a457c2d714610728578063a9059cbb14610764578063b2d8f208146107a0578063d98d2939146107c8578063da7346b7146107f05761023a565b80638da5cb5b116100f15780638da5cb5b1461065c57806395d89b411461068657806399d9b547146106b05780639c1de68c146106d85780639fd8234e146107005761023a565b806370a08231146105b6578063715018a6146105f2578063751039fc146106085780637c519ffb1461061e5780637ff6f7b9146106345761023a565b80632b96cacc116101bb578063395093511161017f57806339509351146104ab5780633b8c2849146104e75780633ba48be6146105255780633bbac579146105505780634ada218b1461058c5761023a565b80632b96cacc146103d95780632e63ed0314610401578063303780b11461042d578063313ce5671461045957806331c2d847146104835761023a565b806311abf5371161020257806311abf537146102f457806318160ddd146103235780631f53ac021461034d57806321bbcbb11461037557806323b872dd1461039d5761023a565b8063065e812b1461023e57806306fdde0314610266578063095ea7b3146102905780630b726539146102cc5761023a565b3661023a57005b5f80fd5b348015610249575f80fd5b50610264600480360381019061025f9190613be2565b6108f6565b005b348015610271575f80fd5b5061027a610a32565b6040516102879190613c7d565b60405180910390f35b34801561029b575f80fd5b506102b660048036038101906102b19190613cd0565b610ac2565b6040516102c39190613d28565b60405180910390f35b3480156102d7575f80fd5b506102f260048036038101906102ed9190613d6b565b610adf565b005b3480156102ff575f80fd5b50610308610c01565b60405161031a96959493929190613db8565b60405180910390f35b34801561032e575f80fd5b50610337610c2d565b6040516103449190613e17565b60405180910390f35b348015610358575f80fd5b50610373600480360381019061036e9190613be2565b610c36565b005b348015610380575f80fd5b5061039b60048036038101906103969190613f70565b610d2c565b005b3480156103a8575f80fd5b506103c360048036038101906103be9190613fb7565b610e33565b6040516103d09190613d28565b60405180910390f35b3480156103e4575f80fd5b506103ff60048036038101906103fa9190614007565b610f25565b005b34801561040c575f80fd5b50610415611047565b60405161042493929190614032565b60405180910390f35b348015610438575f80fd5b5061044161106b565b60405161045093929190614032565b60405180910390f35b348015610464575f80fd5b5061046d61108e565b60405161047a9190614082565b60405180910390f35b34801561048e575f80fd5b506104a960048036038101906104a49190613f70565b611096565b005b3480156104b6575f80fd5b506104d160048036038101906104cc9190613cd0565b61119c565b6040516104de9190613d28565b60405180910390f35b3480156104f2575f80fd5b5061050d60048036038101906105089190613be2565b611243565b60405161051c9392919061409b565b60405180910390f35b348015610530575f80fd5b50610539611331565b6040516105479291906140df565b60405180910390f35b34801561055b575f80fd5b5061057660048036038101906105719190613be2565b611380565b6040516105839190613d28565b60405180910390f35b348015610597575f80fd5b506105a06113d2565b6040516105ad9190613d28565b60405180910390f35b3480156105c1575f80fd5b506105dc60048036038101906105d79190613be2565b6113e4565b6040516105e99190613e17565b60405180910390f35b3480156105fd575f80fd5b50610606611429565b005b348015610613575f80fd5b5061061c6114b0565b005b348015610629575f80fd5b50610632611589565b005b34801561063f575f80fd5b5061065a60048036038101906106559190614106565b611670565b005b348015610667575f80fd5b50610670611708565b60405161067d9190614131565b60405180910390f35b348015610691575f80fd5b5061069a611730565b6040516106a79190613c7d565b60405180910390f35b3480156106bb575f80fd5b506106d660048036038101906106d1919061414a565b6117c0565b005b3480156106e3575f80fd5b506106fe60048036038101906106f99190614007565b6118aa565b005b34801561070b575f80fd5b506107266004803603810190610721919061414a565b6119cc565b005b348015610733575f80fd5b5061074e60048036038101906107499190613cd0565b611af7565b60405161075b9190613d28565b60405180910390f35b34801561076f575f80fd5b5061078a60048036038101906107859190613cd0565b611bdd565b6040516107979190613d28565b60405180910390f35b3480156107ab575f80fd5b506107c660048036038101906107c1919061414a565b611bfa565b005b3480156107d3575f80fd5b506107ee60048036038101906107e99190614188565b611d25565b005b3480156107fb575f80fd5b5061081660048036038101906108119190613d6b565b611ece565b005b348015610823575f80fd5b5061083e600480360381019061083991906141d8565b611ff0565b60405161084b9190613e17565b60405180910390f35b34801561085f575f80fd5b5061087a60048036038101906108759190613d6b565b612072565b005b348015610887575f80fd5b506108a2600480360381019061089d9190613be2565b61218a565b005b3480156108af575f80fd5b506108b86122c4565b6040516108c59190614131565b60405180910390f35b3480156108d9575f80fd5b506108f460048036038101906108ef9190613be2565b6122e8565b005b6108fe6123de565b73ffffffffffffffffffffffffffffffffffffffff1661091c611708565b73ffffffffffffffffffffffffffffffffffffffff1614610972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096990614260565b60405180910390fd5b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8616c7a330e3cf61290821331585511f1e2778171e2b005fb5ec60cfe874dc6760405160405180910390a380600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060038054610a41906142ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6d906142ab565b8015610ab85780601f10610a8f57610100808354040283529160200191610ab8565b820191905f5260205f20905b815481529060010190602001808311610a9b57829003601f168201915b5050505050905090565b5f610ad5610ace6123de565b84846123e5565b6001905092915050565b610ae76123de565b73ffffffffffffffffffffffffffffffffffffffff16610b05611708565b73ffffffffffffffffffffffffffffffffffffffff1614610b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5290614260565b60405180910390fd5b80601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610bf59190613d28565b60405180910390a25050565b5f805f805f80600e549550600f5494506010549350601154925060125491506013549050909192939495565b5f600254905090565b610c3e6123de565b73ffffffffffffffffffffffffffffffffffffffff16610c5c611708565b73ffffffffffffffffffffffffffffffffffffffff1614610cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca990614260565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d179061434b565b60405180910390fd5b610d29816125a8565b50565b610d346123de565b73ffffffffffffffffffffffffffffffffffffffff16610d52611708565b73ffffffffffffffffffffffffffffffffffffffff1614610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f90614260565b60405180910390fd5b5f5b8151811015610e2f576001601e5f848481518110610dcb57610dca614369565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610daa565b5050565b5f610e3f84848461266b565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610e866123de565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc90614406565b60405180910390fd5b610f1985610f116123de565b8584036123e5565b60019150509392505050565b610f2d6123de565b73ffffffffffffffffffffffffffffffffffffffff16610f4b611708565b73ffffffffffffffffffffffffffffffffffffffff1614610fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9890614260565b60405180910390fd5b6005811015610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdc90614494565b60405180910390fd5b6103e8610ff0610c2d565b82610ffb91906144df565b611005919061454d565b6009819055507f12528a3c61e0f3b2d6fc707a9fc58b1af86e252cad0d7f4c154ebeabb162dace60095460405161103c9190613e17565b60405180910390a150565b5f805f600560159054906101000a900460ff16925060065491506007549050909192565b5f805f60085f9054906101000a900460ff1692506009549150600a549050909192565b5f6009905090565b61109e6123de565b73ffffffffffffffffffffffffffffffffffffffff166110bc611708565b73ffffffffffffffffffffffffffffffffffffffff1614611112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110990614260565b60405180910390fd5b5f5b8151811015611198575f601e5f84848151811061113457611133614369565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611114565b5050565b5f6112396111a86123de565b848460015f6111b56123de565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611234919061457d565b6123e5565b6001905092915050565b5f805f601b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169250601c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169150601d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1690509193909250565b5f80600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915091509091565b5f601e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600c5f9054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6114316123de565b73ffffffffffffffffffffffffffffffffffffffff1661144f611708565b73ffffffffffffffffffffffffffffffffffffffff16146114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c90614260565b60405180910390fd5b6114ae5f6125a8565b565b6114b86123de565b73ffffffffffffffffffffffffffffffffffffffff166114d6611708565b73ffffffffffffffffffffffffffffffffffffffff161461152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390614260565b60405180910390fd5b5f60085f6101000a81548160ff0219169083151502179055505f6015819055505f6016819055505f601481905550427ff4eaa75eae08ae80c3daf791438dac1cff2cfd3b0bad2304ec7bbb067e50261660405160405180910390a2565b6115916123de565b73ffffffffffffffffffffffffffffffffffffffff166115af611708565b73ffffffffffffffffffffffffffffffffffffffff1614611605576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fc90614260565b60405180910390fd5b6001600c5f6101000a81548160ff0219169083151502179055506001600560156101000a81548160ff02191690831515021790555043601a81905550427fb3da2db3dfc3778f99852546c6e9ab39ec253f9de7b0847afec61bd27878e92360405160405180910390a2565b6116786123de565b73ffffffffffffffffffffffffffffffffffffffff16611696611708565b73ffffffffffffffffffffffffffffffffffffffff16146116ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e390614260565b60405180910390fd5b80601f5f6101000a81548160ff02191690831515021790555050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461173f906142ab565b80601f016020809104026020016040519081016040528092919081815260200182805461176b906142ab565b80156117b65780601f1061178d576101008083540402835291602001916117b6565b820191905f5260205f20905b81548152906001019060200180831161179957829003601f168201915b5050505050905090565b6117c86123de565b73ffffffffffffffffffffffffffffffffffffffff166117e6611708565b73ffffffffffffffffffffffffffffffffffffffff161461183c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183390614260565b60405180910390fd5b816015819055508060168190555060165460155461185a919061457d565b601481905550606460145411156118a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189d90614620565b60405180910390fd5b5050565b6118b26123de565b73ffffffffffffffffffffffffffffffffffffffff166118d0611708565b73ffffffffffffffffffffffffffffffffffffffff1614611926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191d90614260565b60405180910390fd5b600281101561196a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196190614688565b60405180910390fd5b6103e8611975610c2d565b8261198091906144df565b61198a919061454d565b600a819055507fff3dd5e80294197918c284bbfc3dadd97d0b40ce92106110946329088f80068a600a546040516119c19190613e17565b60405180910390a150565b6119d46123de565b73ffffffffffffffffffffffffffffffffffffffff166119f2611708565b73ffffffffffffffffffffffffffffffffffffffff1614611a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3f90614260565b60405180910390fd5b8160128190555080601381905550601354601254611a66919061457d565b60118190555060646011541115611ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa990614716565b60405180910390fd5b7fcb5f36df892836a2eaedc349de29a7581176990398ee185d16eaa8f6c1abd8f1601154601254601354604051611aeb93929190614734565b60405180910390a15050565b5f8060015f611b046123de565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb5906147d9565b60405180910390fd5b611bd2611bc96123de565b858584036123e5565b600191505092915050565b5f611bf0611be96123de565b848461266b565b6001905092915050565b611c026123de565b73ffffffffffffffffffffffffffffffffffffffff16611c20611708565b73ffffffffffffffffffffffffffffffffffffffff1614611c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6d90614260565b60405180910390fd5b81600f8190555080601081905550601054600f54611c94919061457d565b600e819055506064600e541115611ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd790614867565b60405180910390fd5b7f38513c502b0ab4834ac1df9502b76f75dcf7092469782cfd0db7fe664388e25e600e54600f54601054604051611d1993929190614734565b60405180910390a15050565b611d2d6123de565b73ffffffffffffffffffffffffffffffffffffffff16611d4b611708565b73ffffffffffffffffffffffffffffffffffffffff1614611da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9890614260565b60405180910390fd5b6001821015611de5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddc906148f5565b60405180910390fd5b81811015611e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1f90614983565b60405180910390fd5b82600560156101000a81548160ff02191690831515021790555061271082611e4e610c2d565b611e5891906144df565b611e62919061454d565b60068190555061271081611e74610c2d565b611e7e91906144df565b611e88919061454d565b6007819055507f52cd2cdb42ff0eeec9362d7ed5b04f64c8d022697128b5378fc51cea7e63c779838383604051611ec193929190614032565b60405180910390a1505050565b611ed66123de565b73ffffffffffffffffffffffffffffffffffffffff16611ef4611708565b73ffffffffffffffffffffffffffffffffffffffff1614611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4190614260565b60405180910390fd5b80601c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9282604051611fe49190613d28565b60405180910390a25050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61207a6123de565b73ffffffffffffffffffffffffffffffffffffffff16612098611708565b73ffffffffffffffffffffffffffffffffffffffff16146120ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e590614260565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361217c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217390614a11565b60405180910390fd5b61218682826133fe565b5050565b6121926123de565b73ffffffffffffffffffffffffffffffffffffffff166121b0611708565b73ffffffffffffffffffffffffffffffffffffffff1614612206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fd90614260565b60405180910390fd5b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fb91dbdeaf34f885ccae2d8abc3967cb03c079b6af2c7944e3893fd29427d75e760405160405180910390a380600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6122f06123de565b73ffffffffffffffffffffffffffffffffffffffff1661230e611708565b73ffffffffffffffffffffffffffffffffffffffff1614612364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235b90614260565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c99061434b565b60405180910390fd5b6123db816125a8565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244a90614a9f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036124c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b890614b2d565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161259b9190613e17565b60405180910390a3505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d090614bbb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273e90614c49565b60405180910390fd5b5f810361275e5761275983835f61349c565b6133f9565b612766611708565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156127d457506127a4611708565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561280c57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612846575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561285f5750600560149054906101000a900460ff16155b1561290b57601e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156129025750601e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61290a575f80fd5b5b60085f9054906101000a900460ff1615612e0557612927611708565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156129955750612965611708565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129cd57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612a07575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612a205750600560149054906101000a900460ff16155b15612e0457600c5f9054906101000a900460ff16612b1357601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612ad35750601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0990614cd7565b60405180910390fd5b5b601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612bb05750601c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612c6e5760195f815480929190612bc790614cf5565b9190505550600a54811115612c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0890614dac565b60405180910390fd5b600954612c1d836113e4565b82612c28919061457d565b1115612c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6090614e14565b60405180910390fd5b612e03565b601d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d0b5750601c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612d5a57600a54811115612d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4c90614ea2565b60405180910390fd5b612e02565b601c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612e0157600954612db4836113e4565b82612dbf919061457d565b1115612e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612df790614e14565b60405180910390fd5b5b5b5b5b5b5f612e0f306113e4565b90505f6006548210159050808015612e335750600560159054906101000a900460ff165b8015612e4c5750600560149054906101000a900460ff16155b8015612e9f5750601d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612ef25750601b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612f455750601b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612f89576001600560146101000a81548160ff021916908315150217905550612f6e83613711565b5f600560146101000a81548160ff0219169083151502179055505b5f600560149054906101000a900460ff16159050601b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806130385750601b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15613041575f90505b5f81156133e957601d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561309f57505f601154115b15613137576130cc60646130be601154886138fb90919063ffffffff16565b61391090919063ffffffff16565b9050601154601354826130df91906144df565b6130e9919061454d565b60185f8282546130f9919061457d565b925050819055506011546012548261311191906144df565b61311b919061454d565b60175f82825461312b919061457d565b925050819055506133c6565b601d5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561318e57505f600e54115b1561328557603c6019541180156131a65750601a5443145b156131f1576131d260646131c4602d886138fb90919063ffffffff16565b61391090919063ffffffff16565b90508060175f8282546131e5919061457d565b92505081905550613280565b613219606461320b600e54886138fb90919063ffffffff16565b61391090919063ffffffff16565b9050600e546010548261322c91906144df565b613236919061454d565b60185f828254613246919061457d565b92505081905550600e54600f548261325e91906144df565b613268919061454d565b60175f828254613278919061457d565b925050819055505b6133c5565b5f6014541180156132dd5750601d5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156133305750601d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156133c45761335d606461334f601454886138fb90919063ffffffff16565b61391090919063ffffffff16565b90506014546016548261337091906144df565b61337a919061454d565b60185f82825461338a919061457d565b92505081905550601454601554826133a291906144df565b6133ac919061454d565b60175f8282546133bc919061457d565b925050819055505b5b5b5f8111156133da576133d987308361349c565b5b80856133e69190614ec0565b94505b6133f487878761349c565b505050505b505050565b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167f02d59e6bf2c101e2d8367c2a27c51357eccfebcca0d09aa27c00e24e946c0d6a60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361350a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350190614bbb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161356f90614c49565b60405180910390fd5b613583838383613925565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135fd90614f63565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254613694919061457d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136f89190613e17565b60405180910390a361370b84848461392a565b50505050565b5f61371b306113e4565b90505f8190505f808303613731575050506138f8565b6007548311156137415760075492505b601f5f9054906101000a900460ff168015613767575060058461376491906144df565b83115b1561377c5760058461377991906144df565b92505b5f8390505f47905061378d8261392f565b5f6137a18247613b6290919063ffffffff16565b90505f6137cb866137bd601854856138fb90919063ffffffff16565b61391090919063ffffffff16565b90505f6017819055505f601881905550600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161382090614fae565b5f6040518083038185875af1925050503d805f811461385a576040519150601f19603f3d011682016040523d82523d5f602084013e61385f565b606091505b505080955050600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516138ab90614fae565b5f6040518083038185875af1925050503d805f81146138e5576040519150601f19603f3d011682016040523d82523d5f602084013e6138ea565b606091505b505080955050505050505050505b50565b5f818361390891906144df565b905092915050565b5f818361391d919061454d565b905092915050565b505050565b505050565b5f600267ffffffffffffffff81111561394b5761394a613e34565b5b6040519080825280602002602001820160405280156139795781602001602082028036833780820191505090505b50905030815f815181106139905761398f614369565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a579190614fd6565b81600181518110613a6b57613a6a614369565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613ad0307f0000000000000000000000000000000000000000000000000000000000000000846123e5565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613b319594939291906150fa565b5f604051808303815f87803b158015613b48575f80fd5b505af1158015613b5a573d5f803e3d5ffd5b505050505050565b5f8183613b6f9190614ec0565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613bb182613b88565b9050919050565b613bc181613ba7565b8114613bcb575f80fd5b50565b5f81359050613bdc81613bb8565b92915050565b5f60208284031215613bf757613bf6613b80565b5b5f613c0484828501613bce565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f613c4f82613c0d565b613c598185613c17565b9350613c69818560208601613c27565b613c7281613c35565b840191505092915050565b5f6020820190508181035f830152613c958184613c45565b905092915050565b5f819050919050565b613caf81613c9d565b8114613cb9575f80fd5b50565b5f81359050613cca81613ca6565b92915050565b5f8060408385031215613ce657613ce5613b80565b5b5f613cf385828601613bce565b9250506020613d0485828601613cbc565b9150509250929050565b5f8115159050919050565b613d2281613d0e565b82525050565b5f602082019050613d3b5f830184613d19565b92915050565b613d4a81613d0e565b8114613d54575f80fd5b50565b5f81359050613d6581613d41565b92915050565b5f8060408385031215613d8157613d80613b80565b5b5f613d8e85828601613bce565b9250506020613d9f85828601613d57565b9150509250929050565b613db281613c9d565b82525050565b5f60c082019050613dcb5f830189613da9565b613dd86020830188613da9565b613de56040830187613da9565b613df26060830186613da9565b613dff6080830185613da9565b613e0c60a0830184613da9565b979650505050505050565b5f602082019050613e2a5f830184613da9565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613e6a82613c35565b810181811067ffffffffffffffff82111715613e8957613e88613e34565b5b80604052505050565b5f613e9b613b77565b9050613ea78282613e61565b919050565b5f67ffffffffffffffff821115613ec657613ec5613e34565b5b602082029050602081019050919050565b5f80fd5b5f613eed613ee884613eac565b613e92565b90508083825260208201905060208402830185811115613f1057613f0f613ed7565b5b835b81811015613f395780613f258882613bce565b845260208401935050602081019050613f12565b5050509392505050565b5f82601f830112613f5757613f56613e30565b5b8135613f67848260208601613edb565b91505092915050565b5f60208284031215613f8557613f84613b80565b5b5f82013567ffffffffffffffff811115613fa257613fa1613b84565b5b613fae84828501613f43565b91505092915050565b5f805f60608486031215613fce57613fcd613b80565b5b5f613fdb86828701613bce565b9350506020613fec86828701613bce565b9250506040613ffd86828701613cbc565b9150509250925092565b5f6020828403121561401c5761401b613b80565b5b5f61402984828501613cbc565b91505092915050565b5f6060820190506140455f830186613d19565b6140526020830185613da9565b61405f6040830184613da9565b949350505050565b5f60ff82169050919050565b61407c81614067565b82525050565b5f6020820190506140955f830184614073565b92915050565b5f6060820190506140ae5f830186613d19565b6140bb6020830185613d19565b6140c86040830184613d19565b949350505050565b6140d981613ba7565b82525050565b5f6040820190506140f25f8301856140d0565b6140ff60208301846140d0565b9392505050565b5f6020828403121561411b5761411a613b80565b5b5f61412884828501613d57565b91505092915050565b5f6020820190506141445f8301846140d0565b92915050565b5f80604083850312156141605761415f613b80565b5b5f61416d85828601613cbc565b925050602061417e85828601613cbc565b9150509250929050565b5f805f6060848603121561419f5761419e613b80565b5b5f6141ac86828701613d57565b93505060206141bd86828701613cbc565b92505060406141ce86828701613cbc565b9150509250925092565b5f80604083850312156141ee576141ed613b80565b5b5f6141fb85828601613bce565b925050602061420c85828601613bce565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61424a602083613c17565b915061425582614216565b602082019050919050565b5f6020820190508181035f8301526142778161423e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806142c257607f821691505b6020821081036142d5576142d461427e565b5b50919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614335602683613c17565b9150614340826142db565b604082019050919050565b5f6020820190508181035f83015261436281614329565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6143f0602883613c17565b91506143fb82614396565b604082019050919050565b5f6020820190508181035f83015261441d816143e4565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f61447e602483613c17565b915061448982614424565b604082019050919050565b5f6020820190508181035f8301526144ab81614472565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6144e982613c9d565b91506144f483613c9d565b925082820261450281613c9d565b91508282048414831517614519576145186144b2565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61455782613c9d565b915061456283613c9d565b92508261457257614571614520565b5b828204905092915050565b5f61458782613c9d565b915061459283613c9d565b92508282019050808211156145aa576145a96144b2565b5b92915050565b7f546f74616c207472616e73666572206665652063616e6e6f74206265206869675f8201527f686572207468616e203130302500000000000000000000000000000000000000602082015250565b5f61460a602d83613c17565b9150614615826145b0565b604082019050919050565b5f6020820190508181035f830152614637816145fe565b9050919050565b7f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e32255f82015250565b5f614672602083613c17565b915061467d8261463e565b602082019050919050565b5f6020820190508181035f83015261469f81614666565b9050919050565b7f546f74616c2073656c6c206665652063616e6e6f7420626520686967686572205f8201527f7468616e20313030250000000000000000000000000000000000000000000000602082015250565b5f614700602983613c17565b915061470b826146a6565b604082019050919050565b5f6020820190508181035f83015261472d816146f4565b9050919050565b5f6060820190506147475f830186613da9565b6147546020830185613da9565b6147616040830184613da9565b949350505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6147c3602583613c17565b91506147ce82614769565b604082019050919050565b5f6020820190508181035f8301526147f0816147b7565b9050919050565b7f546f74616c20627579206665652063616e6e6f742062652068696768657220745f8201527f68616e2031303025000000000000000000000000000000000000000000000000602082015250565b5f614851602883613c17565b915061485c826147f7565b604082019050919050565b5f6020820190508181035f83015261487e81614845565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e30312520746f74616c20737570706c792e000000000000000000000000602082015250565b5f6148df603483613c17565b91506148ea82614885565b604082019050919050565b5f6020820190508181035f83015261490c816148d3565b9050919050565b7f6d6178696d756d20616d6f756e742063616e74206265206869676865722074685f8201527f616e206d696e696d756d00000000000000000000000000000000000000000000602082015250565b5f61496d602a83613c17565b915061497882614913565b604082019050919050565b5f6020820190508181035f83015261499a81614961565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f6149fb603983613c17565b9150614a06826149a1565b604082019050919050565b5f6020820190508181035f830152614a28816149ef565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614a89602483613c17565b9150614a9482614a2f565b604082019050919050565b5f6020820190508181035f830152614ab681614a7d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614b17602283613c17565b9150614b2282614abd565b604082019050919050565b5f6020820190508181035f830152614b4481614b0b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614ba5602583613c17565b9150614bb082614b4b565b604082019050919050565b5f6020820190508181035f830152614bd281614b99565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614c33602383613c17565b9150614c3e82614bd9565b604082019050919050565b5f6020820190508181035f830152614c6081614c27565b9050919050565b7f5f7472616e736665723a3a2054726164696e67206973206e6f742061637469765f8201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b5f614cc1602283613c17565b9150614ccc82614c67565b604082019050919050565b5f6020820190508181035f830152614cee81614cb5565b9050919050565b5f614cff82613c9d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614d3157614d306144b2565b5b600182019050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d617854782e0000000000000000000000000000000000000000000000000000602082015250565b5f614d96602683613c17565b9150614da182614d3c565b604082019050919050565b5f6020820190508181035f830152614dc381614d8a565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f614dfe601383613c17565b9150614e0982614dca565b602082019050919050565b5f6020820190508181035f830152614e2b81614df2565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d617854782e00000000000000000000000000000000000000000000000000602082015250565b5f614e8c602783613c17565b9150614e9782614e32565b604082019050919050565b5f6020820190508181035f830152614eb981614e80565b9050919050565b5f614eca82613c9d565b9150614ed583613c9d565b9250828203905081811115614eed57614eec6144b2565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614f4d602683613c17565b9150614f5882614ef3565b604082019050919050565b5f6020820190508181035f830152614f7a81614f41565b9050919050565b5f81905092915050565b50565b5f614f995f83614f81565b9150614fa482614f8b565b5f82019050919050565b5f614fb882614f8e565b9150819050919050565b5f81519050614fd081613bb8565b92915050565b5f60208284031215614feb57614fea613b80565b5b5f614ff884828501614fc2565b91505092915050565b5f819050919050565b5f819050919050565b5f61502d61502861502384615001565b61500a565b613c9d565b9050919050565b61503d81615013565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61507581613ba7565b82525050565b5f615086838361506c565b60208301905092915050565b5f602082019050919050565b5f6150a882615043565b6150b2818561504d565b93506150bd8361505d565b805f5b838110156150ed5781516150d4888261507b565b97506150df83615092565b9250506001810190506150c0565b5085935050505092915050565b5f60a08201905061510d5f830188613da9565b61511a6020830187615034565b818103604083015261512c818661509e565b905061513b60608301856140d0565b6151486080830184613da9565b969550505050505056fea26469706673582212201e0a0b587e5bb36be851e75169b99d28129c0584b5b53240d6a0382fe6b6e3e164736f6c634300081a0033