public static int[][] read(IceInternal.BasicStream __is) {
   int[][] __v;
   final int __len0 = __is.readAndCheckSeqSize(1);
   __v = new int[__len0][];
   for (int __i0 = 0; __i0 < __len0; __i0++) {
     __v[__i0] = BoardArrayHelper.read(__is);
   }
   return __v;
 }
 public static void write(IceInternal.BasicStream __os, int[][] __v) {
   if (__v == null) {
     __os.writeSize(0);
   } else {
     __os.writeSize(__v.length);
     for (int __i0 = 0; __i0 < __v.length; __i0++) {
       BoardArrayHelper.write(__os, __v[__i0]);
     }
   }
 }