throw new IOException (ex.getMessage());
    public static ServerGameEngine loadGame(File filename) {        ServerGameEngine engine = null;        try {            System.out.print("Loading game..  ");            FileInputStream in = new		FileInputStream(filename.getCanonicalPath());            GZIPInputStream zipin = new GZIPInputStream(in);            ObjectInputStream objectIn = new ObjectInputStream(zipin);            World world = (World)objectIn.readObject();            Vector serverAutomata = (Vector)objectIn.readObject();	    Scenario scenario = (Scenario) objectIn.readObject();            /**             * load player private data             */            NonNullElements i = new NonNullElements(KEY.PLAYERS, world,                    Player.AUTHORITATIVE);            while (i.next()) {                ((Player)i.getElement()).loadSession(objectIn);            }            engine = new ServerGameEngine(world, serverAutomata, scenario);	    	    /*	     i = new NonNullElements(KEY.PLAYERS, world, Player.AUTHORITATIVE);	    while (i.next()) {		FreerailsPrincipal p = ((Player)			i.getElement()).getPrincipal();		NonNullElements j = new NonNullElements(KEY.TRAINS, world, p);		while (j.next()) {		    TrainModel tm = (TrainModel) j.getElement();		    assert !tm.isBlocked();		}	    }	    */        } catch (Exception ex) {            ex.printStackTrace();        }        return engine;    }