/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.lang.reflect.InvocationTargetException;
import java.util.concurrent.ThreadLocalRandom;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
List < Class > classes
= List.
of( Beach.
class , CandyLand.
class , Forest.
class , Frozen.
class , Space.
class ); int index = ThreadLocalRandom.current().nextInt( 0 , classes.size() ); // Half-open: origin is inclusive while the bound is exclusive.
Class < Arena > c = classes.get( index );
Arena arena = null;
try
{
arena = c.getDeclaredConstructor().newInstance();
{
e.printStackTrace();
{
e.printStackTrace();
{
e.printStackTrace();
{
e.printStackTrace();
}
System.
out.
println( "BASIL - Done." ); }
}
interface Arena
{
}
class Beach implements Arena
{
public Beach ( )
{
System.
out.
println( "BASIL - Constructing Beach. " ); }
}
class CandyLand implements Arena
{
public CandyLand ( )
{
System.
out.
println( "BASIL - Constructing CandyLand. " ); }
}
class Forest implements Arena
{
public Forest ( )
{
System.
out.
println( "BASIL - Constructing Forest. " ); }
}
class Frozen implements Arena
{
public Frozen ( )
{
System.
out.
println( "BASIL - Constructing Frozen. " ); }
}
class Space implements Arena
{
public Space ( )
{
System.
out.
println( "BASIL - Constructing Space. " ); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjsKaW1wb3J0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZExvY2FsUmFuZG9tOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKICAgICAgICBMaXN0IDwgQ2xhc3MgPiBjbGFzc2VzID0gTGlzdC5vZiggQmVhY2guY2xhc3MgLCBDYW5keUxhbmQuY2xhc3MgLCBGb3Jlc3QuY2xhc3MgLCBGcm96ZW4uY2xhc3MgLCBTcGFjZS5jbGFzcyApOwogICAgICAgIGludCBpbmRleCA9IFRocmVhZExvY2FsUmFuZG9tLmN1cnJlbnQoKS5uZXh0SW50KCAwICwgY2xhc3Nlcy5zaXplKCkgKTsgLy8gSGFsZi1vcGVuOiBvcmlnaW4gaXMgaW5jbHVzaXZlIHdoaWxlIHRoZSBib3VuZCBpcyBleGNsdXNpdmUuCiAgICAgICAgQ2xhc3MgPCBBcmVuYSA+IGMgPSBjbGFzc2VzLmdldCggaW5kZXggKTsKICAgICAgICBBcmVuYSBhcmVuYSA9IG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBhcmVuYSA9IGMuZ2V0RGVjbGFyZWRDb25zdHJ1Y3RvcigpLm5ld0luc3RhbmNlKCk7CiAgICAgICAgfSBjYXRjaCAoIEluc3RhbnRpYXRpb25FeGNlcHRpb24gZSApCiAgICAgICAgewogICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOwogICAgICAgIH0gY2F0Y2ggKCBJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUgKQogICAgICAgIHsKICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKICAgICAgICB9IGNhdGNoICggSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlICkKICAgICAgICB7CiAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CiAgICAgICAgfSBjYXRjaCAoIE5vU3VjaE1ldGhvZEV4Y2VwdGlvbiBlICkKICAgICAgICB7CiAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CiAgICAgICAgfQoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJCQVNJTCAtIERvbmUuIiApOwoJfQp9CgppbnRlcmZhY2UgQXJlbmEKewp9CgpjbGFzcyBCZWFjaCBpbXBsZW1lbnRzIEFyZW5hCnsKICAgIHB1YmxpYyBCZWFjaCAoICkKICAgIHsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJCQVNJTCAtIENvbnN0cnVjdGluZyBCZWFjaC4gIiApOwogICAgfQp9CgpjbGFzcyBDYW5keUxhbmQgaW1wbGVtZW50cyBBcmVuYQp7CiAgICBwdWJsaWMgQ2FuZHlMYW5kICggKQogICAgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIkJBU0lMIC0gQ29uc3RydWN0aW5nIENhbmR5TGFuZC4gIiApOwogICAgfQp9CgoKY2xhc3MgRm9yZXN0IGltcGxlbWVudHMgQXJlbmEKewogICAgcHVibGljIEZvcmVzdCAoICkKICAgIHsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJCQVNJTCAtIENvbnN0cnVjdGluZyBGb3Jlc3QuICIgKTsKICAgIH0KfQoKY2xhc3MgRnJvemVuIGltcGxlbWVudHMgQXJlbmEKewogICAgcHVibGljIEZyb3plbiAoICkKICAgIHsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJCQVNJTCAtIENvbnN0cnVjdGluZyBGcm96ZW4uICIgKTsKICAgIH0KfQoKY2xhc3MgU3BhY2UgaW1wbGVtZW50cyBBcmVuYQp7CiAgICBwdWJsaWMgU3BhY2UgKCApCiAgICB7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiQkFTSUwgLSBDb25zdHJ1Y3RpbmcgU3BhY2UuICIgKTsKICAgIH0KfQoKCg==