Input:
    public void processMessage(final PhoneResponseMessage message) {
	if (message instanceof CallEndedResponseMessage) {
	    final CallEndedResponseMessage msg = (CallEndedResponseMessage) message;
            if (msg.wasSuccessful() == false) {
                logger.warning("Failed END_CALL");
		return;
	    }
            CallListing listing = msg.getCallListing();
            if (mostRecentCallListing == null ||
		    listing.equals(mostRecentCallListing) == false) {
		return;
	    }
            if (mostRecentCallListing.isPrivate()) {
            }
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    phoneForm.setCallEnded(msg.getReasonCallEnded());
                }
            });
	    return;
	}
	if (message instanceof LockUnlockResponseMessage) {
	    LockUnlockResponseMessage msg = (LockUnlockResponseMessage) message;
	    phoneForm.changeLocked(msg.getLocked(), msg.wasSuccessful());
	    return;
	}
	if (message instanceof PhoneResponseMessage == false) {
	    logger.warning("Invalid message:  " + message);
	    return;
	}
	PhoneResponseMessage msg = (PhoneResponseMessage) message;
        CallListing listing = msg.getCallListing();
	if (msg instanceof PlaceCallResponseMessage) {
	    logger.fine("Got place call response...");
            if (msg.wasSuccessful() == false) {
                logger.warning("Failed PLACE_CALL!");
		return;
	    }
            if (mostRecentCallListing == null ||
		    listing.equals(mostRecentCallListing) == false) {
		logger.warning("Didn't find listing...");
		return;
	    }
	    mostRecentCallListing.setPrivateClientName(listing.getPrivateClientName());
	    logger.fine("Updating listing with " + listing.getExternalCallID());
	    mostRecentCallListing.setExternalCallID(listing.getExternalCallID());
            if (listing.isPrivate()) {
            }
	    return;
	}
	if (msg instanceof JoinCallResponseMessage)  {
            if (msg.wasSuccessful() == false) {
                logger.warning("Failed JOIN_CALL");
		return;
	    }
	    if (mostRecentCallListing == null ||
		    listing.equals(mostRecentCallListing) == false) {
		return;
	    }
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    phoneForm.setCallEstablished(false);
                }
            });
	    return;
	}
	if (msg instanceof CallInvitedResponseMessage) {
            if (mostRecentCallListing == null ||
		    listing.equals(mostRecentCallListing) == false) {
		return;
	    }
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    phoneForm.setCallInvited();
                }
            });
            return;
	}
	if (msg instanceof CallEstablishedResponseMessage) {
	    logger.fine("Got est resp");
            if (mostRecentCallListing == null ||
		    listing.equals(mostRecentCallListing) == false) {
		logger.warning("no listing " + mostRecentCallListing
		    + " listing " + listing);
		return;
	    }
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
		    synchronized (phoneForm) {
                        phoneForm.setCallEstablished(
			    mostRecentCallListing.isPrivate());
		    }
                }
            });
            return;
        }
    }

Output:
    public void processMessage(final PhoneResponseMessage message) {
	if (message instanceof CallEndedResponseMessage) {
	    final CallEndedResponseMessage msg = (CallEndedResponseMessage) message;
            if (msg.wasSuccessful() == false) {
                logger.warning("Failed END_CALL");
		return;
	    }
            CallListing listing = msg.getCallListing();
            if (mostRecentCallListing == null ||
		    listing.equals(mostRecentCallListing) == false) {
		return;
	    }
            if (mostRecentCallListing.isPrivate()) {
            }
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
		    if (phoneForm != null) {
                        phoneForm.setCallEnded(msg.getReasonCallEnded());
		    }
                }
            });
	    return;
	}
	if (message instanceof LockUnlockResponseMessage) {
	    LockUnlockResponseMessage msg = (LockUnlockResponseMessage) message;
	    if (phoneForm != null) {
	        phoneForm.changeLocked(msg.getLocked(), msg.wasSuccessful());
	    }
	    return;
	}
	if (message instanceof PhoneResponseMessage == false) {
	    logger.warning("Invalid message:  " + message);
	    return;
	}
	PhoneResponseMessage msg = (PhoneResponseMessage) message;
        CallListing listing = msg.getCallListing();
	if (msg instanceof PlaceCallResponseMessage) {
	    logger.fine("Got place call response...");
            if (msg.wasSuccessful() == false) {
                logger.warning("Failed PLACE_CALL!");
		return;
	    }
            if (mostRecentCallListing == null ||
		    listing.equals(mostRecentCallListing) == false) {
		logger.warning("Didn't find listing...");
		return;
	    }
	    mostRecentCallListing.setPrivateClientName(listing.getPrivateClientName());
	    logger.fine("Updating listing with " + listing.getExternalCallID());
	    mostRecentCallListing.setExternalCallID(listing.getExternalCallID());
            if (listing.isPrivate()) {
            }
	    return;
	}
	if (msg instanceof JoinCallResponseMessage)  {
            if (msg.wasSuccessful() == false) {
                logger.warning("Failed JOIN_CALL");
		return;
	    }
	    if (mostRecentCallListing == null ||
		    listing.equals(mostRecentCallListing) == false) {
		return;
	    }
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
	    	    if (phoneForm != null) {
                        phoneForm.setCallEstablished(false);
		    }
                }
            });
	    return;
	}
	if (msg instanceof CallInvitedResponseMessage) {
            if (mostRecentCallListing == null ||
		    listing.equals(mostRecentCallListing) == false) {
		return;
	    }
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
		    if (phoneForm != null) {
                        phoneForm.setCallInvited();
		    }
                }
            });
            return;
	}
	if (msg instanceof CallEstablishedResponseMessage) {
	    logger.fine("Got est resp");
            if (mostRecentCallListing == null ||
		    listing.equals(mostRecentCallListing) == false) {
		logger.warning("no listing " + mostRecentCallListing
		    + " listing " + listing);
		return;
	    }
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
		    if (phoneForm != null) {
		        synchronized (phoneForm) {
                            phoneForm.setCallEstablished(
			        mostRecentCallListing.isPrivate());
		        }
		    }
                }
            });
            return;
        }
    }


Input:
    public static Varargs preloadTexture(Varargs args, LuaEnvironment env){
        String s = args.arg1().checkjstring();
        File f = new File(env.getModPath(), s);
        if (!f.exists()) {
            Log.warning("ERROR: File not found: " + s);
        }
        CommonProxy.TEXTURES.add(f.getPath());
        return LuaValue.NONE;
    }

Output:
    public static Varargs preloadTexture(Varargs args, LuaEnvironment env){
        String arg = args.arg1().checkjstring();
        String s = "/" + (new File(env.getModPath()).getName()) + ((arg.startsWith("/")) ? "" : "/") + arg;
        if (ClientLib.class.getResourceAsStream(s) == null) {
            Log.warning("The file " + arg + " could not be located in the mod " + env.getModName());
        }
        CommonProxy.TEXTURES.add(s);
        return LuaValue.NONE;
    }


