From a4999dfbf3a1342dbb3062dfac5db6648ed0ba51 Mon Sep 17 00:00:00 2001
From: jull <sefljulie@gmail.com>
Date: Sun, 2 Mar 2025 12:54:26 +0000
Subject: [PATCH] chore: Added weapons to registry Co-authored-by: jull
 <sefljulie@gmail.com> Co-committed-by: jull <sefljulie@gmail.com>

---
 .../crafting/recipes/CoalBlockRecipe.java     | 14 +++++++++++
 .../game/crafting/recipes/CoalRecipe.java     | 14 +++++++++++
 .../crafting/recipes/GoldBlockRecipe.java     | 14 +++++++++++
 .../crafting/recipes/GoldIngotRecipe.java     | 14 +++++++++++
 .../crafting/recipes/IronBlockRecipe.java     | 14 +++++++++++
 .../crafting/recipes/IronIngotRecipe.java     | 14 +++++++++++
 .../jzitnik/game/entities/items/ItemType.java |  4 ++-
 .../game/entities/items/ToolVariant.java      |  2 ++
 .../items/registry/items/GoldenAxe.java       | 14 +++++++++++
 .../items/registry/items/GoldenHoe.java       | 14 +++++++++++
 .../items/registry/items/GoldenPickaxe.java   | 14 +++++++++++
 .../items/registry/items/GoldenShovel.java    | 14 +++++++++++
 .../items/registry/items/IronAxe.java         | 14 +++++++++++
 .../items/registry/items/IronHoe.java         | 14 +++++++++++
 .../items/registry/items/IronPickaxe.java     | 14 +++++++++++
 .../items/registry/items/IronShovel.java      | 14 +++++++++++
 .../items/registry/items/StoneHoe.java        | 14 +++++++++++
 .../items/registry/items/WoodenHoe.java       | 14 +++++++++++
 .../cz/jzitnik/game/smelting/Smelting.java    | 12 +++++++++
 .../resources/textures/items/iron_sword.ans   | 25 +++++++++++++++++++
 .../resources/textures/items/stone_sword.ans  | 25 +++++++++++++++++++
 .../resources/textures/items/wooden_sword.ans | 25 +++++++++++++++++++
 22 files changed, 316 insertions(+), 1 deletion(-)
 create mode 100644 src/main/java/cz/jzitnik/game/crafting/recipes/CoalBlockRecipe.java
 create mode 100644 src/main/java/cz/jzitnik/game/crafting/recipes/CoalRecipe.java
 create mode 100644 src/main/java/cz/jzitnik/game/crafting/recipes/GoldBlockRecipe.java
 create mode 100644 src/main/java/cz/jzitnik/game/crafting/recipes/GoldIngotRecipe.java
 create mode 100644 src/main/java/cz/jzitnik/game/crafting/recipes/IronBlockRecipe.java
 create mode 100644 src/main/java/cz/jzitnik/game/crafting/recipes/IronIngotRecipe.java
 create mode 100644 src/main/java/cz/jzitnik/game/entities/items/registry/items/GoldenAxe.java
 create mode 100644 src/main/java/cz/jzitnik/game/entities/items/registry/items/GoldenHoe.java
 create mode 100644 src/main/java/cz/jzitnik/game/entities/items/registry/items/GoldenPickaxe.java
 create mode 100644 src/main/java/cz/jzitnik/game/entities/items/registry/items/GoldenShovel.java
 create mode 100644 src/main/java/cz/jzitnik/game/entities/items/registry/items/IronAxe.java
 create mode 100644 src/main/java/cz/jzitnik/game/entities/items/registry/items/IronHoe.java
 create mode 100644 src/main/java/cz/jzitnik/game/entities/items/registry/items/IronPickaxe.java
 create mode 100644 src/main/java/cz/jzitnik/game/entities/items/registry/items/IronShovel.java
 create mode 100644 src/main/java/cz/jzitnik/game/entities/items/registry/items/StoneHoe.java
 create mode 100644 src/main/java/cz/jzitnik/game/entities/items/registry/items/WoodenHoe.java
 create mode 100644 src/main/resources/textures/items/iron_sword.ans
 create mode 100644 src/main/resources/textures/items/stone_sword.ans
 create mode 100644 src/main/resources/textures/items/wooden_sword.ans

