// Path: fos-api/src/main/java/com/feedzai/fos/api/FOSException.java
// public class FOSException extends Exception {
//     public FOSException(String message) {
//         super(message);
//     }
// 
//     /**
//      * Create an exception with a nested throwable and customized message
//      * @param message exception message
//      * @param t nested throable
//      */
//     public FOSException(String message, Throwable t) {
//         super(message, t);
//     }
// 
//     /**
//      * Create an exception with a nested throwable. Throwable message used as exception message
//      * @param e
//      */
// 
//     public FOSException(Throwable e) {
//         super(e.getMessage(), e);
//     }
// }
// 
// Path: fos-api/src/main/java/com/feedzai/fos/api/Scorer.java
// public interface Scorer  {
//     /**
//      * Score the <code>scorable</code> against the given <code>modelIds</code>.
//      * <p/> The score must be between 0 and 1.
//      * <p/> The resulting scores are returned by the same order as the <code>modelIds</code> (modelsIds(pos) » return(pos)).
//      *
//      * @param modelIds the list of models to score
//      * @param scorable the instance data to score
//      * @return a list of scores double[] where each list position contains the score for each classifier
//      * @throws FOSException when scoring was not possible
//      */
//     @NotNull
//     default List<double[]> score(List<UUID> modelIds, Object[] scorable) throws FOSException {
//         ImmutableList.Builder<double[]> resultsBuilder = ImmutableList.builder();
// 
//         for (UUID modelId : modelIds) {
//             resultsBuilder.add(score(modelId, scorable));
//         }
// 
//         return resultsBuilder.build();
//     }
// 
//     /**
//      * Score all <code>scorables against</code> the given <code>modelId</code>.
//      * <p/> The score must be between 0 and 1.
//      * <p/> The resulting scores are returned in the same order as the <code>scorables</code> (scorables(pos) » return(pos)).
//      *
//      * @param modelId   the id of the model
//      * @param scorables an array of instances to score
//      * @return a list of scores double[] where each list position contains the score for each <code>scorable</code>.
//      * @throws FOSException when scoring was not possible
//      */
//     @NotNull
//     default List<double[]> score(UUID modelId, List<Object[]> scorables) throws FOSException {
//         ImmutableList.Builder<double[]> resultsBuilder = ImmutableList.builder();
// 
//         for (Object[] scorable : scorables) {
//             resultsBuilder.add(score(modelId, scorable));
//         }
// 
//         return resultsBuilder.build();
//     }
// 
//     /**
//      * Score a single <code>scorable</code> against the given <code>modelId</code>.
//      *
//      * <p/> The score must be between 0 and 1.
//      *
//      * @param modelId   the id of the model
//      * @param scorable  the instance to score
//      * @return the scores
//      * @throws FOSException when scoring was not possible
//      */
//     @NotNull
//     double[] score(UUID modelId, Object[] scorable) throws FOSException;
// 
//     /**
//      * Frees any resources allocated to this scorer.
//      *
//      * @throws FOSException when closing resources was not possible
//      */
//     void close() throws FOSException;
// }


import java.util.List;
import java.util.UUID;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.feedzai.fos.api.FOSException;
import com.feedzai.fos.api.Scorer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.Collections;
        try {
            logger.trace("modelIds='{}', scorable='{}'", mapper.writeValueAsString(modelIds), mapper.writeValueAsString(scorable));
        } catch (IOException e) {
            logger.error(e.getMessage(), e);
        }
        return Collections.EMPTY_LIST;
    }

    @Override
    public List<double[]> score(UUID modelId, List<Object[]> scorables) {
        try {
            logger.trace("modelId='{}', scorable='{}'",  mapper.writeValueAsString(modelId),  mapper.writeValueAsString(scorables));
        } catch (IOException e) {
            logger.error(e.getMessage(), e);
        }
        return Collections.EMPTY_LIST;
    }

    @Override
    public double[] score(UUID modelId, Object[] scorable) {
        try {
            logger.trace("modelId='{}', scorable='{}'",  mapper.writeValueAsString(modelId),  mapper.writeValueAsString(scorable));
        } catch (IOException e) {
            logger.error(e.getMessage(), e);
        }

        return new double[0];
    }

    @Override