Input:
	public void writeShows(PodioShow... pshow) throws SQLException {
		Connection c = DBConnector.getInstance().getConnection();
		PreparedStatement ps = c.prepareStatement("INSERT INTO shows VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
		for (PodioShow p : pshow) {
			pshow.setInt(1, pshow.getShowID());
			pshow.setInt(2, pshow.getBandID());
			pshow.setDate(3, pshow.getDate());
			pshow.setInt(4, pshow.getState());
			pshow.setDouble(5, pshow.getFee());
			pshow.setString(6, pshow.getFeeCurrency());
			pshow.setDouble(7, pshow.getProvision());
			pshow.setString(8, pshow.getProvisionCurrency());
			pshow.setInt(9, pshow.getProductionType());
			pshow.setInt(10, pshow.getProfitSplit());
			pshow.setInt(11, pshow.getTicketPrice());
			pshow.setDouble(12, pshow.getKodaPct());
			pshow.setDouble(13, pshow.getVAT());
			pshow.setInt(14, pshow.getTicketsSold());
			pshow.setString(15, pshow.getComment());
			pshow.setTimestamp(16, pshow.getLastEdit());
			ps.executeUpdate();
		}
	}

Output:
	public void writeShows(PodioShow... pshow) throws SQLException {
		Connection c = DBConnector.getInstance().getConnection();
		PreparedStatement ps = c.prepareStatement("INSERT INTO shows VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
		for (PodioShow p : pshow) {
			ps.setInt(1, p.getShowID());
			ps.setInt(2, p.getBandID());
			ps.setDate(3, p.getDate());
			ps.setInt(4, p.getState());
			ps.setDouble(5, p.getFee());
			ps.setString(6, p.getFeeCurrency());
			ps.setDouble(7, p.getProvision());
			ps.setString(8, p.getProvisionCurrency());
			ps.setInt(9, p.getProductionType());
			ps.setInt(10, p.getProfitSplit());
			ps.setInt(11, p.getTicketPrice());
			ps.setDouble(12, p.getKodaPct());
			ps.setDouble(13, p.getVAT());
			ps.setInt(14, p.getTicketsSold());
			ps.setString(15, p.getComments());
			ps.setTimestamp(16, p.getLastEdit());
			ps.executeUpdate();
		}
	}


Input:
    private static void createWood() {
        final int blockID = BlockSettings.CUSTOMLOG.getID();
        if (!ModuleControlSettings.SUMMA.isEnabled() || blockID <= 0) return;
        final BlockCustomLog block = new BlockCustomLog(blockID);
        block.setUnlocalizedName("extrabiomes.log").setStepSound(Block.soundWoodFootstep).setHardness(2.0F).setResistance(Block.wood.getExplosionResistance(null) * 5.0F).setCreativeTab(Extrabiomes.tabsEBXL);
        final CommonProxy proxy = Extrabiomes.proxy;
        proxy.setBlockHarvestLevel(block, "axe", 0);
        proxy.registerBlock(block, extrabiomes.utility.MultiItemBlock.class);
        proxy.registerOreInAllSubblocks("logWood", block);
        proxy.registerEventHandler(block);
        proxy.setBurnProperties(block.blockID, 5, 5);
        Element.LOG_ACACIA.set(new ItemStack(block, 1, BlockCustomLog.BlockType.ACACIA.metadata()));
        Element.LOG_FIR.set(new ItemStack(block, 1, BlockCustomLog.BlockType.FIR.metadata()));
        Element.LOG_CYPRESS.set(new ItemStack(block, 1, BlockCustomLog.BlockType.CYPRESS.metadata()));
        Element.LOG_JAPANESE_MAPLE.set(new ItemStack(block, 1, BlockCustomLog.BlockType.JAPANESE_MAPLE.metadata()));
        ForestryModHelper.addToForesterBackpack(new ItemStack(block, 1, Short.MAX_VALUE));
        for (final BlockCustomLog.BlockType type : BlockCustomLog.BlockType.values()) {
            FacadeHelper.addBuildcraftFacade(block.blockID, type.metadata());
        }
        final int newblockID = BlockSettings.NEWLOG.getID();
        if (!ModuleControlSettings.SUMMA.isEnabled() || newblockID <= 0) return;
        final BlockNewLog block2 = new BlockNewLog(newblockID);
        block2.setUnlocalizedName("extrabiomes.newlog").setStepSound(Block.soundWoodFootstep).setHardness(2.0F).setResistance(Block.wood.getExplosionResistance(null) * 5.0F).setCreativeTab(Extrabiomes.tabsEBXL);
        proxy.setBlockHarvestLevel(block2, "axe", 0);
        proxy.registerBlock(block2, extrabiomes.utility.MultiItemBlock.class);
        proxy.registerOreInAllSubblocks("logWood", block2);
        proxy.registerEventHandler(block2);
        proxy.setBurnProperties(block2.blockID, 5, 5);
        Element.LOG_RAINBOW_EUCALYPTUS.set(new ItemStack(block2, 1, BlockNewLog.BlockType.RAINBOW_EUCALYPTUS.metadata()));
        Element.LOG_AUTUMN.set(new ItemStack(block2, 1, BlockNewLog.BlockType.AUTUMN.metadata()));
        Element.LOG_BALD_CYPRESS.set(new ItemStack(block2, 1, BlockNewLog.BlockType.BALD_CYPRESS.metadata()));
        ForestryModHelper.addToForesterBackpack(new ItemStack(block2, 1, Short.MAX_VALUE));
        for (final BlockNewLog.BlockType type : BlockNewLog.BlockType.values()) {
            FacadeHelper.addBuildcraftFacade(block.blockID, type.metadata());
        }
    }

Output:
    private static void createWood() {
        final int blockID = BlockSettings.CUSTOMLOG.getID();
        if (!ModuleControlSettings.SUMMA.isEnabled() || blockID <= 0) return;
        final BlockCustomLog block = new BlockCustomLog(blockID);
        block.setUnlocalizedName("extrabiomes.log").setStepSound(Block.soundWoodFootstep).setHardness(2.0F).setResistance(Block.wood.getExplosionResistance(null) * 5.0F).setCreativeTab(Extrabiomes.tabsEBXL);
        final CommonProxy proxy = Extrabiomes.proxy;
        proxy.setBlockHarvestLevel(block, "axe", 0);
        proxy.registerBlock(block, extrabiomes.utility.MultiItemBlock.class);
        proxy.registerOreInAllSubblocks("logWood", block);
        proxy.registerEventHandler(block);
        proxy.setBurnProperties(block.blockID, 5, 5);
        Element.LOG_ACACIA.set(new ItemStack(block, 1, BlockCustomLog.BlockType.ACACIA.metadata()));
        Element.LOG_FIR.set(new ItemStack(block, 1, BlockCustomLog.BlockType.FIR.metadata()));
        Element.LOG_CYPRESS.set(new ItemStack(block, 1, BlockCustomLog.BlockType.CYPRESS.metadata()));
        Element.LOG_JAPANESE_MAPLE.set(new ItemStack(block, 1, BlockCustomLog.BlockType.JAPANESE_MAPLE.metadata()));
        ForestryModHelper.addToForesterBackpack(new ItemStack(block, 1, Short.MAX_VALUE));
        for (final BlockCustomLog.BlockType type : BlockCustomLog.BlockType.values()) {
            FacadeHelper.addBuildcraftFacade(block.blockID, type.metadata());
        }
        final int newblockID = BlockSettings.NEWLOG.getID();
        if (!ModuleControlSettings.SUMMA.isEnabled() || newblockID <= 0) return;
        final BlockNewLog block2 = new BlockNewLog(newblockID);
        block2.setUnlocalizedName("extrabiomes.newlog").setStepSound(Block.soundWoodFootstep).setHardness(2.0F).setResistance(Block.wood.getExplosionResistance(null) * 5.0F).setCreativeTab(Extrabiomes.tabsEBXL);
        proxy.setBlockHarvestLevel(block2, "axe", 0);
        proxy.registerBlock(block2, extrabiomes.utility.MultiItemBlock.class);
        proxy.registerOreInAllSubblocks("logWood", block2);
        proxy.registerEventHandler(block2);
        proxy.setBurnProperties(block2.blockID, 5, 5);
        Element.LOG_RAINBOW_EUCALYPTUS.set(new ItemStack(block2, 1, BlockNewLog.BlockType.RAINBOW_EUCALYPTUS.metadata()));
        Element.LOG_AUTUMN.set(new ItemStack(block2, 1, BlockNewLog.BlockType.AUTUMN.metadata()));
        Element.LOG_BALD_CYPRESS.set(new ItemStack(block2, 1, BlockNewLog.BlockType.BALD_CYPRESS.metadata()));
        ForestryModHelper.addToForesterBackpack(new ItemStack(block2, 1, Short.MAX_VALUE));
        for (final BlockNewLog.BlockType type : BlockNewLog.BlockType.values()) {
            FacadeHelper.addBuildcraftFacade(block2.blockID, type.metadata());
        }
    }


Input:
	private static void initCompetition(){
        gyroChassis = new Gyro(ANA1, CompetitionBot.Analog.GYRO);
        configA = new AnalogChannel(ANA1, CompetitionBot.Analog.CONFIG_A);
        configB = new AnalogChannel(ANA1, CompetitionBot.Analog.CONFIG_B);
        configC = new AnalogChannel(ANA1, CompetitionBot.Analog.CONFIG_C);
        encoderDriveLeft = new Encoder(DIO1, CompetitionBot.DigitalIn1.LEFT_DRIVE_ENCODER_A,
									   DIO1, CompetitionBot.DigitalIn1.LEFT_DRIVE_ENCODER_B);
        encoderDriveRight = new Encoder(DIO1, CompetitionBot.DigitalIn1.RIGHT_DRIVE_ENCODER_A,
										DIO1, CompetitionBot.DigitalIn1.RIGHT_DRIVE_ENCODER_B);
        encoderWinch = new Encoder(DIO1, CompetitionBot.DigitalIn1.WINCH_ENCODER_A,
								   DIO1, CompetitionBot.DigitalIn1.WINCH_ENCODER_B);
        limitWinchA = new DigitalInput(DIO1, CompetitionBot.DigitalIn1.WINCH_LIMIT_A);
        limitWinchB = new DigitalInput(DIO1, CompetitionBot.DigitalIn1.WINCH_LIMIT_B);
        limitArmA = new DigitalInput(DIO1, CompetitionBot.DigitalIn1.ARM_LIMIT_A);
        limitArmB = new DigitalInput(DIO1, CompetitionBot.DigitalIn1.ARM_LIMIT_B);
        limitElevatorA = new DigitalInput(DIO1, CompetitionBot.DigitalIn1.ELEVATOR_LIMIT_A);
        limitElevatorB = new DigitalInput(DIO1, CompetitionBot.DigitalIn1.ELEVATOR_LIMIT_B);
		counterShooterSpeed = new FancyCounter(DIO1, CompetitionBot.DigitalIn1.SHOOTER_SPEED_ENCODER, TPP_COUNTER_SHOOTER_SPEED);
		counterShooterAngle = new FancyCounter(DIO1, CompetitionBot.DigitalIn1.SHOOTER_ANGLE_ENCODER, TPP_COUNTER_SHOOTER_ANGLE);
        encoderElevator = new Encoder(DIO1, CompetitionBot.DigitalIn2.ELEVATOR_ENCODER_A, DIO2, CompetitionBot.DigitalIn2.ELEVATOR_ENCODER_B);
		encoderElevator.start();
        limitHookLeftBase = new DigitalInput(DIO2, CompetitionBot.DigitalIn2.HOOK_LEFT_BASE_LIMIT);
        limitHookRightBase = new DigitalInput(DIO2, CompetitionBot.DigitalIn2.HOOK_RIGHT_BASE_LIMIT);
        limitDiscTop = new DigitalInput(DIO2, CompetitionBot.DigitalIn2.DISC_ORIENTATION_LIMIT_A);
        limitDiscBottom = new DigitalInput(DIO2, CompetitionBot.DigitalIn2.DISC_ORIENTATION_LIMIT_B);
        limitShooterA = new DigitalInput(DIO2, CompetitionBot.DigitalIn2.SHOOTER_LIMIT_A);
        limitShooterB = new DigitalInput(DIO2, CompetitionBot.DigitalIn2.SHOOTER_LIMIT_B);
		pressureSwitch = new DigitalInput(DIO2, CompetitionBot.DigitalIn2.PRESSURE_SWITCH);
	}

Output:
	private static void initCompetition(){
        gyroChassis = new Gyro(ANA1, CompetitionBot.Analog.GYRO);
        configA = new AnalogChannel(ANA1, CompetitionBot.Analog.CONFIG_A);
        configB = new AnalogChannel(ANA1, CompetitionBot.Analog.CONFIG_B);
        configC = new AnalogChannel(ANA1, CompetitionBot.Analog.CONFIG_C);
        encoderDriveLeft = new Encoder(DIO1, CompetitionBot.DigitalIn1.LEFT_DRIVE_ENCODER_A,
									   DIO1, CompetitionBot.DigitalIn1.LEFT_DRIVE_ENCODER_B);
        encoderDriveRight = new Encoder(DIO1, CompetitionBot.DigitalIn1.RIGHT_DRIVE_ENCODER_A,
										DIO1, CompetitionBot.DigitalIn1.RIGHT_DRIVE_ENCODER_B);
        encoderWinch = new Encoder(DIO1, CompetitionBot.DigitalIn1.WINCH_ENCODER_A,
								   DIO1, CompetitionBot.DigitalIn1.WINCH_ENCODER_B);
        limitWinchA = new DigitalInput(DIO1, CompetitionBot.DigitalIn1.WINCH_LIMIT_A);
        limitWinchB = new DigitalInput(DIO1, CompetitionBot.DigitalIn1.WINCH_LIMIT_B);
        limitArmA = new DigitalInput(DIO1, CompetitionBot.DigitalIn1.ARM_LIMIT_A);
        limitArmB = new DigitalInput(DIO1, CompetitionBot.DigitalIn1.ARM_LIMIT_B);
        limitElevatorA = new DigitalInput(DIO1, CompetitionBot.DigitalIn1.ELEVATOR_LIMIT_A);
        limitElevatorB = new DigitalInput(DIO1, CompetitionBot.DigitalIn1.ELEVATOR_LIMIT_B);
		counterShooterSpeed = new FancyCounter(DIO1, CompetitionBot.DigitalIn1.SHOOTER_SPEED_ENCODER, TPP_COUNTER_SHOOTER_SPEED);
		counterShooterAngle = new FancyCounter(DIO1, CompetitionBot.DigitalIn1.SHOOTER_ANGLE_ENCODER, TPP_COUNTER_SHOOTER_ANGLE);
        encoderElevator = new Encoder(DIO2, CompetitionBot.DigitalIn2.ELEVATOR_ENCODER_A, DIO2, CompetitionBot.DigitalIn2.ELEVATOR_ENCODER_B);
		encoderElevator.start();
        limitHookLeftBase = new DigitalInput(DIO2, CompetitionBot.DigitalIn2.HOOK_LEFT_BASE_LIMIT);
        limitHookRightBase = new DigitalInput(DIO2, CompetitionBot.DigitalIn2.HOOK_RIGHT_BASE_LIMIT);
        limitDiscTop = new DigitalInput(DIO2, CompetitionBot.DigitalIn2.DISC_ORIENTATION_LIMIT_A);
        limitDiscBottom = new DigitalInput(DIO2, CompetitionBot.DigitalIn2.DISC_ORIENTATION_LIMIT_B);
        limitShooterA = new DigitalInput(DIO2, CompetitionBot.DigitalIn2.SHOOTER_LIMIT_A);
        limitShooterB = new DigitalInput(DIO2, CompetitionBot.DigitalIn2.SHOOTER_LIMIT_B);
		pressureSwitch = new DigitalInput(DIO2, CompetitionBot.DigitalIn2.PRESSURE_SWITCH);
	}


Input:
    public void run(Graph graph) {
        clearCachedData();
        Collection<Trip> trips = _dao.getAllTrips();
        HashMap<StopPattern, TripPattern> patterns = new HashMap<StopPattern, TripPattern>();
        int index = 0;
        HashMap<String, HashMap<Stop, TreeSet<EncodedTrip>>> tripsByBlockAndStart = new HashMap<String, HashMap<Stop, TreeSet<EncodedTrip>>>();
        for (Trip trip : trips) {
            if (index % 100 == 0)
                _log.debug("trips=" + index + "/" + trips.size());
            index++;
            List<StopTime> stopTimes = _dao.getStopTimesForTrip(trip);
            if (stopTimes.size() < 2) {
                _log
                        .warn("Trip "
                                + trip
                                + " has fewer than two stops.  We will not use it for routing.  This is probably an error in your data");
                continue;
            }
            StopPattern stopPattern = stopPatternfromTrip(trip, _dao);
            TripPattern tripPattern = patterns.get(stopPattern);
            String blockId = trip.getBlockId();
            boolean simple = false;
            if (tripPattern == null) {
                tripPattern = makeTripPattern(graph, trip, stopTimes);
                patterns.put(stopPattern, tripPattern);
                if (blockId != null && !blockId.equals("")) {
                    addTripToInterliningMap(tripsByBlockAndStart, trip, stopTimes, tripPattern,
                            blockId);
                }
            } else {
                int insertionPoint = tripPattern.getDepartureTimeInsertionPoint(stopTimes.get(0)
                        .getDepartureTime());
                if (insertionPoint < 0) {
                    _log.warn("duplicate first departure time for trip " + trip.getId()
                            + ".  This will be handled correctly but inefficiently.");
                    createSimpleHops(graph, trip, stopTimes);
                } else {
                    StopTime st1 = null;
                    int i;
                    for (i = 0; i < stopTimes.size() - 1; i++) {
                        StopTime st0 = stopTimes.get(i);
                        st1 = stopTimes.get(i + 1);
                        int dwellTime = st0.getDepartureTime() - st0.getArrivalTime();
                        int runningTime = st1.getArrivalTime() - st0.getDepartureTime();
                        try {
                            tripPattern.addHop(i, insertionPoint, st0.getDepartureTime(),
                                    runningTime, st1.getArrivalTime(), dwellTime,
                                    trip.getId());
                        } catch (TripOvertakingException e) {
                            _log
                                    .warn("trip "
                                            + trip.getId()
                                            + " overtakes another trip with the same stops.  This will be handled correctly but inefficiently.");
                            for (i = i - 1; i >= 0; --i) {
                                tripPattern.removeHop(i, insertionPoint);
                            }
                            createSimpleHops(graph, trip, stopTimes);
                            simple = true;
                            break;
                        }
                    }
                }
                if (!simple) {
                    if (blockId != null && !blockId.equals("")) {
                        addTripToInterliningMap(tripsByBlockAndStart, trip, stopTimes, tripPattern,
                                blockId);
                    }
                }
                tripPattern.setTripFlags(insertionPoint, (trip.getWheelchairAccessible() != 0) ? TripPattern.FLAG_WHEELCHAIR_ACCESSIBLE : 0);
            }
        }
        HashMap<TripPattern, HashMap<TripPattern, PatternInterlineDwell>> dwellEdges = new HashMap<TripPattern, HashMap<TripPattern, PatternInterlineDwell>>();
        for (HashMap<Stop, TreeSet<EncodedTrip>> blockStops : tripsByBlockAndStart.values()) {
            for (Stop stop : blockStops.keySet()) {
                TreeSet<EncodedTrip> tripsStartingAt = blockStops.get(stop);
                for (EncodedTrip eTrip : tripsStartingAt) {
                    Trip trip = eTrip.trip;
                    List<StopTime> stopTimes = _dao.getStopTimesForTrip(trip);
                    StopTime lastStopTime = stopTimes.get(stopTimes.size() - 1);
                    Stop lastStop = lastStopTime.getStop();
                    TreeSet<EncodedTrip> possiblePosts = null;
                    if (blockStops.containsKey(lastStop)) {
                        possiblePosts = blockStops.get(lastStop);
                    } else {
                        continue;
                    }
                    EncodedTrip[] postArray = possiblePosts.toArray(new EncodedTrip[0]);
                    int postIndex = 0;
                    int arrivalTime = lastStopTime.getArrivalTime();
                    EncodedTrip post;
                    do {
                        post = postArray[postIndex];
                        ++postIndex;
                    } while (postIndex < postArray.length
                            && postArray[postIndex].getFirstStop(_dao).getDepartureTime() < arrivalTime);
                    if (post == null || post.getFirstStop(_dao).getDepartureTime() < arrivalTime) {
                        continue;
                    }
                    PatternInterlineDwell dwell = null;
                    HashMap<TripPattern, PatternInterlineDwell> edges = dwellEdges
                            .get(eTrip.pattern);
                    if (edges != null) {
                        dwell = edges.get(post.pattern);
                    }
                    if (dwell == null) {
                        Vertex arrive = graph.addVertex(id(lastStop.getId()) + "_"
                                + id(trip.getId()) + "_A", lastStop.getLon(), lastStop.getLat());
                        Vertex depart = graph.addVertex(id(lastStop.getId()) + "_"
                                + id(post.trip.getId()) + "_D", lastStop.getLon(), lastStop
                                .getLat());
                        dwell = new PatternInterlineDwell(arrive, depart, trip);
                        graph.addEdge(dwell);
                        if (edges == null) {
                            edges = new HashMap<TripPattern, PatternInterlineDwell>();
                            dwellEdges.put(eTrip.pattern, edges);
                        }
                        edges.put(eTrip.pattern, dwell);
                    }
                    int departureTime = post.getFirstStop(_dao).getArrivalTime();
                    int dwellTime = departureTime - arrivalTime;
                    dwell.addTrip(trip.getId(), post.trip.getId(), dwellTime);
                }
            }
        }
        loadTransfers(graph);
        deleteUselessDwells(graph);
        clearCachedData();
    }

Output:
    public void run(Graph graph) {
        clearCachedData();
        Collection<Trip> trips = _dao.getAllTrips();
        HashMap<StopPattern, TripPattern> patterns = new HashMap<StopPattern, TripPattern>();
        int index = 0;
        HashMap<String, HashMap<Stop, TreeSet<EncodedTrip>>> tripsByBlockAndStart = new HashMap<String, HashMap<Stop, TreeSet<EncodedTrip>>>();
        for (Trip trip : trips) {
            if (index % 100 == 0)
                _log.debug("trips=" + index + "/" + trips.size());
            index++;
            List<StopTime> stopTimes = _dao.getStopTimesForTrip(trip);
            if (stopTimes.size() < 2) {
                _log
                        .warn("Trip "
                                + trip
                                + " has fewer than two stops.  We will not use it for routing.  This is probably an error in your data");
                continue;
            }
            StopPattern stopPattern = stopPatternfromTrip(trip, _dao);
            TripPattern tripPattern = patterns.get(stopPattern);
            String blockId = trip.getBlockId();
            boolean simple = false;
            if (tripPattern == null) {
                tripPattern = makeTripPattern(graph, trip, stopTimes);
                patterns.put(stopPattern, tripPattern);
                if (blockId != null && !blockId.equals("")) {
                    addTripToInterliningMap(tripsByBlockAndStart, trip, stopTimes, tripPattern,
                            blockId);
                }
            } else {
                int insertionPoint = tripPattern.getDepartureTimeInsertionPoint(stopTimes.get(0)
                        .getDepartureTime());
                if (insertionPoint < 0) {
                    _log.warn("duplicate first departure time for trip " + trip.getId()
                            + ".  This will be handled correctly but inefficiently.");
                    simple = true;
                    createSimpleHops(graph, trip, stopTimes);
                } else {
                    StopTime st1 = null;
                    int i;
                    for (i = 0; i < stopTimes.size() - 1; i++) {
                        StopTime st0 = stopTimes.get(i);
                        st1 = stopTimes.get(i + 1);
                        int dwellTime = st0.getDepartureTime() - st0.getArrivalTime();
                        int runningTime = st1.getArrivalTime() - st0.getDepartureTime();
                        try {
                            tripPattern.addHop(i, insertionPoint, st0.getDepartureTime(),
                                    runningTime, st1.getArrivalTime(), dwellTime,
                                    trip.getId());
                        } catch (TripOvertakingException e) {
                            _log
                                    .warn("trip "
                                            + trip.getId()
                                            + " overtakes another trip with the same stops.  This will be handled correctly but inefficiently.");
                            for (i = i - 1; i >= 0; --i) {
                                tripPattern.removeHop(i, insertionPoint);
                            }
                            createSimpleHops(graph, trip, stopTimes);
                            simple = true;
                            break;
                        }
                    }
                }
                if (!simple) {
                    if (blockId != null && !blockId.equals("")) {
                        addTripToInterliningMap(tripsByBlockAndStart, trip, stopTimes, tripPattern,
                                blockId);
                    }
                    tripPattern.setTripFlags(insertionPoint, (trip.getWheelchairAccessible() != 0) ? TripPattern.FLAG_WHEELCHAIR_ACCESSIBLE : 0);
                }
            }
        }
        HashMap<TripPattern, HashMap<TripPattern, PatternInterlineDwell>> dwellEdges = new HashMap<TripPattern, HashMap<TripPattern, PatternInterlineDwell>>();
        for (HashMap<Stop, TreeSet<EncodedTrip>> blockStops : tripsByBlockAndStart.values()) {
            for (Stop stop : blockStops.keySet()) {
                TreeSet<EncodedTrip> tripsStartingAt = blockStops.get(stop);
                for (EncodedTrip eTrip : tripsStartingAt) {
                    Trip trip = eTrip.trip;
                    List<StopTime> stopTimes = _dao.getStopTimesForTrip(trip);
                    StopTime lastStopTime = stopTimes.get(stopTimes.size() - 1);
                    Stop lastStop = lastStopTime.getStop();
                    TreeSet<EncodedTrip> possiblePosts = null;
                    if (blockStops.containsKey(lastStop)) {
                        possiblePosts = blockStops.get(lastStop);
                    } else {
                        continue;
                    }
                    EncodedTrip[] postArray = possiblePosts.toArray(new EncodedTrip[0]);
                    int postIndex = 0;
                    int arrivalTime = lastStopTime.getArrivalTime();
                    EncodedTrip post;
                    do {
                        post = postArray[postIndex];
                        ++postIndex;
                    } while (postIndex < postArray.length
                            && postArray[postIndex].getFirstStop(_dao).getDepartureTime() < arrivalTime);
                    if (post == null || post.getFirstStop(_dao).getDepartureTime() < arrivalTime) {
                        continue;
                    }
                    PatternInterlineDwell dwell = null;
                    HashMap<TripPattern, PatternInterlineDwell> edges = dwellEdges
                            .get(eTrip.pattern);
                    if (edges != null) {
                        dwell = edges.get(post.pattern);
                    }
                    if (dwell == null) {
                        Vertex arrive = graph.addVertex(id(lastStop.getId()) + "_"
                                + id(trip.getId()) + "_A", lastStop.getLon(), lastStop.getLat());
                        Vertex depart = graph.addVertex(id(lastStop.getId()) + "_"
                                + id(post.trip.getId()) + "_D", lastStop.getLon(), lastStop
                                .getLat());
                        dwell = new PatternInterlineDwell(arrive, depart, trip);
                        graph.addEdge(dwell);
                        if (edges == null) {
                            edges = new HashMap<TripPattern, PatternInterlineDwell>();
                            dwellEdges.put(eTrip.pattern, edges);
                        }
                        edges.put(eTrip.pattern, dwell);
                    }
                    int departureTime = post.getFirstStop(_dao).getArrivalTime();
                    int dwellTime = departureTime - arrivalTime;
                    dwell.addTrip(trip.getId(), post.trip.getId(), dwellTime);
                }
            }
        }
        loadTransfers(graph);
        deleteUselessDwells(graph);
        clearCachedData();
    }


Input:
	public void init() {
        view.setModel(new FileTreeModel(project.getProjectDir(), new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return project.getFilePredicate().apply(pathname);
            }
        }));
        window.topic(Project.FileChangeListener.class).subscribe(DispatchStrategy.ASYNC_EVENT, this);
		window.topic(ProjectImpl.RefreshListener.class).subscribe(DispatchStrategy.ASYNC_EVENT, this);
		((JTree) view).getSelectionModel().addTreeSelectionListener(new TreeSelectionListener() {
			@Override
			public void valueChanged(TreeSelectionEvent e) {
				TreePath[] selectionPaths = ((JTree) view).getSelectionPaths();
				List<File> paths = Lists.newArrayList();
                if (selectionPaths != null) {
                    for (TreePath tp : selectionPaths) {
                        paths.add((File) tp.getLastPathComponent());
                    }
                }
				window.getProject().setSelectedFiles(paths);
                actionContext.put(ActionContextKeys.SELECTION, paths.toArray());
                actionContext.commit();
			}
		});
        ((JTree) view).addTreeExpansionListener(new TreeExpansionListener() {
            @Override
            public void treeExpanded(TreeExpansionEvent event) {
                File file = (File) event.getPath().getLastPathComponent();
                project.register(file);
            }
            @Override
            public void treeCollapsed(TreeExpansionEvent event) {
                File file = (File) event.getPath().getLastPathComponent();
                project.unregister(file);
            }
        });
        actionContext = new ActionContext();
        actionContext.put(ActionContextKeys.FOCUSED_COMPONENT, window.getProject());
        actionContext.commit();
        ActionContext.set(view.getJComponent(), actionContext);
        if (project.getSettingsManager() != null)
            project.getSettingsManager().subscribe(IgnorePatternProjectSettings.class, this, false, window);
	}

