// Path: src/main/java/io/arivera/oss/embedded/rabbitmq/util/ArchiveType.java
// public enum ArchiveType {
// 
//   TAR_GZ, TAR_XZ, ZIP;
// 
//   public String getExtension() {
//     return name().toLowerCase(Locale.US).replace("_", ".");
//   }
// 
//   public boolean matches(String filesname) {
//     return filesname.endsWith(getExtension());
//   }
// }
// 
// Path: src/main/java/io/arivera/oss/embedded/rabbitmq/util/OperatingSystem.java
// public enum OperatingSystem {
// 
//   WINDOWS, MAC_OS, UNIX;
// 
//   /**
//    * Returns the right instance of the Operation System.
//    *
//    * @see SystemUtils#IS_OS_MAC
//    * @see SystemUtils#IS_OS_WINDOWS
//    */
//   public static OperatingSystem detect() {
//     if (SystemUtils.IS_OS_MAC) {
//       return MAC_OS;
//     } else if (SystemUtils.IS_OS_WINDOWS) {
//       return WINDOWS;
//     } else {
//       return UNIX;
//     }
//   }
// 
// }


import io.arivera.oss.embedded.rabbitmq.util.ArchiveType;
import io.arivera.oss.embedded.rabbitmq.util.OperatingSystem;
import java.util.List;
  V3_8_0(new BaseVersion("3.8.0", ErlangVersion.V21_3)),

  V3_7_18(new BaseVersion("3.7.18", ErlangVersion.V20_3)),
  V3_7_7(new BaseVersion("3.7.7", ErlangVersion.V19_3_6_4)),
  V3_7_6(new BaseVersion("3.7.6", ErlangVersion.V19_3)),
  V3_7_5(new BaseVersion("3.7.5", ErlangVersion.V19_3)),
  V3_7_4(new BaseVersion("3.7.4", ErlangVersion.V19_3)),
  V3_7_3(new BaseVersion("3.7.3", ErlangVersion.V19_3)),
  V3_7_2(new BaseVersion("3.7.2", ErlangVersion.V19_3)),
  V3_7_1(new BaseVersion("3.7.1", ErlangVersion.V19_3)),
  V3_7_0(new BaseVersion("3.7.0", ErlangVersion.V19_3)),

  V3_6_16(new BaseVersion("3.6.16", ErlangVersion.V19_3)),
  V3_6_15(new BaseVersion("3.6.15", ErlangVersion.V19_3)),
  V3_6_14(new BaseVersion("3.6.14", ErlangVersion.R16B03)),
  V3_6_13(new BaseVersion("3.6.13", ErlangVersion.R16B03)),
  V3_6_12(new BaseVersion("3.6.12", ErlangVersion.R16B03)),
  V3_6_11(new BaseVersion("3.6.11", ErlangVersion.R16B03)),
  V3_6_10(new BaseVersion("3.6.10", ErlangVersion.R16B03)),
  V3_6_9(new BaseVersion("3.6.9", ErlangVersion.R16B03)),
  V3_6_8(new BaseVersion("3.6.8", ErlangVersion.R16B03)),
  V3_6_7(new BaseVersion("3.6.7", ErlangVersion.R16B03)),
  V3_6_6(new BaseVersion("3.6.6", ErlangVersion.R16B03)),
  V3_6_5(new BaseVersion("3.6.5", ErlangVersion.R16B03)),
  V3_6_4(new BaseVersion("3.6.4", ErlangVersion.R16B03)),
  V3_6_3(new BaseVersion("3.6.3", ErlangVersion.R16B03)),
  V3_6_2(new BaseVersion("3.6.2", ErlangVersion.R16B03)),
  V3_6_1(new BaseVersion("3.6.1", ErlangVersion.R16B03)),
  V3_6_0(new BaseVersion("3.6.0", ErlangVersion.R16B03)),

