memoscan
← all memos

Memo 0x64761863…006b14 on Ethereum

data:text/plain;base64,LyogRGlzY3Vzc2lvbjoKICogaHR0cHM6Ly9ib251cy5kZm9odWIuZXRoP2Vuc2Q9Ym9udXMuZGZvaHViLmV0aAogKi8KLyogRGVzY3JpcHRpb246CiAqIE5ldyBMaXF1aWRpdHkgTWluaW5nIE1hbmFnZXIKICovCnByYWdtYSBzb2xpZGl0eSBeMC43LjM7Cgpjb250cmFjdCBMaXF1aWRpdHlNaW5pbmdUcmFuc2ZlckZ1bmN0aW9uYWxpdHkgewoKICAgIHN0cmluZyBwcml2YXRlIF9tZXRhZGF0YUxpbms7CgogICAgY29uc3RydWN0b3Ioc3RyaW5nIG1lbW9yeSBtZXRhZGF0YUxpbmspIHsKICAgICAgICBfbWV0YWRhdGFMaW5rID0gbWV0YWRhdGFMaW5rOwogICAgfQoKICAgIGZ1bmN0aW9uIGdldE1ldGFkYXRhTGluaygpIHB1YmxpYyB2aWV3IHJldHVybnMoc3RyaW5nIG1lbW9yeSkgewogICAgICAgIHJldHVybiBfbWV0YWRhdGFMaW5rOwogICAgfQoKICAgIGZ1bmN0aW9uIGNhbGxPbmVUaW1lKGFkZHJlc3MpIHB1YmxpYyB7CiAgICAgICAgSU1WRFByb3h5IHByb3h5ID0gSU1WRFByb3h5KG1zZy5zZW5kZXIpOwogICAgICAgIElTdGF0ZUhvbGRlciBzdGF0ZUhvbGRlciA9IElTdGF0ZUhvbGRlcihwcm94eS5nZXRTdGF0ZUhvbGRlckFkZHJlc3MoKSk7CiAgICAgICAgc3RhdGVIb2xkZXIuc2V0Qm9vbChfdG9TdGF0ZUhvbGRlcktleSgic3Rha2luZy50cmFuc2Zlci5hdXRob3JpemVkIiwgX3RvU3RyaW5nKDB4ZUMzQUJDRDhiODI2ZGJBNkQ4ZDc1YTE4ZTQxQkNDMzA2MjIyNTczMSkpLCB0cnVlKTsKICAgICAgICBzdGF0ZUhvbGRlci5zZXRVaW50MjU2KCJzdGFraW5nLjB4ZWMzYWJjZDhiODI2ZGJhNmQ4ZDc1YTE4ZTQxYmNjMzA2MjIyNTczMS50aWVyc1swXS5taW5DYXAiLCA2MDAwMDAwMDAwMDAwMDAwMCk7CiAgICAgICAgc3RhdGVIb2xkZXIuc2V0VWludDI1Nigic3Rha2luZy4weGVjM2FiY2Q4YjgyNmRiYTZkOGQ3NWExOGU0MWJjYzMwNjIyMjU3MzEudGllcnNbMF0uaGFyZENhcCIsIDYwMDAwMDAwMDAwMDAwMDAwMDAwKTsKICAgIAoKICAgICAgICBzdGF0ZUhvbGRlci5zZXRVaW50MjU2KCJzdGFraW5nLjB4ZWMzYWJjZDhiODI2ZGJhNmQ4ZDc1YTE4ZTQxYmNjMzA2MjIyNTczMS50aWVyc1sxXS5taW5DYXAiLCA3MDAwMDAwMDAwMDAwMDAwMCk7CiAgICAgICAgc3RhdGVIb2xkZXIuc2V0VWludDI1Nigic3Rha2luZy4weGVjM2FiY2Q4YjgyNmRiYTZkOGQ3NWExOGU0MWJjYzMwNjIyMjU3MzEudGllcnNbMV0uaGFyZENhcCIsIDc1MDAwMDAwMDAwMDAwMDAwMDAwKTsKICAgICAgICBzdGF0ZUhvbGRlci5zZXRVaW50MjU2KCJzdGFraW5nLjB4ZWMzYWJjZDhiODI2ZGJhNmQ4ZDc1YTE4ZTQxYmNjMzA2MjIyNTczMS50aWVycy5sZW5ndGgiLCAyKTsKICAgIH0KCiAgICBmdW5jdGlvbiBfdG9TdGF0ZUhvbGRlcktleShzdHJpbmcgbWVtb3J5IGEsIHN0cmluZyBtZW1vcnkgYikgcHJpdmF0ZSBwdXJlIHJldHVybnMoc3RyaW5nIG1lbW9yeSkgewogICAgICAgIHJldHVybiBfdG9Mb3dlckNhc2Uoc3RyaW5nKGFiaS5lbmNvZGVQYWNrZWQoYSwgIi4iLCBiKSkpOwogICAgfQoKICAgIGZ1bmN0aW9uIF90b1N0cmluZyhhZGRyZXNzIF9hZGRyKSBwcml2YXRlIHB1cmUgcmV0dXJucyhzdHJpbmcgbWVtb3J5KSB7CiAgICAgICAgYnl0ZXMzMiB2YWx1ZSA9IGJ5dGVzMzIodWludDI1NihfYWRkcikpOwogICAgICAgIGJ5dGVzIG1lbW9yeSBhbHBoYWJldCA9ICIwMTIzNDU2Nzg5YWJjZGVmIjsKCiAgICAgICAgYnl0ZXMgbWVtb3J5IHN0ciA9IG5ldyBieXRlcyg0Mik7CiAgICAgICAgc3RyWzBdID0gJzAnOwogICAgICAgIHN0clsxXSA9ICd4JzsKICAgICAgICBmb3IgKHVpbnQgaSA9IDA7IGkgPCAyMDsgaSsrKSB7CiAgICAgICAgICAgIHN0clsyK2kqMl0gPSBhbHBoYWJldFt1aW50KHVpbnQ4KHZhbHVlW2kgKyAxMl0gPj4gNCkpXTsKICAgICAgICAgICAgc3RyWzMraSoyXSA9IGFscGhhYmV0W3VpbnQodWludDgodmFsdWVbaSArIDEyXSAmIDB4MGYpKV07CiAgICAgICAgfQogICAgICAgIHJldHVybiBzdHJpbmcoc3RyKTsKICAgIH0KCiAgICBmdW5jdGlvbiBfdG9Mb3dlckNhc2Uoc3RyaW5nIG1lbW9yeSBzdHIpIHByaXZhdGUgcHVyZSByZXR1cm5zKHN0cmluZyBtZW1vcnkpIHsKICAgICAgICBieXRlcyBtZW1vcnkgYlN0ciA9IGJ5dGVzKHN0cik7CiAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgYlN0ci5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBiU3RyW2ldID0gYlN0cltpXSA+PSAweDQxICYmIGJTdHJbaV0gPD0gMHg1QSA/IGJ5dGVzMSh1aW50OChiU3RyW2ldKSArIDB4MjApIDogYlN0cltpXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHN0cmluZyhiU3RyKTsKICAgIH0KfQoKaW50ZXJmYWNlIElNVkRQcm94eSB7CiAgICBmdW5jdGlvbiBnZXRTdGF0ZUhvbGRlckFkZHJlc3MoKSBleHRlcm5hbCB2aWV3IHJldHVybnMoYWRkcmVzcyk7CiAgICBmdW5jdGlvbiB0cmFuc2ZlcihhZGRyZXNzIHJlY2VpdmVyLCB1aW50MjU2IHZhbHVlLCBhZGRyZXNzIHRva2VuKSBleHRlcm5hbDsKfQoKaW50ZXJmYWNlIElTdGF0ZUhvbGRlciB7CiAgICBmdW5jdGlvbiBnZXRCb29sKHN0cmluZyBjYWxsZGF0YSB2YXJOYW1lKSBleHRlcm5hbCB2aWV3IHJldHVybnMgKGJvb2wpOwogICAgZnVuY3Rpb24gc2V0Qm9vbChzdHJpbmcgY2FsbGRhdGEgdmFyTmFtZSwgYm9vbCB2YWwpIGV4dGVybmFsIHJldHVybnMoYm9vbCk7CiAgICBmdW5jdGlvbiBzZXRVaW50MjU2KHN0cmluZyBjYWxsZGF0YSB2YXJOYW1lLCB1aW50MjU2IHZhbCkgZXh0ZXJuYWwgcmV0dXJucyh1aW50MjU2KTsKfQ==