Output:
	public void init() {
        if (project.getProjectDir() == null) return;
        view.setModel(new FileTreeModel(project.getProjectDir(), new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return project.getFilePredicate().apply(pathname);
            }
        }));
        window.topic(Project.FileChangeListener.class).subscribe(DispatchStrategy.ASYNC_EVENT, this);
		window.topic(ProjectImpl.RefreshListener.class).subscribe(DispatchStrategy.ASYNC_EVENT, this);
		((JTree) view).getSelectionModel().addTreeSelectionListener(new TreeSelectionListener() {
			@Override
			public void valueChanged(TreeSelectionEvent e) {
				TreePath[] selectionPaths = ((JTree) view).getSelectionPaths();
				List<File> paths = Lists.newArrayList();
                if (selectionPaths != null) {
                    for (TreePath tp : selectionPaths) {
                        paths.add((File) tp.getLastPathComponent());
                    }
                }
				window.getProject().setSelectedFiles(paths);
                actionContext.put(ActionContextKeys.SELECTION, paths.toArray());
                actionContext.commit();
			}
		});
        ((JTree) view).addTreeExpansionListener(new TreeExpansionListener() {
            @Override
            public void treeExpanded(TreeExpansionEvent event) {
                File file = (File) event.getPath().getLastPathComponent();
                project.register(file);
            }
            @Override
            public void treeCollapsed(TreeExpansionEvent event) {
                File file = (File) event.getPath().getLastPathComponent();
                project.unregister(file);
            }
        });
        actionContext = new ActionContext();
        actionContext.put(ActionContextKeys.FOCUSED_COMPONENT, window.getProject());
        actionContext.commit();
        ActionContext.set(view.getJComponent(), actionContext);
        if (project.getSettingsManager() != null)
            project.getSettingsManager().subscribe(IgnorePatternProjectSettings.class, this, false, window);
	}


