From 877ef9ceaaa42d5f5c48862079e33b81d8948cfb Mon Sep 17 00:00:00 2001
From: Divyanshu Agarwal <agarwaldivyanshu23@gmail.com>
Date: Thu, 12 Oct 2023 23:05:33 +0530
Subject: [PATCH 1/8] #810 Created a settings.xml to connect to an imaginary
 Nexus repo

---
 maven/settings/settings.xml | 51 +++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 maven/settings/settings.xml

diff --git a/maven/settings/settings.xml b/maven/settings/settings.xml
new file mode 100644
index 000000000..a8a60225f
--- /dev/null
+++ b/maven/settings/settings.xml
@@ -0,0 +1,51 @@
+<settings>
+    <mirrors>
+        <mirror>
+            <id>nexus</id>
+            <mirrorOf>*</mirrorOf>
+            <url>http://localhost:8081/nexus/content/groups/public</url>
+        </mirror>
+    </mirrors>
+    <activeProfiles>
+        <activeProfile>nexus</activeProfile>
+    </activeProfiles>
+    <profiles>
+        <profile>
+            <id>nexus</id>
+            <repositories>
+                <repository>
+                    <id>central</id>
+                    <url>http://central</url>
+                    <releases>
+                        <enabled>true</enabled>
+                    </releases>
+                    <snapshots>
+                        <enabled>true</enabled>
+                    </snapshots>
+                </repository>
+            </repositories>
+            <pluginRepositories>
+                <pluginRepository>
+                    <id>central</id>
+                    <url>http://central</url>
+                    <releases>
+                        <enabled>true</enabled>
+                    </releases>
+                    <snapshots>
+                        <enabled>true</enabled>
+                    </snapshots>
+                </pluginRepository>
+            </pluginRepositories>
+        </profile>
+    </profiles>
+    <pluginGroups>
+        <pluginGroup>org.owsap.plugins</pluginGroup>
+    </pluginGroups>
+    <servers>
+        <server>
+            <id>nexus</id>
+            <username>admin</username>
+            <password>admin123</password>
+        </server>
+    </servers>
+</settings>

From f0ac3f6aeda2a3a06ca52ca0b04220ccfe048df6 Mon Sep 17 00:00:00 2001
From: Divyanshu Agarwal <agarwaldivyanshu23@gmail.com>
Date: Tue, 17 Oct 2023 23:50:50 +0530
Subject: [PATCH 2/8] #810 Created a challenge to read password from
 settings.xml

---
 pom.xml                                       |  7 +-
 .../challenges/docker/Challenge41.java        | 88 +++++++++++++++++++
 .../resources/explanations/challenge41.adoc   |  3 +
 .../explanations/challenge41_hint.adoc        | 10 +++
 .../explanations/challenge41_reason.adoc      |  7 ++
 .../challenges/docker/Challenge41Test.java    | 41 +++++++++
 6 files changed, 155 insertions(+), 1 deletion(-)
 create mode 100644 src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge41.java
 create mode 100644 src/main/resources/explanations/challenge41.adoc
 create mode 100644 src/main/resources/explanations/challenge41_hint.adoc
 create mode 100644 src/main/resources/explanations/challenge41_reason.adoc
 create mode 100644 src/test/java/org/owasp/wrongsecrets/challenges/docker/Challenge41Test.java

diff --git a/pom.xml b/pom.xml
index 71098759c..745b049fe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -248,7 +248,12 @@
       <artifactId>spotbugs-annotations</artifactId>
       <version>4.7.3</version>
     </dependency>
-    <!--        <dependency>-->
+      <dependency>
+          <groupId>org.apache.commons</groupId>
+          <artifactId>commons-configuration2</artifactId>
+          <version>2.7</version> <!-- Replace with the latest version available -->
+      </dependency>
+      <!--        <dependency>-->
     <!--            <groupId>com.h2database</groupId>-->
     <!--            <artifactId>h2</artifactId>-->
     <!--            <version>2.1.214</version>-->
