[ { "inputs": [ { "internalType": "address", "name": "_router", "type": "address" }, { "internalType": "address", "name": "_factory", "type": "address" }, { "internalType": "address", "name": "_usdtToken", "type": "address" }, { "internalType": "address", "name": "_mmcToken", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC1155InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC1155InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "idsLength", "type": "uint256" }, { "internalType": "uint256", "name": "valuesLength", "type": "uint256" } ], "name": "ERC1155InvalidArrayLength", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC1155InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC1155InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC1155InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC1155MissingApprovalForAll", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "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": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "burnBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "quantity", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "buyNFT", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "destroyContractNFT", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "exists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "string[]", "name": "tokenUris", "type": "string[]" }, { "internalType": "uint256[]", "name": "prices", "type": "uint256[]" }, { "internalType": "uint8[]", "name": "types", "type": "uint8[]" }, { "internalType": "uint8[]", "name": "statuses", "type": "uint8[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "mintBatchWithUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "mmcToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "onERC1155BatchReceived", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "onERC1155Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "poolPercentage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "_token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "receiveERC20", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "saleStatus", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newUri", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_percentage", "type": "uint256" } ], "name": "setPoolPercentage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "_status", "type": "uint8" } ], "name": "setSaleStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint8", "name": "status", "type": "uint8" } ], "name": "setTokenStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "internalType": "string[]", "name": "newUris", "type": "string[]" } ], "name": "setTokenURIBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "uint256", "name": "amountOutMin", "type": "uint256" }, { "internalType": "uint8", "name": "swapType", "type": "uint8" } ], "name": "swapExchangeToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokenInfo", "outputs": [ { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint8", "name": "tokenType", "type": "uint8" }, { "internalType": "uint8", "name": "status", "type": "uint8" }, { "internalType": "string", "name": "uri", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_tokenA", "type": "address" }, { "internalType": "address", "name": "_tokenB", "type": "address" }, { "internalType": "uint256", "name": "_amountA", "type": "uint256" }, { "internalType": "uint256", "name": "_amountB", "type": "uint256" }, { "internalType": "uint256", "name": "_minAmountA", "type": "uint256" }, { "internalType": "uint256", "name": "_minAmountB", "type": "uint256" } ], "name": "uniAddLiquidity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_tokenA", "type": "address" }, { "internalType": "address", "name": "_tokenB", "type": "address" }, { "internalType": "uint256", "name": "_liquidity", "type": "uint256" }, { "internalType": "uint256", "name": "_minAmountA", "type": "uint256" }, { "internalType": "uint256", "name": "_minAmountB", "type": "uint256" } ], "name": "uniRemoveLiquidity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapV2Factory", "outputs": [ { "internalType": "contract IUniswapV2Factory", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "usdtToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdrawUSDT", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawableUSDT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
60806040526032600a5534801562000015575f80fd5b50604051620066bd380380620066bd83398181016040528101906200003b919062000332565b3360405180602001604052805f8152506200005c81620001f560201b60201c565b505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000d0575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000c79190620003b2565b60405180910390fd5b620000e1816200020a60201b60201c565b5060016006819055508360075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505062000715565b806002908162000206919062000631565b5050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620002fc82620002d1565b9050919050565b6200030e81620002f0565b811462000319575f80fd5b50565b5f815190506200032c8162000303565b92915050565b5f805f80608085870312156200034d576200034c620002cd565b5b5f6200035c878288016200031c565b94505060206200036f878288016200031c565b935050604062000382878288016200031c565b925050606062000395878288016200031c565b91505092959194509250565b620003ac81620002f0565b82525050565b5f602082019050620003c75f830184620003a1565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200044957607f821691505b6020821081036200045f576200045e62000404565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004c37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000486565b620004cf868362000486565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000519620005136200050d84620004e7565b620004f0565b620004e7565b9050919050565b5f819050919050565b6200053483620004f9565b6200054c620005438262000520565b84845462000492565b825550505050565b5f90565b6200056262000554565b6200056f81848462000529565b505050565b5b8181101562000596576200058a5f8262000558565b60018101905062000575565b5050565b601f821115620005e557620005af8162000465565b620005ba8462000477565b81016020851015620005ca578190505b620005e2620005d98562000477565b83018262000574565b50505b505050565b5f82821c905092915050565b5f620006075f1984600802620005ea565b1980831691505092915050565b5f620006218383620005f6565b9150826002028217905092915050565b6200063c82620003cd565b67ffffffffffffffff811115620006585762000657620003d7565b5b62000664825462000431565b620006718282856200059a565b5f60209050601f831160018114620006a7575f841562000692578287015190505b6200069e858262000614565b8655506200070d565b601f198416620006b78662000465565b5f5b82811015620006e057848901518255600182019150602085019450602081019050620006b9565b86831015620007005784890151620006fc601f891682620005f6565b8355505b6001600288020188555050505b505050505050565b615f9a80620007235f395ff3fe608060405234801561000f575f80fd5b5060043610610250575f3560e01c8063715018a611610144578063bd85b039116100c1578063f23a6e6111610085578063f23a6e61146106dd578063f242432a1461070d578063f2fde38b14610729578063f5298aca14610745578063f807427d14610761578063f9020e331461077d57610250565b8063bd85b03914610612578063c4d32bf314610642578063cc33c8751461065e578063cf8ca74114610691578063e985e9c5146106ad57610250565b8063a8275ada11610108578063a8275ada14610570578063a98ad46c1461058c578063ae28b68c146105aa578063aed4aab6146105c6578063bc197c81146105e257610250565b8063715018a6146104f457806386f5c0d8146104fe5780638d8a818c1461051a5780638da5cb5b14610536578063a22cb4651461055457610250565b80633d54353a116101d25780634f558e79116101965780634f558e791461045257806355f804b31461048257806359d0f7131461049e5780636b20c454146104bc5780636b421a50146104d857610250565b80633d54353a146103ae5780633e7e30ba146103cc5780634891ad88146103ea5780634bb99351146104065780634e1273f41461042257610250565b80631694505e116102195780631694505e1461031c57806318160ddd1461033a5780632e6ceabe146103585780632eb2c2d61461037457806334b633ce1461039057610250565b8062fdd58e1461025457806301ffc9a7146102845780630e89341c146102b457806312d6f800146102e45780631481794e14610300575b5f80fd5b61026e60048036038101906102699190613e49565b61079b565b60405161027b9190613e96565b60405180910390f35b61029e60048036038101906102999190613f04565b6107f0565b6040516102ab9190613f49565b60405180910390f35b6102ce60048036038101906102c99190613f62565b6108d1565b6040516102db9190614017565b60405180910390f35b6102fe60048036038101906102f99190614499565b6109e0565b005b61031a60048036038101906103159190613e49565b610c14565b005b610324610d12565b6040516103319190614669565b60405180910390f35b610342610d37565b60405161034f9190613e96565b60405180910390f35b610372600480360381019061036d9190614682565b610d40565b005b61038e6004803603810190610389919061470b565b61107d565b005b610398611124565b6040516103a59190613e96565b60405180910390f35b6103b661112a565b6040516103c391906147f6565b60405180910390f35b6103d461114f565b6040516103e19190613e96565b60405180910390f35b61040460048036038101906103ff919061480f565b611155565b005b610420600480360381019061041b919061483a565b6111cd565b005b61043c60048036038101906104379190614970565b611292565b6040516104499190614a9d565b60405180910390f35b61046c60048036038101906104679190613f62565b61139f565b6040516104799190613f49565b60405180910390f35b61049c60048036038101906104979190614abd565b6113b2565b005b6104a66113c6565b6040516104b39190614b24565b60405180910390f35b6104d660048036038101906104d19190614b3d565b6113eb565b005b6104f260048036038101906104ed9190614bc5565b611497565b005b6104fc6116b3565b005b61051860048036038101906105139190614c3c565b6116c6565b005b610534600480360381019061052f9190614cbc565b611a22565b005b61053e611a39565b60405161054b9190614d09565b60405180910390f35b61056e60048036038101906105699190614d4c565b611a61565b005b61058a60048036038101906105859190613f62565b611a77565b005b610594611ada565b6040516105a191906147f6565b60405180910390f35b6105c460048036038101906105bf9190614c3c565b611b00565b005b6105e060048036038101906105db9190614dc5565b611b1b565b005b6105fc60048036038101906105f79190614eb1565b611b9d565b6040516106099190614f97565b60405180910390f35b61062c60048036038101906106279190613f62565b611bb4565b6040516106399190613e96565b60405180910390f35b61065c60048036038101906106579190614fb0565b611bce565b005b61067860048036038101906106739190613f62565b612070565b604051610688949392919061500f565b60405180910390f35b6106ab60048036038101906106a69190614c3c565b61213b565b005b6106c760048036038101906106c29190615059565b612156565b6040516106d49190613f49565b60405180910390f35b6106f760048036038101906106f29190615097565b6121e4565b6040516107049190614f97565b60405180910390f35b6107276004803603810190610722919061512d565b6121f9565b005b610743600480360381019061073e91906151c0565b6122a0565b005b61075f600480360381019061075a91906151eb565b612324565b005b61077b6004803603810190610776919061523b565b6123d0565b005b61078561245c565b6040516107929190615279565b60405180910390f35b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108ba57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108ca57506108c98261246e565b5b9050919050565b60605f60095f8481526020019081526020015f2060020180546108f3906152bf565b80601f016020809104026020016040519081016040528092919081815260200182805461091f906152bf565b801561096a5780601f106109415761010080835404028352916020019161096a565b820191905f5260205f20905b81548152906001019060200180831161094d57829003601f168201915b505050505090505f61097b846124d7565b90505f8251116109b4578061098f85612569565b6040516020016109a0929190615329565b6040516020818303038152906040526109d7565b80826040516020016109c7929190615329565b6040516020818303038152906040525b92505050919050565b6109e8612633565b855187511480156109fa575084518751145b8015610a07575083518751145b8015610a14575082518751145b8015610a21575081518751145b610a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5790615396565b60405180910390fd5b5f5b8751811015610bfd57610a8e888281518110610a8157610a806153b4565b5b602002602001015161139f565b15610ace576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac59061542b565b60405180910390fd5b6040518060800160405280868381518110610aec57610aeb6153b4565b5b60200260200101518152602001858381518110610b0c57610b0b6153b4565b5b602002602001015160ff168152602001848381518110610b2f57610b2e6153b4565b5b602002602001015160ff168152602001878381518110610b5257610b516153b4565b5b602002602001015181525060095f8a8481518110610b7357610b726153b4565b5b602002602001015181526020019081526020015f205f820151815f01556020820151816001015f6101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548160ff021916908360ff1602179055506060820151816002019081610be691906155dd565b509050508080610bf5906156d9565b915050610a62565b50610c0a888888846126ba565b5050505050505050565b610c1c612633565b610c2461273d565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610c625750600b548111155b610ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9890615396565b60405180910390fd5b80600b5f828254610cb29190615720565b92505081905550610d068282600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166127839092919063ffffffff16565b610d0e612802565b5050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600554905090565b610d48612633565b5f600b54600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610da79190614d09565b602060405180830381865afa158015610dc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de69190615767565b610df09190615720565b9050600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603610e8b5780851115610e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8190615396565b60405180910390fd5b5b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610f245780841115610f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1a90615396565b60405180910390fd5b5b610f7060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868973ffffffffffffffffffffffffffffffffffffffff1661280c9092919063ffffffff16565b610fbc60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16858873ffffffffffffffffffffffffffffffffffffffff1661280c9092919063ffffffff16565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e33700888888888888306103844261100e9190615792565b6040518963ffffffff1660e01b81526004016110319897969594939291906157c5565b6060604051808303815f875af115801561104d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110719190615841565b50505050505050505050565b5f6110866128a5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156110cb57506110c98682612156565b155b1561110f5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611106929190615891565b60405180910390fd5b61111c86868686866128ac565b505050505050565b600b5481565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b61115d612633565b5f8160ff161480611171575060018160ff16145b6111b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a790615396565b60405180910390fd5b80600c5f6101000a81548160ff021916908360ff16021790555050565b6111d5612633565b8051825114611219576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121090615396565b60405180910390fd5b5f5b825181101561128d57818181518110611237576112366153b4565b5b602002602001015160095f858481518110611255576112546153b4565b5b602002602001015181526020019081526020015f20600201908161127991906155dd565b508080611285906156d9565b91505061121b565b505050565b606081518351146112de57815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016112d59291906158b8565b60405180910390fd5b5f835167ffffffffffffffff8111156112fa576112f961403b565b5b6040519080825280602002602001820160405280156113285781602001602082028036833780820191505090505b5090505f5b84518110156113945761136461134c82876129a090919063ffffffff16565b61135f83876129b390919063ffffffff16565b61079b565b828281518110611377576113766153b4565b5b6020026020010181815250508061138d906156d9565b905061132d565b508091505092915050565b5f806113aa83611bb4565b119050919050565b6113ba612633565b6113c3816129c6565b50565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113f36128a5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561143c575061143a836114356128a5565b612156565b155b15611487576114496128a5565b836040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161147e929190615891565b60405180910390fd5b6114928383836129d9565b505050565b61149f612633565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a4390587876040518363ffffffff1660e01b81526004016114fc929190615891565b602060405180830381865afa158015611517573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061153b91906158f3565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a290615396565b60405180910390fd5b6115f760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16858373ffffffffffffffffffffffffffffffffffffffff1661280c9092919063ffffffff16565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663baa2abde878787878730610384426116489190615792565b6040518863ffffffff1660e01b815260040161166a979695949392919061591e565b60408051808303815f875af1158015611685573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116a9919061598b565b5050505050505050565b6116bb612633565b6116c45f612a69565b565b6116ce61273d565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561170957505f82115b801561172657506001600c5f9054906101000a900460ff1660ff16145b80156117565750600160095f8581526020019081526020015f2060010160019054906101000a900460ff1660ff16145b611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178c90615396565b60405180910390fd5b5f8260095f8681526020019081526020015f205f01546117b591906159c9565b9050826117c2308661079b565b1015801561186b575080600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401611829929190615891565b602060405180830381865afa158015611844573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118689190615767565b10155b8015611910575080600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016118ce9190614d09565b602060405180830381865afa1580156118e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190d9190615767565b10155b61194f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194690615396565b60405180910390fd5b61199e333083600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b2c909392919063ffffffff16565b600160095f8681526020019081526020015f206001015f9054906101000a900460ff1660ff1603611a06576064600a54826119d991906159c9565b6119e39190615a37565b816119ee9190615720565b600b5f8282546119fe9190615792565b925050819055505b611a133086868686612bae565b50611a1c612802565b50505050565b611a2a612633565b611a35308383612cb4565b5050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611a73611a6c6128a5565b8383612d56565b5050565b611a7f612633565b60328110158015611a91575060648111155b611ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac790615396565b60405180910390fd5b80600a8190555050565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b08612633565b611b1533858585856121f9565b50505050565b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401611b5893929190615a67565b6020604051808303815f875af1158015611b74573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b989190615ab0565b505050565b5f63bc197c8160e01b905098975050505050505050565b5f60045f8381526020019081526020015f20549050919050565b611bd6612633565b5f600267ffffffffffffffff811115611bf257611bf161403b565b5b604051908082528060200260200182016040528015611c205781602001602082028036833780820191505090505b5090505f8260ff1603611e6957600b54600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611c8b9190614d09565b602060405180830381865afa158015611ca6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cca9190615767565b611cd49190615720565b841115611d16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0d90615396565b60405180910390fd5b611d8460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280c9092919063ffffffff16565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815f81518110611dba57611db96153b4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110611e2a57611e296153b4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fb7565b611ed660075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280c9092919063ffffffff16565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815f81518110611f0b57611f0a6153b4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110611f7c57611f7b6153b4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed173985858430610384426120069190615792565b6040518663ffffffff1660e01b8152600401612026959493929190615b92565b5f604051808303815f875af1158015612041573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906120699190615c7f565b5050505050565b6009602052805f5260405f205f91509050805f015490806001015f9054906101000a900460ff16908060010160019054906101000a900460ff16908060020180546120ba906152bf565b80601f01602080910402602001604051908101604052809291908181526020018280546120e6906152bf565b80156121315780601f1061210857610100808354040283529160200191612131565b820191905f5260205f20905b81548152906001019060200180831161211457829003601f168201915b5050505050905084565b612143612633565b6121503085858585612bae565b50505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f63f23a6e6160e01b90509695505050505050565b5f6122026128a5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561224757506122458682612156565b155b1561228b5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401612282929190615891565b60405180910390fd5b6122988686868686612bae565b505050505050565b6122a8612633565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612318575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161230f9190614d09565b60405180910390fd5b61232181612a69565b50565b61232c6128a5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561237557506123738361236e6128a5565b612156565b155b156123c0576123826128a5565b836040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016123b7929190615891565b60405180910390fd5b6123cb838383612cb4565b505050565b6123d8612633565b5f8160ff1614806123ec575060018160ff16145b61242b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242290615396565b60405180910390fd5b8060095f8481526020019081526020015f2060010160016101000a81548160ff021916908360ff1602179055505050565b600c5f9054906101000a900460ff1681565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6060600280546124e6906152bf565b80601f0160208091040260200160405190810160405280929190818152602001828054612512906152bf565b801561255d5780601f106125345761010080835404028352916020019161255d565b820191905f5260205f20905b81548152906001019060200180831161254057829003601f168201915b50505050509050919050565b60605f600161257784612ebf565b0190505f8167ffffffffffffffff8111156125955761259461403b565b5b6040519080825280601f01601f1916602001820160405280156125c75781602001600182028036833780820191505090505b5090505f82602001820190505b600115612628578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161261d5761261c615a0a565b5b0494505f85036125d4575b819350505050919050565b61263b6128a5565b73ffffffffffffffffffffffffffffffffffffffff16612659611a39565b73ffffffffffffffffffffffffffffffffffffffff16146126b85761267c6128a5565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016126af9190614d09565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361272a575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016127219190614d09565b60405180910390fd5b6127375f85858585613010565b50505050565b600260065403612779576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600681905550565b6127fd838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040516024016127b6929190615cc6565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506130bc565b505050565b6001600681905550565b5f8373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401612848929190615891565b602060405180830381865afa158015612863573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128879190615767565b905061289f8484848461289a9190615792565b613151565b50505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361291c575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016129139190614d09565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361298c575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016129839190614d09565b60405180910390fd5b6129998585858585613010565b5050505050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b80600290816129d591906155dd565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a49575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401612a409190614d09565b60405180910390fd5b612a64835f848460405180602001604052805f815250613010565b505050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612ba8848573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401612b6193929190615a67565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506130bc565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612c1e575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612c159190614d09565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612c8e575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401612c859190614d09565b60405180910390fd5b5f80612c9a858561325e565b91509150612cab8787848487613010565b50505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d24575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401612d1b9190614d09565b60405180910390fd5b5f80612d30848461325e565b91509150612d4f855f848460405180602001604052805f815250613010565b5050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612dc6575f6040517fced3e100000000000000000000000000000000000000000000000000000000008152600401612dbd9190614d09565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612eb29190613f49565b60405180910390a3505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612f1b577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612f1157612f10615a0a565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612f58576d04ee2d6d415b85acef81000000008381612f4e57612f4d615a0a565b5b0492506020810190505b662386f26fc100008310612f8757662386f26fc100008381612f7d57612f7c615a0a565b5b0492506010810190505b6305f5e1008310612fb0576305f5e1008381612fa657612fa5615a0a565b5b0492506008810190505b6127108310612fd5576127108381612fcb57612fca615a0a565b5b0492506004810190505b60648310612ff85760648381612fee57612fed615a0a565b5b0492506002810190505b600a8310613007576001810190505b80915050919050565b61301c8585858561328e565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146130b5575f6130586128a5565b905060018451036130a4575f6130775f866129b390919063ffffffff16565b90505f61308d5f866129b390919063ffffffff16565b905061309d8389898585896132a0565b50506130b3565b6130b281878787878761344f565b5b505b5050505050565b5f6130e6828473ffffffffffffffffffffffffffffffffffffffff166135fe90919063ffffffff16565b90505f81511415801561310a5750808060200190518101906131089190615ab0565b155b1561314c57826040517f5274afe70000000000000000000000000000000000000000000000000000000081526004016131439190614d09565b60405180910390fd5b505050565b5f8373ffffffffffffffffffffffffffffffffffffffff1663095ea7b38484604051602401613181929190615cc6565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506131cf8482613613565b6132585761324d848573ffffffffffffffffffffffffffffffffffffffff1663095ea7b3865f604051602401613206929190615d26565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506130bc565b61325784826130bc565b5b50505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b61329a848484846136d2565b50505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115613447578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401613300959493929190615d9f565b6020604051808303815f875af192505050801561333b57506040513d601f19601f820116820180604052508101906133389190615e0b565b60015b6133bc573d805f8114613369576040519150601f19603f3d011682016040523d82523d5f602084013e61336e565b606091505b505f8151036133b457846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016133ab9190614d09565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461344557846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161343c9190614d09565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156135f6578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016134af959493929190615e36565b6020604051808303815f875af19250505080156134ea57506040513d601f19601f820116820180604052508101906134e79190615e0b565b60015b61356b573d805f8114613518576040519150601f19603f3d011682016040523d82523d5f602084013e61351d565b606091505b505f81510361356357846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161355a9190614d09565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146135f457846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016135eb9190614d09565b60405180910390fd5b505b505050505050565b606061360b83835f61387b565b905092915050565b5f805f8473ffffffffffffffffffffffffffffffffffffffff168460405161363b9190615ed6565b5f604051808303815f865af19150503d805f8114613674576040519150601f19603f3d011682016040523d82523d5f602084013e613679565b606091505b50915091508180156136a657505f815114806136a55750808060200190518101906136a49190615ab0565b5b5b80156136c857505f8573ffffffffffffffffffffffffffffffffffffffff163b115b9250505092915050565b6136de84848484613944565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036137b7575f805b835181101561379c575f838281518110613731576137306153b4565b5b602002602001015190508060045f878581518110613752576137516153b4565b5b602002602001015181526020019081526020015f205f8282546137759190615792565b9250508190555080836137889190615792565b92505080613795906156d9565b9050613714565b508060055f8282546137ae9190615792565b92505081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613875575f805b8351811015613863575f83828151811061380a576138096153b4565b5b602002602001015190508060045f87858151811061382b5761382a6153b4565b5b602002602001015181526020019081526020015f205f82825403925050819055508083019250508061385c906156d9565b90506137ed565b508060055f8282540392505081905550505b50505050565b6060814710156138c257306040517fcd7860590000000000000000000000000000000000000000000000000000000081526004016138b99190614d09565b60405180910390fd5b5f808573ffffffffffffffffffffffffffffffffffffffff1684866040516138ea9190615ed6565b5f6040518083038185875af1925050503d805f8114613924576040519150601f19603f3d011682016040523d82523d5f602084013e613929565b606091505b5091509150613939868383613cda565b925050509392505050565b805182511461398e57815181516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016139859291906158b8565b60405180910390fd5b5f6139976128a5565b90505f5b8351811015613b99575f6139b882866129b390919063ffffffff16565b90505f6139ce83866129b390919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614613af1575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613a9d57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401613a949493929190615eec565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614613b8657805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254613b7e9190615792565b925050819055505b505080613b92906156d9565b905061399b565b506001835103613c54575f613bb75f856129b390919063ffffffff16565b90505f613bcd5f856129b390919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051613c459291906158b8565b60405180910390a45050613cd3565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051613cca929190615f2f565b60405180910390a45b5050505050565b606082613cef57613cea82613d67565b613d5f565b5f8251148015613d1557505f8473ffffffffffffffffffffffffffffffffffffffff163b145b15613d5757836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401613d4e9190614d09565b60405180910390fd5b819050613d60565b5b9392505050565b5f81511115613d795780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613de582613dbc565b9050919050565b613df581613ddb565b8114613dff575f80fd5b50565b5f81359050613e1081613dec565b92915050565b5f819050919050565b613e2881613e16565b8114613e32575f80fd5b50565b5f81359050613e4381613e1f565b92915050565b5f8060408385031215613e5f57613e5e613db4565b5b5f613e6c85828601613e02565b9250506020613e7d85828601613e35565b9150509250929050565b613e9081613e16565b82525050565b5f602082019050613ea95f830184613e87565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613ee381613eaf565b8114613eed575f80fd5b50565b5f81359050613efe81613eda565b92915050565b5f60208284031215613f1957613f18613db4565b5b5f613f2684828501613ef0565b91505092915050565b5f8115159050919050565b613f4381613f2f565b82525050565b5f602082019050613f5c5f830184613f3a565b92915050565b5f60208284031215613f7757613f76613db4565b5b5f613f8484828501613e35565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613fc4578082015181840152602081019050613fa9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613fe982613f8d565b613ff38185613f97565b9350614003818560208601613fa7565b61400c81613fcf565b840191505092915050565b5f6020820190508181035f83015261402f8184613fdf565b905092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61407182613fcf565b810181811067ffffffffffffffff821117156140905761408f61403b565b5b80604052505050565b5f6140a2613dab565b90506140ae8282614068565b919050565b5f67ffffffffffffffff8211156140cd576140cc61403b565b5b602082029050602081019050919050565b5f80fd5b5f6140f46140ef846140b3565b614099565b90508083825260208201905060208402830185811115614117576141166140de565b5b835b81811015614140578061412c8882613e35565b845260208401935050602081019050614119565b5050509392505050565b5f82601f83011261415e5761415d614037565b5b813561416e8482602086016140e2565b91505092915050565b5f67ffffffffffffffff8211156141915761419061403b565b5b602082029050602081019050919050565b5f80fd5b5f67ffffffffffffffff8211156141c0576141bf61403b565b5b6141c982613fcf565b9050602081019050919050565b828183375f83830152505050565b5f6141f66141f1846141a6565b614099565b905082815260208101848484011115614212576142116141a2565b5b61421d8482856141d6565b509392505050565b5f82601f83011261423957614238614037565b5b81356142498482602086016141e4565b91505092915050565b5f61426461425f84614177565b614099565b90508083825260208201905060208402830185811115614287576142866140de565b5b835b818110156142ce57803567ffffffffffffffff8111156142ac576142ab614037565b5b8086016142b98982614225565b85526020850194505050602081019050614289565b5050509392505050565b5f82601f8301126142ec576142eb614037565b5b81356142fc848260208601614252565b91505092915050565b5f67ffffffffffffffff82111561431f5761431e61403b565b5b602082029050602081019050919050565b5f60ff82169050919050565b61434581614330565b811461434f575f80fd5b50565b5f813590506143608161433c565b92915050565b5f61437861437384614305565b614099565b9050808382526020820190506020840283018581111561439b5761439a6140de565b5b835b818110156143c457806143b08882614352565b84526020840193505060208101905061439d565b5050509392505050565b5f82601f8301126143e2576143e1614037565b5b81356143f2848260208601614366565b91505092915050565b5f67ffffffffffffffff8211156144155761441461403b565b5b61441e82613fcf565b9050602081019050919050565b5f61443d614438846143fb565b614099565b905082815260208101848484011115614459576144586141a2565b5b6144648482856141d6565b509392505050565b5f82601f8301126144805761447f614037565b5b813561449084826020860161442b565b91505092915050565b5f805f805f805f80610100898b0312156144b6576144b5613db4565b5b5f6144c38b828c01613e02565b985050602089013567ffffffffffffffff8111156144e4576144e3613db8565b5b6144f08b828c0161414a565b975050604089013567ffffffffffffffff81111561451157614510613db8565b5b61451d8b828c0161414a565b965050606089013567ffffffffffffffff81111561453e5761453d613db8565b5b61454a8b828c016142d8565b955050608089013567ffffffffffffffff81111561456b5761456a613db8565b5b6145778b828c0161414a565b94505060a089013567ffffffffffffffff81111561459857614597613db8565b5b6145a48b828c016143ce565b93505060c089013567ffffffffffffffff8111156145c5576145c4613db8565b5b6145d18b828c016143ce565b92505060e089013567ffffffffffffffff8111156145f2576145f1613db8565b5b6145fe8b828c0161446c565b9150509295985092959890939650565b5f819050919050565b5f61463161462c61462784613dbc565b61460e565b613dbc565b9050919050565b5f61464282614617565b9050919050565b5f61465382614638565b9050919050565b61466381614649565b82525050565b5f60208201905061467c5f83018461465a565b92915050565b5f805f805f8060c0878903121561469c5761469b613db4565b5b5f6146a989828a01613e02565b96505060206146ba89828a01613e02565b95505060406146cb89828a01613e35565b94505060606146dc89828a01613e35565b93505060806146ed89828a01613e35565b92505060a06146fe89828a01613e35565b9150509295509295509295565b5f805f805f60a0868803121561472457614723613db4565b5b5f61473188828901613e02565b955050602061474288828901613e02565b945050604086013567ffffffffffffffff81111561476357614762613db8565b5b61476f8882890161414a565b935050606086013567ffffffffffffffff8111156147905761478f613db8565b5b61479c8882890161414a565b925050608086013567ffffffffffffffff8111156147bd576147bc613db8565b5b6147c98882890161446c565b9150509295509295909350565b5f6147e082614638565b9050919050565b6147f0816147d6565b82525050565b5f6020820190506148095f8301846147e7565b92915050565b5f6020828403121561482457614823613db4565b5b5f61483184828501614352565b91505092915050565b5f80604083850312156148505761484f613db4565b5b5f83013567ffffffffffffffff81111561486d5761486c613db8565b5b6148798582860161414a565b925050602083013567ffffffffffffffff81111561489a57614899613db8565b5b6148a6858286016142d8565b9150509250929050565b5f67ffffffffffffffff8211156148ca576148c961403b565b5b602082029050602081019050919050565b5f6148ed6148e8846148b0565b614099565b905080838252602082019050602084028301858111156149105761490f6140de565b5b835b8181101561493957806149258882613e02565b845260208401935050602081019050614912565b5050509392505050565b5f82601f83011261495757614956614037565b5b81356149678482602086016148db565b91505092915050565b5f806040838503121561498657614985613db4565b5b5f83013567ffffffffffffffff8111156149a3576149a2613db8565b5b6149af85828601614943565b925050602083013567ffffffffffffffff8111156149d0576149cf613db8565b5b6149dc8582860161414a565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614a1881613e16565b82525050565b5f614a298383614a0f565b60208301905092915050565b5f602082019050919050565b5f614a4b826149e6565b614a5581856149f0565b9350614a6083614a00565b805f5b83811015614a90578151614a778882614a1e565b9750614a8283614a35565b925050600181019050614a63565b5085935050505092915050565b5f6020820190508181035f830152614ab58184614a41565b905092915050565b5f60208284031215614ad257614ad1613db4565b5b5f82013567ffffffffffffffff811115614aef57614aee613db8565b5b614afb84828501614225565b91505092915050565b5f614b0e82614638565b9050919050565b614b1e81614b04565b82525050565b5f602082019050614b375f830184614b15565b92915050565b5f805f60608486031215614b5457614b53613db4565b5b5f614b6186828701613e02565b935050602084013567ffffffffffffffff811115614b8257614b81613db8565b5b614b8e8682870161414a565b925050604084013567ffffffffffffffff811115614baf57614bae613db8565b5b614bbb8682870161414a565b9150509250925092565b5f805f805f60a08688031215614bde57614bdd613db4565b5b5f614beb88828901613e02565b9550506020614bfc88828901613e02565b9450506040614c0d88828901613e35565b9350506060614c1e88828901613e35565b9250506080614c2f88828901613e35565b9150509295509295909350565b5f805f8060808587031215614c5457614c53613db4565b5b5f614c6187828801613e02565b9450506020614c7287828801613e35565b9350506040614c8387828801613e35565b925050606085013567ffffffffffffffff811115614ca457614ca3613db8565b5b614cb08782880161446c565b91505092959194509250565b5f8060408385031215614cd257614cd1613db4565b5b5f614cdf85828601613e35565b9250506020614cf085828601613e35565b9150509250929050565b614d0381613ddb565b82525050565b5f602082019050614d1c5f830184614cfa565b92915050565b614d2b81613f2f565b8114614d35575f80fd5b50565b5f81359050614d4681614d22565b92915050565b5f8060408385031215614d6257614d61613db4565b5b5f614d6f85828601613e02565b9250506020614d8085828601614d38565b9150509250929050565b5f614d9482613ddb565b9050919050565b614da481614d8a565b8114614dae575f80fd5b50565b5f81359050614dbf81614d9b565b92915050565b5f8060408385031215614ddb57614dda613db4565b5b5f614de885828601614db1565b9250506020614df985828601613e35565b9150509250929050565b5f80fd5b5f8083601f840112614e1c57614e1b614037565b5b8235905067ffffffffffffffff811115614e3957614e38614e03565b5b602083019150836020820283011115614e5557614e546140de565b5b9250929050565b5f8083601f840112614e7157614e70614037565b5b8235905067ffffffffffffffff811115614e8e57614e8d614e03565b5b602083019150836001820283011115614eaa57614ea96140de565b5b9250929050565b5f805f805f805f8060a0898b031215614ecd57614ecc613db4565b5b5f614eda8b828c01613e02565b9850506020614eeb8b828c01613e02565b975050604089013567ffffffffffffffff811115614f0c57614f0b613db8565b5b614f188b828c01614e07565b9650965050606089013567ffffffffffffffff811115614f3b57614f3a613db8565b5b614f478b828c01614e07565b9450945050608089013567ffffffffffffffff811115614f6a57614f69613db8565b5b614f768b828c01614e5c565b92509250509295985092959890939650565b614f9181613eaf565b82525050565b5f602082019050614faa5f830184614f88565b92915050565b5f805f60608486031215614fc757614fc6613db4565b5b5f614fd486828701613e35565b9350506020614fe586828701613e35565b9250506040614ff686828701614352565b9150509250925092565b61500981614330565b82525050565b5f6080820190506150225f830187613e87565b61502f6020830186615000565b61503c6040830185615000565b818103606083015261504e8184613fdf565b905095945050505050565b5f806040838503121561506f5761506e613db4565b5b5f61507c85828601613e02565b925050602061508d85828601613e02565b9150509250929050565b5f805f805f8060a087890312156150b1576150b0613db4565b5b5f6150be89828a01613e02565b96505060206150cf89828a01613e02565b95505060406150e089828a01613e35565b94505060606150f189828a01613e35565b935050608087013567ffffffffffffffff81111561511257615111613db8565b5b61511e89828a01614e5c565b92509250509295509295509295565b5f805f805f60a0868803121561514657615145613db4565b5b5f61515388828901613e02565b955050602061516488828901613e02565b945050604061517588828901613e35565b935050606061518688828901613e35565b925050608086013567ffffffffffffffff8111156151a7576151a6613db8565b5b6151b38882890161446c565b9150509295509295909350565b5f602082840312156151d5576151d4613db4565b5b5f6151e284828501613e02565b91505092915050565b5f805f6060848603121561520257615201613db4565b5b5f61520f86828701613e02565b935050602061522086828701613e35565b925050604061523186828701613e35565b9150509250925092565b5f806040838503121561525157615250613db4565b5b5f61525e85828601613e35565b925050602061526f85828601614352565b9150509250929050565b5f60208201905061528c5f830184615000565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806152d657607f821691505b6020821081036152e9576152e8615292565b5b50919050565b5f81905092915050565b5f61530382613f8d565b61530d81856152ef565b935061531d818560208601613fa7565b80840191505092915050565b5f61533482856152f9565b915061534082846152f9565b91508190509392505050565b7f496e76616c6964207265717565737400000000000000000000000000000000005f82015250565b5f615380600f83613f97565b915061538b8261534c565b602082019050919050565b5f6020820190508181035f8301526153ad81615374565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f546f6b656e20494420616c7265616479206578697374730000000000000000005f82015250565b5f615415601783613f97565b9150615420826153e1565b602082019050919050565b5f6020820190508181035f83015261544281615409565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026154a57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261546a565b6154af868361546a565b95508019841693508086168417925050509392505050565b5f6154e16154dc6154d784613e16565b61460e565b613e16565b9050919050565b5f819050919050565b6154fa836154c7565b61550e615506826154e8565b848454615476565b825550505050565b5f90565b615522615516565b61552d8184846154f1565b505050565b5b81811015615550576155455f8261551a565b600181019050615533565b5050565b601f8211156155955761556681615449565b61556f8461545b565b8101602085101561557e578190505b61559261558a8561545b565b830182615532565b50505b505050565b5f82821c905092915050565b5f6155b55f198460080261559a565b1980831691505092915050565b5f6155cd83836155a6565b9150826002028217905092915050565b6155e682613f8d565b67ffffffffffffffff8111156155ff576155fe61403b565b5b61560982546152bf565b615614828285615554565b5f60209050601f831160018114615645575f8415615633578287015190505b61563d85826155c2565b8655506156a4565b601f19841661565386615449565b5f5b8281101561567a57848901518255600182019150602085019450602081019050615655565b868310156156975784890151615693601f8916826155a6565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6156e382613e16565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615715576157146156ac565b5b600182019050919050565b5f61572a82613e16565b915061573583613e16565b925082820390508181111561574d5761574c6156ac565b5b92915050565b5f8151905061576181613e1f565b92915050565b5f6020828403121561577c5761577b613db4565b5b5f61578984828501615753565b91505092915050565b5f61579c82613e16565b91506157a783613e16565b92508282019050808211156157bf576157be6156ac565b5b92915050565b5f610100820190506157d95f83018b614cfa565b6157e6602083018a614cfa565b6157f36040830189613e87565b6158006060830188613e87565b61580d6080830187613e87565b61581a60a0830186613e87565b61582760c0830185614cfa565b61583460e0830184613e87565b9998505050505050505050565b5f805f6060848603121561585857615857613db4565b5b5f61586586828701615753565b935050602061587686828701615753565b925050604061588786828701615753565b9150509250925092565b5f6040820190506158a45f830185614cfa565b6158b16020830184614cfa565b9392505050565b5f6040820190506158cb5f830185613e87565b6158d86020830184613e87565b9392505050565b5f815190506158ed81613dec565b92915050565b5f6020828403121561590857615907613db4565b5b5f615915848285016158df565b91505092915050565b5f60e0820190506159315f83018a614cfa565b61593e6020830189614cfa565b61594b6040830188613e87565b6159586060830187613e87565b6159656080830186613e87565b61597260a0830185614cfa565b61597f60c0830184613e87565b98975050505050505050565b5f80604083850312156159a1576159a0613db4565b5b5f6159ae85828601615753565b92505060206159bf85828601615753565b9150509250929050565b5f6159d382613e16565b91506159de83613e16565b92508282026159ec81613e16565b91508282048414831517615a0357615a026156ac565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f615a4182613e16565b9150615a4c83613e16565b925082615a5c57615a5b615a0a565b5b828204905092915050565b5f606082019050615a7a5f830186614cfa565b615a876020830185614cfa565b615a946040830184613e87565b949350505050565b5f81519050615aaa81614d22565b92915050565b5f60208284031215615ac557615ac4613db4565b5b5f615ad284828501615a9c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b615b0d81613ddb565b82525050565b5f615b1e8383615b04565b60208301905092915050565b5f602082019050919050565b5f615b4082615adb565b615b4a8185615ae5565b9350615b5583615af5565b805f5b83811015615b85578151615b6c8882615b13565b9750615b7783615b2a565b925050600181019050615b58565b5085935050505092915050565b5f60a082019050615ba55f830188613e87565b615bb26020830187613e87565b8181036040830152615bc48186615b36565b9050615bd36060830185614cfa565b615be06080830184613e87565b9695505050505050565b5f615bfc615bf7846140b3565b614099565b90508083825260208201905060208402830185811115615c1f57615c1e6140de565b5b835b81811015615c485780615c348882615753565b845260208401935050602081019050615c21565b5050509392505050565b5f82601f830112615c6657615c65614037565b5b8151615c76848260208601615bea565b91505092915050565b5f60208284031215615c9457615c93613db4565b5b5f82015167ffffffffffffffff811115615cb157615cb0613db8565b5b615cbd84828501615c52565b91505092915050565b5f604082019050615cd95f830185614cfa565b615ce66020830184613e87565b9392505050565b5f819050919050565b5f615d10615d0b615d0684615ced565b61460e565b613e16565b9050919050565b615d2081615cf6565b82525050565b5f604082019050615d395f830185614cfa565b615d466020830184615d17565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f615d7182615d4d565b615d7b8185615d57565b9350615d8b818560208601613fa7565b615d9481613fcf565b840191505092915050565b5f60a082019050615db25f830188614cfa565b615dbf6020830187614cfa565b615dcc6040830186613e87565b615dd96060830185613e87565b8181036080830152615deb8184615d67565b90509695505050505050565b5f81519050615e0581613eda565b92915050565b5f60208284031215615e2057615e1f613db4565b5b5f615e2d84828501615df7565b91505092915050565b5f60a082019050615e495f830188614cfa565b615e566020830187614cfa565b8181036040830152615e688186614a41565b90508181036060830152615e7c8185614a41565b90508181036080830152615e908184615d67565b90509695505050505050565b5f81905092915050565b5f615eb082615d4d565b615eba8185615e9c565b9350615eca818560208601613fa7565b80840191505092915050565b5f615ee18284615ea6565b915081905092915050565b5f608082019050615eff5f830187614cfa565b615f0c6020830186613e87565b615f196040830185613e87565b615f266060830184613e87565b95945050505050565b5f6040820190508181035f830152615f478185614a41565b90508181036020830152615f5b8184614a41565b9050939250505056fea264697066735822122051efa173c94ef6b52f8eb5e62dcf4be19b02bd8a285c990213930cb047bdb76964736f6c634300081400330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000088ee7a3537667958d040216d9dc1752d1274d838