import java.util.*; import java.util.zip.*; import java.util.List; import java.util.regex.*; import java.util.concurrent.*; import java.util.concurrent.atomic.*; import java.util.concurrent.locks.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.text.*; import javax.swing.table.*; import java.io.*; import java.net.*; import java.lang.reflect.*; import java.lang.ref.*; import java.lang.management.*; import java.security.*; import java.security.spec.*; import java.awt.*; import java.awt.event.*; import java.awt.image.*; import javax.imageio.*; import java.math.*; class main { static Boolean threadAllocatedMemorySane_cache; static boolean threadAllocatedMemorySane() { if (threadAllocatedMemorySane_cache == null) threadAllocatedMemorySane_cache = threadAllocatedMemorySane_load(); return threadAllocatedMemorySane_cache; } static Boolean threadAllocatedMemorySane_load() { monitorThreadAllocatedMemory(); if (!threadAllocatedMemoryEnabled()) return false; long n = bytesAllocatedByCurrentThread(); if (n <= 0) return false; int[] bla = new int[1024]; if (bla == null) return false; if (bytesAllocatedByCurrentThread() <= n) return false; return true; } static void monitorThreadAllocatedMemory() { ThreadMXBean bean = threadMXBean(); if (bean instanceof com.sun.management.ThreadMXBean && ((com.sun.management.ThreadMXBean) bean).isThreadAllocatedMemorySupported()) ((com.sun.management.ThreadMXBean) bean).setThreadAllocatedMemoryEnabled(true); } static boolean threadAllocatedMemoryEnabled() { ThreadMXBean bean = threadMXBean(); return bean instanceof com.sun.management.ThreadMXBean && ((com.sun.management.ThreadMXBean) bean).isThreadAllocatedMemoryEnabled(); } static long bytesAllocatedByCurrentThread() { var bean = advancedThreadMXBean(); return bean == null ? 0 : bean.getThreadAllocatedBytes(threadID()); } static ThreadMXBean threadMXBean_cache; static ThreadMXBean threadMXBean() { if (threadMXBean_cache == null) threadMXBean_cache = threadMXBean_load(); return threadMXBean_cache; } static ThreadMXBean threadMXBean_load() { return ManagementFactory.getThreadMXBean(); } static com.sun.management.ThreadMXBean advancedThreadMXBean_cache; static com.sun.management.ThreadMXBean advancedThreadMXBean() { if (advancedThreadMXBean_cache == null) advancedThreadMXBean_cache = advancedThreadMXBean_load(); return advancedThreadMXBean_cache; } static com.sun.management.ThreadMXBean advancedThreadMXBean_load() { return optCast(com.sun.management.ThreadMXBean.class, threadMXBean()); } static long threadID() { return currentThread().getId(); } static long threadID(Thread t) { return t == null ? 0 : t.getId(); } static A optCast(Class c, Object o) { return isInstance(c, o) ? (A) o : null; } static Thread currentThread() { return Thread.currentThread(); } static boolean isInstance(Class type, Object arg) { return type.isInstance(arg); } }