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.*;
import javax.net.ssl.*;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;
import java.text.SimpleDateFormat;
import javax.imageio.metadata.*;
import javax.imageio.stream.*;
import javax.swing.undo.UndoManager;
import java.text.NumberFormat;
import java.awt.datatransfer.StringSelection;
class main {
public static void main(final String[] args) throws Exception { pExperiment();
flexMatchIC_iterate_debug = true;
assertEquals(ll("{what} is {1+1}"),
pnl(flexMatchIC_all_groupings("* is *", "what is 1+1?")));
assertEquals(ll("can {a} {pig fly}", "can {a pig} {fly}"),
pnl(flexMatchIC_all_groupings("can * *", "can a pig fly?")));
print("OK");
}
static void pExperiment() {
if (!isMain()) return;
//substance();
autoRestart(5);
experimentIcon();
centerHigherConsole();
tt();
}
static A assertEquals(Object x, A y) {
return assertEquals(null, x, y);
}
static A assertEquals(String msg, Object x, A y) {
if (assertVerbose()) return assertEqualsVerbose(msg, x, y);
if (!(x == null ? y == null : x.equals(y)))
throw fail((msg != null ? msg + ": " : "") + y + " != " + x);
return y;
}
static List ll(A... a) {
ArrayList l = new ArrayList(a.length);
if (a != null) for (A x : a) l.add(x);
return l;
}
static A pnl(String prefix, A l) {
printNumberedLines(prefix, l);
return l;
}
static A pnl(A l) {
printNumberedLines(l);
return l;
}
static void pnl(Map map) {
printNumberedLines(map);
}
static void pnl(Object[] a) {
printNumberedLines(a);
}
static void pnl(String s) {
printNumberedLines(lines(s));
}
static List flexMatchIC_all_groupings(final String pat, String input) {
return map(new F1() { String get(Matches m) { try { return matchedAsteriskPatternToGrouping(pat, m); } catch (Exception __e) { throw rethrow(__e); } }
public String toString() { return "matchedAsteriskPatternToGrouping(pat, m)"; }}, flexMatchIC_all(pat, input));
}
static volatile StringBuffer local_log = new StringBuffer(); // not redirected
static volatile Appendable print_log = local_log; // might be redirected, e.g. to main bot
// in bytes - will cut to half that
static volatile int print_log_max = 1024*1024;
static volatile int local_log_max = 100*1024;
static boolean print_silent; // total mute if set
static Object print_byThread_lock = new Object();
static volatile ThreadLocal