import sun.misc.Unsafe;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
import java.lang.reflect.Field;
class Test {
Field theUnsafe
= Unsafe.
class.
getDeclaredField("theUnsafe"); theUnsafe.setAccessible(true);
Unsafe unsafe = (Unsafe) theUnsafe.get(null);
Field impl_lookup
= MethodHandles.
Lookup.
class.
getDeclaredField("IMPL_LOOKUP"); MethodHandles.Lookup lookup = (MethodHandles.Lookup) unsafe.getObject(unsafe.staticFieldBase(impl_lookup), unsafe.staticFieldOffset(impl_lookup));
MethodHandle constructor
= lookup.
findConstructor(Void.
class, MethodType.
methodType(void.
class)); Void v
= (Void)constructor.
invokeExact();
}
}
aW1wb3J0IHN1bi5taXNjLlVuc2FmZTsKaW1wb3J0IGphdmEubGFuZy5pbnZva2UuTWV0aG9kSGFuZGxlOwppbXBvcnQgamF2YS5sYW5nLmludm9rZS5NZXRob2RIYW5kbGVzOwppbXBvcnQgamF2YS5sYW5nLmludm9rZS5NZXRob2RUeXBlOwppbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuRmllbGQ7CgpjbGFzcyBUZXN0IHsKCiAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIFRocm93YWJsZSB7CiAgICBGaWVsZCB0aGVVbnNhZmUgPSBVbnNhZmUuY2xhc3MuZ2V0RGVjbGFyZWRGaWVsZCgidGhlVW5zYWZlIik7CiAgICB0aGVVbnNhZmUuc2V0QWNjZXNzaWJsZSh0cnVlKTsKICAgIFVuc2FmZSB1bnNhZmUgPSAoVW5zYWZlKSB0aGVVbnNhZmUuZ2V0KG51bGwpOwoKICAgIEZpZWxkIGltcGxfbG9va3VwID0gTWV0aG9kSGFuZGxlcy5Mb29rdXAuY2xhc3MuZ2V0RGVjbGFyZWRGaWVsZCgiSU1QTF9MT09LVVAiKTsKICAgIE1ldGhvZEhhbmRsZXMuTG9va3VwIGxvb2t1cCA9IChNZXRob2RIYW5kbGVzLkxvb2t1cCkgdW5zYWZlLmdldE9iamVjdCh1bnNhZmUuc3RhdGljRmllbGRCYXNlKGltcGxfbG9va3VwKSwgdW5zYWZlLnN0YXRpY0ZpZWxkT2Zmc2V0KGltcGxfbG9va3VwKSk7CgogICAgTWV0aG9kSGFuZGxlIGNvbnN0cnVjdG9yID0gbG9va3VwLmZpbmRDb25zdHJ1Y3RvcihWb2lkLmNsYXNzLCBNZXRob2RUeXBlLm1ldGhvZFR5cGUodm9pZC5jbGFzcykpOwogICAgVm9pZCB2ID0gKFZvaWQpY29uc3RydWN0b3IuaW52b2tlRXhhY3QoKTsKCiAgICBTeXN0ZW0ub3V0LnByaW50bG4odik7CiAgfQp9Cg==