Input:
    public static int calculateVersion(OriginatorInfo originatorInfo, ASN1Set recipientInfos, ASN1Set unprotectedAttrs)
    {
        int version;
        if (originatorInfo != null || unprotectedAttrs != null)
        {
            version = 2;
        }
        else
        {
            version = 0;
            Enumeration e = recipientInfos.getObjects();
            while (e.hasMoreElements())
            {
                RecipientInfo   ri = RecipientInfo.getInstance(e.nextElement());
                if (!ri.getVersion().equals(version))
                {
                    version = 2;
                    break;
                }
            }
        }
        return version;
    }

Output:
    public static int calculateVersion(OriginatorInfo originatorInfo, ASN1Set recipientInfos, ASN1Set unprotectedAttrs)
    {
        int version;
        if (originatorInfo != null || unprotectedAttrs != null)
        {
            version = 2;
        }
        else
        {
            version = 0;
            Enumeration e = recipientInfos.getObjects();
            while (e.hasMoreElements())
            {
                RecipientInfo   ri = RecipientInfo.getInstance(e.nextElement());
                if (ri.getVersion().getValue().intValue() != version)
                {
                    version = 2;
                    break;
                }
            }
        }
        return version;
    }


Input:
	protected void doLaunch(ModelPackage component) {
		final String title = "Paquete " + component.getQualifiedName();
		packageNameValidator.setParent(component.getParent());
        Optional<String> name = dialogs.showInput(title, "Nombre",
				component.getName(), packageNameValidator);
        if (name.isPresent()) {
			component.setName(name.get());
		}
	}

