// Path: lib/aelua/jslua/java/io/InputStream.java
// public abstract class InputStream {
//   public abstract int read() throws IOException;
//   
//   public int read(byte[]buf, int start, int len) throws IOException {
//     
//     int end = start + len;
//     for (int i = start; i < end; i++) {
//       int r = read();
//       if (r == -1) {
//         return i == start ? -1 : i - start;
//       }
//       buf[i] = (byte) r;
//     }
//     return len;    
//   }
//   
//   public int read(byte[] buf) throws IOException {
// 	 return read(buf, 0, buf.length);
//   }
//   
//   public void close() throws IOException {
//     
//   }
//   public void mark(int limit)
//   {
//   }
// 	public void reset() throws IOException
//   {
//   }
// }
// 
// Path: lib/aelua/jslua/java/io/FileReader.java
// public class FileReader extends Reader{
// 	
// 	public FileReader(String s1) throws IOException
// 	{
// 	}
//   public void mark(int l) throws IOException
//   {
//   }
// 
//   public void reset() throws IOException
//   {
//   }
// 
//   public int read() throws IOException
//   {
// 	  return 0;
//   }
//   
//   public boolean markSupported()
//   {
// 		return false;
//   }
// }


import java.io.InputStream;
import java.io.FileReader;
import java.io.IOException;

  {
    L.checkType(1, Lua.TTABLE);
    LuaTable mt = L.getMetatable(L.value(1));
    if (mt == null)
    {
      mt = L.createTable(0, 1);
      L.setMetatable(L.value(1), mt);
    }
    L.setField(mt, "__index", L.getGlobals());
    return 0;
  }

  /**
   * Helper for module.  <var>module</var> parameter replaces PUC-Rio
   * use of passing it on the stack.
   */
  static void setfenv(Lua L, Object module)
  {
    Debug ar = L.getStack(1);
    L.getInfo("f", ar);
    L.setFenv(L.value(-1), module);
    L.pop(1);
  }

  /**
   * Helper for module.  <var>module</var> parameter replaces PUC-Rio
   * use of passing it on the stack.
   */
  private static void dooptions(Lua L, Object module, int n)
  {

// Path: lib/aelua/jslua/java/io/InputStream.java
// public abstract class InputStream {
//   public abstract int read() throws IOException;
//   
//   public int read(byte[]buf, int start, int len) throws IOException {
//     
//     int end = start + len;
//     for (int i = start; i < end; i++) {
//       int r = read();
//       if (r == -1) {
//         return i == start ? -1 : i - start;
//       }
//       buf[i] = (byte) r;
//     }
//     return len;    
//   }
//   
//   public int read(byte[] buf) throws IOException {
// 	 return read(buf, 0, buf.length);
//   }
//   
//   public void close() throws IOException {
//     
//   }
//   public void mark(int limit)
//   {
//   }
// 	public void reset() throws IOException
//   {
//   }
// }
// 
// Path: lib/aelua/jslua/java/io/FileReader.java
// public class FileReader extends Reader{
// 	
// 	public FileReader(String s1) throws IOException
// 	{
// 	}
//   public void mark(int l) throws IOException
//   {
//   }
// 
//   public void reset() throws IOException
//   {
//   }
// 
//   public int read() throws IOException
//   {
// 	  return 0;
//   }
//   
//   public boolean markSupported()
//   {
// 		return false;
//   }
// }


// Path: lib/aelua/jslua/mnj/lua/PackageLib.java
import java.io.InputStream;
import java.io.FileReader;
import java.io.IOException;

  {
    L.checkType(1, Lua.TTABLE);
    LuaTable mt = L.getMetatable(L.value(1));
    if (mt == null)
    {
      mt = L.createTable(0, 1);
      L.setMetatable(L.value(1), mt);
    }
    L.setField(mt, "__index", L.getGlobals());
    return 0;
  }

  /**
   * Helper for module.  <var>module</var> parameter replaces PUC-Rio
   * use of passing it on the stack.
   */
  static void setfenv(Lua L, Object module)
  {
    Debug ar = L.getStack(1);
    L.getInfo("f", ar);
    L.setFenv(L.value(-1), module);
    L.pop(1);
  }

  /**
   * Helper for module.  <var>module</var> parameter replaces PUC-Rio
   * use of passing it on the stack.
   */
  private static void dooptions(Lua L, Object module, int n)
  {

    for (int i=2; i<=n; ++i)