// Path: fos-api/src/main/java/com/feedzai/fos/api/FOSException.java
// public class FOSException extends Exception {
//     public FOSException(String message) {
//         super(message);
//     }
// 
//     /**
//      * Create an exception with a nested throwable and customized message
//      * @param message exception message
//      * @param t nested throable
//      */
//     public FOSException(String message, Throwable t) {
//         super(message, t);
//     }
// 
//     /**
//      * Create an exception with a nested throwable. Throwable message used as exception message
//      * @param e
//      */
// 
//     public FOSException(Throwable e) {
//         super(e.getMessage(), e);
//     }
// }
// 
// Path: fos-api/src/main/java/com/feedzai/fos/api/Scorer.java
// public interface Scorer  {
//     /**
//      * Score the <code>scorable</code> against the given <code>modelIds</code>.
//      * <p/> The score must be between 0 and 1.
//      * <p/> The resulting scores are returned by the same order as the <code>modelIds</code> (modelsIds(pos) » return(pos)).
//      *
//      * @param modelIds the list of models to score
//      * @param scorable the instance data to score
//      * @return a list of scores double[] where each list position contains the score for each classifier
//      * @throws FOSException when scoring was not possible
//      */
//     @NotNull
//     default List<double[]> score(List<UUID> modelIds, Object[] scorable) throws FOSException {
//         ImmutableList.Builder<double[]> resultsBuilder = ImmutableList.builder();
// 
//         for (UUID modelId : modelIds) {
//             resultsBuilder.add(score(modelId, scorable));
//         }
// 
//         return resultsBuilder.build();
//     }
// 
//     /**
//      * Score all <code>scorables against</code> the given <code>modelId</code>.
//      * <p/> The score must be between 0 and 1.
//      * <p/> The resulting scores are returned in the same order as the <code>scorables</code> (scorables(pos) » return(pos)).
//      *
//      * @param modelId   the id of the model
//      * @param scorables an array of instances to score
//      * @return a list of scores double[] where each list position contains the score for each <code>scorable</code>.
//      * @throws FOSException when scoring was not possible
//      */
//     @NotNull
//     default List<double[]> score(UUID modelId, List<Object[]> scorables) throws FOSException {
//         ImmutableList.Builder<double[]> resultsBuilder = ImmutableList.builder();
// 
//         for (Object[] scorable : scorables) {
//             resultsBuilder.add(score(modelId, scorable));
//         }
// 
//         return resultsBuilder.build();
//     }
// 
//     /**
//      * Score a single <code>scorable</code> against the given <code>modelId</code>.
//      *
//      * <p/> The score must be between 0 and 1.
//      *
//      * @param modelId   the id of the model
//      * @param scorable  the instance to score
//      * @return the scores
//      * @throws FOSException when scoring was not possible
//      */
//     @NotNull
//     double[] score(UUID modelId, Object[] scorable) throws FOSException;
// 
//     /**
//      * Frees any resources allocated to this scorer.
//      *
//      * @throws FOSException when closing resources was not possible
//      */
//     void close() throws FOSException;
// }


// Path: fos-impl-dummy/src/main/java/com/feedzai/fos/impl/dummy/DummyScorer.java
import java.util.List;
import java.util.UUID;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.feedzai.fos.api.FOSException;
import com.feedzai.fos.api.Scorer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.Collections;

        try {
            logger.trace("modelIds='{}', scorable='{}'", mapper.writeValueAsString(modelIds), mapper.writeValueAsString(scorable));
        } catch (IOException e) {
            logger.error(e.getMessage(), e);
        }
        return Collections.EMPTY_LIST;
    }

    @Override
    public List<double[]> score(UUID modelId, List<Object[]> scorables) {
        try {
            logger.trace("modelId='{}', scorable='{}'",  mapper.writeValueAsString(modelId),  mapper.writeValueAsString(scorables));
        } catch (IOException e) {
            logger.error(e.getMessage(), e);
        }
        return Collections.EMPTY_LIST;
    }

    @Override
    public double[] score(UUID modelId, Object[] scorable) {
        try {
            logger.trace("modelId='{}', scorable='{}'",  mapper.writeValueAsString(modelId),  mapper.writeValueAsString(scorable));
        } catch (IOException e) {
            logger.error(e.getMessage(), e);
        }

        return new double[0];
    }

    @Override
    public void close() throws FOSException {