Output:
	protected void doLaunch(ModelPackage component) {
		final String title = "Paquete " + component.getQualifiedName();
		if(!component.isRoot()) packageNameValidator.setParent(component.getParent());
        Optional<String> name = dialogs.showInput(title, "Nombre",
				component.getName(), packageNameValidator);
        if (name.isPresent()) {
			component.setName(name.get());
		}
	}


Input:
    public void destroy() {
        broadcasterCache = new BroadcasterConfig.DefaultBroadcasterCache();
        setScope(SCOPE.APPLICATION);
    }

Output:
    public void destroy() {
        bc.setBroadcasterCache(new BroadcasterConfig.DefaultBroadcasterCache());
        setScope(SCOPE.APPLICATION);
    }


Input:
    private void init(final WebWindow webWindow, final Context context) throws Exception {
        final WebClient webClient = webWindow.getWebClient();
        final Map prototypes = new HashMap();
        final Map prototypesPerJSName = new HashMap();
        final Window window = new Window(this);
        final JavaScriptConfiguration jsConfig = JavaScriptConfiguration.getInstance(webClient.getBrowserVersion());
        context.initStandardObjects(window);
        StringPrimitivePrototypeBugFixer.installWorkaround(window);
        final Scriptable fallbackCaller = new ScriptableObject()
        {
            private static final long serialVersionUID = -7124423159070941606L;
            public Object get(final String name, final Scriptable start) {
                if (start instanceof ScriptableWithFallbackGetter) {
                    return ((ScriptableWithFallbackGetter) start).getWithFallback(name);
                }
                return NOT_FOUND;
            }
            public String getClassName() {
                return "htmlUnitHelper-fallbackCaller";
            }
        };
        ScriptableObject.getObjectPrototype(window).setPrototype(fallbackCaller);
        final Iterator it = jsConfig.keySet().iterator();
        while (it.hasNext()) {
            final String jsClassName = (String) it.next();
            final ClassConfiguration config = jsConfig.getClassConfiguration(jsClassName);
            final boolean isWindow = Window.class.getName().equals(config.getLinkedClass().getName());
            if (isWindow) {
                configureConstantsPropertiesAndFunctions(config, window);
            }
            else {
                final Scriptable prototype = configureClass(config, window);
                if (config.isJsObject()) {
                    prototypes.put(config.getLinkedClass(), prototype);
                    if (!getWebClient().getBrowserVersion().isIE()) {
                        final Scriptable obj = (Scriptable) config.getLinkedClass().newInstance();
                        obj.put("prototype", obj, prototype);
                        obj.setPrototype(prototype);
                        ScriptableObject.defineProperty(window,
                                config.getClassName(), obj, ScriptableObject.DONTENUM);
                    }
                }
                prototypesPerJSName.put(config.getClassName(), prototype);
            }
        }
        final Scriptable objectPrototype = ScriptableObject.getObjectPrototype(window);
        for (final Iterator iter = prototypesPerJSName.entrySet().iterator(); iter.hasNext();) {
            final Map.Entry entry = (Map.Entry) iter.next();
            final String name = (String) entry.getKey();
            final ClassConfiguration config = jsConfig.getClassConfiguration(name);
            final Scriptable prototype = (Scriptable) entry.getValue();
            if (!StringUtils.isEmpty(config.getExtendedClass())) {
                final Scriptable parentPrototype = (Scriptable) prototypesPerJSName.get(config.getExtendedClass());
                prototype.setPrototype(parentPrototype);
            }
            else {
                prototype.setPrototype(objectPrototype);
            }
        }
        final Class[] evalFnTypes = {String.class};
        final Member evalFn = Window.class.getMethod("custom_eval", evalFnTypes);
        final FunctionObject jsCustomEval = new FunctionObject("eval", evalFn, window);
        window.associateValue("custom_eval", jsCustomEval);
        for (final Iterator classnames = jsConfig.keySet().iterator(); classnames.hasNext();) {
            final String jsClassName = (String) classnames.next();
            final ClassConfiguration config = jsConfig.getClassConfiguration(jsClassName);
            final Method jsConstructor = config.getJsConstructor();
            if (jsConstructor != null) {
                final Scriptable prototype = (Scriptable) prototypesPerJSName.get(jsClassName);
                if (prototype != null) {
                    final FunctionObject jsCtor = new FunctionObject(jsClassName, jsConstructor, window);
                    jsCtor.addAsConstructor(window, prototype);
                }
            }
        }
        window.setPrototypes(prototypes);
        window.initialize(webWindow);
    }