diff --git a/src/main/java/cz/jzitnik/game/crafting/recipes/CoalBlockRecipe.java b/src/main/java/cz/jzitnik/game/crafting/recipes/CoalBlockRecipe.java
new file mode 100644
index 0000000..56916e6
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/crafting/recipes/CoalBlockRecipe.java
@@ -0,0 +1,14 @@
+package cz.jzitnik.game.crafting.recipes;
+
+import cz.jzitnik.game.annotations.CraftingRecipeRegistry;
+
+@CraftingRecipeRegistry(
+        recipe = {
+                "coal", "coal", "coal",
+                "coal", "coal", "coal",
+                "coal", "coal", "coal"
+        },
+        result = "coal_block",
+        amount = 1
+)
+public class CoalBlockRecipe {}
\ No newline at end of file
diff --git a/src/main/java/cz/jzitnik/game/crafting/recipes/CoalRecipe.java b/src/main/java/cz/jzitnik/game/crafting/recipes/CoalRecipe.java
new file mode 100644
index 0000000..5721ea2
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/crafting/recipes/CoalRecipe.java
@@ -0,0 +1,14 @@
+package cz.jzitnik.game.crafting.recipes;
+
+import cz.jzitnik.game.annotations.CraftingRecipeRegistry;
+
+@CraftingRecipeRegistry(
+        recipe = {
+                "coal_block", "_", "_",
+                "_", "_", "_",
+                "_", "_", "_"
+        },
+        result = "coal",
+        amount = 9
+)
+public class CoalRecipe {}
\ No newline at end of file
diff --git a/src/main/java/cz/jzitnik/game/crafting/recipes/GoldBlockRecipe.java b/src/main/java/cz/jzitnik/game/crafting/recipes/GoldBlockRecipe.java
new file mode 100644
index 0000000..90c4ac3
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/crafting/recipes/GoldBlockRecipe.java
@@ -0,0 +1,14 @@
+package cz.jzitnik.game.crafting.recipes;
+
+import cz.jzitnik.game.annotations.CraftingRecipeRegistry;
+
+@CraftingRecipeRegistry(
+        recipe = {
+                "gold_ingot", "gold_ingot", "gold_ingot",
+                "gold_ingot", "gold_ingot", "gold_ingot",
+                "gold_ingot", "gold_ingot", "gold_ingot"
+        },
+        result = "gold_block",
+        amount = 1
+)
+public class GoldBlockRecipe {}
\ No newline at end of file
diff --git a/src/main/java/cz/jzitnik/game/crafting/recipes/GoldIngotRecipe.java b/src/main/java/cz/jzitnik/game/crafting/recipes/GoldIngotRecipe.java
new file mode 100644
index 0000000..002d6be
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/crafting/recipes/GoldIngotRecipe.java
@@ -0,0 +1,14 @@
+package cz.jzitnik.game.crafting.recipes;
+
+import cz.jzitnik.game.annotations.CraftingRecipeRegistry;
+
+@CraftingRecipeRegistry(
+        recipe = {
+                "gold_block", "_", "_",
+                "_", "_", "_",
+                "_", "_", "_"
+        },
+        result = "gold_ingot",
+        amount = 9
+)
+public class GoldIngotRecipe {}
diff --git a/src/main/java/cz/jzitnik/game/crafting/recipes/IronBlockRecipe.java b/src/main/java/cz/jzitnik/game/crafting/recipes/IronBlockRecipe.java
new file mode 100644
index 0000000..601b5cf
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/crafting/recipes/IronBlockRecipe.java
@@ -0,0 +1,14 @@
+package cz.jzitnik.game.crafting.recipes;
+
+import cz.jzitnik.game.annotations.CraftingRecipeRegistry;
+
+@CraftingRecipeRegistry(
+        recipe = {
+                "iron_ingot", "iron_ingot", "iron_ingot",
+                "iron_ingot", "iron_ingot", "iron_ingot",
+                "iron_ingot", "iron_ingot", "iron_ingot"
+        },
+        result = "iron_block",
+        amount = 1
+)
+public class IronBlockRecipe {}
\ No newline at end of file
diff --git a/src/main/java/cz/jzitnik/game/crafting/recipes/IronIngotRecipe.java b/src/main/java/cz/jzitnik/game/crafting/recipes/IronIngotRecipe.java
new file mode 100644
index 0000000..c4f8745
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/crafting/recipes/IronIngotRecipe.java
@@ -0,0 +1,14 @@
+package cz.jzitnik.game.crafting.recipes;
+
+import cz.jzitnik.game.annotations.CraftingRecipeRegistry;
+
+@CraftingRecipeRegistry(
+        recipe = {
+                "iron_block", "_", "_",
+                "_", "_", "_",
+                "_", "_", "_"
+        },
+        result = "iron_ingot",
+        amount = 9
+)
+public class IronIngotRecipe {}
\ No newline at end of file
diff --git a/src/main/java/cz/jzitnik/game/entities/items/ItemType.java b/src/main/java/cz/jzitnik/game/entities/items/ItemType.java
index f20f6a6..9af2a77 100644
--- a/src/main/java/cz/jzitnik/game/entities/items/ItemType.java
+++ b/src/main/java/cz/jzitnik/game/entities/items/ItemType.java
@@ -7,5 +7,7 @@ public enum ItemType {
     SHEARS,
     BLOCK,
     FOOD,
-    USELESS_ITEM
+    USELESS_ITEM,
+    HOE,
+    SWORD,
 }