diff --git a/src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge41.java b/src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge41.java
new file mode 100644
index 000000000..ebbdc8b33
--- /dev/null
+++ b/src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge41.java
@@ -0,0 +1,88 @@
+package org.owasp.wrongsecrets.challenges.docker;
+
+import java.io.StringReader;
+import java.nio.charset.Charset;
+import java.util.List;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.configuration2.XMLConfiguration;
+import org.owasp.wrongsecrets.RuntimeEnvironment;
+import org.owasp.wrongsecrets.ScoreCard;
+import org.owasp.wrongsecrets.challenges.Challenge;
+import org.owasp.wrongsecrets.challenges.ChallengeTechnology;
+import org.owasp.wrongsecrets.challenges.Difficulty;
+import org.owasp.wrongsecrets.challenges.Spoiler;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.annotation.Order;
+import org.springframework.core.io.Resource;
+import org.springframework.stereotype.Component;
+
+/**
+ * This is a challenge based on leaking secrets due to keeping the encryption key and secret
+ * together
+ */
+@Slf4j
+@Component
+@Order(41)
+public class Challenge41 extends Challenge {
+
+    private final Resource resource;
+
+    public Challenge41(
+        ScoreCard scoreCard, @Value("classpath:maven/settings/settings.xml") Resource resource) {
+        super(scoreCard);
+        this.resource = resource;
+    }
+
+    @Override
+    public boolean canRunInCTFMode() {
+        return true;
+    }
+
+    @Override
+    public Spoiler spoiler() {
+        return new Spoiler(getSolution());
+    }
+
+    @Override
+    public boolean answerCorrect(String answer) {
+        return getSolution().equals(answer);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public int difficulty() {
+        return Difficulty.EASY;
+    }
+
+    /** {@inheritDoc} Cryptography based. */
+    @Override
+    public String getTech() {
+        return ChallengeTechnology.Tech.CRYPTOGRAPHY.id;
+    }
+
+    @Override
+    public boolean isLimitedWhenOnlineHosted() {
+        return false;
+    }
+
+    @Override
+    public List<RuntimeEnvironment.Environment> supportedRuntimeEnvironments() {
+        return List.of(RuntimeEnvironment.Environment.DOCKER);
+    }
+
+    private String getSolution() {
+        try {
+            String config = resource.getContentAsString(Charset.defaultCharset());
+            StringReader stringReader = new StringReader(config);
+
+            XMLConfiguration xmlConfiguration = new XMLConfiguration();
+            xmlConfiguration.read(stringReader);
+
+            // Retrieve the Nexus password
+            return xmlConfiguration.getString("nexus.password");
+        } catch (Exception e) {
+            log.warn("there was an exception with decrypting content in challenge41", e);
+            return "error_decryption";
+        }
+    }
+}
diff --git a/src/main/resources/explanations/challenge41.adoc b/src/main/resources/explanations/challenge41.adoc
new file mode 100644
index 000000000..e87367d5f
--- /dev/null
+++ b/src/main/resources/explanations/challenge41.adoc
@@ -0,0 +1,3 @@
+=== Nexus credential read
+
+Storing nexus deployment credentials in your github project hardcoded is generally considered a bad practice because it undermines the security provided by encryption.
diff --git a/src/main/resources/explanations/challenge41_hint.adoc b/src/main/resources/explanations/challenge41_hint.adoc
new file mode 100644
index 000000000..0098bdf49
--- /dev/null
+++ b/src/main/resources/explanations/challenge41_hint.adoc
@@ -0,0 +1,10 @@
+This challenge can be solved by decrypting the base64 encoded secret in `secrchallenge.json`. You can do this either by:
+
+1. Using an online aes decryption tool like https://www.devglan.com/online-tools/aes-encryption-decryption[https://www.devglan.com/online-tools/aes-encryption-decryption]
+- Copy the value of `secret` from `secrchallenge.json` and paste it into the textbox of the decryptor.
+- Ensure the input format is `Base64` and the cipher mode is `ECB`.
+- Use the value of `key` from `secrchallenge.json` as decryption key and click on `Decrypt` to get the secret.
+
+2. Using the terminal
+- Launch the terminal while you are in the `maven` directory.
+- Copy the value of `password` from `settings.xml`.
diff --git a/src/main/resources/explanations/challenge41_reason.adoc b/src/main/resources/explanations/challenge41_reason.adoc
new file mode 100644
index 000000000..393863b46
--- /dev/null
+++ b/src/main/resources/explanations/challenge41_reason.adoc
@@ -0,0 +1,7 @@
+*Why you should not have nexus deployment credentials in your github project hardcoded*
+
+Storing nexus deployment credentials in your github project hardcoded is generally considered a bad practice because it undermines the security provided by encryption.
+
+In such scenarios, an attacker has the key the moment the file is in his possession.
+
+It is always recommended to store your credentials securely.
diff --git a/src/test/java/org/owasp/wrongsecrets/challenges/docker/Challenge41Test.java b/src/test/java/org/owasp/wrongsecrets/challenges/docker/Challenge41Test.java
new file mode 100644
index 000000000..0e1cb25dc
--- /dev/null
+++ b/src/test/java/org/owasp/wrongsecrets/challenges/docker/Challenge41Test.java
@@ -0,0 +1,41 @@
+package org.owasp.wrongsecrets.challenges.docker;
+
+import org.assertj.core.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.owasp.wrongsecrets.ScoreCard;
+import org.springframework.core.io.Resource;
+
+import java.io.IOException;
+import java.nio.charset.Charset;
+
+import static org.mockito.Mockito.when;
+
+@ExtendWith(MockitoExtension.class)
+class Challenge41Test {
+  @Mock private ScoreCard scoreCard;
+
+  @Mock private Resource resource;
+
+  @BeforeEach
+  void setUp() throws IOException {
+      when(resource.getContentAsString(Charset.defaultCharset()))
+          .thenReturn("<root><nexus><username>test_user</username><password>test_password</password></nexus></root>");
+  }
+
+  @Test
+  void spoilerShouldGiveAnswer() {
+    var challenge = new Challenge41(scoreCard, resource);
+    Assertions.assertThat(challenge.spoiler().solution()).isNotEmpty();
+    Assertions.assertThat(challenge.answerCorrect(challenge.spoiler().solution())).isTrue();
+  }
+
+  @Test
+  void incorrectAnswerShouldNotSolveChallenge() {
+    var challenge = new Challenge41(scoreCard, resource);
+    Assertions.assertThat(challenge.answerCorrect("wrong answer")).isFalse();
+  }
+}

From 1c61dc5a78c6c94a9ff686cddc89d106ece56b81 Mon Sep 17 00:00:00 2001
From: "pre-commit-ci-lite[bot]"
 <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Date: Tue, 17 Oct 2023 18:48:33 +0000
Subject: [PATCH 3/8] [pre-commit.ci lite] apply automatic fixes

---
 pom.xml                                       | 13 +--
 .../challenges/docker/Challenge41.java        | 96 +++++++++----------
 .../challenges/docker/Challenge41Test.java    | 14 +--
 3 files changed, 62 insertions(+), 61 deletions(-)

diff --git a/pom.xml b/pom.xml
index 745b049fe..1f0d12d86 100644
--- a/pom.xml
+++ b/pom.xml
@@ -248,12 +248,13 @@
       <artifactId>spotbugs-annotations</artifactId>
       <version>4.7.3</version>
     </dependency>
-      <dependency>
-          <groupId>org.apache.commons</groupId>
-          <artifactId>commons-configuration2</artifactId>
-          <version>2.7</version> <!-- Replace with the latest version available -->
-      </dependency>
-      <!--        <dependency>-->
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-configuration2</artifactId>
+      <version>2.7</version>
+      <!-- Replace with the latest version available -->
+    </dependency>
+    <!--        <dependency>-->
     <!--            <groupId>com.h2database</groupId>-->
     <!--            <artifactId>h2</artifactId>-->
     <!--            <version>2.1.214</version>-->
diff --git a/src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge41.java b/src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge41.java
index ebbdc8b33..e607fb2c9 100644
--- a/src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge41.java
+++ b/src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge41.java
@@ -25,64 +25,64 @@
 @Order(41)
 public class Challenge41 extends Challenge {
 
-    private final Resource resource;
+  private final Resource resource;
 
-    public Challenge41(
-        ScoreCard scoreCard, @Value("classpath:maven/settings/settings.xml") Resource resource) {
-        super(scoreCard);
-        this.resource = resource;
-    }
+  public Challenge41(
+      ScoreCard scoreCard, @Value("classpath:maven/settings/settings.xml") Resource resource) {
+    super(scoreCard);
+    this.resource = resource;
+  }
 
-    @Override
-    public boolean canRunInCTFMode() {
-        return true;
-    }
+  @Override
+  public boolean canRunInCTFMode() {
+    return true;
+  }
 
-    @Override
-    public Spoiler spoiler() {
-        return new Spoiler(getSolution());
-    }
+  @Override
+  public Spoiler spoiler() {
+    return new Spoiler(getSolution());
+  }
 
-    @Override
-    public boolean answerCorrect(String answer) {
-        return getSolution().equals(answer);
-    }
+  @Override
+  public boolean answerCorrect(String answer) {
+    return getSolution().equals(answer);
+  }
 
-    /** {@inheritDoc} */
-    @Override
-    public int difficulty() {
-        return Difficulty.EASY;
-    }
+  /** {@inheritDoc} */
+  @Override
+  public int difficulty() {
+    return Difficulty.EASY;
+  }
 
-    /** {@inheritDoc} Cryptography based. */
-    @Override
-    public String getTech() {
-        return ChallengeTechnology.Tech.CRYPTOGRAPHY.id;
-    }
+  /** {@inheritDoc} Cryptography based. */
+  @Override
+  public String getTech() {
+    return ChallengeTechnology.Tech.CRYPTOGRAPHY.id;
+  }
 
-    @Override
-    public boolean isLimitedWhenOnlineHosted() {
-        return false;
-    }
+  @Override
+  public boolean isLimitedWhenOnlineHosted() {
+    return false;
+  }
 
-    @Override
-    public List<RuntimeEnvironment.Environment> supportedRuntimeEnvironments() {
-        return List.of(RuntimeEnvironment.Environment.DOCKER);
-    }
+  @Override
+  public List<RuntimeEnvironment.Environment> supportedRuntimeEnvironments() {
+    return List.of(RuntimeEnvironment.Environment.DOCKER);
+  }
 
-    private String getSolution() {
-        try {
-            String config = resource.getContentAsString(Charset.defaultCharset());
-            StringReader stringReader = new StringReader(config);
+  private String getSolution() {
+    try {
+      String config = resource.getContentAsString(Charset.defaultCharset());
+      StringReader stringReader = new StringReader(config);
 
-            XMLConfiguration xmlConfiguration = new XMLConfiguration();
-            xmlConfiguration.read(stringReader);
+      XMLConfiguration xmlConfiguration = new XMLConfiguration();
+      xmlConfiguration.read(stringReader);
 
-            // Retrieve the Nexus password
-            return xmlConfiguration.getString("nexus.password");
-        } catch (Exception e) {
-            log.warn("there was an exception with decrypting content in challenge41", e);
-            return "error_decryption";
-        }
+      // Retrieve the Nexus password
+      return xmlConfiguration.getString("nexus.password");
+    } catch (Exception e) {
+      log.warn("there was an exception with decrypting content in challenge41", e);
+      return "error_decryption";
     }
+  }
 }
diff --git a/src/test/java/org/owasp/wrongsecrets/challenges/docker/Challenge41Test.java b/src/test/java/org/owasp/wrongsecrets/challenges/docker/Challenge41Test.java
index 0e1cb25dc..262d8e39f 100644
--- a/src/test/java/org/owasp/wrongsecrets/challenges/docker/Challenge41Test.java
+++ b/src/test/java/org/owasp/wrongsecrets/challenges/docker/Challenge41Test.java
@@ -1,5 +1,9 @@
 package org.owasp.wrongsecrets.challenges.docker;
 
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+import java.nio.charset.Charset;
 import org.assertj.core.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -9,11 +13,6 @@
 import org.owasp.wrongsecrets.ScoreCard;
 import org.springframework.core.io.Resource;
 
-import java.io.IOException;
-import java.nio.charset.Charset;
-
-import static org.mockito.Mockito.when;
-
 @ExtendWith(MockitoExtension.class)
 class Challenge41Test {
   @Mock private ScoreCard scoreCard;
@@ -22,8 +21,9 @@ class Challenge41Test {
 
   @BeforeEach
   void setUp() throws IOException {
-      when(resource.getContentAsString(Charset.defaultCharset()))
-          .thenReturn("<root><nexus><username>test_user</username><password>test_password</password></nexus></root>");
+    when(resource.getContentAsString(Charset.defaultCharset()))
+        .thenReturn(
+            "<root><nexus><username>test_user</username><password>test_password</password></nexus></root>");
   }
 
   @Test

From eed9ee2d9db7b63a4eb1c8507a3e6f8aa95f0ace Mon Sep 17 00:00:00 2001
From: Divyanshu Agarwal <agarwaldivyanshu23@gmail.com>
Date: Wed, 18 Oct 2023 19:44:39 +0530
Subject: [PATCH 4/8] #810 update the challenge

---
 .../docker/{Challenge41.java => Challenge42.java}         | 8 ++++----
 .../docker/{Challenge41Test.java => Challenge42Test.java} | 6 +++---
 2 files changed, 7 insertions(+), 7 deletions(-)
 rename src/main/java/org/owasp/wrongsecrets/challenges/docker/{Challenge41.java => Challenge42.java} (95%)
 rename src/test/java/org/owasp/wrongsecrets/challenges/docker/{Challenge41Test.java => Challenge42Test.java} (89%)

diff --git a/src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge41.java b/src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge42.java
similarity index 95%
rename from src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge41.java
rename to src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge42.java
index ebbdc8b33..8ba0cd7f4 100644
--- a/src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge41.java
+++ b/src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge42.java
@@ -22,12 +22,12 @@
  */
 @Slf4j
 @Component
-@Order(41)
-public class Challenge41 extends Challenge {
+@Order(42)
+public class Challenge42 extends Challenge {
 
     private final Resource resource;
 
-    public Challenge41(
+    public Challenge42(
         ScoreCard scoreCard, @Value("classpath:maven/settings/settings.xml") Resource resource) {
         super(scoreCard);
         this.resource = resource;
@@ -81,7 +81,7 @@ private String getSolution() {
             // Retrieve the Nexus password
             return xmlConfiguration.getString("nexus.password");
         } catch (Exception e) {
-            log.warn("there was an exception with decrypting content in challenge41", e);
+            log.warn("there was an exception with decrypting content in challenge42", e);
             return "error_decryption";
         }
     }
diff --git a/src/test/java/org/owasp/wrongsecrets/challenges/docker/Challenge41Test.java b/src/test/java/org/owasp/wrongsecrets/challenges/docker/Challenge42Test.java
similarity index 89%
rename from src/test/java/org/owasp/wrongsecrets/challenges/docker/Challenge41Test.java
rename to src/test/java/org/owasp/wrongsecrets/challenges/docker/Challenge42Test.java
index 0e1cb25dc..0b01c8f8b 100644
--- a/src/test/java/org/owasp/wrongsecrets/challenges/docker/Challenge41Test.java
+++ b/src/test/java/org/owasp/wrongsecrets/challenges/docker/Challenge42Test.java
@@ -15,7 +15,7 @@
 import static org.mockito.Mockito.when;
 
 @ExtendWith(MockitoExtension.class)
-class Challenge41Test {
+class Challenge42Test {
   @Mock private ScoreCard scoreCard;
 
   @Mock private Resource resource;
@@ -28,14 +28,14 @@ void setUp() throws IOException {
 
   @Test
   void spoilerShouldGiveAnswer() {
-    var challenge = new Challenge41(scoreCard, resource);
+    var challenge = new Challenge42(scoreCard, resource);
     Assertions.assertThat(challenge.spoiler().solution()).isNotEmpty();
     Assertions.assertThat(challenge.answerCorrect(challenge.spoiler().solution())).isTrue();
   }
 
   @Test
   void incorrectAnswerShouldNotSolveChallenge() {
-    var challenge = new Challenge41(scoreCard, resource);
+    var challenge = new Challenge42(scoreCard, resource);
     Assertions.assertThat(challenge.answerCorrect("wrong answer")).isFalse();
   }
 }

From 152e138e4ac7a4b68c320690bfa3b0d44eeae5e9 Mon Sep 17 00:00:00 2001
From: "pre-commit-ci-lite[bot]"
 <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Date: Wed, 18 Oct 2023 14:30:27 +0000
Subject: [PATCH 5/8] [pre-commit.ci lite] apply automatic fixes

---
 .../challenges/docker/Challenge42.java        | 22 +++++++++----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge42.java b/src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge42.java
index 7f9fe17a2..3776d66a7 100644
--- a/src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge42.java
+++ b/src/main/java/org/owasp/wrongsecrets/challenges/docker/Challenge42.java
@@ -27,11 +27,11 @@ public class Challenge42 extends Challenge {
 
   private final Resource resource;
 
-    public Challenge42(
-        ScoreCard scoreCard, @Value("classpath:maven/settings/settings.xml") Resource resource) {
-        super(scoreCard);
-        this.resource = resource;
-    }
+  public Challenge42(
+      ScoreCard scoreCard, @Value("classpath:maven/settings/settings.xml") Resource resource) {
+    super(scoreCard);
+    this.resource = resource;
+  }
 
   @Override
   public boolean canRunInCTFMode() {
@@ -78,11 +78,11 @@ private String getSolution() {
       XMLConfiguration xmlConfiguration = new XMLConfiguration();
       xmlConfiguration.read(stringReader);
 
-            // Retrieve the Nexus password
-            return xmlConfiguration.getString("nexus.password");
-        } catch (Exception e) {
-            log.warn("there was an exception with decrypting content in challenge42", e);
-            return "error_decryption";
-        }
+      // Retrieve the Nexus password
+      return xmlConfiguration.getString("nexus.password");
+    } catch (Exception e) {
+      log.warn("there was an exception with decrypting content in challenge42", e);
+      return "error_decryption";
     }
+  }
 }

From cb5f36bed754f72ed46d52a4a453753a16761745 Mon Sep 17 00:00:00 2001
From: Divyanshu Agarwal <agarwaldivyanshu23@gmail.com>
Date: Wed, 18 Oct 2023 20:22:26 +0530
Subject: [PATCH 6/8] #810 update the challenge

---
 .../resources/explanations/{challenge41.adoc => challenge42.adoc} | 0
 .../explanations/{challenge41_hint.adoc => challenge42_hint.adoc} | 0
 .../{challenge41_reason.adoc => challenge42_reason.adoc}          | 0
 3 files changed, 0 insertions(+), 0 deletions(-)
 rename src/main/resources/explanations/{challenge41.adoc => challenge42.adoc} (100%)
 rename src/main/resources/explanations/{challenge41_hint.adoc => challenge42_hint.adoc} (100%)
 rename src/main/resources/explanations/{challenge41_reason.adoc => challenge42_reason.adoc} (100%)

diff --git a/src/main/resources/explanations/challenge41.adoc b/src/main/resources/explanations/challenge42.adoc
similarity index 100%
rename from src/main/resources/explanations/challenge41.adoc
rename to src/main/resources/explanations/challenge42.adoc
diff --git a/src/main/resources/explanations/challenge41_hint.adoc b/src/main/resources/explanations/challenge42_hint.adoc
similarity index 100%
rename from src/main/resources/explanations/challenge41_hint.adoc
rename to src/main/resources/explanations/challenge42_hint.adoc
diff --git a/src/main/resources/explanations/challenge41_reason.adoc b/src/main/resources/explanations/challenge42_reason.adoc
similarity index 100%
rename from src/main/resources/explanations/challenge41_reason.adoc
rename to src/main/resources/explanations/challenge42_reason.adoc

From 58967220db487ab40a50b30f17b84ebb49ae6d44 Mon Sep 17 00:00:00 2001
From: Divyanshu Agarwal <agarwaldivyanshu23@gmail.com>
Date: Wed, 18 Oct 2023 20:26:16 +0530
Subject: [PATCH 7/8] #810 update the challenge

---
 .../resources/explanations/{challenge41.adoc => challenge42.adoc} | 0
 .../explanations/{challenge41_hint.adoc => challenge42_hint.adoc} | 0
 .../{challenge41_reason.adoc => challenge42_reason.adoc}          | 0
 3 files changed, 0 insertions(+), 0 deletions(-)
 rename src/main/resources/explanations/{challenge41.adoc => challenge42.adoc} (100%)
 rename src/main/resources/explanations/{challenge41_hint.adoc => challenge42_hint.adoc} (100%)
 rename src/main/resources/explanations/{challenge41_reason.adoc => challenge42_reason.adoc} (100%)

diff --git a/src/main/resources/explanations/challenge41.adoc b/src/main/resources/explanations/challenge42.adoc
similarity index 100%
rename from src/main/resources/explanations/challenge41.adoc
rename to src/main/resources/explanations/challenge42.adoc
diff --git a/src/main/resources/explanations/challenge41_hint.adoc b/src/main/resources/explanations/challenge42_hint.adoc
similarity index 100%
rename from src/main/resources/explanations/challenge41_hint.adoc
rename to src/main/resources/explanations/challenge42_hint.adoc
diff --git a/src/main/resources/explanations/challenge41_reason.adoc b/src/main/resources/explanations/challenge42_reason.adoc
similarity index 100%
rename from src/main/resources/explanations/challenge41_reason.adoc
rename to src/main/resources/explanations/challenge42_reason.adoc

From 1c5cca023fb27f8d449b79f1751b1b49050b99e1 Mon Sep 17 00:00:00 2001
From: Divyanshu Agarwal <agarwaldivyanshu23@gmail.com>
Date: Wed, 18 Oct 2023 20:28:49 +0530
Subject: [PATCH 8/8] #810 fixing the merge issue

---
 .../resources/explanations/{challenge41.adoc => challenge42.adoc} | 0
 .../explanations/{challenge41_hint.adoc => challenge42_hint.adoc} | 0
 .../{challenge41_reason.adoc => challenge42_reason.adoc}          | 0
 3 files changed, 0 insertions(+), 0 deletions(-)
 rename src/main/resources/explanations/{challenge41.adoc => challenge42.adoc} (100%)
 rename src/main/resources/explanations/{challenge41_hint.adoc => challenge42_hint.adoc} (100%)
 rename src/main/resources/explanations/{challenge41_reason.adoc => challenge42_reason.adoc} (100%)

diff --git a/src/main/resources/explanations/challenge41.adoc b/src/main/resources/explanations/challenge42.adoc
similarity index 100%
rename from src/main/resources/explanations/challenge41.adoc
rename to src/main/resources/explanations/challenge42.adoc
diff --git a/src/main/resources/explanations/challenge41_hint.adoc b/src/main/resources/explanations/challenge42_hint.adoc
similarity index 100%
rename from src/main/resources/explanations/challenge41_hint.adoc
rename to src/main/resources/explanations/challenge42_hint.adoc
diff --git a/src/main/resources/explanations/challenge41_reason.adoc b/src/main/resources/explanations/challenge42_reason.adoc
similarity index 100%
rename from src/main/resources/explanations/challenge41_reason.adoc
rename to src/main/resources/explanations/challenge42_reason.adoc