Output:
    private void init(final WebWindow webWindow, final Context context) throws Exception {
        final WebClient webClient = webWindow.getWebClient();
        final Map prototypes = new HashMap();
        final Map prototypesPerJSName = new HashMap();
        final Window window = new Window(this);
        final JavaScriptConfiguration jsConfig = JavaScriptConfiguration.getInstance(webClient.getBrowserVersion());
        context.initStandardObjects(window);
        StringPrimitivePrototypeBugFixer.installWorkaround(window);
        final Scriptable fallbackCaller = new ScriptableObject()
        {
            private static final long serialVersionUID = -7124423159070941606L;
            public Object get(final String name, final Scriptable start) {
                if (start instanceof ScriptableWithFallbackGetter) {
                    return ((ScriptableWithFallbackGetter) start).getWithFallback(name);
                }
                return NOT_FOUND;
            }
            public String getClassName() {
                return "htmlUnitHelper-fallbackCaller";
            }
        };
        ScriptableObject.getObjectPrototype(window).setPrototype(fallbackCaller);
        final Iterator it = jsConfig.keySet().iterator();
        while (it.hasNext()) {
            final String jsClassName = (String) it.next();
            final ClassConfiguration config = jsConfig.getClassConfiguration(jsClassName);
            final boolean isWindow = Window.class.getName().equals(config.getLinkedClass().getName());
            if (isWindow) {
                configureConstantsPropertiesAndFunctions(config, window);
            }
            else {
                final Scriptable prototype = configureClass(config, window);
                if (config.isJsObject()) {
                    prototypes.put(config.getLinkedClass(), prototype);
                    if (!getWebClient().getBrowserVersion().isIE()) {
                        final Scriptable obj = (Scriptable) config.getLinkedClass().newInstance();
                        obj.put("prototype", obj, prototype);
                        obj.setPrototype(prototype);
                        obj.setParentScope(window);
                        ScriptableObject.defineProperty(window,
                                config.getClassName(), obj, ScriptableObject.DONTENUM);
                    }
                }
                prototypesPerJSName.put(config.getClassName(), prototype);
            }
        }
        final Scriptable objectPrototype = ScriptableObject.getObjectPrototype(window);
        for (final Iterator iter = prototypesPerJSName.entrySet().iterator(); iter.hasNext();) {
            final Map.Entry entry = (Map.Entry) iter.next();
            final String name = (String) entry.getKey();
            final ClassConfiguration config = jsConfig.getClassConfiguration(name);
            final Scriptable prototype = (Scriptable) entry.getValue();
            if (!StringUtils.isEmpty(config.getExtendedClass())) {
                final Scriptable parentPrototype = (Scriptable) prototypesPerJSName.get(config.getExtendedClass());
                prototype.setPrototype(parentPrototype);
            }
            else {
                prototype.setPrototype(objectPrototype);
            }
        }
        final Class[] evalFnTypes = {String.class};
        final Member evalFn = Window.class.getMethod("custom_eval", evalFnTypes);
        final FunctionObject jsCustomEval = new FunctionObject("eval", evalFn, window);
        window.associateValue("custom_eval", jsCustomEval);
        for (final Iterator classnames = jsConfig.keySet().iterator(); classnames.hasNext();) {
            final String jsClassName = (String) classnames.next();
            final ClassConfiguration config = jsConfig.getClassConfiguration(jsClassName);
            final Method jsConstructor = config.getJsConstructor();
            if (jsConstructor != null) {
                final Scriptable prototype = (Scriptable) prototypesPerJSName.get(jsClassName);
                if (prototype != null) {
                    final FunctionObject jsCtor = new FunctionObject(jsClassName, jsConstructor, window);
                    jsCtor.addAsConstructor(window, prototype);
                }
            }
        }
        window.setPrototypes(prototypes);
        window.initialize(webWindow);
    }