// Path: src/main/java/io/arivera/oss/embedded/rabbitmq/util/ArchiveType.java
// public enum ArchiveType {
// 
//   TAR_GZ, TAR_XZ, ZIP;
// 
//   public String getExtension() {
//     return name().toLowerCase(Locale.US).replace("_", ".");
//   }
// 
//   public boolean matches(String filesname) {
//     return filesname.endsWith(getExtension());
//   }
// }
// 
// Path: src/main/java/io/arivera/oss/embedded/rabbitmq/util/OperatingSystem.java
// public enum OperatingSystem {
// 
//   WINDOWS, MAC_OS, UNIX;
// 
//   /**
//    * Returns the right instance of the Operation System.
//    *
//    * @see SystemUtils#IS_OS_MAC
//    * @see SystemUtils#IS_OS_WINDOWS
//    */
//   public static OperatingSystem detect() {
//     if (SystemUtils.IS_OS_MAC) {
//       return MAC_OS;
//     } else if (SystemUtils.IS_OS_WINDOWS) {
//       return WINDOWS;
//     } else {
//       return UNIX;
//     }
//   }
// 
// }


// Path: src/main/java/io/arivera/oss/embedded/rabbitmq/PredefinedVersion.java
import io.arivera.oss.embedded.rabbitmq.util.ArchiveType;
import io.arivera.oss.embedded.rabbitmq.util.OperatingSystem;
import java.util.List;

  V3_8_0(new BaseVersion("3.8.0", ErlangVersion.V21_3)),

  V3_7_18(new BaseVersion("3.7.18", ErlangVersion.V20_3)),
  V3_7_7(new BaseVersion("3.7.7", ErlangVersion.V19_3_6_4)),
  V3_7_6(new BaseVersion("3.7.6", ErlangVersion.V19_3)),
  V3_7_5(new BaseVersion("3.7.5", ErlangVersion.V19_3)),
  V3_7_4(new BaseVersion("3.7.4", ErlangVersion.V19_3)),
  V3_7_3(new BaseVersion("3.7.3", ErlangVersion.V19_3)),
  V3_7_2(new BaseVersion("3.7.2", ErlangVersion.V19_3)),
  V3_7_1(new BaseVersion("3.7.1", ErlangVersion.V19_3)),
  V3_7_0(new BaseVersion("3.7.0", ErlangVersion.V19_3)),

  V3_6_16(new BaseVersion("3.6.16", ErlangVersion.V19_3)),
  V3_6_15(new BaseVersion("3.6.15", ErlangVersion.V19_3)),
  V3_6_14(new BaseVersion("3.6.14", ErlangVersion.R16B03)),
  V3_6_13(new BaseVersion("3.6.13", ErlangVersion.R16B03)),
  V3_6_12(new BaseVersion("3.6.12", ErlangVersion.R16B03)),
  V3_6_11(new BaseVersion("3.6.11", ErlangVersion.R16B03)),
  V3_6_10(new BaseVersion("3.6.10", ErlangVersion.R16B03)),
  V3_6_9(new BaseVersion("3.6.9", ErlangVersion.R16B03)),
  V3_6_8(new BaseVersion("3.6.8", ErlangVersion.R16B03)),
  V3_6_7(new BaseVersion("3.6.7", ErlangVersion.R16B03)),
  V3_6_6(new BaseVersion("3.6.6", ErlangVersion.R16B03)),
  V3_6_5(new BaseVersion("3.6.5", ErlangVersion.R16B03)),
  V3_6_4(new BaseVersion("3.6.4", ErlangVersion.R16B03)),
  V3_6_3(new BaseVersion("3.6.3", ErlangVersion.R16B03)),
  V3_6_2(new BaseVersion("3.6.2", ErlangVersion.R16B03)),
  V3_6_1(new BaseVersion("3.6.1", ErlangVersion.R16B03)),
  V3_6_0(new BaseVersion("3.6.0", ErlangVersion.R16B03)),

  V3_5_7(new BaseVersion("3.5.7", ErlangVersion.R13B03, ArchiveType.TAR_GZ)),