diff --git a/src/main/java/cz/jzitnik/game/entities/items/ToolVariant.java b/src/main/java/cz/jzitnik/game/entities/items/ToolVariant.java
index 6a9edf7..69aa995 100644
--- a/src/main/java/cz/jzitnik/game/entities/items/ToolVariant.java
+++ b/src/main/java/cz/jzitnik/game/entities/items/ToolVariant.java
@@ -4,4 +4,6 @@ public enum ToolVariant {
     WOODEN,
     STONE,
     IRON,
+    GOLDEN,
+    DIAMOND,
 }
diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/items/GoldenAxe.java b/src/main/java/cz/jzitnik/game/entities/items/registry/items/GoldenAxe.java
new file mode 100644
index 0000000..a6d1395
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/entities/items/registry/items/GoldenAxe.java
@@ -0,0 +1,14 @@
+package cz.jzitnik.game.entities.items.registry.items;
+
+import cz.jzitnik.game.SpriteLoader;
+import cz.jzitnik.game.annotations.ItemRegistry;
+import cz.jzitnik.game.entities.items.Item;
+import cz.jzitnik.game.entities.items.ItemType;
+import cz.jzitnik.game.entities.items.ToolVariant;
+
+@ItemRegistry("golden_axe")
+public class GoldenAxe extends Item {
+    public GoldenAxe() {
+        super("golden_axe", "Golden axe", ItemType.AXE, SpriteLoader.SPRITES.GOLDEN_AXE, ToolVariant.GOLDEN, 2.25, 32, false);
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/items/GoldenHoe.java b/src/main/java/cz/jzitnik/game/entities/items/registry/items/GoldenHoe.java
new file mode 100644
index 0000000..6867e13
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/entities/items/registry/items/GoldenHoe.java
@@ -0,0 +1,14 @@
+package cz.jzitnik.game.entities.items.registry.items;
+
+import cz.jzitnik.game.SpriteLoader;
+import cz.jzitnik.game.annotations.ItemRegistry;
+import cz.jzitnik.game.entities.items.Item;
+import cz.jzitnik.game.entities.items.ItemType;
+import cz.jzitnik.game.entities.items.ToolVariant;
+
+@ItemRegistry("golden_hoe")
+public class GoldenHoe extends Item {
+    public GoldenHoe() {
+        super("golden_hoe", "Golden hoe", ItemType.HOE, SpriteLoader.SPRITES.GOLDEN_HOE, ToolVariant.GOLDEN, 0, 32, false);
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/items/GoldenPickaxe.java b/src/main/java/cz/jzitnik/game/entities/items/registry/items/GoldenPickaxe.java
new file mode 100644
index 0000000..adaa376
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/entities/items/registry/items/GoldenPickaxe.java
@@ -0,0 +1,14 @@
+package cz.jzitnik.game.entities.items.registry.items;
+
+import cz.jzitnik.game.SpriteLoader;
+import cz.jzitnik.game.annotations.ItemRegistry;
+import cz.jzitnik.game.entities.items.Item;
+import cz.jzitnik.game.entities.items.ItemType;
+import cz.jzitnik.game.entities.items.ToolVariant;
+
+@ItemRegistry("golden_pickaxe")
+public class GoldenPickaxe extends Item {
+    public GoldenPickaxe() {
+        super("golden_pickaxe", "Golden pickaxe", ItemType.PICKAXE, SpriteLoader.SPRITES.GOLDEN_PICKAXE, ToolVariant.GOLDEN, 14.5, 32, false);
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/items/GoldenShovel.java b/src/main/java/cz/jzitnik/game/entities/items/registry/items/GoldenShovel.java
new file mode 100644
index 0000000..75e6cc9
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/entities/items/registry/items/GoldenShovel.java
@@ -0,0 +1,14 @@
+package cz.jzitnik.game.entities.items.registry.items;
+
+import cz.jzitnik.game.SpriteLoader;
+import cz.jzitnik.game.annotations.ItemRegistry;
+import cz.jzitnik.game.entities.items.Item;
+import cz.jzitnik.game.entities.items.ItemType;
+import cz.jzitnik.game.entities.items.ToolVariant;
+
+@ItemRegistry("golden_shovel")
+public class GoldenShovel extends Item {
+    public GoldenShovel() {
+        super("golden_shovel", "Golden shovel", ItemType.SHOVEL, SpriteLoader.SPRITES.GOLDEN_SHOVEL, ToolVariant.GOLDEN, 0.625, 32, false);
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/items/IronAxe.java b/src/main/java/cz/jzitnik/game/entities/items/registry/items/IronAxe.java
new file mode 100644
index 0000000..26383b9
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/entities/items/registry/items/IronAxe.java
@@ -0,0 +1,14 @@
+package cz.jzitnik.game.entities.items.registry.items;
+
+import cz.jzitnik.game.SpriteLoader;
+import cz.jzitnik.game.annotations.ItemRegistry;
+import cz.jzitnik.game.entities.items.Item;
+import cz.jzitnik.game.entities.items.ItemType;
+import cz.jzitnik.game.entities.items.ToolVariant;
+
+@ItemRegistry("iron_axe")
+public class IronAxe extends Item {
+    public IronAxe() {
+        super("iron_axe", "Iron axe", ItemType.AXE, SpriteLoader.SPRITES.IRON_AXE, ToolVariant.IRON, 1.5, 250, false);
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/items/IronHoe.java b/src/main/java/cz/jzitnik/game/entities/items/registry/items/IronHoe.java
new file mode 100644
index 0000000..6ce0f1e
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/entities/items/registry/items/IronHoe.java
@@ -0,0 +1,14 @@
+package cz.jzitnik.game.entities.items.registry.items;
+
+import cz.jzitnik.game.SpriteLoader;
+import cz.jzitnik.game.annotations.ItemRegistry;
+import cz.jzitnik.game.entities.items.Item;
+import cz.jzitnik.game.entities.items.ItemType;
+import cz.jzitnik.game.entities.items.ToolVariant;
+
+@ItemRegistry("iron_hoe")
+public class IronHoe extends Item {
+    public IronHoe() {
+        super("iron_hoe", "Iron hoe", ItemType.HOE, SpriteLoader.SPRITES.IRON_HOE, ToolVariant.IRON, 0, 250, false);
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/items/IronPickaxe.java b/src/main/java/cz/jzitnik/game/entities/items/registry/items/IronPickaxe.java
new file mode 100644
index 0000000..dd4efe9
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/entities/items/registry/items/IronPickaxe.java
@@ -0,0 +1,14 @@
+package cz.jzitnik.game.entities.items.registry.items;
+
+import cz.jzitnik.game.SpriteLoader;
+import cz.jzitnik.game.annotations.ItemRegistry;
+import cz.jzitnik.game.entities.items.Item;
+import cz.jzitnik.game.entities.items.ItemType;
+import cz.jzitnik.game.entities.items.ToolVariant;
+
+@ItemRegistry("wooden_pickaxe")
+public class IronPickaxe extends Item {
+    public IronPickaxe() {
+        super("iron_pickaxe", "Iron pickaxe", ItemType.PICKAXE, SpriteLoader.SPRITES.IRON_PICKAXE, ToolVariant.IRON, 13.5, 250, false);
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/items/IronShovel.java b/src/main/java/cz/jzitnik/game/entities/items/registry/items/IronShovel.java
new file mode 100644
index 0000000..a33135e
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/entities/items/registry/items/IronShovel.java
@@ -0,0 +1,14 @@
+package cz.jzitnik.game.entities.items.registry.items;
+
+import cz.jzitnik.game.SpriteLoader;
+import cz.jzitnik.game.annotations.ItemRegistry;
+import cz.jzitnik.game.entities.items.Item;
+import cz.jzitnik.game.entities.items.ItemType;
+import cz.jzitnik.game.entities.items.ToolVariant;
+
+@ItemRegistry("iron_shovel")
+public class IronShovel extends Item {
+    public IronShovel() {
+        super("iron_shovel", "Iron shovel", ItemType.SHOVEL, SpriteLoader.SPRITES.IRON_SHOVEL, ToolVariant.IRON, 0.375, 250, false);
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/items/StoneHoe.java b/src/main/java/cz/jzitnik/game/entities/items/registry/items/StoneHoe.java
new file mode 100644
index 0000000..675d2cd
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/entities/items/registry/items/StoneHoe.java
@@ -0,0 +1,14 @@
+package cz.jzitnik.game.entities.items.registry.items;
+
+import cz.jzitnik.game.SpriteLoader;
+import cz.jzitnik.game.annotations.ItemRegistry;
+import cz.jzitnik.game.entities.items.Item;
+import cz.jzitnik.game.entities.items.ItemType;
+import cz.jzitnik.game.entities.items.ToolVariant;
+
+@ItemRegistry("stone_hoe")
+public class StoneHoe extends Item {
+    public StoneHoe() {
+        super("stone_hoe", "Stone hoe", ItemType.HOE, SpriteLoader.SPRITES.STONE_HOE, ToolVariant.STONE, 0, 131, false);
+    }
+}
diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/items/WoodenHoe.java b/src/main/java/cz/jzitnik/game/entities/items/registry/items/WoodenHoe.java
new file mode 100644
index 0000000..a5a8820
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/entities/items/registry/items/WoodenHoe.java
@@ -0,0 +1,14 @@
+package cz.jzitnik.game.entities.items.registry.items;
+
+import cz.jzitnik.game.SpriteLoader;
+import cz.jzitnik.game.annotations.ItemRegistry;
+import cz.jzitnik.game.entities.items.Item;
+import cz.jzitnik.game.entities.items.ItemType;
+import cz.jzitnik.game.entities.items.ToolVariant;
+
+@ItemRegistry("wooden_hoe")
+public class WoodenHoe extends Item {
+    public WoodenHoe() {
+        super("wooden_hoe", "Wooden hoe", ItemType.HOE, SpriteLoader.SPRITES.WOODEN_HOE, ToolVariant.WOODEN, 0, 59, false);
+    }
+}
diff --git a/src/main/java/cz/jzitnik/game/smelting/Smelting.java b/src/main/java/cz/jzitnik/game/smelting/Smelting.java
index b017b66..c064dcb 100644
--- a/src/main/java/cz/jzitnik/game/smelting/Smelting.java
+++ b/src/main/java/cz/jzitnik/game/smelting/Smelting.java
@@ -13,11 +13,23 @@ public class Smelting {
         smeltingList.put("cobblestone", () -> ItemBlockSupplier.getItem("stone"));
         smeltingList.put("porkchop", () -> ItemBlockSupplier.getItem("cooked_porkchop"));
         smeltingList.put("mutton", () -> ItemBlockSupplier.getItem("cooked_mutton"));
+        smeltingList.put("iron_ore", () -> ItemBlockSupplier.getItem("iron_ingot"));
+        smeltingList.put("gold_ore", () -> ItemBlockSupplier.getItem("gold_ingot"));
+        smeltingList.put("oak_log", () -> ItemBlockSupplier.getItem("coal"));
+        smeltingList.put("beef", () -> ItemBlockSupplier.getItem("steak"));
     }
 
     public static final HashMap<String, Double> fuelList = new HashMap<>();
     static {
         fuelList.put("oak_log", 1.5);
         fuelList.put("oak_planks", 1.5);
+        fuelList.put("coal", 8.0);
+        fuelList.put("coal_block", 80.0);
+        fuelList.put("wooden_sword", 1.0);
+        fuelList.put("wooden_pickaxe", 1.0);
+        fuelList.put("wooden_axe", 1.0);
+        fuelList.put("wooden_shovel", 1.0);
+        fuelList.put("wooden_hoe", 1.0);
+        fuelList.put("stick", 0.5);
     }
 }
diff --git a/src/main/resources/textures/items/iron_sword.ans b/src/main/resources/textures/items/iron_sword.ans
new file mode 100644
index 0000000..9dfe999
--- /dev/null
+++ b/src/main/resources/textures/items/iron_sword.ans
@@ -0,0 +1,25 @@
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
diff --git a/src/main/resources/textures/items/stone_sword.ans b/src/main/resources/textures/items/stone_sword.ans
new file mode 100644
index 0000000..41fc2a4
--- /dev/null
+++ b/src/main/resources/textures/items/stone_sword.ans
@@ -0,0 +1,25 @@
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
diff --git a/src/main/resources/textures/items/wooden_sword.ans b/src/main/resources/textures/items/wooden_sword.ans
new file mode 100644
index 0000000..71578dc
--- /dev/null
+++ b/src/main/resources/textures/items/wooden_sword.ans
@@ -0,0 +1,25 @@
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+