Input:
	public IStrategoTerm invoke(Context context, IStrategoTerm current, Strategy s) {
		synchronized (this) {
			String[] trace = context.getTrace();
			try {
				logIntercept.proceed = log_0_2.instance;
				logIntercept.enabled = true;
				log_0_2.instance = logIntercept;
				return proceed.invoke(context, current, s);
			} catch (StrategoExit e) {
				IStrategoTerm message = logIntercept.lastMessage.get();
				IStrategoTerm term = logIntercept.lastTerm.get();
				context.setTrace(trace);
				if (message != null && isTermString(message)) {
					throw new StrategoErrorExit(asJavaString(message), term);
				} else {
					throw new StrategoExit(e);
				}
			} finally {
				log_0_2.instance = logIntercept.proceed;
				logIntercept.enabled = false;
			}
		}
	}

Output:
	public IStrategoTerm invoke(Context context, IStrategoTerm current, Strategy s) {
		synchronized (this) {
			String[] trace = context.getTrace();
			try {
				logIntercept.proceed = log_0_2.instance;
				logIntercept.enabled = true;
				log_0_2.instance = logIntercept;
				return proceed.invoke(context, current, s);
			} catch (StrategoErrorExit e) {
			    throw new StrategoErrorExit(e.getMessage(), e.getTerm(), e);
			} catch (StrategoExit e) {
				IStrategoTerm message = logIntercept.lastMessage.get();
				IStrategoTerm term = logIntercept.lastTerm.get();
				context.setTrace(trace);
				if (message != null && isTermString(message)) {
					throw new StrategoErrorExit(asJavaString(message), term);
				} else {
					throw new StrategoExit(e);
				}
			} finally {
				log_0_2.instance = logIntercept.proceed;
				logIntercept.enabled = false;
			}
		}
	}


Input:
	public void Write(IOClient player, Server server) {
		PacketPrepareEvent event = new PacketPrepareEvent(player, this, server);
		server.getEventSystem().callEvent(event);
		if (event.isCancelled())
			return;
		try {
			boolean isop = false;
			if (player instanceof Player) {
				isop = ((Player)player).getGroup().isOP;
			}
			byte[] finals = new byte[131];
			finals[0] = ID;
			finals[1] = 0x07;
			String smotd = server.MOTD;
			if (((Player)player).getLevel().name.equals(server.MainLevel) && !((Player)player).getLevel().motd.equals("ignore"))
				smotd = ((Player)player).getLevel().motd;
			while (server.Name.length() < 64)
				server.Name += " ";
			while (server.MOTD.length() < 64)
				smotd += " ";
			byte[] name = server.Name.getBytes("US-ASCII");
			byte[] motd = smotd.getBytes("US-ASCII");
			System.arraycopy(name, 0, finals, 2, name.length);
			System.arraycopy(motd, 0, finals, name.length + 2, motd.length);
			finals[130] = (isop ? (byte)100 : (byte)0);
			player.WriteData(finals);
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

Output:
	public void Write(IOClient player, Server server) {
		PacketPrepareEvent event = new PacketPrepareEvent(player, this, server);
		server.getEventSystem().callEvent(event);
		if (event.isCancelled())
			return;
		try {
			boolean isop = false;
			if (player instanceof Player) {
				isop = ((Player)player).getGroup().isOP;
			}
			byte[] finals = new byte[131];
			finals[0] = ID;
			finals[1] = 0x07;
			String smotd = server.MOTD;
			if (((Player)player).getLevel() != null && ((Player)player).getLevel().name.equals(server.MainLevel) && !((Player)player).getLevel().motd.equals("ignore"))
				smotd = ((Player)player).getLevel().motd;
			while (server.Name.length() < 64)
				server.Name += " ";
			while (server.MOTD.length() < 64)
				smotd += " ";
			byte[] name = server.Name.getBytes("US-ASCII");
			byte[] motd = smotd.getBytes("US-ASCII");
			System.arraycopy(name, 0, finals, 2, name.length);
			System.arraycopy(motd, 0, finals, name.length + 2, motd.length);
			finals[130] = (isop ? (byte)100 : (byte)0);
			player.WriteData(finals);
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}


Input:
	private void selectTable(final Component component, final Point point) throws AssertionError {
		final int componentCount = getComponentCount();
		for (int i = componentCount; i > 0;) {
			remove(--i);
		}
		if (component instanceof AttributeTable) {
			table = (AttributeTable) component;
			if(table.isEditing()){
				return;
			}
			oldTable = false;
			row = table.rowAtPoint(point);
			if (table.getValueAt(row, 0).equals("")) {
				row--;
			}
			if(row >= 0){
				table.changeSelection(row, table.columnAtPoint(point), false, false);
			}
			return;
		}
		if (component instanceof JTableHeader) {
			final JTableHeader header = (JTableHeader) component;
			table = (AttributeTable) header.getTable();
			if(table.isEditing()){
				return;
			}
			oldTable = false;
			row = -1;
			return;
		}
		throw new AssertionError();
	}

Output:
	private void selectTable(final Component component, final Point point) throws AssertionError {
		final int componentCount = getComponentCount();
		for (int i = componentCount; i > 0;) {
			remove(--i);
		}
		if (component instanceof AttributeTable) {
			table = (AttributeTable) component;
			if(table.isEditing()){
				return;
			}
			oldTable = false;
			row = table.rowAtPoint(point);
			if(row >= 0){
				if (table.getValueAt(row, 0).equals("")) {
					row--;
				}
			}
			if(row >= 0){
				table.changeSelection(row, table.columnAtPoint(point), false, false);
			}
			return;
		}
		if (component instanceof JTableHeader) {
			final JTableHeader header = (JTableHeader) component;
			table = (AttributeTable) header.getTable();
			if(table.isEditing()){
				return;
			}
			oldTable = false;
			row = -1;
			return;
		}
		throw new AssertionError();
	}