diff --git a/.gitignore b/.gitignore index a9f2eb124..7dc223640 100644 --- a/.gitignore +++ b/.gitignore @@ -124,3 +124,5 @@ gitversion .version /.version *.swp + +*.fsdbinary diff --git a/config.py b/config.py index a84f471cf..5536e3795 100644 --- a/config.py +++ b/config.py @@ -24,8 +24,8 @@ saveInRoot = False # Version data -version = "2.1.1" -tag = "Stable" +version = "2.2.0b1" +tag = "git" expansionName = "Into the Abyss" expansionVersion = "1.1" evemonMinVersion = "4081" diff --git a/eos/db/__init__.py b/eos/db/__init__.py index 5341e84ae..f02e9d944 100644 --- a/eos/db/__init__.py +++ b/eos/db/__init__.py @@ -78,10 +78,10 @@ sd_lock = threading.RLock() # Import all the definitions for all our database stuff # noinspection PyPep8 -from eos.db.gamedata import alphaClones, attribute, category, effect, group, icon, item, marketGroup, metaData, metaGroup, queries, traits, unit +from eos.db.gamedata import alphaClones, attribute, category, effect, group, item, marketGroup, metaData, metaGroup, queries, traits, unit, dynamicAttributes # noinspection PyPep8 from eos.db.saveddata import booster, cargo, character, damagePattern, databaseRepair, drone, fighter, fit, implant, implantSet, loadDefaultDatabaseValues, \ - miscData, module, override, price, queries, skill, targetResists, user + miscData, mutator, module, override, price, queries, skill, targetResists, user # Import queries # noinspection PyPep8 diff --git a/eos/db/gamedata/__init__.py b/eos/db/gamedata/__init__.py index eabfd7f1b..465433a26 100644 --- a/eos/db/gamedata/__init__.py +++ b/eos/db/gamedata/__init__.py @@ -1,2 +1,2 @@ -__all__ = ["attribute", "category", "effect", "group", "metaData", - "icon", "item", "marketGroup", "metaGroup", "unit", "alphaClones"] +__all__ = ["attribute", "category", "effect", "group", "metaData", "dynamicAttributes", + "item", "marketGroup", "metaGroup", "unit", "alphaClones"] diff --git a/eos/db/gamedata/attribute.py b/eos/db/gamedata/attribute.py index 20de4d1a9..727037421 100644 --- a/eos/db/gamedata/attribute.py +++ b/eos/db/gamedata/attribute.py @@ -22,7 +22,7 @@ from sqlalchemy.ext.associationproxy import association_proxy from sqlalchemy.orm import relation, mapper, synonym, deferred from eos.db import gamedata_meta -from eos.gamedata import Attribute, AttributeInfo, Unit, Icon +from eos.gamedata import Attribute, AttributeInfo, Unit typeattributes_table = Table("dgmtypeattribs", gamedata_meta, Column("value", Float), @@ -38,7 +38,7 @@ attributes_table = Table("dgmattribs", gamedata_meta, Column("published", Boolean), Column("displayName", String), Column("highIsGood", Boolean), - Column("iconID", Integer, ForeignKey("icons.iconID")), + Column("iconID", Integer), Column("unitID", Integer, ForeignKey("dgmunits.unitID"))) mapper(Attribute, typeattributes_table, @@ -46,7 +46,6 @@ mapper(Attribute, typeattributes_table, mapper(AttributeInfo, attributes_table, properties={ - "icon" : relation(Icon), "unit" : relation(Unit), "ID" : synonym("attributeID"), "name" : synonym("attributeName"), diff --git a/eos/db/gamedata/category.py b/eos/db/gamedata/category.py index 0fd84da79..c167cf1df 100644 --- a/eos/db/gamedata/category.py +++ b/eos/db/gamedata/category.py @@ -21,18 +21,17 @@ from sqlalchemy import Column, String, Integer, ForeignKey, Boolean, Table from sqlalchemy.orm import relation, mapper, synonym, deferred from eos.db import gamedata_meta -from eos.gamedata import Category, Icon +from eos.gamedata import Category categories_table = Table("invcategories", gamedata_meta, Column("categoryID", Integer, primary_key=True), Column("categoryName", String), Column("description", String), Column("published", Boolean), - Column("iconID", Integer, ForeignKey("icons.iconID"))) + Column("iconID", Integer)) mapper(Category, categories_table, properties={ - "icon" : relation(Icon), "ID" : synonym("categoryID"), "name" : synonym("categoryName"), "description": deferred(categories_table.c.description) diff --git a/eos/db/gamedata/dynamicAttributes.py b/eos/db/gamedata/dynamicAttributes.py new file mode 100644 index 000000000..be0e9b9d1 --- /dev/null +++ b/eos/db/gamedata/dynamicAttributes.py @@ -0,0 +1,66 @@ +# =============================================================================== +# Copyright (C) 2010 Diego Duclos +# +# This file is part of eos. +# +# eos is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# eos is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with eos. If not, see . +# =============================================================================== + +from sqlalchemy import Column, Float, Integer, Table, ForeignKey +from sqlalchemy.orm import mapper, relation, synonym +from sqlalchemy.ext.associationproxy import association_proxy + +from eos.db import gamedata_meta +from eos.gamedata import DynamicItem, DynamicItemAttribute, DynamicItemItem, Item + +from eos.gamedata import AttributeInfo + +dynamic_table = Table("mutaplasmids", gamedata_meta, + Column("typeID", ForeignKey("invtypes.typeID"), primary_key=True, index=True), + Column("resultingTypeID", ForeignKey("invtypes.typeID"), primary_key=True)) + +dynamicAttributes_table = Table("mutaplasmidAttributes", gamedata_meta, + Column("typeID", Integer, ForeignKey("mutaplasmids.typeID"), primary_key=True), + Column("attributeID", ForeignKey("dgmattribs.attributeID"), primary_key=True), + Column("min", Float), + Column("max", Float)) + +dynamicApplicable_table = Table("mutaplasmidItems", gamedata_meta, + Column("typeID", ForeignKey("mutaplasmids.typeID"), primary_key=True), + Column("applicableTypeID", ForeignKey("invtypes.typeID"), primary_key=True), + ) + +mapper(DynamicItem, dynamic_table, properties={ + "attributes": relation(DynamicItemAttribute), + "item": relation(Item, foreign_keys=[dynamic_table.c.typeID]), + "resultingItem": relation(Item, foreign_keys=[dynamic_table.c.resultingTypeID]), + "ID": synonym("typeID"), +}) + +mapper(DynamicItemAttribute, dynamicAttributes_table, + properties={"info": relation(AttributeInfo, lazy=False)}) + +mapper(DynamicItemItem, dynamicApplicable_table, properties={ + "mutaplasmid": relation(DynamicItem), + }) + +DynamicItemAttribute.ID = association_proxy("info", "attributeID") +DynamicItemAttribute.name = association_proxy("info", "attributeName") +DynamicItemAttribute.description = association_proxy("info", "description") +DynamicItemAttribute.published = association_proxy("info", "published") +DynamicItemAttribute.displayName = association_proxy("info", "displayName") +DynamicItemAttribute.highIsGood = association_proxy("info", "highIsGood") +DynamicItemAttribute.iconID = association_proxy("info", "iconID") +DynamicItemAttribute.icon = association_proxy("info", "icon") +DynamicItemAttribute.unit = association_proxy("info", "unit") diff --git a/eos/db/gamedata/group.py b/eos/db/gamedata/group.py index 4373b2ca5..a9a66a8ef 100644 --- a/eos/db/gamedata/group.py +++ b/eos/db/gamedata/group.py @@ -18,10 +18,10 @@ # =============================================================================== from sqlalchemy import Column, String, Integer, Boolean, ForeignKey, Table -from sqlalchemy.orm import relation, mapper, synonym, deferred +from sqlalchemy.orm import relation, mapper, synonym, deferred, backref from eos.db import gamedata_meta -from eos.gamedata import Category, Group, Icon +from eos.gamedata import Category, Group groups_table = Table("invgroups", gamedata_meta, Column("groupID", Integer, primary_key=True), @@ -29,12 +29,11 @@ groups_table = Table("invgroups", gamedata_meta, Column("description", String), Column("published", Boolean), Column("categoryID", Integer, ForeignKey("invcategories.categoryID")), - Column("iconID", Integer, ForeignKey("icons.iconID"))) + Column("iconID", Integer)) mapper(Group, groups_table, properties={ - "category" : relation(Category, backref="groups"), - "icon" : relation(Icon), + "category" : relation(Category, backref=backref("groups", cascade="all,delete")), "ID" : synonym("groupID"), "name" : synonym("groupName"), "description": deferred(groups_table.c.description) diff --git a/eos/db/gamedata/item.py b/eos/db/gamedata/item.py index 1760f9157..767029d21 100644 --- a/eos/db/gamedata/item.py +++ b/eos/db/gamedata/item.py @@ -19,12 +19,13 @@ from sqlalchemy import Column, String, Integer, Boolean, ForeignKey, Table, Float from sqlalchemy.ext.associationproxy import association_proxy -from sqlalchemy.orm import relation, mapper, synonym, deferred +from sqlalchemy.orm import relation, mapper, synonym, deferred, backref from sqlalchemy.orm.collections import attribute_mapped_collection from eos.db.gamedata.effect import typeeffects_table from eos.db import gamedata_meta -from eos.gamedata import Attribute, Effect, Group, Icon, Item, MetaType, Traits +from eos.gamedata import Attribute, Effect, Group, Item, MetaType, Traits, DynamicItemItem, DynamicItem +from eos.db.gamedata.dynamicAttributes import dynamicApplicable_table, dynamic_table items_table = Table("invtypes", gamedata_meta, Column("typeID", Integer, primary_key=True), @@ -37,7 +38,8 @@ items_table = Table("invtypes", gamedata_meta, Column("capacity", Float), Column("published", Boolean), Column("marketGroupID", Integer, ForeignKey("invmarketgroups.marketGroupID")), - Column("iconID", Integer, ForeignKey("icons.iconID")), + Column("iconID", Integer), + Column("graphicID", Integer), Column("groupID", Integer, ForeignKey("invgroups.groupID"), index=True)) from .metaGroup import metatypes_table # noqa @@ -45,8 +47,7 @@ from .traits import traits_table # noqa mapper(Item, items_table, properties={ - "group" : relation(Group, backref="items"), - "icon" : relation(Icon), + "group" : relation(Group, backref=backref("items", cascade="all,delete")), "_Item__attributes": relation(Attribute, cascade='all, delete, delete-orphan', collection_class=attribute_mapped_collection('name')), "effects": relation(Effect, secondary=typeeffects_table, collection_class=attribute_mapped_collection('name')), "metaGroup" : relation(MetaType, @@ -57,7 +58,13 @@ mapper(Item, items_table, "description" : deferred(items_table.c.description), "traits" : relation(Traits, primaryjoin=traits_table.c.typeID == items_table.c.typeID, - uselist=False) + uselist=False), + "mutaplasmids": relation(DynamicItem, + primaryjoin=dynamicApplicable_table.c.applicableTypeID == items_table.c.typeID, + secondaryjoin=dynamicApplicable_table.c.typeID == DynamicItem.typeID, + secondary=dynamicApplicable_table, + backref="applicableItems" + ) }) Item.category = association_proxy("group", "category") diff --git a/eos/db/gamedata/marketGroup.py b/eos/db/gamedata/marketGroup.py index faf88780b..8bd04f401 100644 --- a/eos/db/gamedata/marketGroup.py +++ b/eos/db/gamedata/marketGroup.py @@ -21,7 +21,7 @@ from sqlalchemy import Column, String, Integer, Boolean, ForeignKey, Table from sqlalchemy.orm import relation, mapper, synonym, deferred from eos.db import gamedata_meta -from eos.gamedata import Icon, Item, MarketGroup +from eos.gamedata import Item, MarketGroup marketgroups_table = Table("invmarketgroups", gamedata_meta, Column("marketGroupID", Integer, primary_key=True), @@ -30,14 +30,13 @@ marketgroups_table = Table("invmarketgroups", gamedata_meta, Column("hasTypes", Boolean), Column("parentGroupID", Integer, ForeignKey("invmarketgroups.marketGroupID", initially="DEFERRED", deferrable=True)), - Column("iconID", Integer, ForeignKey("icons.iconID"))) + Column("iconID", Integer)) mapper(MarketGroup, marketgroups_table, properties={ "items" : relation(Item, backref="marketGroup"), "parent" : relation(MarketGroup, backref="children", remote_side=[marketgroups_table.c.marketGroupID]), - "icon" : relation(Icon), "ID" : synonym("marketGroupID"), "name" : synonym("marketGroupName"), "description": deferred(marketgroups_table.c.description) diff --git a/eos/db/gamedata/queries.py b/eos/db/gamedata/queries.py index 737169897..956ef054e 100644 --- a/eos/db/gamedata/queries.py +++ b/eos/db/gamedata/queries.py @@ -17,15 +17,16 @@ # along with eos. If not, see . # =============================================================================== -from sqlalchemy.orm import join, exc, aliased +from sqlalchemy.orm import join, exc, aliased, joinedload, subqueryload from sqlalchemy.sql import and_, or_, select +from sqlalchemy.inspection import inspect import eos.config from eos.db import gamedata_session from eos.db.gamedata.metaGroup import metatypes_table, items_table from eos.db.gamedata.group import groups_table from eos.db.util import processEager, processWhere -from eos.gamedata import AlphaClone, Attribute, Category, Group, Item, MarketGroup, MetaGroup, AttributeInfo, MetaData +from eos.gamedata import AlphaClone, Attribute, Category, Group, Item, MarketGroup, MetaGroup, AttributeInfo, MetaData, DynamicItem cache = {} configVal = getattr(eos.config, "gamedataCache", None) @@ -97,6 +98,35 @@ def getItem(lookfor, eager=None): return item +def getMutaplasmid(lookfor, eager=None): + if isinstance(lookfor, int): + item = gamedata_session.query(DynamicItem).filter(DynamicItem.ID == lookfor).first() + else: + raise TypeError("Need integer as argument") + return item + + +def getItemWithBaseItemAttribute(lookfor, baseItemID, eager=None): + # A lot of this is described in more detail in #1597 + item = gamedata_session.query(Item).get(lookfor) + base = getItem(baseItemID) + + # we have to load all attributes for this object, otherwise we'll lose access to them when we expunge. + # todo: figure out a way to eagerly load all these via the query... + for x in [*inspect(Item).relationships.keys(), 'description']: + getattr(item, x) + + # Copy over the attributes from the base, but ise the items attributes when there's an overlap + # WARNING: the attribute object still has the old typeID. I don't believe we access this typeID anywhere in the code, + # but should keep this in mind for now. + item._Item__attributes = {**base.attributes, **item.attributes} + + # Expunge the item form the session. This is required to have different Abyssal / Base combinations loaded in memory. + # Without expunging it, once one Abyssal Web is created, SQLAlchmey will use it for all others. We don't want this, + # we want to generate a completely new object to work with + gamedata_session.expunge(item) + return item + @cachedQuery(1, "lookfor") def getItems(lookfor, eager=None): """ @@ -361,6 +391,10 @@ def directAttributeRequest(itemIDs, attrIDs): return result +def getAbyssalTypes(): + return set([r.resultingTypeID for r in gamedata_session.query(DynamicItem.resultingTypeID).distinct()]) + + def getRequiredFor(itemID, attrMapping): Attribute1 = aliased(Attribute) Attribute2 = aliased(Attribute) diff --git a/eos/db/migrations/upgrade28.py b/eos/db/migrations/upgrade28.py new file mode 100644 index 000000000..2ca735414 --- /dev/null +++ b/eos/db/migrations/upgrade28.py @@ -0,0 +1,18 @@ +""" +Migration 28 + +- adds baseItemID and mutaplasmidID to modules table +""" +import sqlalchemy + + +def upgrade(saveddata_engine): + try: + saveddata_engine.execute("SELECT baseItemID FROM modules LIMIT 1") + except sqlalchemy.exc.DatabaseError: + saveddata_engine.execute("ALTER TABLE modules ADD COLUMN baseItemID INT;") + + try: + saveddata_engine.execute("SELECT mutaplasmidID FROM modules LIMIT 1") + except sqlalchemy.exc.DatabaseError: + saveddata_engine.execute("ALTER TABLE modules ADD COLUMN mutaplasmidID INT;") diff --git a/eos/db/saveddata/__init__.py b/eos/db/saveddata/__init__.py index ba1ddad73..c36517623 100644 --- a/eos/db/saveddata/__init__.py +++ b/eos/db/saveddata/__init__.py @@ -1,6 +1,7 @@ __all__ = [ "character", "fit", + "mutator", "module", "user", "skill", diff --git a/eos/db/saveddata/module.py b/eos/db/saveddata/module.py index 149f4f73c..220b208db 100644 --- a/eos/db/saveddata/module.py +++ b/eos/db/saveddata/module.py @@ -18,17 +18,21 @@ # =============================================================================== from sqlalchemy import Table, Column, Integer, ForeignKey, CheckConstraint, Boolean, DateTime +from sqlalchemy.orm.collections import attribute_mapped_collection from sqlalchemy.orm import relation, mapper import datetime from eos.db import saveddata_meta from eos.saveddata.module import Module +from eos.saveddata.mutator import Mutator from eos.saveddata.fit import Fit modules_table = Table("modules", saveddata_meta, Column("ID", Integer, primary_key=True), Column("fitID", Integer, ForeignKey("fits.ID"), nullable=False, index=True), Column("itemID", Integer, nullable=True), + Column("baseItemID", Integer, nullable=True), + Column("mutaplasmidID", Integer, nullable=True), Column("dummySlot", Integer, nullable=True, default=None), Column("chargeID", Integer), Column("state", Integer, CheckConstraint("state >= -1"), CheckConstraint("state <= 2")), @@ -39,4 +43,12 @@ modules_table = Table("modules", saveddata_meta, CheckConstraint('("dummySlot" = NULL OR "itemID" = NULL) AND "dummySlot" != "itemID"')) mapper(Module, modules_table, - properties={"owner": relation(Fit)}) + properties={ + "owner": relation(Fit), + "mutators": relation( + Mutator, + backref="module", + cascade="all,delete-orphan", + collection_class=attribute_mapped_collection('attrID') + ) + }) diff --git a/eos/db/gamedata/icon.py b/eos/db/saveddata/mutator.py similarity index 52% rename from eos/db/gamedata/icon.py rename to eos/db/saveddata/mutator.py index 9fd41605a..43ecff834 100644 --- a/eos/db/gamedata/icon.py +++ b/eos/db/saveddata/mutator.py @@ -17,19 +17,19 @@ # along with eos. If not, see . # =============================================================================== -from sqlalchemy import Column, String, Integer, Table -from sqlalchemy.orm import mapper, synonym, deferred +from sqlalchemy import Table, Column, Integer, ForeignKey, Boolean, DateTime, Float +from sqlalchemy.orm import mapper +import datetime -from eos.db import gamedata_meta -from eos.gamedata import Icon +from eos.db import saveddata_meta +from eos.saveddata.mutator import Mutator -icons_table = Table("icons", gamedata_meta, - Column("iconID", Integer, primary_key=True), - Column("description", String), - Column("iconFile", String)) +mutator_table = Table("mutators", saveddata_meta, + Column("moduleID", Integer, ForeignKey("modules.ID"), primary_key=True, index=True), + Column("attrID", Integer, primary_key=True, index=True), + Column("value", Float, nullable=False), + Column("created", DateTime, nullable=True, default=datetime.datetime.now), + Column("modified", DateTime, nullable=True, onupdate=datetime.datetime.now) + ) -mapper(Icon, icons_table, - properties={ - "ID" : synonym("iconID"), - "description": deferred(icons_table.c.description) - }) +mapper(Mutator, mutator_table) diff --git a/eos/effects/remotewebifiermaxrangebonus.py b/eos/effects/remotewebifiermaxrangebonus.py index 19498882a..46e5887dd 100644 --- a/eos/effects/remotewebifiermaxrangebonus.py +++ b/eos/effects/remotewebifiermaxrangebonus.py @@ -7,4 +7,4 @@ type = "passive" def handler(fit, src, context): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", "maxRange", - src.getModifiedItemAttr("stasisWebRangeBonus"), stackingPenalties=True) + src.getModifiedItemAttr("stasisWebRangeBonus"), stackingPenalties=False) diff --git a/eos/effects/rolebonuswdrange.py b/eos/effects/rolebonuswdrange.py index 3d6cbdf24..02e61cf78 100644 --- a/eos/effects/rolebonuswdrange.py +++ b/eos/effects/rolebonuswdrange.py @@ -6,7 +6,7 @@ type = "passive" def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "falloff", + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "falloffEffectiveness", src.getModifiedItemAttr("roleBonus")) fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "maxRange", src.getModifiedItemAttr("roleBonus")) diff --git a/eos/gamedata.py b/eos/gamedata.py index 7949361b9..342a4caf4 100644 --- a/eos/gamedata.py +++ b/eos/gamedata.py @@ -208,6 +208,8 @@ class Item(EqBase): MOVE_ATTR_INFO = None + ABYSSAL_TYPES = None + @classmethod def getMoveAttrInfo(cls): info = getattr(cls, "MOVE_ATTR_INFO", None) @@ -463,6 +465,17 @@ class Item(EqBase): return self.__price + @property + def isAbyssal(self): + if Item.ABYSSAL_TYPES is None: + Item.getAbyssalYypes() + + return self.ID in Item.ABYSSAL_TYPES + + @classmethod + def getAbyssalYypes(cls): + cls.ABYSSAL_TYPES = eos.db.getAbyssalTypes() + def __repr__(self): return "Item(ID={}, name={}) at {}".format( self.ID, self.name, hex(id(self)) @@ -512,10 +525,17 @@ class Group(EqBase): pass -class Icon(EqBase): +class DynamicItem(EqBase): pass +class DynamicItemAttribute(EqBase): + pass + + +class DynamicItemItem(EqBase): + pass + class MarketGroup(EqBase): def __repr__(self): return "MarketGroup(ID={}, name={}, parent={}) at {}".format( @@ -532,7 +552,101 @@ class MetaType(EqBase): class Unit(EqBase): - pass + + def __init__(self): + self.name = None + self.displayName = None + + @property + def translations(self): + """ This is a mapping of various tweaks that we have to do between the internal representation of an attribute + value and the display (for example, 'Millisecond' units have the display name of 's', so we have to convert value + from ms to s) """ + return { + "Inverse Absolute Percent": ( + lambda v: (1 - v) * 100, + lambda d: -1 * (d / 100) + 1, + lambda u: u), + "Inversed Modifier Percent": ( + lambda v: (1 - v) * 100, + lambda d: -1 * (d / 100) + 1, + lambda u: u), + "Modifier Percent": ( + lambda v: ("%+.2f" if ((v - 1) * 100) % 1 else "%+d") % ((v - 1) * 100), + lambda d: (d / 100) + 1, + lambda u: u), + "Volume": ( + lambda v: v, + lambda d: d, + lambda u: "m³"), + "Sizeclass": ( + lambda v: v, + lambda d: d, + lambda u: ""), + "Absolute Percent": ( + lambda v: (v * 100), + lambda d: d / 100, + lambda u: u), + "Milliseconds": ( + lambda v: v / 1000.0, + lambda d: d * 1000.0, + lambda u: u), + "Boolean": ( + lambda v, u: "Yes" if v == 1 else "No", + lambda d: 1.0 if d == "Yes" else 0.0, + lambda u: ""), + "typeID": ( + self.itemIDCallback, + None, # we could probably convert these back if we really tried hard enough + lambda u: ""), + "groupID": ( + self.groupIDCallback, + None, + lambda u: ""), + "attributeID": ( + self.attributeIDCallback, + None, + lambda u: ""), + } + + @staticmethod + def itemIDCallback(v): + v = int(v) + item = eos.db.getItem(int(v)) + return "%s (%d)" % (item.name, v) if item is not None else str(v) + + @staticmethod + def groupIDCallback(v): + v = int(v) + group = eos.db.getGroup(v) + return "%s (%d)" % (group.name, v) if group is not None else str(v) + + @staticmethod + def attributeIDCallback(v): + v = int(v) + if not v: # some attributes come through with a value of 0? See #1387 + return "%d" % (v) + attribute = eos.db.getAttributeInfo(v, eager=("unit")) + return "%s (%d)" % (attribute.name.capitalize(), v) + + def TranslateValue(self, value): + """Attributes have to be translated certain ways based on their unit (ex: decimals converting to percentages). + This allows us to get an easy representation of how the attribute should be printed """ + + override = self.translations.get(self.name) + if override is not None: + return override[0](value), override[2](self.displayName) + + return value, self.displayName + + def ComplicateValue(self, value): + """Takes the display value and turns it back into the internal representation of it""" + + override = self.translations.get(self.name) + if override is not None: + return override[1](value) + + return value class Traits(EqBase): diff --git a/eos/modifiedAttributeDict.py b/eos/modifiedAttributeDict.py index b4c73c958..cb90d6679 100644 --- a/eos/modifiedAttributeDict.py +++ b/eos/modifiedAttributeDict.py @@ -33,6 +33,14 @@ class ItemAttrShortcut(object): return return_value or default + def getBaseAttrValue(self, key, default=0): + ''' + Gets base value in this order: + Mutated value > override value > attribute value + ''' + return_value = self.itemModifiedAttributes.getOriginal(key) + + return return_value or default class ChargeAttrShortcut(object): def getModifiedChargeAttr(self, key, default=0): @@ -59,8 +67,10 @@ class ModifiedAttributeDict(collections.MutableMapping): self.__modified = {} # Affected by entities self.__affectedBy = {} - # Overrides + # Overrides (per item) self.__overrides = {} + # Mutators (per module) + self.__mutators = {} # Dictionaries for various value modification types self.__forced = {} self.__preAssigns = {} @@ -100,6 +110,14 @@ class ModifiedAttributeDict(collections.MutableMapping): def overrides(self, val): self.__overrides = val + @property + def mutators(self): + return {x.attribute.name: x for x in self.__mutators.values()} + + @mutators.setter + def mutators(self, val): + self.__mutators = val + def __getitem__(self, key): # Check if we have final calculated value key_value = self.__modified.get(key) @@ -128,14 +146,16 @@ class ModifiedAttributeDict(collections.MutableMapping): del self.__intermediary[key] def getOriginal(self, key, default=None): + val = None if self.overrides_enabled and self.overrides: - val = self.overrides.get(key, None) - else: - val = None + val = self.overrides.get(key, val) + + # mutators are overriden by overrides. x_x + val = self.mutators.get(key, val) if val is None: if self.original: - val = self.original.get(key, None) + val = self.original.get(key, val) if val is None and val != default: val = default diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index f6d27053c..8146561c5 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -18,6 +18,7 @@ # =============================================================================== from logbook import Logger +from copy import deepcopy from sqlalchemy.orm import validates, reconstructor from math import floor @@ -27,6 +28,7 @@ from eos.effectHandlerHelpers import HandledItem, HandledCharge from eos.enum import Enum from eos.modifiedAttributeDict import ModifiedAttributeDict, ItemAttrShortcut, ChargeAttrShortcut from eos.saveddata.citadel import Citadel +from eos.saveddata.mutator import Mutator pyfalog = Logger(__name__) @@ -74,15 +76,31 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): MINING_ATTRIBUTES = ("miningAmount",) SYSTEM_GROUPS = ("Effect Beacon", "MassiveEnvironments", "Abyssal Hazards", "Non-Interactable Object") - def __init__(self, item): + def __init__(self, item, baseItem=None, mutaplasmid=None): """Initialize a module from the program""" - self.__item = item + + self.itemID = item.ID if item is not None else None + self.baseItemID = baseItem.ID if baseItem is not None else None + self.mutaplasmidID = mutaplasmid.ID if mutaplasmid is not None else None + + if baseItem is not None: + # we're working with a mutated module, need to get abyssal module loaded with the base attributes + # Note: there may be a better way of doing this, such as a metho on this classe to convert(mutaplamid). This + # will require a bit more research though, considering there has never been a need to "swap" out the item of a Module + # before, and there may be assumptions taken with regards to the item never changing (pre-calculated / cached results, for example) + self.__item = eos.db.getItemWithBaseItemAttribute(self.itemID, self.baseItemID) + self.__baseItem = baseItem + self.__mutaplasmid = mutaplasmid + else: + self.__item = item + self.__baseItem = baseItem + self.__mutaplasmid = mutaplasmid if item is not None and self.isInvalid: raise ValueError("Passed item is not a Module") self.__charge = None - self.itemID = item.ID if item is not None else None + self.projected = False self.state = State.ONLINE self.build() @@ -91,7 +109,9 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): def init(self): """Initialize a module from the database and validate""" self.__item = None + self.__baseItem = None self.__charge = None + self.__mutaplasmid = None # we need this early if module is invalid and returns early self.__slot = self.dummySlot @@ -102,6 +122,14 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): pyfalog.error("Item (id: {0}) does not exist", self.itemID) return + if self.baseItemID: + self.__item = eos.db.getItemWithBaseItemAttribute(self.itemID, self.baseItemID) + self.__baseItem = eos.db.getItem(self.baseItemID) + self.__mutaplasmid = eos.db.getMutaplasmid(self.mutaplasmidID) + if self.__baseItem is None: + pyfalog.error("Base Item (id: {0}) does not exist", self.itemID) + return + if self.isInvalid: pyfalog.error("Item (id: {0}) is not a Module", self.itemID) return @@ -133,10 +161,23 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): self.__itemModifiedAttributes.overrides = self.__item.overrides self.__hardpoint = self.__calculateHardpoint(self.__item) self.__slot = self.__calculateSlot(self.__item) + + # Instantiate / remove mutators if this is a mutated module + if self.__baseItem: + for x in self.mutaplasmid.attributes: + attr = self.item.attributes[x.name] + id = attr.ID + if id not in self.mutators: # create the mutator + Mutator(self, attr, attr.value) + # @todo: remove attributes that are no longer part of the mutaplasmid. + + self.__itemModifiedAttributes.mutators = self.mutators + if self.__charge: self.__chargeModifiedAttributes.original = self.__charge.attributes self.__chargeModifiedAttributes.overrides = self.__charge.overrides + @classmethod def buildEmpty(cls, slot): empty = Module(None) @@ -162,11 +203,17 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): @property def isInvalid(self): + # todo: validate baseItem as well if it's set. if self.isEmpty: return False return self.__item is None or \ (self.__item.category.name not in ("Module", "Subsystem", "Structure Module") and - self.__item.group.name not in self.SYSTEM_GROUPS) + self.__item.group.name not in self.SYSTEM_GROUPS) or \ + (self.item.isAbyssal and (not self.baseItemID or not self.mutaplasmidID) ) + + @property + def isMutated(self): + return self.baseItemID or self.mutaplasmidID @property def numCharges(self): @@ -306,6 +353,14 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): def item(self): return self.__item if self.__item != 0 else None + @property + def baseItem(self): + return self.__baseItem + + @property + def mutaplasmid(self): + return self.__mutaplasmid + @property def charge(self): return self.__charge if self.__charge != 0 else None @@ -572,7 +627,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): for i in range(5): itemChargeGroup = self.getModifiedItemAttr('chargeGroup' + str(i), None) if itemChargeGroup is not None: - g = eos.db.getGroup(int(itemChargeGroup), eager=("items.icon", "items.attributes")) + g = eos.db.getGroup(int(itemChargeGroup), eager=("items.attributes")) if g is None: continue for singleItem in g.items: @@ -783,9 +838,13 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): if item is None: copy = Module.buildEmpty(self.slot) else: - copy = Module(self.item) + copy = Module(self.item, self.baseItem, self.mutaplasmid) copy.charge = self.charge copy.state = self.state + + for x in self.mutators.values(): + Mutator(copy, x.attribute, x.value) + return copy def __repr__(self): diff --git a/eos/saveddata/mutator.py b/eos/saveddata/mutator.py new file mode 100644 index 000000000..ff1473005 --- /dev/null +++ b/eos/saveddata/mutator.py @@ -0,0 +1,133 @@ +# =============================================================================== +# Copyright (C) 2015 Ryan Holmes +# +# This file is part of eos. +# +# eos is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# eos is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with eos. If not, see . +# =============================================================================== + +from logbook import Logger + +from sqlalchemy.orm import validates, reconstructor + +import eos.db +from eos.eqBase import EqBase + +pyfalog = Logger(__name__) + + +class Mutator(EqBase): + """ Mutators are the object that represent an attribute override on the module level, in conjunction with + mutaplasmids. Each mutated module, when created, is instantiated with a list of these objects, dictated by the + mutaplasmid that is used on the base module. + + A note on the different attributes on this object: + * attribute: points to the definition of the attribute from dgmattribs. + * baseAttribute: points to the attribute defined for the base item (contains the base value with with to mutate) + * dynamicAttribute: points to the Mutaplasmid definition of the attribute, including min/max + + This could probably be cleaned up with smarter relationships, but whatever + """ + + def __init__(self, module, attr, value): + # this needs to be above module assignment, as assigning the module will add it to the list and it via + # relationship and needs this set 4correctly + self.attrID = attr.ID + + self.module = module + self.moduleID = module.ID + + self.__attr = attr + self.build() + self.value = value # must run after the build(), because the validator requires build() to run first + + @reconstructor + def init(self): + self.__attr = None + + if self.attrID: + self.__attr = eos.db.getAttributeInfo(self.attrID) + if self.__attr is None: + pyfalog.error("Attribute (id: {0}) does not exist", self.attrID) + return + + self.build() + self.value = self.value # run the validator (to ensure we catch any changed min/max values might CCP release) + + def build(self): + # try...except here to catch orphaned mutators. Pretty rare, only happens so far if hacking the database + # But put it here to remove the module link if it happens, until a better solution can be developed + try: + # dynamic attribute links to the Mutaplasmids attribute definition for this mutated definition + self.dynamicAttribute = next(a for a in self.module.mutaplasmid.attributes if a.attributeID == self.attrID) + # base attribute links to the base ite's attribute for this mutated definition (contains original, base value) + self.baseAttribute = self.module.item.attributes[self.dynamicAttribute.name] + except: + self.module = None + + @validates("value") + def validator(self, key, val): + """ Validates values as properly falling within the range of the modules' Mutaplasmid """ + mod = val/self.baseValue + + if self.minMod <= mod <= self.maxMod: + # sweet, all good + returnVal = val + else: + # need to fudge the numbers a bit. Go with the value closest to base + if val >= 0: + returnVal = min(self.maxValue, max(self.minValue, val)) + else: + returnVal = max(self.maxValue, min(self.minValue, val)) + + return returnVal + + @property + def isInvalid(self): + # @todo: need to test what happens: + # 1) if an attribute is removed from the EVE database + # 2) if a mutaplasmid does not have the attribute anymore + # 3) if a mutaplasmid does not exist (in eve or on the module's item) + # Can remove invalid ones in a SQLAlchemy collection class... eventually + return self.__attr is None + + @property + def highIsGood(self): + return self.attribute.highIsGood + + @property + def minMod(self): + return round(self.dynamicAttribute.min, 3) + + @property + def maxMod(self): + return round(self.dynamicAttribute.max, 3) + + @property + def baseValue(self): + return self.baseAttribute.value + + @property + def minValue(self): + return self.minMod * self.baseAttribute.value + + @property + def maxValue(self): + return self.maxMod * self.baseAttribute.value + + @property + def attribute(self): + return self.__attr + + diff --git a/eos/saveddata/ship.py b/eos/saveddata/ship.py index 56b3f7c0d..1e1dd30d6 100644 --- a/eos/saveddata/ship.py +++ b/eos/saveddata/ship.py @@ -131,7 +131,7 @@ class Ship(ItemAttrShortcut, HandledItem): return None items = [] - g = eos.db.getGroup("Ship Modifiers", eager=("items.icon", "items.attributes")) + g = eos.db.getGroup("Ship Modifiers", eager=("items.attributes")) for item in g.items: # Rely on name detection because race is not reliable if item.name.lower().startswith(self.item.name.lower()): diff --git a/eve.db b/eve.db index 3bf090b22..6bd7efc6b 100644 Binary files a/eve.db and b/eve.db differ diff --git a/gui/attribute_gauge.py b/gui/attribute_gauge.py new file mode 100644 index 000000000..38de597b9 --- /dev/null +++ b/gui/attribute_gauge.py @@ -0,0 +1,504 @@ +import copy +import wx +import math + +from gui.utils import color as color_utils +from gui.utils import draw, anim_effects +from service.fit import Fit + +# todo: clean class up. Took from pyfa gauge, has a bunch of extra shit we don't need + + +class AttributeGauge(wx.Window): + def __init__(self, parent, max_range=100, animate=True, leading_edge=True, edge_on_neutral=True, guide_lines=False, size=(-1, 30), *args, + **kargs): + + super().__init__(parent, size=size, *args, **kargs) + + self._size = size + + self.guide_lines = guide_lines + + self._border_colour = wx.BLACK + self._bar_colour = None + self._bar_gradient = None + + self.leading_edge = leading_edge + self.edge_on_neutral = edge_on_neutral + + self._border_padding = 0 + self._max_range = max_range + self._value = 0 + + self._fraction_digits = 0 + + self._timer_id = wx.NewId() + self._timer = None + + self._oldValue = 0 + + self._animate = animate + self._anim_duration = 500 + self._anim_step = 0 + self._period = 20 + self._anim_value = 0 + self._anim_direction = 0 + self.anim_effect = anim_effects.OUT_QUAD + + # transition colors used based on how full (or overfilled) the gauge is. + self.transition_colors = [ + (wx.Colour(191, 191, 191), wx.Colour(96, 191, 0)), # < 0-100% + (wx.Colour(191, 167, 96), wx.Colour(255, 191, 0)), # < 100-101% + (wx.Colour(255, 191, 0), wx.Colour(255, 128, 0)), # < 101-103% + (wx.Colour(255, 128, 0), wx.Colour(255, 0, 0)) # < 103-105% + ] + + self.goodColor = wx.Colour(96, 191, 0) + self.badColor = wx.Colour(255, 64, 0) + + self.gradient_effect = -35 + + self._percentage = 0 + self._old_percentage = 0 + self._show_remaining = False + + self.SetBackgroundColour(wx.Colour(51, 51, 51)) + + self._tooltip = wx.ToolTip("0.00/100.00") + self.SetToolTip(self._tooltip) + + self.Bind(wx.EVT_PAINT, self.OnPaint) + self.Bind(wx.EVT_TIMER, self.OnTimer) + self.Bind(wx.EVT_ENTER_WINDOW, self.OnWindowEnter) + self.Bind(wx.EVT_LEAVE_WINDOW, self.OnWindowLeave) + self.SetBackgroundStyle(wx.BG_STYLE_PAINT) + + def OnEraseBackground(self, event): + pass + + def OnWindowEnter(self, event): + self._show_remaining = True + self.Refresh() + + def OnWindowLeave(self, event): + self._show_remaining = False + self.Refresh() + + def GetBorderColour(self): + return self._border_colour + + def SetBorderColour(self, colour): + self._border_colour = colour + + def GetBarColour(self): + return self._bar_colour + + def SetBarColour(self, colour): + self._bar_colour = colour + + def SetFractionDigits(self, digits): + self._fraction_digits = digits + + def GetBarGradient(self): + if self._bar_gradient is None: + return None + + return self._bar_gradient[0] + + def SetBarGradient(self, gradient=None): + if gradient is None: + self._bar_gradient = None + else: + if not isinstance(gradient, list): + self._bar_gradient = [gradient] + else: + self._bar_gradient = list(gradient) + + def GetBorderPadding(self): + return self._border_padding + + def SetBorderPadding(self, padding): + self._border_padding = padding + + def GetRange(self): + """ Returns the maximum value of the gauge. """ + return self._max_range + + def Animate(self): + if self._animate: + if not self._timer: + self._timer = wx.Timer(self, self._timer_id) + + self._anim_step = 0 + self._timer.Start(self._period) + else: + self._anim_value = self._percentage + self.Refresh() + + def SetRange(self, range, reinit=False, animate=True): + """ + Sets the range of the gauge. The gauge length is its + value as a proportion of the range. + """ + + if self._max_range == range: + return + + # we cannot have a range of zero (laws of physics, etc), so we set it + if range <= 0: + self._max_range = 0.01 + else: + self._max_range = range + + if reinit is False: + self._old_percentage = self._percentage + self._percentage = (self._value / self._max_range) * 100 + else: + self._old_percentage = self._percentage + self._percentage = 0 + self._value = 0 + + if animate: + self.Animate() + + self._tooltip.SetTip("%.2f/%.2f" % (self._value, self._max_range if self._max_range > 0.01 else 0)) + + def GetValue(self): + return self._value + + def SetValue(self, value, animate=True): + """ Sets the current position of the gauge. """ + + print ("="*20, self._percentage) + if self._value == value: + return + + self._old_percentage = self._percentage + self._value = value + + self._percentage = (self._value / self._max_range) * 100 + + if animate: + self.Animate() + + self._tooltip.SetTip("%.2f/%.2f" % (self._value, self._max_range)) + + def SetValueRange(self, value, range, reinit=False): + """ Set both value and range of the gauge. """ + range_ = float(range) + + if range_ <= 0: + self._max_range = 0.01 + else: + self._max_range = range_ + + value = float(value) + + self._value = value + + if reinit is False: + self._old_percentage = self._percentage + self._percentage = (self._value / self._max_range) * 100 + + else: + self._old_percentage = self._percentage + self._percentage = 0 + + self.Animate() + self._tooltip.SetTip("%.2f/%.2f" % + (self._value, self._max_range if float(self._max_range) > 0.01 else 0)) + + def OnPaint(self, event): + dc = wx.AutoBufferedPaintDC(self) + rect = self.GetClientRect() + + dc.SetBackground(wx.Brush(self.GetBackgroundColour())) + dc.Clear() + + colour = self.GetBackgroundColour() + + dc.SetBrush(wx.Brush(colour)) + dc.SetPen(wx.Pen(colour)) + + dc.DrawRectangle(rect) + + value = self._percentage + + if self._timer: + if self._timer.IsRunning(): + value = self._anim_value + + if self._border_colour: + dc.SetPen(wx.Pen(self.GetBorderColour())) + dc.DrawRectangle(rect) + pad = 1 + self.GetBorderPadding() + rect.Deflate(pad, pad) + + if True: + # if we have a bar color set, then we will use this + colour = self.goodColor if value >= 0 else self.badColor + + is_even = rect.width % 2 == 0 + + # the size of half our available drawing area (since we're only working in halves) + half = (rect.width / 2) + + # calculate width of bar as a percentage of half the space + w = abs(half * (value / 100)) + w = min(w, half) # Ensure that we don't overshoot our drawing area + w = math.ceil(w) # round up to nearest pixel, this ensures that we don't lose representation for sub pixels + + # print("Percentage: {}\t\t\t\t\tValue: {}\t\t\t\t\tWidth: {}\t\t\t\t\tHalf: {}\t\t\t\t\tRect Width: {}".format(round(self._percentage, 3), round(value,3), w, half, rect.width)) + + # set guide_lines every 10 pixels of the main gauge (not including borders) + if self.guide_lines: + for x in range(1, 20): + dc.SetBrush(wx.Brush(wx.LIGHT_GREY)) + dc.SetPen(wx.Pen(wx.LIGHT_GREY)) + dc.DrawRectangle(x*10, 1, 1, rect.height) + + dc.SetBrush(wx.Brush(colour)) + dc.SetPen(wx.Pen(colour)) + + # If we have an even width, we can simply dedicate the middle-most pixels to both sides + # However, if there is an odd width, the middle pixel is shared between the left and right gauge + + if value >= 0: + padding = (half if is_even else math.ceil(half-1)) + 1 + dc.DrawRectangle(padding, 1, w, rect.height) + else: + padding = half - w + 1 if is_even else math.ceil(half)-(w-1) + dc.DrawRectangle(padding, 1, w, rect.height) + + if self.leading_edge and (self.edge_on_neutral or value != 0): + dc.SetPen(wx.Pen(wx.WHITE)) + dc.SetBrush(wx.Brush(wx.WHITE)) + + if value > 0: + dc.DrawRectangle(min(padding + w, rect.width), 1, 1, rect.height) + else: + dc.DrawRectangle(max(padding-1, 1), 1, 1, rect.height) + + def OnTimer(self, event): + old_value = self._old_percentage + value = self._percentage + start = 0 + + # -1 = left direction, 1 = right direction + direction = 1 if old_value < value else -1 + + end = direction * (value - old_value) + + self._anim_direction = direction + step = self.anim_effect(self._anim_step, start, end, self._anim_duration) + + self._anim_step += self._period + + if self._timer_id == event.GetId(): + stop_timer = False + + if self._anim_step > self._anim_duration: + stop_timer = True + + # add new value to the animation if we haven't reached our goal + # otherwise, stop animation + if direction == 1: + if old_value + step < value: + self._anim_value = old_value + step + else: + stop_timer = True + else: + if old_value - step > value: + self._anim_value = old_value - step + else: + stop_timer = True + + if stop_timer: + self._timer.Stop() + + self.Refresh() + + +if __name__ == "__main__": + import random + + def frange(x, y, jump): + while x < y: + yield x + x += jump + + class MyPanel(wx.Panel): + def __init__(self, parent, size=(500, 500)): + wx.Panel.__init__(self, parent, size=size) + box = wx.BoxSizer(wx.VERTICAL) + + font = wx.Font(9, wx.SWISS, wx.NORMAL, wx.NORMAL, False) + + self.gauge = gauge = AttributeGauge(self, size=(204, 4)) + gauge.SetBackgroundColour(wx.Colour(52, 86, 98)) + gauge.SetBarColour(wx.Colour(255, 128, 0)) + gauge.SetValue(100) + gauge.SetFractionDigits(1) + box.Add(gauge, 0, wx.ALL|wx.CENTER, 10) + + self.gauge11 = gauge = AttributeGauge(self, size=(204, 6)) + gauge.SetBackgroundColour(wx.Colour(52, 86, 98)) + gauge.SetBarColour(wx.Colour(255, 128, 0)) + gauge.SetValue(100) + gauge.SetFractionDigits(1) + box.Add(gauge, 0, wx.ALL | wx.CENTER, 10) + + self.gauge12 = gauge = AttributeGauge(self, size=(204, 8)) + gauge.SetBackgroundColour(wx.Colour(52, 86, 98)) + gauge.SetBarColour(wx.Colour(255, 128, 0)) + gauge.SetValue(100) + gauge.SetFractionDigits(1) + box.Add(gauge, 0, wx.ALL | wx.CENTER, 10) + + self.gauge13 = gauge = AttributeGauge(self, size=(204, 10)) + gauge.SetBackgroundColour(wx.Colour(52, 86, 98)) + gauge.SetBarColour(wx.Colour(255, 128, 0)) + gauge.SetValue(100) + gauge.SetFractionDigits(1) + box.Add(gauge, 0, wx.ALL | wx.CENTER, 10) + + self.value = wx.StaticText(self, label="Text") + box.Add(self.value, 0, wx.ALL | wx.CENTER, 5) + + self.btn = wx.Button(self, label="Toggle Timer") + box.Add(self.btn, 0, wx.ALL | wx.CENTER, 5) + self.btn.Bind(wx.EVT_BUTTON, self.ToggleTimer) + + self.spinCtrl = wx.SpinCtrl(self, min=-10000, max=10000) + box.Add(self.spinCtrl, 0, wx.ALL | wx.CENTER, 5) + self.spinCtrl.Bind(wx.EVT_SPINCTRL, self.UpdateValue) + + self.m_staticline2 = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL) + box.Add(self.m_staticline2, 0, wx.EXPAND, 5) + + self.spinCtrl2 = wx.SpinCtrl(self, min=0, max=10000) + box.Add(self.spinCtrl2, 0, wx.ALL | wx.CENTER, 5) + self.spinCtrl2.Bind(wx.EVT_SPINCTRL, self.UpdateValue2) + + box.Add(wx.StaticText(self, label="Large Even Pixel Test"), 0, wx.ALL | wx.CENTER, 5) + + guide_lines = False + + self.gauge2 = gauge = AttributeGauge(self, guide_lines=guide_lines, size=(204, 8)) + gauge.SetBackgroundColour(wx.Colour(52, 86, 98)) + gauge.SetBarColour(wx.Colour(255, 128, 0)) + gauge.SetValue(2) + gauge.SetFractionDigits(1) + box.Add(gauge, 0, wx.ALL | wx.CENTER, 10) + + self.gauge3 = gauge = AttributeGauge(self, guide_lines=guide_lines, size=(204, 8)) + gauge.SetBackgroundColour(wx.Colour(52, 86, 98)) + gauge.SetBarColour(wx.Colour(255, 128, 0)) + gauge.SetValue(-2) + gauge.SetFractionDigits(1) + box.Add(gauge, 0, wx.ALL | wx.CENTER, 10) + + box.Add(wx.StaticText(self, label="Large Odd Pixel Test"), 0, wx.ALL | wx.CENTER, 5) + + self.gauge4 = gauge = AttributeGauge(self, guide_lines=guide_lines, size=(205, 8)) + gauge.SetBackgroundColour(wx.Colour(52, 86, 98)) + gauge.SetBarColour(wx.Colour(255, 128, 0)) + gauge.SetValue(2) + gauge.SetFractionDigits(1) + box.Add(gauge, 0, wx.ALL | wx.CENTER, 10) + + self.gauge5 = gauge = AttributeGauge(self, guide_lines=guide_lines, size=(205, 8)) + gauge.SetBackgroundColour(wx.Colour(52, 86, 98)) + gauge.SetBarColour(wx.Colour(255, 128, 0)) + gauge.SetValue(-2) + gauge.SetFractionDigits(1) + box.Add(gauge, 0, wx.ALL | wx.CENTER, 10) + + box.Add(wx.StaticText(self, label="Small Even Pixel Test"), 0, wx.ALL | wx.CENTER, 5) + + self.gauge6 = gauge = AttributeGauge(self, guide_lines=guide_lines, size=(100, 8)) + gauge.SetBackgroundColour(wx.Colour(52, 86, 98)) + gauge.SetBarColour(wx.Colour(255, 128, 0)) + gauge.SetValue(75) + gauge.SetFractionDigits(1) + box.Add(gauge, 0, wx.ALL | wx.CENTER, 10) + + self.gauge7 = gauge = AttributeGauge(self, guide_lines=guide_lines, size=(100, 8)) + gauge.SetBackgroundColour(wx.Colour(52, 86, 98)) + gauge.SetBarColour(wx.Colour(255, 128, 0)) + gauge.SetValue(-75) + gauge.SetFractionDigits(1) + box.Add(gauge, 0, wx.ALL | wx.CENTER, 10) + + box.Add(wx.StaticText(self, label="Small Odd Pixel Test"), 0, wx.ALL | wx.CENTER, 5) + + self.gauge8 = gauge = AttributeGauge(self, guide_lines=guide_lines, max_range=100, size=(101, 8)) + gauge.SetBackgroundColour(wx.Colour(52, 86, 98)) + gauge.SetBarColour(wx.Colour(255, 128, 0)) + gauge.SetValue(1) + gauge.SetFractionDigits(1) + box.Add(gauge, 0, wx.ALL | wx.CENTER, 10) + + self.gauge9 = gauge = AttributeGauge(self, guide_lines=guide_lines, max_range=100, size=(101, 8)) + gauge.SetBackgroundColour(wx.Colour(52, 86, 98)) + gauge.SetBarColour(wx.Colour(255, 128, 0)) + gauge.SetValue(-1) + gauge.SetFractionDigits(1) + box.Add(gauge, 0, wx.ALL | wx.CENTER, 10) + + self.SetSizer(box) + self.Layout() + + self.animTimer = wx.Timer(self, wx.NewId()) + self.Bind(wx.EVT_TIMER, self.OnTimer) + + self.animTimer.Start(1000) + + def ToggleTimer(self, evt): + if self.animTimer.IsRunning: + self.animTimer.Stop() + else: + self.animTimer.Start(1000) + + def UpdateValue(self, event): + if self.animTimer.IsRunning: + self.animTimer.Stop() + num = self.spinCtrl.GetValue() + self.gauge.SetValue(num) + self.gauge11.SetValue(num) + self.gauge12.SetValue(num) + self.gauge13.SetValue(num) + self.value.SetLabel(str(num)) + + def UpdateValue2(self, event): + num = self.spinCtrl2.GetValue() + self.gauge2.SetValue(num) + self.gauge3.SetValue(num*-1) + self.gauge4.SetValue(num) + self.gauge5.SetValue(num*-1) + self.gauge6.SetValue(num) + self.gauge7.SetValue(num*-1) + self.gauge8.SetValue(num) + self.gauge9.SetValue(num*-1) + + def OnTimer(self, evt): + num = random.randint(-100,100) + self.gauge.SetValue(num) + self.gauge11.SetValue(num) + self.gauge12.SetValue(num) + self.gauge13.SetValue(num) + self.value.SetLabel(str(num)) + + class Frame(wx.Frame): + def __init__(self, title, size=(500, 800)): + wx.Frame.__init__(self, None, title=title, size=size) + self.statusbar = self.CreateStatusBar() + main_sizer = wx.BoxSizer(wx.VERTICAL) + panel = MyPanel(self, size=size) + main_sizer.Add(panel) + self.SetSizer(main_sizer) + + app = wx.App(redirect=False) # Error messages go to popup window + top = Frame("Test Attribute Bar") + top.Show() + app.MainLoop() diff --git a/gui/builtinAdditionPanes/cargoView.py b/gui/builtinAdditionPanes/cargoView.py index ed5687cfc..a5b94f31b 100644 --- a/gui/builtinAdditionPanes/cargoView.py +++ b/gui/builtinAdditionPanes/cargoView.py @@ -118,13 +118,22 @@ class CargoView(d.Display): # Gather module information to get position module = fit.modules[modIdx] + if module.item.isAbyssal: + dlg = wx.MessageDialog(self, + "Moving this Abyssal module to the cargo will convert it to the base module. Do you wish to proceed?", + "Confirm", wx.YES_NO | wx.ICON_QUESTION) + result = dlg.ShowModal() == wx.ID_YES + + if not result: + return + if dstRow != -1: # we're swapping with cargo if mstate.cmdDown: # if copying, append to cargo - sFit.addCargo(self.mainFrame.getActiveFit(), module.item.ID) + sFit.addCargo(self.mainFrame.getActiveFit(), module.item.ID if not module.item.isAbyssal else module.baseItemID) else: # else, move / swap sFit.moveCargoToModule(self.mainFrame.getActiveFit(), module.position, dstRow) else: # dragging to blank spot, append - sFit.addCargo(self.mainFrame.getActiveFit(), module.item.ID) + sFit.addCargo(self.mainFrame.getActiveFit(), module.item.ID if not module.item.isAbyssal else module.baseItemID) if not mstate.cmdDown: # if not copying, remove module sFit.removeModule(self.mainFrame.getActiveFit(), module.position) diff --git a/gui/builtinAdditionPanes/commandView.py b/gui/builtinAdditionPanes/commandView.py index 5ee0d1872..2bfa700c9 100644 --- a/gui/builtinAdditionPanes/commandView.py +++ b/gui/builtinAdditionPanes/commandView.py @@ -35,7 +35,7 @@ from service.fit import Fit class DummyItem(object): def __init__(self, txt): self.name = txt - self.icon = None + self.iconID = None class DummyEntry(object): diff --git a/gui/builtinAdditionPanes/projectedView.py b/gui/builtinAdditionPanes/projectedView.py index a5654d1a4..24ca11f3a 100644 --- a/gui/builtinAdditionPanes/projectedView.py +++ b/gui/builtinAdditionPanes/projectedView.py @@ -39,7 +39,7 @@ pyfalog = Logger(__name__) class DummyItem(object): def __init__(self, txt): self.name = txt - self.icon = None + self.iconID = None class DummyEntry(object): @@ -109,7 +109,7 @@ class ProjectedView(d.Display): dstRow, _ = self.HitTest((x, y)) # Gather module information to get position module = fit.modules[int(data[1])] - sFit.project(fit.ID, module.item.ID) + sFit.project(fit.ID, module) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fit.ID)) elif data[0] == "market": sFit = Fit.getInstance() diff --git a/gui/builtinContextMenus/boosterSideEffects.py b/gui/builtinContextMenus/boosterSideEffects.py index 60f5e2ca5..a936e9340 100644 --- a/gui/builtinContextMenus/boosterSideEffects.py +++ b/gui/builtinContextMenus/boosterSideEffects.py @@ -34,6 +34,7 @@ class BoosterSideEffect(ContextMenu): label = ability.name id = ContextMenu.nextID() self.effectIds[id] = ability + menuItem = wx.MenuItem(menu, id, label, kind=wx.ITEM_CHECK) menu.Bind(wx.EVT_MENU, self.handleMode, menuItem) return menuItem diff --git a/gui/builtinContextMenus/itemStats.py b/gui/builtinContextMenus/itemStats.py index 6221fa1e0..46b87226f 100644 --- a/gui/builtinContextMenus/itemStats.py +++ b/gui/builtinContextMenus/itemStats.py @@ -63,7 +63,7 @@ class ItemStats(ContextMenu): size = wx.DefaultSize pos = wx.DefaultPosition ItemStatsDialog(stuff, fullContext, pos, size, maximized) - lastWnd.closeEvent(None) + lastWnd.Close() else: ItemStatsDialog(stuff, fullContext) diff --git a/gui/builtinContextMenus/moduleAmmoPicker.py b/gui/builtinContextMenus/moduleAmmoPicker.py index 81c02eab0..93ff48754 100644 --- a/gui/builtinContextMenus/moduleAmmoPicker.py +++ b/gui/builtinContextMenus/moduleAmmoPicker.py @@ -117,8 +117,8 @@ class ModuleAmmoPicker(ContextMenu): item = wx.MenuItem(menu, id_, name) menu.Bind(wx.EVT_MENU, self.handleAmmoSwitch, item) item.charge = charge - if charge is not None and charge.icon is not None: - bitmap = BitmapLoader.getBitmap(charge.icon.iconFile, "icons") + if charge is not None and charge.iconID is not None: + bitmap = BitmapLoader.getBitmap(charge.iconID, "icons") if bitmap is not None: item.SetBitmap(bitmap) diff --git a/gui/builtinContextMenus/mutaplasmids.py b/gui/builtinContextMenus/mutaplasmids.py new file mode 100644 index 000000000..253cdac60 --- /dev/null +++ b/gui/builtinContextMenus/mutaplasmids.py @@ -0,0 +1,78 @@ +from gui.contextMenu import ContextMenu +import gui.mainFrame +# noinspection PyPackageRequirements +import wx +import gui.globalEvents as GE +from service.fit import Fit +from service.settings import ContextMenuSettings + + +class MutaplasmidCM(ContextMenu): + def __init__(self): + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.settings = ContextMenuSettings.getInstance() + self.eventIDs = {} + + def display(self, srcContext, selection): + + # if not self.settings.get('ammoPattern'): + # return False + + if srcContext not in ("fittingModule") or self.mainFrame.getActiveFit() is None: + return False + + mod = selection[0] + if len(mod.item.mutaplasmids) == 0 and not mod.isMutated: + return False + + return True + + def getText(self, itmContext, selection): + mod = selection[0] + return "Apply Mutaplasmid" if not mod.isMutated else "Revert to {}".format(mod.baseItem.name) + + def getSubMenu(self, context, selection, rootMenu, i, pitem): + if selection[0].isMutated: + return None + + msw = True if "wxMSW" in wx.PlatformInfo else False + self.skillIds = {} + sub = wx.Menu() + + mod = selection[0] + + menu = rootMenu if msw else sub + + for item in mod.item.mutaplasmids: + label = item.item.name + id = ContextMenu.nextID() + self.eventIDs[id] = (item, mod) + skillItem = wx.MenuItem(menu, id, label) + menu.Bind(wx.EVT_MENU, self.handleMenu, skillItem) + sub.Append(skillItem) + + return sub + + def handleMenu(self, event): + mutaplasmid, mod = self.eventIDs[event.Id] + fit = self.mainFrame.getActiveFit() + sFit = Fit.getInstance() + + # todo: dev out function to switch module to an abyssal module. Also, maybe open item stats here automatically + # with the attribute tab set? + sFit.convertMutaplasmid(fit, mod.modPosition, mutaplasmid) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fit)) + + def activate(self, fullContext, selection, i): + sFit = Fit.getInstance() + fitID = self.mainFrame.getActiveFit() + + mod = selection[0] + sFit.changeModule(fitID, mod.modPosition, mod.baseItemID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + + def getBitmap(self, context, selection): + return None + + +MutaplasmidCM.register() diff --git a/gui/builtinGraphs/fitDps.py b/gui/builtinGraphs/fitDps.py index d848d3f9c..183bc9ac8 100644 --- a/gui/builtinGraphs/fitDps.py +++ b/gui/builtinGraphs/fitDps.py @@ -55,7 +55,7 @@ class FitDpsGraph(Graph): icons = {} sAttr = Attribute.getInstance() for key, attrName in self.propertyAttributeMap.items(): - iconFile = sAttr.getAttributeInfo(attrName).icon.iconFile + iconFile = sAttr.getAttributeInfo(attrName).iconID bitmap = BitmapLoader.getBitmap(iconFile, "icons") if bitmap: icons[key] = bitmap diff --git a/gui/builtinItemStatsViews/attributeSlider.py b/gui/builtinItemStatsViews/attributeSlider.py new file mode 100644 index 000000000..49cb776fa --- /dev/null +++ b/gui/builtinItemStatsViews/attributeSlider.py @@ -0,0 +1,248 @@ +import wx +import wx.lib.newevent +from gui.attribute_gauge import AttributeGauge + +import eos +import eos.db + +_ValueChanged, EVT_VALUE_CHANGED = wx.lib.newevent.NewEvent() + + +class AttributeSliderChangeEvent: + def __init__(self, obj, old_value, new_value, old_percentage, new_percentage): + self.__obj = obj + self.__old = old_value + self.__new = new_value + self.__old_percent = old_percentage + self.__new_percent = new_percentage + + def GetObj(self): + return self.__obj + + def GetOldValue(self): + return self.__old + + def GetValue(self): + return self.__new + + def GetOldPercentage(self): + return self.__old_percent + + def GetPercentage(self): + return self.__new_percent + + Object = property(GetObj) + OldValue = property(GetOldValue) + Value = property(GetValue) + OldPercentage = property(GetOldPercentage) + Percentage = property(GetPercentage) + + +class ValueChanged(_ValueChanged, AttributeSliderChangeEvent): + def __init__(self, obj, old_value, new_value, old_percentage, new_percentage): + _ValueChanged.__init__(self) + AttributeSliderChangeEvent.__init__(self, obj, old_value, new_value, old_percentage, new_percentage) + + +class AttributeSlider(wx.Panel): + # Slider which abstracts users values from internal values (because the built in slider does not deal with floats + # and the like), based on http://wxpython-users.wxwidgets.narkive.com/ekgBzA7u/anyone-ever-thought-of-a-floating-point-slider + + def __init__(self, parent, baseValue, minMod, maxMod, inverse=False, id=-1): + wx.Panel.__init__(self, parent, id=id) + + self.parent = parent + + self.inverse = inverse + + self.base_value = baseValue + + self.UserMinValue = minMod + self.UserMaxValue = maxMod + + # The internal slider basically represents the percentage towards the end of the range. It has to be normalized + # in this way, otherwise when we start off with a base, if the range is skewed to one side, the base value won't + # be centered. We use a range of -100,100 so that we can depend on the SliderValue to contain the percentage + # toward one end + + # Additionally, since we want the slider to be accurate to 3 decimal places, we need to blow out the two ends here + # (if we have a slider that needs to land on 66.66% towards the right, it will actually be converted to 66%. Se we need it to support 6,666) + + self.SliderMinValue = -100 + self.SliderMaxValue = 100 + self.SliderValue = 0 + + range = [(self.UserMinValue * self.base_value), (self.UserMaxValue * self.base_value)] + + self.ctrl = wx.SpinCtrlDouble(self, min=min(range), max=max(range)) + self.ctrl.SetDigits(3) + + self.ctrl.Bind(wx.EVT_SPINCTRLDOUBLE, self.UpdateValue) + + self.slider = AttributeGauge(self, size=(-1, 8)) + + b = 4 + vsizer1 = wx.BoxSizer(wx.VERTICAL) + vsizer1.Add(self.ctrl, 0, wx.LEFT | wx.RIGHT | wx.CENTER, b) + vsizer1.Add(self.slider, 0, wx.EXPAND | wx.ALL , b) + + self.SetSizerAndFit(vsizer1) + self.parent.SetClientSize((500, vsizer1.GetSize()[1])) + + def UpdateValue(self, evt): + self.SetValue(self.ctrl.GetValue()) + evt.Skip() + + def SetValue(self, value, post_event=True): + # todo: check this against values that might be 2.5x and whatnot + mod = value / self.base_value + self.ctrl.SetValue(value) + slider_percentage = 0 + if mod < 1: + modEnd = self.UserMinValue + slider_percentage = (1-mod)/(1 - modEnd) * -100 + elif mod > 1: + modEnd = self.UserMaxValue + slider_percentage = ((mod-1)/(modEnd-1)) * 100 + # print(slider_percentage) + if self.inverse: + slider_percentage *= -1 + self.slider.SetValue(slider_percentage) + if post_event: + wx.PostEvent(self, ValueChanged(self, None, value, None, slider_percentage)) + +class TestAttributeSlider(wx.Frame): + + def __init__(self, parent, id): + title = 'Slider...' + pos = wx.DefaultPosition + size = wx.DefaultSize + sty = wx.DEFAULT_FRAME_STYLE + wx.Frame.__init__(self, parent, id, title, pos, size, sty) + + self.panel = AttributeSlider(self, -50, 0.8, 1.5, False) + self.panel.Bind(EVT_VALUE_CHANGED, self.thing) + self.panel.SetValue(-55) + self.Bind(wx.EVT_CLOSE, self.OnCloseWindow) + + def OnCloseWindow(self, event): + self.Destroy() + + def thing(self, evt): + print("thing") + + +if __name__ == "__main__": + app = wx.App() + frame = TestAttributeSlider(None, wx.ID_ANY) + frame.Show() + app.MainLoop() + + +# class AttributeSliderDEV(wx.Panel): +# # Slider which abstracts users values from internal values (because the built in slider does not deal with floats +# # and the like), based on http://wxpython-users.wxwidgets.narkive.com/ekgBzA7u/anyone-ever-thought-of-a-floating-point-slider +# +# def __init__(self, parent, baseValue, minMod, maxMod): +# wx.Panel.__init__(self, parent) +# +# self.parent = parent +# +# self.base_value = baseValue +# +# self.UserMinValue = minMod +# self.UserMaxValue = maxMod +# +# # The internal slider basically represents the percentage towards the end of the range. It has to be normalized +# # in this way, otherwise when we start off with a base, if the range is skewed to one side, the base value won't +# # be centered. We use a range of -100,100 so that we can depend on the SliderValue to contain the percentage +# # toward one end +# +# # Additionally, since we want the slider to be accurate to 3 decimal places, we need to blow out the two ends here +# # (if we have a slider that needs to land on 66.66% towards the right, it will actually be converted to 66%. Se we need it to support 6,666) +# +# self.SliderMinValue = -100_000 +# self.SliderMaxValue = 100_000 +# self.SliderValue = 0 +# +# self.statxt1 = wx.StaticText(self, wx.ID_ANY, 'left', +# style=wx.ST_NO_AUTORESIZE | wx.ALIGN_LEFT) +# self.statxt2 = wx.StaticText(self, wx.ID_ANY, 'middle', +# style=wx.ST_NO_AUTORESIZE | wx.ALIGN_CENTRE) +# self.statxt3 = wx.StaticText(self, wx.ID_ANY, 'right', +# style=wx.ST_NO_AUTORESIZE | wx.ALIGN_RIGHT) +# +# self.statxt1.SetLabel("{0:.3f}".format(self.UserMinValue * self.base_value)) +# self.statxt1.SetToolTip("{0:+f}%".format((1-self.UserMinValue)*-100)) +# self.statxt2.SetLabel("{0:.3f}".format(self.base_value)) +# self.statxt3.SetLabel("{0:.3f}".format(self.UserMaxValue * self.base_value)) +# self.statxt3.SetToolTip("{0:+f}%".format((1-self.UserMaxValue)*-100)) +# +# self.slider = wx.Slider( +# self, wx.ID_ANY, +# self.SliderValue, +# self.SliderMinValue, +# self.SliderMaxValue, +# style=wx.SL_HORIZONTAL) +# +# self.slider.SetTickFreq((self.SliderMaxValue - self.SliderMinValue) / 15) +# +# self.slider.Bind(wx.EVT_SCROLL, self.OnScroll) +# +# b = 20 +# hsizer1 = wx.BoxSizer(wx.HORIZONTAL) +# hsizer1.Add(self.statxt1, 1, wx.RIGHT, b) +# hsizer1.Add(self.statxt2, 1, wx.LEFT | wx.RIGHT, b) +# hsizer1.Add(self.statxt3, 1, wx.LEFT, b) +# +# b = 4 +# vsizer1 = wx.BoxSizer(wx.VERTICAL) +# vsizer1.Add(hsizer1, 0, wx.EXPAND | wx.ALL, b) +# vsizer1.Add(self.slider, 0, wx.EXPAND | wx.LEFT | wx.TOP | wx.BOTTOM, b) +# +# self.SetSizerAndFit(vsizer1) +# self.parent.SetClientSize((500, vsizer1.GetSize()[1])) +# +# def OnScroll(self, event): +# self.CalculateUserValue() +# +# def SetValue(self, value): +# # todo: check this against values that might be 2.5x and whatnot +# mod = value / self.base_value +# slider_percentage = 0 +# if mod < 1: +# modEnd = -1 * self.UserMinValue +# slider_percentage = (modEnd / mod) * 10_000 +# elif mod > 1: +# modEnd = self.UserMaxValue +# slider_percentage = ((mod-1)/(modEnd-1)) * 100_000 +# +# self.slider.SetValue(slider_percentage) +# self.CalculateUserValue() +# +# def CalculateUserValue(self): +# self.SliderValue = self.slider.GetValue() +# +# mod = 1 +# +# # The slider value tells us when mod we're going to use, depending on its sign +# if self.SliderValue < 0: +# mod = self.UserMinValue +# elif self.SliderValue > 0: +# mod = self.UserMaxValue +# +# # Get the slider value percentage as an absolute value +# slider_mod = abs(self.SliderValue/1_000) / 100 +# +# # Gets our new mod by use the slider's percentage to determine where in the spectrum it is +# new_mod = mod + ((1 - mod) - ((1 - mod) * slider_mod)) +# +# # Modifies our base value, to get out modified value +# newValue = new_mod * self.base_value +# +# if mod == 1: +# self.statxt2.SetLabel("{0:.3f}".format(newValue)) +# else: +# self.statxt2.SetLabel("{0:.3f} ({1:+.3f})".format(newValue, newValue - self.base_value, )) +# self.statxt2.SetToolTip("{0:+f}%".format(new_mod*100)) + diff --git a/gui/builtinItemStatsViews/itemAffectedBy.py b/gui/builtinItemStatsViews/itemAffectedBy.py index ed4280045..94808b734 100644 --- a/gui/builtinItemStatsViews/itemAffectedBy.py +++ b/gui/builtinItemStatsViews/itemAffectedBy.py @@ -237,16 +237,16 @@ class ItemAffectedBy(wx.Panel): displayName = attrInfo.displayName if attrInfo and attrInfo.displayName != "" else attrName if attrInfo: - if attrInfo.icon is not None: - iconFile = attrInfo.icon.iconFile + if attrInfo.iconID is not None: + iconFile = attrInfo.iconID icon = BitmapLoader.getBitmap(iconFile, "icons") if icon is None: icon = BitmapLoader.getBitmap("transparent16x16", "gui") attrIcon = self.imageList.Add(icon) else: - attrIcon = self.imageList.Add(BitmapLoader.getBitmap("7_15", "icons")) + attrIcon = self.imageList.Add(BitmapLoader.getBitmap("0", "icons")) else: - attrIcon = self.imageList.Add(BitmapLoader.getBitmap("7_15", "icons")) + attrIcon = self.imageList.Add(BitmapLoader.getBitmap("0", "icons")) if self.showRealNames: display = attrName @@ -267,8 +267,8 @@ class ItemAffectedBy(wx.Panel): if afflictorType == Ship: itemIcon = self.imageList.Add(BitmapLoader.getBitmap("ship_small", "gui")) - elif item.icon: - bitmap = BitmapLoader.getBitmap(item.icon.iconFile, "icons") + elif item.iconID: + bitmap = BitmapLoader.getBitmap(item.iconID, "icons") itemIcon = self.imageList.Add(bitmap) if bitmap else -1 else: itemIcon = -1 @@ -373,8 +373,8 @@ class ItemAffectedBy(wx.Panel): counter = len(afflictors) if afflictorType == Ship: itemIcon = self.imageList.Add(BitmapLoader.getBitmap("ship_small", "gui")) - elif item.icon: - bitmap = BitmapLoader.getBitmap(item.icon.iconFile, "icons") + elif item.iconID: + bitmap = BitmapLoader.getBitmap(item.iconID, "icons") itemIcon = self.imageList.Add(bitmap) if bitmap else -1 else: itemIcon = -1 @@ -398,17 +398,17 @@ class ItemAffectedBy(wx.Panel): displayName = attrInfo.displayName if attrInfo else "" if attrInfo: - if attrInfo.icon is not None: - iconFile = attrInfo.icon.iconFile + if attrInfo.iconID is not None: + iconFile = attrInfo.iconID icon = BitmapLoader.getBitmap(iconFile, "icons") if icon is None: icon = BitmapLoader.getBitmap("transparent16x16", "gui") attrIcon = self.imageList.Add(icon) else: - attrIcon = self.imageList.Add(BitmapLoader.getBitmap("7_15", "icons")) + attrIcon = self.imageList.Add(BitmapLoader.getBitmap("0", "icons")) else: - attrIcon = self.imageList.Add(BitmapLoader.getBitmap("7_15", "icons")) + attrIcon = self.imageList.Add(BitmapLoader.getBitmap("0", "icons")) penalized = "" if '*' in attrModifier: diff --git a/gui/builtinItemStatsViews/itemAttributes.py b/gui/builtinItemStatsViews/itemAttributes.py index 18432a96d..6081b3f24 100644 --- a/gui/builtinItemStatsViews/itemAttributes.py +++ b/gui/builtinItemStatsViews/itemAttributes.py @@ -7,8 +7,6 @@ import wx from .helpers import AutoListCtrl from gui.bitmap_loader import BitmapLoader -from service.market import Market -from service.attribute import Attribute from gui.utils.numberFormatter import formatAmount @@ -86,7 +84,8 @@ class ItemParams(wx.Panel): def RefreshValues(self, event): self._fetchValues() self.UpdateList() - event.Skip() + if event: + event.Skip() def ToggleViewMode(self, event): self.toggleView *= -1 @@ -174,7 +173,12 @@ class ItemParams(wx.Panel): info = self.attrInfo.get(name) att = self.attrValues[name] - valDefault = getattr(info, "value", None) + # If we're working with a stuff object, we should get the original value from our getBaseAttrValue function, + # which will return the value with respect to the effective base (with mutators / overrides in place) + valDefault = getattr(info, "value", None) # Get default value from attribute + if self.stuff is not None: + # if it's a stuff, overwrite default (with fallback to current value) + valDefault = self.stuff.getBaseAttrValue(name, valDefault) valueDefault = valDefault if valDefault is not None else att val = getattr(att, "value", None) @@ -189,8 +193,8 @@ class ItemParams(wx.Panel): attrName += " ({})".format(info.ID) if info: - if info.icon is not None: - iconFile = info.icon.iconFile + if info.iconID is not None: + iconFile = info.iconID icon = BitmapLoader.getBitmap(iconFile, "icons") if icon is None: @@ -198,9 +202,9 @@ class ItemParams(wx.Panel): attrIcon = self.imageList.Add(icon) else: - attrIcon = self.imageList.Add(BitmapLoader.getBitmap("7_15", "icons")) + attrIcon = self.imageList.Add(BitmapLoader.getBitmap("0", "icons")) else: - attrIcon = self.imageList.Add(BitmapLoader.getBitmap("7_15", "icons")) + attrIcon = self.imageList.Add(BitmapLoader.getBitmap("0", "icons")) index = self.paramList.InsertItem(self.paramList.GetItemCount(), attrName, attrIcon) idNameMap[idCount] = attrName @@ -210,14 +214,14 @@ class ItemParams(wx.Panel): if self.toggleView != 1: valueUnit = str(value) elif info and info.unit: - valueUnit = self.TranslateValueUnit(value, info.unit.displayName, info.unit.name) + valueUnit = self.FormatValue(*info.unit.TranslateValue(value)) else: valueUnit = formatAmount(value, 3, 0, 0) if self.toggleView != 1: valueUnitDefault = str(valueDefault) elif info and info.unit: - valueUnitDefault = self.TranslateValueUnit(valueDefault, info.unit.displayName, info.unit.name) + valueUnitDefault = self.FormatValue(*info.unit.TranslateValue(valueDefault)) else: valueUnitDefault = formatAmount(valueDefault, 3, 0, 0) @@ -232,44 +236,11 @@ class ItemParams(wx.Panel): self.Layout() @staticmethod - def TranslateValueUnit(value, unitName, unitDisplayName): - def itemIDCallback(): - item = Market.getInstance().getItem(value) - return "%s (%d)" % (item.name, value) if item is not None else str(value) - - def groupIDCallback(): - group = Market.getInstance().getGroup(value) - return "%s (%d)" % (group.name, value) if group is not None else str(value) - - def attributeIDCallback(): - if not value: # some attributes come through with a value of 0? See #1387 - return "%d" % (value) - attribute = Attribute.getInstance().getAttributeInfo(value) - return "%s (%d)" % (attribute.name.capitalize(), value) - - trans = { - "Inverse Absolute Percent" : (lambda: (1 - value) * 100, unitName), - "Inversed Modifier Percent": (lambda: (1 - value) * 100, unitName), - "Modifier Percent" : ( - lambda: ("%+.2f" if ((value - 1) * 100) % 1 else "%+d") % ((value - 1) * 100), unitName), - "Volume" : (lambda: value, "m\u00B3"), - "Sizeclass" : (lambda: value, ""), - "Absolute Percent" : (lambda: (value * 100), unitName), - "Milliseconds" : (lambda: value / 1000.0, unitName), - "typeID" : (itemIDCallback, ""), - "groupID" : (groupIDCallback, ""), - "attributeID" : (attributeIDCallback, "") - } - - override = trans.get(unitDisplayName) - if override is not None: - v = override[0]() - if isinstance(v, str): - fvalue = v - elif isinstance(v, (int, float)): - fvalue = formatAmount(v, 3, 0, 0) - else: - fvalue = v - return "%s %s" % (fvalue, override[1]) + def FormatValue(value, unit): + """Formats a value / unit combination into a string + @todo: move this to a more central location, since this is also used in the item mutator panel""" + if isinstance(value, (int, float)): + fvalue = formatAmount(value, 3, 0, 0) else: - return "%s %s" % (formatAmount(value, 3, 0), unitName) + fvalue = value + return "%s %s" % (fvalue, unit) diff --git a/gui/builtinItemStatsViews/itemDependants.py b/gui/builtinItemStatsViews/itemDependants.py index 9f7e459c9..84b8f8997 100644 --- a/gui/builtinItemStatsViews/itemDependants.py +++ b/gui/builtinItemStatsViews/itemDependants.py @@ -44,8 +44,8 @@ class ItemDependents(wx.Panel): child = self.reqTree.AppendItem(parent, "Level {}".format(self.romanNb[int(x)]), sbIconId) for item in items: - if item.icon: - bitmap = BitmapLoader.getBitmap(item.icon.iconFile, "icons") + if item.iconID: + bitmap = BitmapLoader.getBitmap(item.iconID, "icons") itemIcon = self.imageList.Add(bitmap) if bitmap else -1 else: itemIcon = -1 diff --git a/gui/builtinItemStatsViews/itemMutator.py b/gui/builtinItemStatsViews/itemMutator.py new file mode 100644 index 000000000..ac76955b1 --- /dev/null +++ b/gui/builtinItemStatsViews/itemMutator.py @@ -0,0 +1,171 @@ +# noinspection PyPackageRequirements +import wx + +from service.fit import Fit +from .attributeSlider import AttributeSlider, EVT_VALUE_CHANGED + +import gui.mainFrame +from gui.contextMenu import ContextMenu +from .itemAttributes import ItemParams +from gui.bitmap_loader import BitmapLoader +import gui.globalEvents as GE +import gui.mainFrame +import random + +from logbook import Logger + +pyfalog = Logger(__name__) + +class ItemMutator(wx.Panel): + + def __init__(self, parent, stuff, item): + wx.Panel.__init__(self, parent) + self.stuff = stuff + self.item = item + self.timer = None + self.activeFit = gui.mainFrame.MainFrame.getInstance().getActiveFit() + mainSizer = wx.BoxSizer(wx.VERTICAL) + + self.goodColor = wx.Colour(96, 191, 0) + self.badColor = wx.Colour(255, 64, 0) + + self.event_mapping = {} + + for m in sorted(stuff.mutators.values(), key=lambda x: x.attribute.displayName): + baseValueFormated = m.attribute.unit.TranslateValue(m.baseValue)[0] + valueFormated = m.attribute.unit.TranslateValue(m.value)[0] + slider = AttributeSlider(self, baseValueFormated, m.minMod, m.maxMod, not m.highIsGood) + slider.SetValue(valueFormated, False) + slider.Bind(EVT_VALUE_CHANGED, self.changeMutatedValue) + self.event_mapping[slider] = m + headingSizer = wx.BoxSizer(wx.HORIZONTAL) + + # create array for the two ranges + min_t = [round(m.minValue, 3), m.minMod, None] + max_t = [round(m.maxValue, 3), m.maxMod, None] + + # Then we need to determine if it's better than original, which will be the color + min_t[2] = min_t[1] < 1 if not m.highIsGood else 1 < min_t[1] + max_t[2] = max_t[1] < 1 if not m.highIsGood else 1 < max_t[1] + + # Lastly, we need to determine which range value is "worse" (left side) or "better" (right side) + if (m.highIsGood and min_t[1] > max_t[1]) or (not m.highIsGood and min_t[1] < max_t[1]): + better_range = min_t + else: + better_range = max_t + + if (m.highIsGood and max_t[1] < min_t[1]) or (not m.highIsGood and max_t[1] > min_t[1]): + worse_range = max_t + else: + worse_range = min_t + # + # print("{}: \nHigh is good: {}".format(m.attribute.displayName, m.attribute.highIsGood)) + # print("Value {}".format(m.baseValue)) + # + # print(min_t) + # print(max_t) + # print(better_range) + # print(worse_range) + + font = parent.GetFont() + font.SetWeight(wx.BOLD) + + headingSizer.Add(BitmapLoader.getStaticBitmap(m.attribute.iconID, self, "icons"), 0, wx.RIGHT, 10) + + displayName = wx.StaticText(self, wx.ID_ANY, m.attribute.displayName) + displayName.SetFont(font) + + headingSizer.Add(displayName, 3, wx.ALL | wx.EXPAND, 0) + + + range_low = wx.StaticText(self, wx.ID_ANY, ItemParams.FormatValue(*m.attribute.unit.TranslateValue(worse_range[0]))) + range_low.SetForegroundColour(self.goodColor if worse_range[2] else self.badColor) + + range_high = wx.StaticText(self, wx.ID_ANY, ItemParams.FormatValue(*m.attribute.unit.TranslateValue(better_range[0]))) + range_high.SetForegroundColour(self.goodColor if better_range[2] else self.badColor) + + headingSizer.Add(range_low, 0, wx.ALL | wx.EXPAND, 0) + headingSizer.Add(wx.StaticText(self, wx.ID_ANY, " ─ "), 0, wx.RIGHT | wx.LEFT | wx.EXPAND, 5) + headingSizer.Add(range_high, 0, wx.RIGHT | wx.EXPAND, 10) + + mainSizer.Add(headingSizer, 0, wx.ALL | wx.EXPAND, 5) + + mainSizer.Add(slider, 0, wx.RIGHT | wx.LEFT | wx.EXPAND, 10) + mainSizer.Add(wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL), 0, wx.ALL | wx.EXPAND, 5) + + mainSizer.AddStretchSpacer() + + self.m_staticline = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL) + mainSizer.Add(self.m_staticline, 0, wx.EXPAND) + + bSizer = wx.BoxSizer(wx.HORIZONTAL) + + self.refreshBtn = wx.Button(self, wx.ID_ANY, "Reset defaults", wx.DefaultPosition, wx.DefaultSize, 0) + bSizer.Add(self.refreshBtn, 0, wx.ALIGN_CENTER_VERTICAL) + self.refreshBtn.Bind(wx.EVT_BUTTON, self.resetMutatedValues) + + self.randomBtn = wx.Button(self, wx.ID_ANY, "Random stats", wx.DefaultPosition, wx.DefaultSize, 0) + bSizer.Add(self.randomBtn, 0, wx.ALIGN_CENTER_VERTICAL) + self.randomBtn.Bind(wx.EVT_BUTTON, self.randomMutatedValues) + + mainSizer.Add(bSizer, 0, wx.RIGHT | wx.LEFT | wx.EXPAND, 0) + + self.SetSizer(mainSizer) + self.Layout() + + def changeMutatedValue(self, evt): + m = self.event_mapping[evt.Object] + value = evt.Value + value = m.attribute.unit.ComplicateValue(value) + sFit = Fit.getInstance() + + sFit.changeMutatedValue(m, value) + if self.timer: + self.timer.Stop() + self.timer = None + + for x in self.Parent.Children: + if isinstance(x, ItemParams): + x.RefreshValues(None) + break + self.timer = wx.CallLater(1000, self.callLater) + + def resetMutatedValues(self, evt): + sFit = Fit.getInstance() + + for slider, m in self.event_mapping.items(): + value = sFit.changeMutatedValue(m, m.baseValue) + value = m.attribute.unit.TranslateValue(value)[0] + slider.SetValue(value) + + evt.Skip() + + def randomMutatedValues(self, evt): + sFit = Fit.getInstance() + + for slider, m in self.event_mapping.items(): + value = random.uniform(m.minValue, m.maxValue) + value = sFit.changeMutatedValue(m, value) + value = m.attribute.unit.TranslateValue(value)[0] + slider.SetValue(value) + + evt.Skip() + + def callLater(self): + self.timer = None + sFit = Fit.getInstance() + + # recalc the fit that this module affects. This is not necessarily the currently active fit + sFit.refreshFit(self.activeFit) + + mainFrame = gui.mainFrame.MainFrame.getInstance() + activeFit = mainFrame.getActiveFit() + + if activeFit != self.activeFit: + # if we're no longer on the fit this module is affecting, simulate a "switch fit" so that the active fit + # can be recalculated (if needed) + sFit.switchFit(activeFit) + + # Send signal to GUI to update stats with current active fit + wx.PostEvent(mainFrame, GE.FitChanged(fitID=activeFit)) + diff --git a/gui/builtinShipBrowser/fitItem.py b/gui/builtinShipBrowser/fitItem.py index 3d782fe5f..2f05229d0 100644 --- a/gui/builtinShipBrowser/fitItem.py +++ b/gui/builtinShipBrowser/fitItem.py @@ -23,7 +23,7 @@ pyfalog = Logger(__name__) class FitItem(SFItem.SFBrowserItem): def __init__(self, parent, fitID=None, shipFittingInfo=("Test", "TestTrait", "cnc's avatar", 0, 0, None), shipID=None, - itemData=None, + itemData=None, graphicID=None, id=wx.ID_ANY, pos=wx.DefaultPosition, size=(0, 40), style=0): @@ -51,7 +51,7 @@ class FitItem(SFItem.SFBrowserItem): self.deleted = False if shipID: - self.shipBmp = BitmapLoader.getBitmap(str(shipID), "renders") + self.shipBmp = BitmapLoader.getBitmap(str(graphicID), "renders") if not self.shipBmp: self.shipBmp = BitmapLoader.getBitmap("ship_no_image_big", "gui") diff --git a/gui/builtinShipBrowser/shipItem.py b/gui/builtinShipBrowser/shipItem.py index 4c679fb8a..517648ad6 100644 --- a/gui/builtinShipBrowser/shipItem.py +++ b/gui/builtinShipBrowser/shipItem.py @@ -18,7 +18,7 @@ pyfalog = Logger(__name__) class ShipItem(SFItem.SFBrowserItem): - def __init__(self, parent, shipID=None, shipFittingInfo=("Test", "TestTrait", 2), itemData=None, + def __init__(self, parent, shipID=None, shipFittingInfo=("Test", "TestTrait", 2), itemData=None, graphicID=None, id=wx.ID_ANY, pos=wx.DefaultPosition, size=(0, 40), style=0): SFItem.SFBrowserItem.__init__(self, parent, size=size) @@ -36,8 +36,8 @@ class ShipItem(SFItem.SFBrowserItem): self.fontSmall = wx.Font(fonts.SMALL, wx.SWISS, wx.NORMAL, wx.NORMAL) self.shipBmp = None - if shipID: - self.shipBmp = BitmapLoader.getBitmap(str(shipID), "renders") + if graphicID: + self.shipBmp = BitmapLoader.getBitmap(str(graphicID), "renders") if not self.shipBmp: self.shipBmp = BitmapLoader.getBitmap("ship_no_image_big", "gui") diff --git a/gui/builtinViewColumns/ammoIcon.py b/gui/builtinViewColumns/ammoIcon.py index 7459db6a4..647d235a0 100644 --- a/gui/builtinViewColumns/ammoIcon.py +++ b/gui/builtinViewColumns/ammoIcon.py @@ -43,7 +43,7 @@ class AmmoIcon(ViewColumn): if stuff.charge is None: return -1 else: - iconFile = stuff.charge.icon.iconFile if stuff.charge.icon else "" + iconFile = stuff.charge.iconID if stuff.charge.iconID else "" if iconFile: return self.fittingView.imageList.GetImageIndex(iconFile, "icons") else: diff --git a/gui/builtinViewColumns/attributeDisplay.py b/gui/builtinViewColumns/attributeDisplay.py index 7ad8743d7..b36cf7132 100644 --- a/gui/builtinViewColumns/attributeDisplay.py +++ b/gui/builtinViewColumns/attributeDisplay.py @@ -41,7 +41,7 @@ class AttributeDisplay(ViewColumn): iconFile = "pg_small" iconType = "gui" else: - iconFile = info.icon.iconFile if info.icon else None + iconFile = info.iconID iconType = "icons" if iconFile: self.imageId = fittingView.imageList.GetImageIndex(iconFile, iconType) diff --git a/gui/builtinViewColumns/baseIcon.py b/gui/builtinViewColumns/baseIcon.py index 8c09a9fa3..207d639c5 100644 --- a/gui/builtinViewColumns/baseIcon.py +++ b/gui/builtinViewColumns/baseIcon.py @@ -35,10 +35,10 @@ class BaseIcon(ViewColumn): return self.fittingView.imageList.GetImageIndex("slot_%s_small" % Slot.getName(stuff.slot).lower(), "gui") else: - return self.loadIconFile(stuff.item.icon.iconFile if stuff.item.icon else "") + return self.loadIconFile(stuff.item.iconID or "") item = getattr(stuff, "item", stuff) - return self.loadIconFile(item.icon.iconFile if item.icon else "") + return self.loadIconFile(item.iconID) def loadIconFile(self, iconFile): if iconFile: diff --git a/gui/builtinViewColumns/maxRange.py b/gui/builtinViewColumns/maxRange.py index 7fcd6cd44..24f72b3a1 100644 --- a/gui/builtinViewColumns/maxRange.py +++ b/gui/builtinViewColumns/maxRange.py @@ -40,7 +40,7 @@ class MaxRange(ViewColumn): info = sAttr.getAttributeInfo("maxRange") self.info = info if params["showIcon"]: - iconFile = info.icon.iconFile if info.icon else None + iconFile = info.iconID if iconFile: self.imageId = fittingView.imageList.GetImageIndex(iconFile, "icons") self.bitmap = BitmapLoader.getBitmap(iconFile, "icons") diff --git a/gui/builtinViewColumns/propertyDisplay.py b/gui/builtinViewColumns/propertyDisplay.py index b4faa177a..abd91f730 100644 --- a/gui/builtinViewColumns/propertyDisplay.py +++ b/gui/builtinViewColumns/propertyDisplay.py @@ -41,7 +41,7 @@ class PropertyDisplay(ViewColumn): iconFile = "pg_small" iconType = "gui" else: - iconFile = info.icon.iconFile if info.icon else None + iconFile = info.iconID if info.icon else None iconType = "icons" if iconFile: self.imageId = fittingView.imageList.GetImageIndex(iconFile, iconType) diff --git a/gui/builtinViews/implantEditor.py b/gui/builtinViews/implantEditor.py index b391c1812..d33ff9779 100644 --- a/gui/builtinViews/implantEditor.py +++ b/gui/builtinViews/implantEditor.py @@ -156,7 +156,7 @@ class BaseImplantEditorView(wx.Panel): currentMktGrp = sMkt.getMarketGroup(tree.GetItemData(parent)) items = sMkt.getItemsByMarketGroup(currentMktGrp) for item in items: - iconId = self.addMarketViewImage(item.icon.iconFile) + iconId = self.addMarketViewImage(item.iconID) tree.AppendItem(parent, item.name, iconId, data=item) tree.SortChildren(parent) diff --git a/gui/contextMenu.py b/gui/contextMenu.py index 11d574157..08ea258d5 100644 --- a/gui/contextMenu.py +++ b/gui/contextMenu.py @@ -208,5 +208,6 @@ from gui.builtinContextMenus import ( # noqa: E402,F401 fighterAbilities, boosterSideEffects, commandFits, - tabbedFits + tabbedFits, + mutaplasmids, ) diff --git a/gui/copySelectDialog.py b/gui/copySelectDialog.py index 0c6fe35a2..7f6ec1da8 100644 --- a/gui/copySelectDialog.py +++ b/gui/copySelectDialog.py @@ -36,7 +36,7 @@ class CopySelectDialog(wx.Dialog): style=wx.DEFAULT_DIALOG_STYLE) mainSizer = wx.BoxSizer(wx.VERTICAL) - copyFormats = ["EFT", "EFT (Implants)", "XML", "DNA", "CREST", "MultiBuy", "EFS"] + copyFormats = ["EFT", "EFT (Implants)", "XML", "DNA", "ESI", "MultiBuy", "EFS"] copyFormatTooltips = {CopySelectDialog.copyFormatEft: "EFT text format", CopySelectDialog.copyFormatEftImps: "EFT text format", CopySelectDialog.copyFormatXml: "EVE native XML format", diff --git a/gui/itemStats.py b/gui/itemStats.py index 3440fb322..6a75b543d 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -34,6 +34,9 @@ from gui.builtinItemStatsViews.itemDependants import ItemDependents from gui.builtinItemStatsViews.itemEffects import ItemEffects from gui.builtinItemStatsViews.itemAffectedBy import ItemAffectedBy from gui.builtinItemStatsViews.itemProperties import ItemProperties +from gui.builtinItemStatsViews.itemMutator import ItemMutator + +from eos.saveddata.module import Module class ItemStatsDialog(wx.Dialog): @@ -79,10 +82,8 @@ class ItemStatsDialog(wx.Dialog): item = sMkt.getItem(victim.ID) victim = None self.context = itmContext - if item.icon is not None: - before, sep, after = item.icon.iconFile.rpartition("_") - iconFile = "%s%s%s" % (before, sep, "0%s" % after if len(after) < 2 else after) - itemImg = BitmapLoader.getBitmap(iconFile, "icons") + if item.iconID is not None: + itemImg = BitmapLoader.getBitmap(item.iconID, "icons") if itemImg is not None: self.SetIcon(wx.Icon(itemImg)) self.SetTitle("%s: %s%s" % ("%s Stats" % itmContext if itmContext is not None else "Stats", item.name, @@ -146,7 +147,7 @@ class ItemStatsDialog(wx.Dialog): ItemStatsDialog.counter -= 1 self.parentWnd.UnregisterStatsWindow(self) - self.Destroy() + event.Skip() class ItemStatsContainer(wx.Panel): @@ -163,6 +164,10 @@ class ItemStatsContainer(wx.Panel): self.traits = ItemTraits(self.nbContainer, stuff, item) self.nbContainer.AddPage(self.traits, "Traits") + if isinstance(stuff, Module) and stuff.isMutated: + self.mutator = ItemMutator(self.nbContainer, stuff, item) + self.nbContainer.AddPage(self.mutator, "Mutations") + self.desc = ItemDescription(self.nbContainer, stuff, item) self.nbContainer.AddPage(self.desc, "Description") diff --git a/gui/pyfa_gauge.py b/gui/pyfa_gauge.py index 0144f651c..43b1dc728 100644 --- a/gui/pyfa_gauge.py +++ b/gui/pyfa_gauge.py @@ -130,8 +130,8 @@ class PyGauge(wx.Window): return self._max_range def Animate(self): - sFit = Fit.getInstance() - if sFit.serviceFittingOptions["enableGaugeAnimation"]: + #sFit = Fit.getInstance() + if True: if not self._timer: self._timer = wx.Timer(self, self._timer_id) @@ -425,6 +425,13 @@ if __name__ == "__main__": gauge.SetFractionDigits(1) box.Add(gauge, 0, wx.ALL, 2) + gauge = PyGauge(self, font, size=(100, 5)) + gauge.SetBackgroundColour(wx.Colour(52, 86, 98)) + gauge.SetBarColour(wx.Colour(255, 128, 0)) + gauge.SetValue(59) + gauge.SetFractionDigits(1) + box.Add(gauge, 0, wx.ALL, 2) + self.SetSizer(box) self.Layout() diff --git a/gui/shipBrowser.py b/gui/shipBrowser.py index afa9d6b71..75152a1b4 100644 --- a/gui/shipBrowser.py +++ b/gui/shipBrowser.py @@ -236,10 +236,10 @@ class ShipBrowser(wx.Panel): if self.filterShipsWithNoFits: if fits > 0: if filter_: - self.lpane.AddWidget(ShipItem(self.lpane, ship.ID, (ship.name, shipTrait, fits), ship.race)) + self.lpane.AddWidget(ShipItem(self.lpane, ship.ID, (ship.name, shipTrait, fits), ship.race, ship.graphicID)) else: if filter_: - self.lpane.AddWidget(ShipItem(self.lpane, ship.ID, (ship.name, shipTrait, fits), ship.race)) + self.lpane.AddWidget(ShipItem(self.lpane, ship.ID, (ship.name, shipTrait, fits), ship.race, ship.graphicID)) self.raceselect.RebuildRaces(racesList) @@ -335,8 +335,8 @@ class ShipBrowser(wx.Panel): shipTrait = ship.traits.traitText if (ship.traits is not None) else "" # empty string if no traits - for ID, name, booster, timestamp, notes in fitList: - self.lpane.AddWidget(FitItem(self.lpane, ID, (shipName, shipTrait, name, booster, timestamp, notes), shipID)) + for ID, name, booster, timestamp, notes, graphicID in fitList: + self.lpane.AddWidget(FitItem(self.lpane, ID, (shipName, shipTrait, name, booster, timestamp, notes), shipID, graphicID=graphicID)) self.lpane.RefreshList() self.lpane.Thaw() @@ -374,7 +374,7 @@ class ShipBrowser(wx.Panel): self.lpane.AddWidget( ShipItem(self.lpane, ship.ID, (ship.name, shipTrait, len(sFit.getFitsWithShip(ship.ID))), - ship.race)) + ship.race, ship.graphicID)) for ID, name, shipID, shipName, booster, timestamp, notes in fitList: ship = sMkt.getItem(shipID) @@ -384,7 +384,7 @@ class ShipBrowser(wx.Panel): shipTrait = ship.traits.traitText if (ship.traits is not None) else "" # empty string if no traits - self.lpane.AddWidget(FitItem(self.lpane, ID, (shipName, shipTrait, name, booster, timestamp, notes), shipID)) + self.lpane.AddWidget(FitItem(self.lpane, ID, (shipName, shipTrait, name, booster, timestamp, notes), shipID, graphicID=ship.graphicID)) if len(ships) == 0 and len(fitList) == 0: self.lpane.AddWidget(PFStaticText(self.lpane, label="No matching results.")) self.lpane.RefreshList(doFocus=False) @@ -435,6 +435,7 @@ class ShipBrowser(wx.Panel): fit[4] ), shipItem.ID, + graphicID=shipItem.graphicID )) self.lpane.RefreshList(doFocus=False) self.lpane.Thaw() diff --git a/imgs/icons/7_15.png b/imgs/icons/0.png similarity index 100% rename from imgs/icons/7_15.png rename to imgs/icons/0.png diff --git a/imgs/icons/10012.png b/imgs/icons/10012.png new file mode 100644 index 000000000..0e783e20b Binary files /dev/null and b/imgs/icons/10012.png differ diff --git a/imgs/icons/10013.png b/imgs/icons/10013.png new file mode 100644 index 000000000..53b4edb66 Binary files /dev/null and b/imgs/icons/10013.png differ diff --git a/imgs/icons/10014.png b/imgs/icons/10014.png new file mode 100644 index 000000000..78c8a2e44 Binary files /dev/null and b/imgs/icons/10014.png differ diff --git a/imgs/icons/10015.png b/imgs/icons/10015.png new file mode 100644 index 000000000..d8b049e09 Binary files /dev/null and b/imgs/icons/10015.png differ diff --git a/imgs/icons/10016.png b/imgs/icons/10016.png new file mode 100644 index 000000000..c4c521404 Binary files /dev/null and b/imgs/icons/10016.png differ diff --git a/imgs/icons/10017.png b/imgs/icons/10017.png new file mode 100644 index 000000000..d778f8b25 Binary files /dev/null and b/imgs/icons/10017.png differ diff --git a/imgs/icons/10018.png b/imgs/icons/10018.png new file mode 100644 index 000000000..afd16989c Binary files /dev/null and b/imgs/icons/10018.png differ diff --git a/imgs/icons/10019.png b/imgs/icons/10019.png new file mode 100644 index 000000000..9533229c5 Binary files /dev/null and b/imgs/icons/10019.png differ diff --git a/imgs/icons/10020.png b/imgs/icons/10020.png new file mode 100644 index 000000000..325cc1ce5 Binary files /dev/null and b/imgs/icons/10020.png differ diff --git a/imgs/icons/10021.png b/imgs/icons/10021.png new file mode 100644 index 000000000..6abe3ba34 Binary files /dev/null and b/imgs/icons/10021.png differ diff --git a/imgs/icons/10022.png b/imgs/icons/10022.png new file mode 100644 index 000000000..1cfe15d81 Binary files /dev/null and b/imgs/icons/10022.png differ diff --git a/imgs/icons/10023.png b/imgs/icons/10023.png new file mode 100644 index 000000000..ba105fbd1 Binary files /dev/null and b/imgs/icons/10023.png differ diff --git a/imgs/icons/10024.png b/imgs/icons/10024.png new file mode 100644 index 000000000..1257cd16a Binary files /dev/null and b/imgs/icons/10024.png differ diff --git a/imgs/icons/10025.png b/imgs/icons/10025.png new file mode 100644 index 000000000..a13132bc5 Binary files /dev/null and b/imgs/icons/10025.png differ diff --git a/imgs/icons/10026.png b/imgs/icons/10026.png new file mode 100644 index 000000000..b2d8a3dda Binary files /dev/null and b/imgs/icons/10026.png differ diff --git a/imgs/icons/10027.png b/imgs/icons/10027.png new file mode 100644 index 000000000..e458b9e29 Binary files /dev/null and b/imgs/icons/10027.png differ diff --git a/imgs/icons/10028.png b/imgs/icons/10028.png new file mode 100644 index 000000000..56fc8d1bc Binary files /dev/null and b/imgs/icons/10028.png differ diff --git a/imgs/icons/10029.png b/imgs/icons/10029.png new file mode 100644 index 000000000..bbd67d9e9 Binary files /dev/null and b/imgs/icons/10029.png differ diff --git a/imgs/icons/10030.png b/imgs/icons/10030.png new file mode 100644 index 000000000..21dd0c830 Binary files /dev/null and b/imgs/icons/10030.png differ diff --git a/imgs/icons/10031.png b/imgs/icons/10031.png new file mode 100644 index 000000000..f11233461 Binary files /dev/null and b/imgs/icons/10031.png differ diff --git a/imgs/icons/10032.png b/imgs/icons/10032.png new file mode 100644 index 000000000..8ad901443 Binary files /dev/null and b/imgs/icons/10032.png differ diff --git a/imgs/icons/10033.png b/imgs/icons/10033.png new file mode 100644 index 000000000..19a96f277 Binary files /dev/null and b/imgs/icons/10033.png differ diff --git a/imgs/icons/10034.png b/imgs/icons/10034.png new file mode 100644 index 000000000..21bf81de9 Binary files /dev/null and b/imgs/icons/10034.png differ diff --git a/imgs/icons/10035.png b/imgs/icons/10035.png new file mode 100644 index 000000000..70fcf56ed Binary files /dev/null and b/imgs/icons/10035.png differ diff --git a/imgs/icons/10036.png b/imgs/icons/10036.png new file mode 100644 index 000000000..5d6f14328 Binary files /dev/null and b/imgs/icons/10036.png differ diff --git a/imgs/icons/10037.png b/imgs/icons/10037.png new file mode 100644 index 000000000..96799c5ab Binary files /dev/null and b/imgs/icons/10037.png differ diff --git a/imgs/icons/10038.png b/imgs/icons/10038.png new file mode 100644 index 000000000..1888a2db6 Binary files /dev/null and b/imgs/icons/10038.png differ diff --git a/imgs/icons/10039.png b/imgs/icons/10039.png new file mode 100644 index 000000000..7a2b7ce59 Binary files /dev/null and b/imgs/icons/10039.png differ diff --git a/imgs/icons/14_1.png b/imgs/icons/1004.png similarity index 100% rename from imgs/icons/14_1.png rename to imgs/icons/1004.png diff --git a/imgs/icons/10040.png b/imgs/icons/10040.png new file mode 100644 index 000000000..dd88f053f Binary files /dev/null and b/imgs/icons/10040.png differ diff --git a/imgs/icons/10041.png b/imgs/icons/10041.png new file mode 100644 index 000000000..a7ef3955b Binary files /dev/null and b/imgs/icons/10041.png differ diff --git a/imgs/icons/10042.png b/imgs/icons/10042.png new file mode 100644 index 000000000..e7e662111 Binary files /dev/null and b/imgs/icons/10042.png differ diff --git a/imgs/icons/10043.png b/imgs/icons/10043.png new file mode 100644 index 000000000..7e461517d Binary files /dev/null and b/imgs/icons/10043.png differ diff --git a/imgs/icons/10044.png b/imgs/icons/10044.png new file mode 100644 index 000000000..7f15a8191 Binary files /dev/null and b/imgs/icons/10044.png differ diff --git a/imgs/icons/10045.png b/imgs/icons/10045.png new file mode 100644 index 000000000..1af2c1788 Binary files /dev/null and b/imgs/icons/10045.png differ diff --git a/imgs/icons/10046.png b/imgs/icons/10046.png new file mode 100644 index 000000000..a3f807919 Binary files /dev/null and b/imgs/icons/10046.png differ diff --git a/imgs/icons/10047.png b/imgs/icons/10047.png new file mode 100644 index 000000000..675933463 Binary files /dev/null and b/imgs/icons/10047.png differ diff --git a/imgs/icons/10048.png b/imgs/icons/10048.png new file mode 100644 index 000000000..034d5d66f Binary files /dev/null and b/imgs/icons/10048.png differ diff --git a/imgs/icons/10049.png b/imgs/icons/10049.png new file mode 100644 index 000000000..3dfe71a0c Binary files /dev/null and b/imgs/icons/10049.png differ diff --git a/imgs/icons/10050.png b/imgs/icons/10050.png new file mode 100644 index 000000000..fd546101e Binary files /dev/null and b/imgs/icons/10050.png differ diff --git a/imgs/icons/10051.png b/imgs/icons/10051.png new file mode 100644 index 000000000..84bc787f9 Binary files /dev/null and b/imgs/icons/10051.png differ diff --git a/imgs/icons/10052.png b/imgs/icons/10052.png new file mode 100644 index 000000000..448243088 Binary files /dev/null and b/imgs/icons/10052.png differ diff --git a/imgs/icons/10053.png b/imgs/icons/10053.png new file mode 100644 index 000000000..c8ae676d7 Binary files /dev/null and b/imgs/icons/10053.png differ diff --git a/imgs/icons/10054.png b/imgs/icons/10054.png new file mode 100644 index 000000000..71ea09614 Binary files /dev/null and b/imgs/icons/10054.png differ diff --git a/imgs/icons/10055.png b/imgs/icons/10055.png new file mode 100644 index 000000000..35e3f9507 Binary files /dev/null and b/imgs/icons/10055.png differ diff --git a/imgs/icons/10056.png b/imgs/icons/10056.png new file mode 100644 index 000000000..c8ed67a64 Binary files /dev/null and b/imgs/icons/10056.png differ diff --git a/imgs/icons/10057.png b/imgs/icons/10057.png new file mode 100644 index 000000000..1e14c6784 Binary files /dev/null and b/imgs/icons/10057.png differ diff --git a/imgs/icons/10058.png b/imgs/icons/10058.png new file mode 100644 index 000000000..eb89cf09a Binary files /dev/null and b/imgs/icons/10058.png differ diff --git a/imgs/icons/1007.png b/imgs/icons/1007.png new file mode 100644 index 000000000..238437da8 Binary files /dev/null and b/imgs/icons/1007.png differ diff --git a/imgs/icons/10071.png b/imgs/icons/10071.png new file mode 100644 index 000000000..ff27fb97f Binary files /dev/null and b/imgs/icons/10071.png differ diff --git a/imgs/icons/10073.png b/imgs/icons/10073.png new file mode 100644 index 000000000..d7fc98f29 Binary files /dev/null and b/imgs/icons/10073.png differ diff --git a/imgs/icons/10074.png b/imgs/icons/10074.png new file mode 100644 index 000000000..f3d02a2c5 Binary files /dev/null and b/imgs/icons/10074.png differ diff --git a/imgs/icons/10075.png b/imgs/icons/10075.png new file mode 100644 index 000000000..8f75eb1ba Binary files /dev/null and b/imgs/icons/10075.png differ diff --git a/imgs/icons/10076.png b/imgs/icons/10076.png new file mode 100644 index 000000000..1b0c12d40 Binary files /dev/null and b/imgs/icons/10076.png differ diff --git a/imgs/icons/10077.png b/imgs/icons/10077.png new file mode 100644 index 000000000..1fda39280 Binary files /dev/null and b/imgs/icons/10077.png differ diff --git a/imgs/icons/10078.png b/imgs/icons/10078.png new file mode 100644 index 000000000..07216643f Binary files /dev/null and b/imgs/icons/10078.png differ diff --git a/imgs/icons/10079.png b/imgs/icons/10079.png new file mode 100644 index 000000000..2b3f825d2 Binary files /dev/null and b/imgs/icons/10079.png differ diff --git a/imgs/icons/10132.png b/imgs/icons/10132.png new file mode 100644 index 000000000..fb59bf1cb Binary files /dev/null and b/imgs/icons/10132.png differ diff --git a/imgs/icons/99_9.png b/imgs/icons/10144.png similarity index 100% rename from imgs/icons/99_9.png rename to imgs/icons/10144.png diff --git a/imgs/icons/79_9.png b/imgs/icons/10149.png similarity index 100% rename from imgs/icons/79_9.png rename to imgs/icons/10149.png diff --git a/imgs/icons/10151.png b/imgs/icons/10151.png new file mode 100644 index 000000000..f28075644 Binary files /dev/null and b/imgs/icons/10151.png differ diff --git a/imgs/icons/10153.png b/imgs/icons/10153.png new file mode 100644 index 000000000..57abc8770 Binary files /dev/null and b/imgs/icons/10153.png differ diff --git a/imgs/icons/101_4.png b/imgs/icons/10158.png similarity index 100% rename from imgs/icons/101_4.png rename to imgs/icons/10158.png diff --git a/imgs/icons/10159.png b/imgs/icons/10159.png new file mode 100644 index 000000000..e7d5f4b07 Binary files /dev/null and b/imgs/icons/10159.png differ diff --git a/imgs/icons/10162.png b/imgs/icons/10162.png new file mode 100644 index 000000000..e3513820b Binary files /dev/null and b/imgs/icons/10162.png differ diff --git a/imgs/icons/10163.png b/imgs/icons/10163.png new file mode 100644 index 000000000..622a04c79 Binary files /dev/null and b/imgs/icons/10163.png differ diff --git a/imgs/icons/10176.png b/imgs/icons/10176.png new file mode 100644 index 000000000..fa95d4998 Binary files /dev/null and b/imgs/icons/10176.png differ diff --git a/imgs/icons/10190.png b/imgs/icons/10190.png new file mode 100644 index 000000000..fa6e1ad9c Binary files /dev/null and b/imgs/icons/10190.png differ diff --git a/imgs/icons/10224.png b/imgs/icons/10224.png new file mode 100644 index 000000000..bd315f777 Binary files /dev/null and b/imgs/icons/10224.png differ diff --git a/imgs/icons/10234.png b/imgs/icons/10234.png new file mode 100644 index 000000000..e2c45ba35 Binary files /dev/null and b/imgs/icons/10234.png differ diff --git a/imgs/icons/10236.png b/imgs/icons/10236.png new file mode 100644 index 000000000..650fabfcf Binary files /dev/null and b/imgs/icons/10236.png differ diff --git a/imgs/icons/10254.png b/imgs/icons/10254.png new file mode 100644 index 000000000..971c30394 Binary files /dev/null and b/imgs/icons/10254.png differ diff --git a/imgs/icons/10256.png b/imgs/icons/10256.png new file mode 100644 index 000000000..d537be9bb Binary files /dev/null and b/imgs/icons/10256.png differ diff --git a/imgs/icons/1_3.png b/imgs/icons/1029.png similarity index 100% rename from imgs/icons/1_3.png rename to imgs/icons/1029.png diff --git a/imgs/icons/1_8.png b/imgs/icons/1030.png similarity index 100% rename from imgs/icons/1_8.png rename to imgs/icons/1030.png diff --git a/imgs/icons/1_6.png b/imgs/icons/1031.png similarity index 100% rename from imgs/icons/1_6.png rename to imgs/icons/1031.png diff --git a/imgs/icons/1_7.png b/imgs/icons/1033.png similarity index 100% rename from imgs/icons/1_7.png rename to imgs/icons/1033.png diff --git a/imgs/icons/1_2.png b/imgs/icons/1035.png similarity index 100% rename from imgs/icons/1_2.png rename to imgs/icons/1035.png diff --git a/imgs/icons/4_10.png b/imgs/icons/104.png similarity index 100% rename from imgs/icons/4_10.png rename to imgs/icons/104.png diff --git a/imgs/icons/3_6.png b/imgs/icons/1041.png similarity index 100% rename from imgs/icons/3_6.png rename to imgs/icons/1041.png diff --git a/imgs/icons/2_12.png b/imgs/icons/1042.png similarity index 100% rename from imgs/icons/2_12.png rename to imgs/icons/1042.png diff --git a/imgs/icons/2_5.png b/imgs/icons/1044.png similarity index 100% rename from imgs/icons/2_5.png rename to imgs/icons/1044.png diff --git a/imgs/icons/5_12.png b/imgs/icons/1046.png similarity index 100% rename from imgs/icons/5_12.png rename to imgs/icons/1046.png diff --git a/imgs/icons/15_9.png b/imgs/icons/1047.png similarity index 100% rename from imgs/icons/15_9.png rename to imgs/icons/1047.png diff --git a/imgs/icons/4_11.png b/imgs/icons/105.png similarity index 100% rename from imgs/icons/4_11.png rename to imgs/icons/105.png diff --git a/imgs/icons/10570.png b/imgs/icons/10570.png new file mode 100644 index 000000000..8e75862dc Binary files /dev/null and b/imgs/icons/10570.png differ diff --git a/imgs/icons/3_11.png b/imgs/icons/106.png similarity index 100% rename from imgs/icons/3_11.png rename to imgs/icons/106.png diff --git a/imgs/icons/12_8.png b/imgs/icons/1061.png similarity index 100% rename from imgs/icons/12_8.png rename to imgs/icons/1061.png diff --git a/imgs/icons/10624.png b/imgs/icons/10624.png new file mode 100644 index 000000000..8cfb2d84a Binary files /dev/null and b/imgs/icons/10624.png differ diff --git a/imgs/icons/10684.png b/imgs/icons/10684.png new file mode 100644 index 000000000..d1bf7c436 Binary files /dev/null and b/imgs/icons/10684.png differ diff --git a/imgs/icons/3_10.png b/imgs/icons/107.png similarity index 100% rename from imgs/icons/3_10.png rename to imgs/icons/107.png diff --git a/imgs/icons/10756.png b/imgs/icons/10756.png new file mode 100644 index 000000000..f866a74c5 Binary files /dev/null and b/imgs/icons/10756.png differ diff --git a/imgs/icons/10785.png b/imgs/icons/10785.png new file mode 100644 index 000000000..fac13d427 Binary files /dev/null and b/imgs/icons/10785.png differ diff --git a/imgs/icons/10828.png b/imgs/icons/10828.png new file mode 100644 index 000000000..303243829 Binary files /dev/null and b/imgs/icons/10828.png differ diff --git a/imgs/icons/10829.png b/imgs/icons/10829.png new file mode 100644 index 000000000..798271327 Binary files /dev/null and b/imgs/icons/10829.png differ diff --git a/imgs/icons/10830.png b/imgs/icons/10830.png new file mode 100644 index 000000000..9f00e1b01 Binary files /dev/null and b/imgs/icons/10830.png differ diff --git a/imgs/icons/10831.png b/imgs/icons/10831.png new file mode 100644 index 000000000..3fca452ef Binary files /dev/null and b/imgs/icons/10831.png differ diff --git a/imgs/icons/10833.png b/imgs/icons/10833.png new file mode 100644 index 000000000..64c92ed61 Binary files /dev/null and b/imgs/icons/10833.png differ diff --git a/imgs/icons/10834.png b/imgs/icons/10834.png new file mode 100644 index 000000000..616c94d6d Binary files /dev/null and b/imgs/icons/10834.png differ diff --git a/imgs/icons/10835.png b/imgs/icons/10835.png new file mode 100644 index 000000000..e1eaf9774 Binary files /dev/null and b/imgs/icons/10835.png differ diff --git a/imgs/icons/10836.png b/imgs/icons/10836.png new file mode 100644 index 000000000..4e6062899 Binary files /dev/null and b/imgs/icons/10836.png differ diff --git a/imgs/icons/11_16.png b/imgs/icons/1084.png similarity index 100% rename from imgs/icons/11_16.png rename to imgs/icons/1084.png diff --git a/imgs/icons/infantry_gear.png b/imgs/icons/10847.png similarity index 100% rename from imgs/icons/infantry_gear.png rename to imgs/icons/10847.png diff --git a/imgs/icons/4_12.png b/imgs/icons/109.png similarity index 100% rename from imgs/icons/4_12.png rename to imgs/icons/109.png diff --git a/imgs/icons/105_46.png b/imgs/icons/10932.png similarity index 100% rename from imgs/icons/105_46.png rename to imgs/icons/10932.png diff --git a/imgs/icons/105_47.png b/imgs/icons/10933.png similarity index 100% rename from imgs/icons/105_47.png rename to imgs/icons/10933.png diff --git a/imgs/icons/105_48.png b/imgs/icons/10934.png similarity index 100% rename from imgs/icons/105_48.png rename to imgs/icons/10934.png diff --git a/imgs/icons/105_49.png b/imgs/icons/10935.png similarity index 100% rename from imgs/icons/105_49.png rename to imgs/icons/10935.png diff --git a/imgs/icons/107_1.png b/imgs/icons/10940.png similarity index 100% rename from imgs/icons/107_1.png rename to imgs/icons/10940.png diff --git a/imgs/icons/107_2.png b/imgs/icons/10941.png similarity index 100% rename from imgs/icons/107_2.png rename to imgs/icons/10941.png diff --git a/imgs/icons/107_3.png b/imgs/icons/10942.png similarity index 100% rename from imgs/icons/107_3.png rename to imgs/icons/10942.png diff --git a/imgs/icons/5_1.png b/imgs/icons/110.png similarity index 100% rename from imgs/icons/5_1.png rename to imgs/icons/110.png diff --git a/imgs/icons/4_9.png b/imgs/icons/111.png similarity index 100% rename from imgs/icons/4_9.png rename to imgs/icons/111.png diff --git a/imgs/icons/3_4.png b/imgs/icons/112.png similarity index 100% rename from imgs/icons/3_4.png rename to imgs/icons/112.png diff --git a/imgs/icons/8_1.png b/imgs/icons/1131.png similarity index 100% rename from imgs/icons/8_1.png rename to imgs/icons/1131.png diff --git a/imgs/icons/8_2.png b/imgs/icons/1139.png similarity index 100% rename from imgs/icons/8_2.png rename to imgs/icons/1139.png diff --git a/imgs/icons/8_3.png b/imgs/icons/1140.png similarity index 100% rename from imgs/icons/8_3.png rename to imgs/icons/1140.png diff --git a/imgs/icons/8_4.png b/imgs/icons/1141.png similarity index 100% rename from imgs/icons/8_4.png rename to imgs/icons/1141.png diff --git a/imgs/icons/8_5.png b/imgs/icons/1142.png similarity index 100% rename from imgs/icons/8_5.png rename to imgs/icons/1142.png diff --git a/imgs/icons/8_6.png b/imgs/icons/1143.png similarity index 100% rename from imgs/icons/8_6.png rename to imgs/icons/1143.png diff --git a/imgs/icons/8_7.png b/imgs/icons/1144.png similarity index 100% rename from imgs/icons/8_7.png rename to imgs/icons/1144.png diff --git a/imgs/icons/8_8.png b/imgs/icons/1145.png similarity index 100% rename from imgs/icons/8_8.png rename to imgs/icons/1145.png diff --git a/imgs/icons/1159.png b/imgs/icons/1159.png new file mode 100644 index 000000000..b7e6d33b6 Binary files /dev/null and b/imgs/icons/1159.png differ diff --git a/imgs/icons/1162.png b/imgs/icons/1162.png new file mode 100644 index 000000000..ed4e2b79a Binary files /dev/null and b/imgs/icons/1162.png differ diff --git a/imgs/icons/1164.png b/imgs/icons/1164.png new file mode 100644 index 000000000..5b1fdc378 Binary files /dev/null and b/imgs/icons/1164.png differ diff --git a/imgs/icons/27_5.png b/imgs/icons/1171.png similarity index 100% rename from imgs/icons/27_5.png rename to imgs/icons/1171.png diff --git a/imgs/icons/26_16.png b/imgs/icons/1172.png similarity index 100% rename from imgs/icons/26_16.png rename to imgs/icons/1172.png diff --git a/imgs/icons/26_15.png b/imgs/icons/1173.png similarity index 100% rename from imgs/icons/26_15.png rename to imgs/icons/1173.png diff --git a/imgs/icons/26_13.png b/imgs/icons/1174.png similarity index 100% rename from imgs/icons/26_13.png rename to imgs/icons/1174.png diff --git a/imgs/icons/26_12.png b/imgs/icons/1175.png similarity index 100% rename from imgs/icons/26_12.png rename to imgs/icons/1175.png diff --git a/imgs/icons/1177.png b/imgs/icons/1177.png new file mode 100644 index 000000000..b734ec22e Binary files /dev/null and b/imgs/icons/1177.png differ diff --git a/imgs/icons/1178.png b/imgs/icons/1178.png new file mode 100644 index 000000000..f6063e58e Binary files /dev/null and b/imgs/icons/1178.png differ diff --git a/imgs/icons/1179.png b/imgs/icons/1179.png new file mode 100644 index 000000000..cd760a976 Binary files /dev/null and b/imgs/icons/1179.png differ diff --git a/imgs/icons/1180.png b/imgs/icons/1180.png new file mode 100644 index 000000000..a77d421e0 Binary files /dev/null and b/imgs/icons/1180.png differ diff --git a/imgs/icons/1181.png b/imgs/icons/1181.png new file mode 100644 index 000000000..5d2f6be89 Binary files /dev/null and b/imgs/icons/1181.png differ diff --git a/imgs/icons/1182.png b/imgs/icons/1182.png new file mode 100644 index 000000000..e336ec855 Binary files /dev/null and b/imgs/icons/1182.png differ diff --git a/imgs/icons/1183.png b/imgs/icons/1183.png new file mode 100644 index 000000000..77c48aff0 Binary files /dev/null and b/imgs/icons/1183.png differ diff --git a/imgs/icons/1184.png b/imgs/icons/1184.png new file mode 100644 index 000000000..9a2c59ba3 Binary files /dev/null and b/imgs/icons/1184.png differ diff --git a/imgs/icons/1185.png b/imgs/icons/1185.png new file mode 100644 index 000000000..613c03444 Binary files /dev/null and b/imgs/icons/1185.png differ diff --git a/imgs/icons/1186.png b/imgs/icons/1186.png new file mode 100644 index 000000000..eb43e69e0 Binary files /dev/null and b/imgs/icons/1186.png differ diff --git a/imgs/icons/1187.png b/imgs/icons/1187.png new file mode 100644 index 000000000..caba34554 Binary files /dev/null and b/imgs/icons/1187.png differ diff --git a/imgs/icons/1188.png b/imgs/icons/1188.png new file mode 100644 index 000000000..cbefa460f Binary files /dev/null and b/imgs/icons/1188.png differ diff --git a/imgs/icons/1189.png b/imgs/icons/1189.png new file mode 100644 index 000000000..67f9a96e5 Binary files /dev/null and b/imgs/icons/1189.png differ diff --git a/imgs/icons/1190.png b/imgs/icons/1190.png new file mode 100644 index 000000000..d7f7c9085 Binary files /dev/null and b/imgs/icons/1190.png differ diff --git a/imgs/icons/10_15.png b/imgs/icons/1191.png similarity index 100% rename from imgs/icons/10_15.png rename to imgs/icons/1191.png diff --git a/imgs/icons/1192.png b/imgs/icons/1192.png new file mode 100644 index 000000000..3a580d066 Binary files /dev/null and b/imgs/icons/1192.png differ diff --git a/imgs/icons/1193.png b/imgs/icons/1193.png new file mode 100644 index 000000000..59d035b67 Binary files /dev/null and b/imgs/icons/1193.png differ diff --git a/imgs/icons/1194.png b/imgs/icons/1194.png new file mode 100644 index 000000000..2c3a4ede9 Binary files /dev/null and b/imgs/icons/1194.png differ diff --git a/imgs/icons/1195.png b/imgs/icons/1195.png new file mode 100644 index 000000000..fc70016fc Binary files /dev/null and b/imgs/icons/1195.png differ diff --git a/imgs/icons/11_4.png b/imgs/icons/1196.png similarity index 100% rename from imgs/icons/11_4.png rename to imgs/icons/1196.png diff --git a/imgs/icons/1198.png b/imgs/icons/1198.png new file mode 100644 index 000000000..407fd23e1 Binary files /dev/null and b/imgs/icons/1198.png differ diff --git a/imgs/icons/1199.png b/imgs/icons/1199.png new file mode 100644 index 000000000..3a623a37d Binary files /dev/null and b/imgs/icons/1199.png differ diff --git a/imgs/icons/1200.png b/imgs/icons/1200.png new file mode 100644 index 000000000..eaf3e3537 Binary files /dev/null and b/imgs/icons/1200.png differ diff --git a/imgs/icons/1201.png b/imgs/icons/1201.png new file mode 100644 index 000000000..54c7278ef Binary files /dev/null and b/imgs/icons/1201.png differ diff --git a/imgs/icons/1204.png b/imgs/icons/1204.png new file mode 100644 index 000000000..7227ba715 Binary files /dev/null and b/imgs/icons/1204.png differ diff --git a/imgs/icons/1205.png b/imgs/icons/1205.png new file mode 100644 index 000000000..14ebe35d6 Binary files /dev/null and b/imgs/icons/1205.png differ diff --git a/imgs/icons/1206.png b/imgs/icons/1206.png new file mode 100644 index 000000000..9f7512912 Binary files /dev/null and b/imgs/icons/1206.png differ diff --git a/imgs/icons/1207.png b/imgs/icons/1207.png new file mode 100644 index 000000000..c71e21d99 Binary files /dev/null and b/imgs/icons/1207.png differ diff --git a/imgs/icons/1209.png b/imgs/icons/1209.png new file mode 100644 index 000000000..28f6399e6 Binary files /dev/null and b/imgs/icons/1209.png differ diff --git a/imgs/icons/123_5.png b/imgs/icons/123_5.png deleted file mode 100644 index c360369ca..000000000 Binary files a/imgs/icons/123_5.png and /dev/null differ diff --git a/imgs/icons/123_8.png b/imgs/icons/123_8.png deleted file mode 100644 index 4bf986d3d..000000000 Binary files a/imgs/icons/123_8.png and /dev/null differ diff --git a/imgs/icons/124_11.png b/imgs/icons/124_11.png deleted file mode 100644 index 12e664125..000000000 Binary files a/imgs/icons/124_11.png and /dev/null differ diff --git a/imgs/icons/1269.png b/imgs/icons/1269.png new file mode 100644 index 000000000..ca928c60f Binary files /dev/null and b/imgs/icons/1269.png differ diff --git a/imgs/icons/1270.png b/imgs/icons/1270.png new file mode 100644 index 000000000..36e521c6e Binary files /dev/null and b/imgs/icons/1270.png differ diff --git a/imgs/icons/1271.png b/imgs/icons/1271.png new file mode 100644 index 000000000..aa1364e90 Binary files /dev/null and b/imgs/icons/1271.png differ diff --git a/imgs/icons/1272.png b/imgs/icons/1272.png new file mode 100644 index 000000000..1987c069e Binary files /dev/null and b/imgs/icons/1272.png differ diff --git a/imgs/icons/1273.png b/imgs/icons/1273.png new file mode 100644 index 000000000..306ce2d9f Binary files /dev/null and b/imgs/icons/1273.png differ diff --git a/imgs/icons/1274.png b/imgs/icons/1274.png new file mode 100644 index 000000000..1f93e4ffe Binary files /dev/null and b/imgs/icons/1274.png differ diff --git a/imgs/icons/1275.png b/imgs/icons/1275.png new file mode 100644 index 000000000..3371be4af Binary files /dev/null and b/imgs/icons/1275.png differ diff --git a/imgs/icons/1277.png b/imgs/icons/1277.png new file mode 100644 index 000000000..ace445b30 Binary files /dev/null and b/imgs/icons/1277.png differ diff --git a/imgs/icons/1279.png b/imgs/icons/1279.png new file mode 100644 index 000000000..43eec2b28 Binary files /dev/null and b/imgs/icons/1279.png differ diff --git a/imgs/icons/1282.png b/imgs/icons/1282.png new file mode 100644 index 000000000..3aa3c5619 Binary files /dev/null and b/imgs/icons/1282.png differ diff --git a/imgs/icons/12_4.png b/imgs/icons/1283.png similarity index 100% rename from imgs/icons/12_4.png rename to imgs/icons/1283.png diff --git a/imgs/icons/12_6.png b/imgs/icons/1284.png similarity index 100% rename from imgs/icons/12_6.png rename to imgs/icons/1284.png diff --git a/imgs/icons/14_2.png b/imgs/icons/1285.png similarity index 100% rename from imgs/icons/14_2.png rename to imgs/icons/1285.png diff --git a/imgs/icons/14_3.png b/imgs/icons/1286.png similarity index 100% rename from imgs/icons/14_3.png rename to imgs/icons/1286.png diff --git a/imgs/icons/14_4.png b/imgs/icons/1287.png similarity index 100% rename from imgs/icons/14_4.png rename to imgs/icons/1287.png diff --git a/imgs/icons/14_5.png b/imgs/icons/1288.png similarity index 100% rename from imgs/icons/14_5.png rename to imgs/icons/1288.png diff --git a/imgs/icons/14_6.png b/imgs/icons/1289.png similarity index 100% rename from imgs/icons/14_6.png rename to imgs/icons/1289.png diff --git a/imgs/icons/14_7.png b/imgs/icons/1290.png similarity index 100% rename from imgs/icons/14_7.png rename to imgs/icons/1290.png diff --git a/imgs/icons/14_8.png b/imgs/icons/1291.png similarity index 100% rename from imgs/icons/14_8.png rename to imgs/icons/1291.png diff --git a/imgs/icons/14_9.png b/imgs/icons/1292.png similarity index 100% rename from imgs/icons/14_9.png rename to imgs/icons/1292.png diff --git a/imgs/icons/14_10.png b/imgs/icons/1293.png similarity index 100% rename from imgs/icons/14_10.png rename to imgs/icons/1293.png diff --git a/imgs/icons/14_11.png b/imgs/icons/1294.png similarity index 100% rename from imgs/icons/14_11.png rename to imgs/icons/1294.png diff --git a/imgs/icons/14_12.png b/imgs/icons/1295.png similarity index 100% rename from imgs/icons/14_12.png rename to imgs/icons/1295.png diff --git a/imgs/icons/14_13.png b/imgs/icons/1296.png similarity index 100% rename from imgs/icons/14_13.png rename to imgs/icons/1296.png diff --git a/imgs/icons/14_14.png b/imgs/icons/1297.png similarity index 100% rename from imgs/icons/14_14.png rename to imgs/icons/1297.png diff --git a/imgs/icons/14_15.png b/imgs/icons/1298.png similarity index 100% rename from imgs/icons/14_15.png rename to imgs/icons/1298.png diff --git a/imgs/icons/14_16.png b/imgs/icons/1299.png similarity index 100% rename from imgs/icons/14_16.png rename to imgs/icons/1299.png diff --git a/imgs/icons/15_1.png b/imgs/icons/1300.png similarity index 100% rename from imgs/icons/15_1.png rename to imgs/icons/1300.png diff --git a/imgs/icons/15_2.png b/imgs/icons/1301.png similarity index 100% rename from imgs/icons/15_2.png rename to imgs/icons/1301.png diff --git a/imgs/icons/15_3.png b/imgs/icons/1302.png similarity index 100% rename from imgs/icons/15_3.png rename to imgs/icons/1302.png diff --git a/imgs/icons/15_4.png b/imgs/icons/1303.png similarity index 100% rename from imgs/icons/15_4.png rename to imgs/icons/1303.png diff --git a/imgs/icons/15_5.png b/imgs/icons/1304.png similarity index 100% rename from imgs/icons/15_5.png rename to imgs/icons/1304.png diff --git a/imgs/icons/15_6.png b/imgs/icons/1305.png similarity index 100% rename from imgs/icons/15_6.png rename to imgs/icons/1305.png diff --git a/imgs/icons/15_7.png b/imgs/icons/1306.png similarity index 100% rename from imgs/icons/15_7.png rename to imgs/icons/1306.png diff --git a/imgs/icons/15_8.png b/imgs/icons/1307.png similarity index 100% rename from imgs/icons/15_8.png rename to imgs/icons/1307.png diff --git a/imgs/icons/15_10.png b/imgs/icons/1310.png similarity index 100% rename from imgs/icons/15_10.png rename to imgs/icons/1310.png diff --git a/imgs/icons/15_11.png b/imgs/icons/1311.png similarity index 100% rename from imgs/icons/15_11.png rename to imgs/icons/1311.png diff --git a/imgs/icons/15_12.png b/imgs/icons/1312.png similarity index 100% rename from imgs/icons/15_12.png rename to imgs/icons/1312.png diff --git a/imgs/icons/15_13.png b/imgs/icons/1313.png similarity index 100% rename from imgs/icons/15_13.png rename to imgs/icons/1313.png diff --git a/imgs/icons/15_14.png b/imgs/icons/1314.png similarity index 100% rename from imgs/icons/15_14.png rename to imgs/icons/1314.png diff --git a/imgs/icons/15_15.png b/imgs/icons/1315.png similarity index 100% rename from imgs/icons/15_15.png rename to imgs/icons/1315.png diff --git a/imgs/icons/15_16.png b/imgs/icons/1316.png similarity index 100% rename from imgs/icons/15_16.png rename to imgs/icons/1316.png diff --git a/imgs/icons/16_1.png b/imgs/icons/1317.png similarity index 100% rename from imgs/icons/16_1.png rename to imgs/icons/1317.png diff --git a/imgs/icons/16_2.png b/imgs/icons/1318.png similarity index 100% rename from imgs/icons/16_2.png rename to imgs/icons/1318.png diff --git a/imgs/icons/16_3.png b/imgs/icons/1319.png similarity index 100% rename from imgs/icons/16_3.png rename to imgs/icons/1319.png diff --git a/imgs/icons/16_4.png b/imgs/icons/1320.png similarity index 100% rename from imgs/icons/16_4.png rename to imgs/icons/1320.png diff --git a/imgs/icons/16_5.png b/imgs/icons/1321.png similarity index 100% rename from imgs/icons/16_5.png rename to imgs/icons/1321.png diff --git a/imgs/icons/16_6.png b/imgs/icons/1322.png similarity index 100% rename from imgs/icons/16_6.png rename to imgs/icons/1322.png diff --git a/imgs/icons/16_7.png b/imgs/icons/1323.png similarity index 100% rename from imgs/icons/16_7.png rename to imgs/icons/1323.png diff --git a/imgs/icons/16_8.png b/imgs/icons/1324.png similarity index 100% rename from imgs/icons/16_8.png rename to imgs/icons/1324.png diff --git a/imgs/icons/16_9.png b/imgs/icons/1325.png similarity index 100% rename from imgs/icons/16_9.png rename to imgs/icons/1325.png diff --git a/imgs/icons/16_10.png b/imgs/icons/1326.png similarity index 100% rename from imgs/icons/16_10.png rename to imgs/icons/1326.png diff --git a/imgs/icons/16_11.png b/imgs/icons/1327.png similarity index 100% rename from imgs/icons/16_11.png rename to imgs/icons/1327.png diff --git a/imgs/icons/16_12.png b/imgs/icons/1328.png similarity index 100% rename from imgs/icons/16_12.png rename to imgs/icons/1328.png diff --git a/imgs/icons/16_13.png b/imgs/icons/1329.png similarity index 100% rename from imgs/icons/16_13.png rename to imgs/icons/1329.png diff --git a/imgs/icons/16_14.png b/imgs/icons/1330.png similarity index 100% rename from imgs/icons/16_14.png rename to imgs/icons/1330.png diff --git a/imgs/icons/16_15.png b/imgs/icons/1331.png similarity index 100% rename from imgs/icons/16_15.png rename to imgs/icons/1331.png diff --git a/imgs/icons/16_16.png b/imgs/icons/1332.png similarity index 100% rename from imgs/icons/16_16.png rename to imgs/icons/1332.png diff --git a/imgs/icons/20_1.png b/imgs/icons/1333.png similarity index 100% rename from imgs/icons/20_1.png rename to imgs/icons/1333.png diff --git a/imgs/icons/20_5.png b/imgs/icons/1334.png similarity index 100% rename from imgs/icons/20_5.png rename to imgs/icons/1334.png diff --git a/imgs/icons/20_9.png b/imgs/icons/1335.png similarity index 100% rename from imgs/icons/20_9.png rename to imgs/icons/1335.png diff --git a/imgs/icons/20_13.png b/imgs/icons/1336.png similarity index 100% rename from imgs/icons/20_13.png rename to imgs/icons/1336.png diff --git a/imgs/icons/20_7.png b/imgs/icons/1337.png similarity index 100% rename from imgs/icons/20_7.png rename to imgs/icons/1337.png diff --git a/imgs/icons/20_11.png b/imgs/icons/1338.png similarity index 100% rename from imgs/icons/20_11.png rename to imgs/icons/1338.png diff --git a/imgs/icons/20_15.png b/imgs/icons/1339.png similarity index 100% rename from imgs/icons/20_15.png rename to imgs/icons/1339.png diff --git a/imgs/icons/20_3.png b/imgs/icons/1340.png similarity index 100% rename from imgs/icons/20_3.png rename to imgs/icons/1340.png diff --git a/imgs/icons/21_1.png b/imgs/icons/1341.png similarity index 100% rename from imgs/icons/21_1.png rename to imgs/icons/1341.png diff --git a/imgs/icons/21_5.png b/imgs/icons/1342.png similarity index 100% rename from imgs/icons/21_5.png rename to imgs/icons/1342.png diff --git a/imgs/icons/21_9.png b/imgs/icons/1343.png similarity index 100% rename from imgs/icons/21_9.png rename to imgs/icons/1343.png diff --git a/imgs/icons/21_13.png b/imgs/icons/1344.png similarity index 100% rename from imgs/icons/21_13.png rename to imgs/icons/1344.png diff --git a/imgs/icons/12_16.png b/imgs/icons/1345.png similarity index 100% rename from imgs/icons/12_16.png rename to imgs/icons/1345.png diff --git a/imgs/icons/21_2.png b/imgs/icons/1346.png similarity index 100% rename from imgs/icons/21_2.png rename to imgs/icons/1346.png diff --git a/imgs/icons/21_6.png b/imgs/icons/1347.png similarity index 100% rename from imgs/icons/21_6.png rename to imgs/icons/1347.png diff --git a/imgs/icons/21_10.png b/imgs/icons/1348.png similarity index 100% rename from imgs/icons/21_10.png rename to imgs/icons/1348.png diff --git a/imgs/icons/21_14.png b/imgs/icons/1349.png similarity index 100% rename from imgs/icons/21_14.png rename to imgs/icons/1349.png diff --git a/imgs/icons/21_3.png b/imgs/icons/1350.png similarity index 100% rename from imgs/icons/21_3.png rename to imgs/icons/1350.png diff --git a/imgs/icons/21_7.png b/imgs/icons/1351.png similarity index 100% rename from imgs/icons/21_7.png rename to imgs/icons/1351.png diff --git a/imgs/icons/21_15.png b/imgs/icons/1352.png similarity index 100% rename from imgs/icons/21_15.png rename to imgs/icons/1352.png diff --git a/imgs/icons/21_11.png b/imgs/icons/1353.png similarity index 100% rename from imgs/icons/21_11.png rename to imgs/icons/1353.png diff --git a/imgs/icons/1356.png b/imgs/icons/1356.png new file mode 100644 index 000000000..618f22de3 Binary files /dev/null and b/imgs/icons/1356.png differ diff --git a/imgs/icons/1357.png b/imgs/icons/1357.png new file mode 100644 index 000000000..56cf482e1 Binary files /dev/null and b/imgs/icons/1357.png differ diff --git a/imgs/icons/1358.png b/imgs/icons/1358.png new file mode 100644 index 000000000..d8a707c42 Binary files /dev/null and b/imgs/icons/1358.png differ diff --git a/imgs/icons/1359.png b/imgs/icons/1359.png new file mode 100644 index 000000000..88e0c091e Binary files /dev/null and b/imgs/icons/1359.png differ diff --git a/imgs/icons/1360.png b/imgs/icons/1360.png new file mode 100644 index 000000000..d0871e331 Binary files /dev/null and b/imgs/icons/1360.png differ diff --git a/imgs/icons/1361.png b/imgs/icons/1361.png new file mode 100644 index 000000000..261269a80 Binary files /dev/null and b/imgs/icons/1361.png differ diff --git a/imgs/icons/1362.png b/imgs/icons/1362.png new file mode 100644 index 000000000..131ee25e4 Binary files /dev/null and b/imgs/icons/1362.png differ diff --git a/imgs/icons/1363.png b/imgs/icons/1363.png new file mode 100644 index 000000000..38facca0b Binary files /dev/null and b/imgs/icons/1363.png differ diff --git a/imgs/icons/1364.png b/imgs/icons/1364.png new file mode 100644 index 000000000..57afddfad Binary files /dev/null and b/imgs/icons/1364.png differ diff --git a/imgs/icons/1365.png b/imgs/icons/1365.png new file mode 100644 index 000000000..9379e8cc3 Binary files /dev/null and b/imgs/icons/1365.png differ diff --git a/imgs/icons/1366.png b/imgs/icons/1366.png new file mode 100644 index 000000000..019139ab7 Binary files /dev/null and b/imgs/icons/1366.png differ diff --git a/imgs/icons/1367.png b/imgs/icons/1367.png new file mode 100644 index 000000000..94dea16c0 Binary files /dev/null and b/imgs/icons/1367.png differ diff --git a/imgs/icons/1368.png b/imgs/icons/1368.png new file mode 100644 index 000000000..1860ff5f0 Binary files /dev/null and b/imgs/icons/1368.png differ diff --git a/imgs/icons/1369.png b/imgs/icons/1369.png new file mode 100644 index 000000000..b2062d26b Binary files /dev/null and b/imgs/icons/1369.png differ diff --git a/imgs/icons/1370.png b/imgs/icons/1370.png new file mode 100644 index 000000000..4fbcaebe5 Binary files /dev/null and b/imgs/icons/1370.png differ diff --git a/imgs/icons/1377.png b/imgs/icons/1377.png new file mode 100644 index 000000000..03d9f3ac8 Binary files /dev/null and b/imgs/icons/1377.png differ diff --git a/imgs/icons/22_1.png b/imgs/icons/1378.png similarity index 100% rename from imgs/icons/22_1.png rename to imgs/icons/1378.png diff --git a/imgs/icons/22_2.png b/imgs/icons/1379.png similarity index 100% rename from imgs/icons/22_2.png rename to imgs/icons/1379.png diff --git a/imgs/icons/4_1.png b/imgs/icons/138.png similarity index 100% rename from imgs/icons/4_1.png rename to imgs/icons/138.png diff --git a/imgs/icons/22_3.png b/imgs/icons/1380.png similarity index 100% rename from imgs/icons/22_3.png rename to imgs/icons/1380.png diff --git a/imgs/icons/22_4.png b/imgs/icons/1381.png similarity index 100% rename from imgs/icons/22_4.png rename to imgs/icons/1381.png diff --git a/imgs/icons/22_5.png b/imgs/icons/1382.png similarity index 100% rename from imgs/icons/22_5.png rename to imgs/icons/1382.png diff --git a/imgs/icons/22_6.png b/imgs/icons/1383.png similarity index 100% rename from imgs/icons/22_6.png rename to imgs/icons/1383.png diff --git a/imgs/icons/22_7.png b/imgs/icons/1384.png similarity index 100% rename from imgs/icons/22_7.png rename to imgs/icons/1384.png diff --git a/imgs/icons/22_9.png b/imgs/icons/1385.png similarity index 100% rename from imgs/icons/22_9.png rename to imgs/icons/1385.png diff --git a/imgs/icons/22_10.png b/imgs/icons/1386.png similarity index 100% rename from imgs/icons/22_10.png rename to imgs/icons/1386.png diff --git a/imgs/icons/22_11.png b/imgs/icons/1387.png similarity index 100% rename from imgs/icons/22_11.png rename to imgs/icons/1387.png diff --git a/imgs/icons/22_12.png b/imgs/icons/1388.png similarity index 100% rename from imgs/icons/22_12.png rename to imgs/icons/1388.png diff --git a/imgs/icons/22_13.png b/imgs/icons/1389.png similarity index 100% rename from imgs/icons/22_13.png rename to imgs/icons/1389.png diff --git a/imgs/icons/22_14.png b/imgs/icons/1390.png similarity index 100% rename from imgs/icons/22_14.png rename to imgs/icons/1390.png diff --git a/imgs/icons/22_15.png b/imgs/icons/1391.png similarity index 100% rename from imgs/icons/22_15.png rename to imgs/icons/1391.png diff --git a/imgs/icons/22_16.png b/imgs/icons/1392.png similarity index 100% rename from imgs/icons/22_16.png rename to imgs/icons/1392.png diff --git a/imgs/icons/22_17.png b/imgs/icons/1393.png similarity index 100% rename from imgs/icons/22_17.png rename to imgs/icons/1393.png diff --git a/imgs/icons/22_18.png b/imgs/icons/1394.png similarity index 100% rename from imgs/icons/22_18.png rename to imgs/icons/1394.png diff --git a/imgs/icons/22_19.png b/imgs/icons/1395.png similarity index 100% rename from imgs/icons/22_19.png rename to imgs/icons/1395.png diff --git a/imgs/icons/22_20.png b/imgs/icons/1396.png similarity index 100% rename from imgs/icons/22_20.png rename to imgs/icons/1396.png diff --git a/imgs/icons/22_21.png b/imgs/icons/1397.png similarity index 100% rename from imgs/icons/22_21.png rename to imgs/icons/1397.png diff --git a/imgs/icons/22_22.png b/imgs/icons/1398.png similarity index 100% rename from imgs/icons/22_22.png rename to imgs/icons/1398.png diff --git a/imgs/icons/22_23.png b/imgs/icons/1399.png similarity index 100% rename from imgs/icons/22_23.png rename to imgs/icons/1399.png diff --git a/imgs/icons/2_7.png b/imgs/icons/1400.png similarity index 100% rename from imgs/icons/2_7.png rename to imgs/icons/1400.png diff --git a/imgs/icons/22_24.png b/imgs/icons/1401.png similarity index 100% rename from imgs/icons/22_24.png rename to imgs/icons/1401.png diff --git a/imgs/icons/12_7.png b/imgs/icons/1405.png similarity index 100% rename from imgs/icons/12_7.png rename to imgs/icons/1405.png diff --git a/imgs/icons/1406.png b/imgs/icons/1406.png new file mode 100644 index 000000000..f5e4c43e8 Binary files /dev/null and b/imgs/icons/1406.png differ diff --git a/imgs/icons/26_1.png b/imgs/icons/1432.png similarity index 100% rename from imgs/icons/26_1.png rename to imgs/icons/1432.png diff --git a/imgs/icons/1435.png b/imgs/icons/1435.png new file mode 100644 index 000000000..a1c638b75 Binary files /dev/null and b/imgs/icons/1435.png differ diff --git a/imgs/icons/1436.png b/imgs/icons/1436.png new file mode 100644 index 000000000..b9df93b2a Binary files /dev/null and b/imgs/icons/1436.png differ diff --git a/imgs/icons/9_5.png b/imgs/icons/1443.png similarity index 100% rename from imgs/icons/9_5.png rename to imgs/icons/1443.png diff --git a/imgs/icons/25_4.png b/imgs/icons/1444.png similarity index 100% rename from imgs/icons/25_4.png rename to imgs/icons/1444.png diff --git a/imgs/icons/9_16.png b/imgs/icons/1446.png similarity index 100% rename from imgs/icons/9_16.png rename to imgs/icons/1446.png diff --git a/imgs/icons/5_11.png b/imgs/icons/15.png similarity index 100% rename from imgs/icons/5_11.png rename to imgs/icons/15.png diff --git a/imgs/icons/26_11.png b/imgs/icons/16.png similarity index 100% rename from imgs/icons/26_11.png rename to imgs/icons/16.png diff --git a/imgs/icons/5_7.png b/imgs/icons/1639.png similarity index 100% rename from imgs/icons/5_7.png rename to imgs/icons/1639.png diff --git a/imgs/icons/5_14.png b/imgs/icons/1640.png similarity index 100% rename from imgs/icons/5_14.png rename to imgs/icons/1640.png diff --git a/imgs/icons/1641.png b/imgs/icons/1641.png new file mode 100644 index 000000000..81d1024d4 Binary files /dev/null and b/imgs/icons/1641.png differ diff --git a/imgs/icons/1645.png b/imgs/icons/1645.png new file mode 100644 index 000000000..a2599def2 Binary files /dev/null and b/imgs/icons/1645.png differ diff --git a/imgs/icons/1656.png b/imgs/icons/1656.png new file mode 100644 index 000000000..51cafb419 Binary files /dev/null and b/imgs/icons/1656.png differ diff --git a/imgs/icons/5_2.png b/imgs/icons/1666.png similarity index 100% rename from imgs/icons/5_2.png rename to imgs/icons/1666.png diff --git a/imgs/icons/1_5.png b/imgs/icons/1668.png similarity index 100% rename from imgs/icons/1_5.png rename to imgs/icons/1668.png diff --git a/imgs/icons/12_12.png b/imgs/icons/168.png similarity index 100% rename from imgs/icons/12_12.png rename to imgs/icons/168.png diff --git a/imgs/icons/21_12.png b/imgs/icons/169.png similarity index 100% rename from imgs/icons/21_12.png rename to imgs/icons/169.png diff --git a/imgs/icons/21_16.png b/imgs/icons/170.png similarity index 100% rename from imgs/icons/21_16.png rename to imgs/icons/170.png diff --git a/imgs/icons/34_1.png b/imgs/icons/1721.png similarity index 100% rename from imgs/icons/34_1.png rename to imgs/icons/1721.png diff --git a/imgs/icons/34_2.png b/imgs/icons/1722.png similarity index 100% rename from imgs/icons/34_2.png rename to imgs/icons/1722.png diff --git a/imgs/icons/27_9.png b/imgs/icons/1723.png similarity index 100% rename from imgs/icons/27_9.png rename to imgs/icons/1723.png diff --git a/imgs/icons/20_16.png b/imgs/icons/182.png similarity index 100% rename from imgs/icons/20_16.png rename to imgs/icons/182.png diff --git a/imgs/icons/20_4.png b/imgs/icons/183.png similarity index 100% rename from imgs/icons/20_4.png rename to imgs/icons/183.png diff --git a/imgs/icons/20_8.png b/imgs/icons/184.png similarity index 100% rename from imgs/icons/20_8.png rename to imgs/icons/184.png diff --git a/imgs/icons/20_12.png b/imgs/icons/185.png similarity index 100% rename from imgs/icons/20_12.png rename to imgs/icons/185.png diff --git a/imgs/icons/20_10.png b/imgs/icons/186.png similarity index 100% rename from imgs/icons/20_10.png rename to imgs/icons/186.png diff --git a/imgs/icons/20_14.png b/imgs/icons/187.png similarity index 100% rename from imgs/icons/20_14.png rename to imgs/icons/187.png diff --git a/imgs/icons/20_6.png b/imgs/icons/188.png similarity index 100% rename from imgs/icons/20_6.png rename to imgs/icons/188.png diff --git a/imgs/icons/20_2.png b/imgs/icons/189.png similarity index 100% rename from imgs/icons/20_2.png rename to imgs/icons/189.png diff --git a/imgs/icons/13_4.png b/imgs/icons/190.png similarity index 100% rename from imgs/icons/13_4.png rename to imgs/icons/190.png diff --git a/imgs/icons/13_8.png b/imgs/icons/191.png similarity index 100% rename from imgs/icons/13_8.png rename to imgs/icons/191.png diff --git a/imgs/icons/13_16.png b/imgs/icons/192.png similarity index 100% rename from imgs/icons/13_16.png rename to imgs/icons/192.png diff --git a/imgs/icons/13_12.png b/imgs/icons/193.png similarity index 100% rename from imgs/icons/13_12.png rename to imgs/icons/193.png diff --git a/imgs/icons/22_25.png b/imgs/icons/2028.png similarity index 100% rename from imgs/icons/22_25.png rename to imgs/icons/2028.png diff --git a/imgs/icons/22_26.png b/imgs/icons/2029.png similarity index 100% rename from imgs/icons/22_26.png rename to imgs/icons/2029.png diff --git a/imgs/icons/22_27.png b/imgs/icons/2030.png similarity index 100% rename from imgs/icons/22_27.png rename to imgs/icons/2030.png diff --git a/imgs/icons/22_28.png b/imgs/icons/2031.png similarity index 100% rename from imgs/icons/22_28.png rename to imgs/icons/2031.png diff --git a/imgs/icons/2037.png b/imgs/icons/2037.png new file mode 100644 index 000000000..ac8b6a90b Binary files /dev/null and b/imgs/icons/2037.png differ diff --git a/imgs/icons/2038.png b/imgs/icons/2038.png new file mode 100644 index 000000000..eff79fdc0 Binary files /dev/null and b/imgs/icons/2038.png differ diff --git a/imgs/icons/2039.png b/imgs/icons/2039.png new file mode 100644 index 000000000..b936e17fc Binary files /dev/null and b/imgs/icons/2039.png differ diff --git a/imgs/icons/2040.png b/imgs/icons/2040.png new file mode 100644 index 000000000..814c5f9d4 Binary files /dev/null and b/imgs/icons/2040.png differ diff --git a/imgs/icons/2041.png b/imgs/icons/2041.png new file mode 100644 index 000000000..a1115895a Binary files /dev/null and b/imgs/icons/2041.png differ diff --git a/imgs/icons/2042.png b/imgs/icons/2042.png new file mode 100644 index 000000000..350e65032 Binary files /dev/null and b/imgs/icons/2042.png differ diff --git a/imgs/icons/34_12.png b/imgs/icons/2053.png similarity index 100% rename from imgs/icons/34_12.png rename to imgs/icons/2053.png diff --git a/imgs/icons/34_15.png b/imgs/icons/2054.png similarity index 100% rename from imgs/icons/34_15.png rename to imgs/icons/2054.png diff --git a/imgs/icons/31_14.png b/imgs/icons/2060.png similarity index 100% rename from imgs/icons/31_14.png rename to imgs/icons/2060.png diff --git a/imgs/icons/31_15.png b/imgs/icons/2061.png similarity index 100% rename from imgs/icons/31_15.png rename to imgs/icons/2061.png diff --git a/imgs/icons/31_16.png b/imgs/icons/2062.png similarity index 100% rename from imgs/icons/31_16.png rename to imgs/icons/2062.png diff --git a/imgs/icons/34_16.png b/imgs/icons/2066.png similarity index 100% rename from imgs/icons/34_16.png rename to imgs/icons/2066.png diff --git a/imgs/icons/2093.png b/imgs/icons/2093.png new file mode 100644 index 000000000..22c30a5bd Binary files /dev/null and b/imgs/icons/2093.png differ diff --git a/imgs/icons/108_5.png b/imgs/icons/20939.png similarity index 100% rename from imgs/icons/108_5.png rename to imgs/icons/20939.png diff --git a/imgs/icons/2094.png b/imgs/icons/2094.png new file mode 100644 index 000000000..bdcd00cc6 Binary files /dev/null and b/imgs/icons/2094.png differ diff --git a/imgs/icons/108_6.png b/imgs/icons/20940.png similarity index 100% rename from imgs/icons/108_6.png rename to imgs/icons/20940.png diff --git a/imgs/icons/108_7.png b/imgs/icons/20941.png similarity index 100% rename from imgs/icons/108_7.png rename to imgs/icons/20941.png diff --git a/imgs/icons/108_8.png b/imgs/icons/20942.png similarity index 100% rename from imgs/icons/108_8.png rename to imgs/icons/20942.png diff --git a/imgs/icons/108_12.png b/imgs/icons/20943.png similarity index 100% rename from imgs/icons/108_12.png rename to imgs/icons/20943.png diff --git a/imgs/icons/108_13.png b/imgs/icons/20944.png similarity index 100% rename from imgs/icons/108_13.png rename to imgs/icons/20944.png diff --git a/imgs/icons/108_10.png b/imgs/icons/20945.png similarity index 100% rename from imgs/icons/108_10.png rename to imgs/icons/20945.png diff --git a/imgs/icons/108_11.png b/imgs/icons/20946.png similarity index 100% rename from imgs/icons/108_11.png rename to imgs/icons/20946.png diff --git a/imgs/icons/108_3.png b/imgs/icons/20947.png similarity index 100% rename from imgs/icons/108_3.png rename to imgs/icons/20947.png diff --git a/imgs/icons/108_4.png b/imgs/icons/20948.png similarity index 100% rename from imgs/icons/108_4.png rename to imgs/icons/20948.png diff --git a/imgs/icons/108_1.png b/imgs/icons/20949.png similarity index 100% rename from imgs/icons/108_1.png rename to imgs/icons/20949.png diff --git a/imgs/icons/2095.png b/imgs/icons/2095.png new file mode 100644 index 000000000..93651976c Binary files /dev/null and b/imgs/icons/2095.png differ diff --git a/imgs/icons/108_2.png b/imgs/icons/20950.png similarity index 100% rename from imgs/icons/108_2.png rename to imgs/icons/20950.png diff --git a/imgs/icons/108_20.png b/imgs/icons/20951.png similarity index 100% rename from imgs/icons/108_20.png rename to imgs/icons/20951.png diff --git a/imgs/icons/108_21.png b/imgs/icons/20952.png similarity index 100% rename from imgs/icons/108_21.png rename to imgs/icons/20952.png diff --git a/imgs/icons/108_18.png b/imgs/icons/20953.png similarity index 100% rename from imgs/icons/108_18.png rename to imgs/icons/20953.png diff --git a/imgs/icons/108_19.png b/imgs/icons/20954.png similarity index 100% rename from imgs/icons/108_19.png rename to imgs/icons/20954.png diff --git a/imgs/icons/108_16.png b/imgs/icons/20955.png similarity index 100% rename from imgs/icons/108_16.png rename to imgs/icons/20955.png diff --git a/imgs/icons/108_17.png b/imgs/icons/20956.png similarity index 100% rename from imgs/icons/108_17.png rename to imgs/icons/20956.png diff --git a/imgs/icons/108_14.png b/imgs/icons/20957.png similarity index 100% rename from imgs/icons/108_14.png rename to imgs/icons/20957.png diff --git a/imgs/icons/108_15.png b/imgs/icons/20958.png similarity index 100% rename from imgs/icons/108_15.png rename to imgs/icons/20958.png diff --git a/imgs/icons/marketicon_amarr.png b/imgs/icons/20959.png similarity index 100% rename from imgs/icons/marketicon_amarr.png rename to imgs/icons/20959.png diff --git a/imgs/icons/35_9.png b/imgs/icons/2096.png similarity index 100% rename from imgs/icons/35_9.png rename to imgs/icons/2096.png diff --git a/imgs/icons/marketicon_caldari.png b/imgs/icons/20966.png similarity index 100% rename from imgs/icons/marketicon_caldari.png rename to imgs/icons/20966.png diff --git a/imgs/icons/marketicon_gallente.png b/imgs/icons/20967.png similarity index 100% rename from imgs/icons/marketicon_gallente.png rename to imgs/icons/20967.png diff --git a/imgs/icons/marketicon_minmatar.png b/imgs/icons/20968.png similarity index 100% rename from imgs/icons/marketicon_minmatar.png rename to imgs/icons/20968.png diff --git a/imgs/icons/94_9.png b/imgs/icons/20969.png similarity index 100% rename from imgs/icons/94_9.png rename to imgs/icons/20969.png diff --git a/imgs/icons/53_16.png b/imgs/icons/20970.png similarity index 100% rename from imgs/icons/53_16.png rename to imgs/icons/20970.png diff --git a/imgs/icons/108_22.png b/imgs/icons/20971.png similarity index 100% rename from imgs/icons/108_22.png rename to imgs/icons/20971.png diff --git a/imgs/icons/icon_fireworks.png b/imgs/icons/20973.png similarity index 100% rename from imgs/icons/icon_fireworks.png rename to imgs/icons/20973.png diff --git a/imgs/icons/20974.png b/imgs/icons/20974.png new file mode 100644 index 000000000..d8f121cca Binary files /dev/null and b/imgs/icons/20974.png differ diff --git a/imgs/icons/20976.png b/imgs/icons/20976.png new file mode 100644 index 000000000..4f410cc6e Binary files /dev/null and b/imgs/icons/20976.png differ diff --git a/imgs/icons/20977.png b/imgs/icons/20977.png new file mode 100644 index 000000000..4e3c72b30 Binary files /dev/null and b/imgs/icons/20977.png differ diff --git a/imgs/icons/21.png b/imgs/icons/21.png new file mode 100644 index 000000000..6f939fd59 Binary files /dev/null and b/imgs/icons/21.png differ diff --git a/imgs/icons/2100.png b/imgs/icons/2100.png new file mode 100644 index 000000000..5804318d4 Binary files /dev/null and b/imgs/icons/2100.png differ diff --git a/imgs/icons/35_1.png b/imgs/icons/2101.png similarity index 100% rename from imgs/icons/35_1.png rename to imgs/icons/2101.png diff --git a/imgs/icons/2102.png b/imgs/icons/2102.png new file mode 100644 index 000000000..d6c1261e9 Binary files /dev/null and b/imgs/icons/2102.png differ diff --git a/imgs/icons/107_10.png b/imgs/icons/21025.png similarity index 100% rename from imgs/icons/107_10.png rename to imgs/icons/21025.png diff --git a/imgs/icons/107_11.png b/imgs/icons/21026.png similarity index 100% rename from imgs/icons/107_11.png rename to imgs/icons/21026.png diff --git a/imgs/icons/107_12.png b/imgs/icons/21027.png similarity index 100% rename from imgs/icons/107_12.png rename to imgs/icons/21027.png diff --git a/imgs/icons/21028.png b/imgs/icons/21028.png new file mode 100644 index 000000000..a209e6f06 Binary files /dev/null and b/imgs/icons/21028.png differ diff --git a/imgs/icons/21029.png b/imgs/icons/21029.png new file mode 100644 index 000000000..cb87a2bf2 Binary files /dev/null and b/imgs/icons/21029.png differ diff --git a/imgs/icons/2103.png b/imgs/icons/2103.png new file mode 100644 index 000000000..8829a179e Binary files /dev/null and b/imgs/icons/2103.png differ diff --git a/imgs/icons/21030.png b/imgs/icons/21030.png new file mode 100644 index 000000000..cdf41c8d5 Binary files /dev/null and b/imgs/icons/21030.png differ diff --git a/imgs/icons/21032.png b/imgs/icons/21032.png new file mode 100644 index 000000000..694a52a8a Binary files /dev/null and b/imgs/icons/21032.png differ diff --git a/imgs/icons/35_15.png b/imgs/icons/2104.png similarity index 100% rename from imgs/icons/35_15.png rename to imgs/icons/2104.png diff --git a/imgs/icons/107_4.png b/imgs/icons/21047.png similarity index 100% rename from imgs/icons/107_4.png rename to imgs/icons/21047.png diff --git a/imgs/icons/21048.png b/imgs/icons/21048.png new file mode 100644 index 000000000..dcc47ef22 Binary files /dev/null and b/imgs/icons/21048.png differ diff --git a/imgs/icons/35_14.png b/imgs/icons/2105.png similarity index 100% rename from imgs/icons/35_14.png rename to imgs/icons/2105.png diff --git a/imgs/icons/113_1.png b/imgs/icons/21057.png similarity index 100% rename from imgs/icons/113_1.png rename to imgs/icons/21057.png diff --git a/imgs/icons/113_2.png b/imgs/icons/21058.png similarity index 100% rename from imgs/icons/113_2.png rename to imgs/icons/21058.png diff --git a/imgs/icons/113_3.png b/imgs/icons/21059.png similarity index 100% rename from imgs/icons/113_3.png rename to imgs/icons/21059.png diff --git a/imgs/icons/35_12.png b/imgs/icons/2106.png similarity index 100% rename from imgs/icons/35_12.png rename to imgs/icons/2106.png diff --git a/imgs/icons/21060.png b/imgs/icons/21060.png new file mode 100644 index 000000000..b54a25bbe Binary files /dev/null and b/imgs/icons/21060.png differ diff --git a/imgs/icons/21061.png b/imgs/icons/21061.png new file mode 100644 index 000000000..a5bba6449 Binary files /dev/null and b/imgs/icons/21061.png differ diff --git a/imgs/icons/21062.png b/imgs/icons/21062.png new file mode 100644 index 000000000..ec41d08bb Binary files /dev/null and b/imgs/icons/21062.png differ diff --git a/imgs/icons/21063.png b/imgs/icons/21063.png new file mode 100644 index 000000000..2fe06b932 Binary files /dev/null and b/imgs/icons/21063.png differ diff --git a/imgs/icons/21064.png b/imgs/icons/21064.png new file mode 100644 index 000000000..217f4c049 Binary files /dev/null and b/imgs/icons/21064.png differ diff --git a/imgs/icons/21065.png b/imgs/icons/21065.png new file mode 100644 index 000000000..6ab2e1883 Binary files /dev/null and b/imgs/icons/21065.png differ diff --git a/imgs/icons/21066.png b/imgs/icons/21066.png new file mode 100644 index 000000000..15f9ea9b9 Binary files /dev/null and b/imgs/icons/21066.png differ diff --git a/imgs/icons/109_1.png b/imgs/icons/21074.png similarity index 100% rename from imgs/icons/109_1.png rename to imgs/icons/21074.png diff --git a/imgs/icons/109_2.png b/imgs/icons/21075.png similarity index 100% rename from imgs/icons/109_2.png rename to imgs/icons/21075.png diff --git a/imgs/icons/21078.png b/imgs/icons/21078.png new file mode 100644 index 000000000..ecfa6b73c Binary files /dev/null and b/imgs/icons/21078.png differ diff --git a/imgs/icons/21084.png b/imgs/icons/21084.png new file mode 100644 index 000000000..f09e1e7d0 Binary files /dev/null and b/imgs/icons/21084.png differ diff --git a/imgs/icons/21085.png b/imgs/icons/21085.png new file mode 100644 index 000000000..72a2c2fbc Binary files /dev/null and b/imgs/icons/21085.png differ diff --git a/imgs/icons/21086.png b/imgs/icons/21086.png new file mode 100644 index 000000000..83b2130ad Binary files /dev/null and b/imgs/icons/21086.png differ diff --git a/imgs/icons/21095.png b/imgs/icons/21095.png new file mode 100644 index 000000000..f8d8eddb2 Binary files /dev/null and b/imgs/icons/21095.png differ diff --git a/imgs/icons/21096.png b/imgs/icons/21096.png new file mode 100644 index 000000000..30b7dea4c Binary files /dev/null and b/imgs/icons/21096.png differ diff --git a/imgs/icons/21097.png b/imgs/icons/21097.png new file mode 100644 index 000000000..a8340de7e Binary files /dev/null and b/imgs/icons/21097.png differ diff --git a/imgs/icons/21098.png b/imgs/icons/21098.png new file mode 100644 index 000000000..f5a199dc4 Binary files /dev/null and b/imgs/icons/21098.png differ diff --git a/imgs/icons/21170.png b/imgs/icons/21170.png new file mode 100644 index 000000000..9644dc6b0 Binary files /dev/null and b/imgs/icons/21170.png differ diff --git a/imgs/icons/21186.png b/imgs/icons/21186.png new file mode 100644 index 000000000..4810dff9a Binary files /dev/null and b/imgs/icons/21186.png differ diff --git a/imgs/icons/21204.png b/imgs/icons/21204.png new file mode 100644 index 000000000..d4c2574cb Binary files /dev/null and b/imgs/icons/21204.png differ diff --git a/imgs/icons/21275.png b/imgs/icons/21275.png new file mode 100644 index 000000000..93716bde6 Binary files /dev/null and b/imgs/icons/21275.png differ diff --git a/imgs/icons/21335.png b/imgs/icons/21335.png new file mode 100644 index 000000000..dc7a2839e Binary files /dev/null and b/imgs/icons/21335.png differ diff --git a/imgs/icons/21336.png b/imgs/icons/21336.png new file mode 100644 index 000000000..f45b3f7f0 Binary files /dev/null and b/imgs/icons/21336.png differ diff --git a/imgs/icons/1337_22.png b/imgs/icons/21378.png similarity index 100% rename from imgs/icons/1337_22.png rename to imgs/icons/21378.png diff --git a/imgs/icons/1337_21.png b/imgs/icons/21379.png similarity index 100% rename from imgs/icons/1337_21.png rename to imgs/icons/21379.png diff --git a/imgs/icons/21380.png b/imgs/icons/21380.png new file mode 100644 index 000000000..80a05552e Binary files /dev/null and b/imgs/icons/21380.png differ diff --git a/imgs/icons/21381.png b/imgs/icons/21381.png new file mode 100644 index 000000000..6b049abe1 Binary files /dev/null and b/imgs/icons/21381.png differ diff --git a/imgs/icons/21382.png b/imgs/icons/21382.png new file mode 100644 index 000000000..b5999865e Binary files /dev/null and b/imgs/icons/21382.png differ diff --git a/imgs/icons/21383.png b/imgs/icons/21383.png new file mode 100644 index 000000000..43051b5a9 Binary files /dev/null and b/imgs/icons/21383.png differ diff --git a/imgs/icons/21408.png b/imgs/icons/21408.png new file mode 100644 index 000000000..f99638a0c Binary files /dev/null and b/imgs/icons/21408.png differ diff --git a/imgs/icons/119_1.png b/imgs/icons/21409.png similarity index 100% rename from imgs/icons/119_1.png rename to imgs/icons/21409.png diff --git a/imgs/icons/21417.png b/imgs/icons/21417.png new file mode 100644 index 000000000..8dafde77a Binary files /dev/null and b/imgs/icons/21417.png differ diff --git a/imgs/icons/21418.png b/imgs/icons/21418.png new file mode 100644 index 000000000..5dbf9d744 Binary files /dev/null and b/imgs/icons/21418.png differ diff --git a/imgs/icons/21419.png b/imgs/icons/21419.png new file mode 100644 index 000000000..8d23a7748 Binary files /dev/null and b/imgs/icons/21419.png differ diff --git a/imgs/icons/21420.png b/imgs/icons/21420.png new file mode 100644 index 000000000..fc02b120b Binary files /dev/null and b/imgs/icons/21420.png differ diff --git a/imgs/icons/118_7.png b/imgs/icons/21421.png similarity index 100% rename from imgs/icons/118_7.png rename to imgs/icons/21421.png diff --git a/imgs/icons/remote_repair.png b/imgs/icons/21426.png similarity index 100% rename from imgs/icons/remote_repair.png rename to imgs/icons/21426.png diff --git a/imgs/icons/remote_repairer.png b/imgs/icons/21428.png similarity index 100% rename from imgs/icons/remote_repairer.png rename to imgs/icons/21428.png diff --git a/imgs/icons/5_17.png b/imgs/icons/21437.png similarity index 100% rename from imgs/icons/5_17.png rename to imgs/icons/21437.png diff --git a/imgs/icons/5_18.png b/imgs/icons/21439.png similarity index 100% rename from imgs/icons/5_18.png rename to imgs/icons/21439.png diff --git a/imgs/icons/5_19.png b/imgs/icons/21440.png similarity index 100% rename from imgs/icons/5_19.png rename to imgs/icons/21440.png diff --git a/imgs/icons/5_20.png b/imgs/icons/21441.png similarity index 100% rename from imgs/icons/5_20.png rename to imgs/icons/21441.png diff --git a/imgs/icons/5_21.png b/imgs/icons/21442.png similarity index 100% rename from imgs/icons/5_21.png rename to imgs/icons/21442.png diff --git a/imgs/icons/21481.png b/imgs/icons/21481.png new file mode 100644 index 000000000..a023d10d7 Binary files /dev/null and b/imgs/icons/21481.png differ diff --git a/imgs/icons/21482.png b/imgs/icons/21482.png new file mode 100644 index 000000000..fbfd91d83 Binary files /dev/null and b/imgs/icons/21482.png differ diff --git a/imgs/icons/118_9.png b/imgs/icons/21483.png similarity index 100% rename from imgs/icons/118_9.png rename to imgs/icons/21483.png diff --git a/imgs/icons/118_10.png b/imgs/icons/21484.png similarity index 100% rename from imgs/icons/118_10.png rename to imgs/icons/21484.png diff --git a/imgs/icons/118_11.png b/imgs/icons/21485.png similarity index 100% rename from imgs/icons/118_11.png rename to imgs/icons/21485.png diff --git a/imgs/icons/118_13.png b/imgs/icons/21486.png similarity index 100% rename from imgs/icons/118_13.png rename to imgs/icons/21486.png diff --git a/imgs/icons/118_14.png b/imgs/icons/21487.png similarity index 100% rename from imgs/icons/118_14.png rename to imgs/icons/21487.png diff --git a/imgs/icons/118_2.png b/imgs/icons/21489.png similarity index 100% rename from imgs/icons/118_2.png rename to imgs/icons/21489.png diff --git a/imgs/icons/118_12.png b/imgs/icons/21513.png similarity index 100% rename from imgs/icons/118_12.png rename to imgs/icons/21513.png diff --git a/imgs/icons/21530.png b/imgs/icons/21530.png new file mode 100644 index 000000000..c19c2f42c Binary files /dev/null and b/imgs/icons/21530.png differ diff --git a/imgs/icons/21531.png b/imgs/icons/21531.png new file mode 100644 index 000000000..a2c105b98 Binary files /dev/null and b/imgs/icons/21531.png differ diff --git a/imgs/icons/21532.png b/imgs/icons/21532.png new file mode 100644 index 000000000..57508b031 Binary files /dev/null and b/imgs/icons/21532.png differ diff --git a/imgs/icons/21533.png b/imgs/icons/21533.png new file mode 100644 index 000000000..aa299a123 Binary files /dev/null and b/imgs/icons/21533.png differ diff --git a/imgs/icons/21534.png b/imgs/icons/21534.png new file mode 100644 index 000000000..abea9ce60 Binary files /dev/null and b/imgs/icons/21534.png differ diff --git a/imgs/icons/123_6.png b/imgs/icons/21561.png similarity index 100% rename from imgs/icons/123_6.png rename to imgs/icons/21561.png diff --git a/imgs/icons/123_9.png b/imgs/icons/21564.png similarity index 100% rename from imgs/icons/123_9.png rename to imgs/icons/21564.png diff --git a/imgs/icons/123_10.png b/imgs/icons/21565.png similarity index 100% rename from imgs/icons/123_10.png rename to imgs/icons/21565.png diff --git a/imgs/icons/123_11.png b/imgs/icons/21566.png similarity index 100% rename from imgs/icons/123_11.png rename to imgs/icons/21566.png diff --git a/imgs/icons/124_5.png b/imgs/icons/21567.png similarity index 100% rename from imgs/icons/124_5.png rename to imgs/icons/21567.png diff --git a/imgs/icons/124_6.png b/imgs/icons/21568.png similarity index 100% rename from imgs/icons/124_6.png rename to imgs/icons/21568.png diff --git a/imgs/icons/124_7.png b/imgs/icons/21569.png similarity index 100% rename from imgs/icons/124_7.png rename to imgs/icons/21569.png diff --git a/imgs/icons/124_9.png b/imgs/icons/21570.png similarity index 100% rename from imgs/icons/124_9.png rename to imgs/icons/21570.png diff --git a/imgs/icons/124_10.png b/imgs/icons/21571.png similarity index 100% rename from imgs/icons/124_10.png rename to imgs/icons/21571.png diff --git a/imgs/icons/124_14.png b/imgs/icons/21574.png similarity index 100% rename from imgs/icons/124_14.png rename to imgs/icons/21574.png diff --git a/imgs/icons/124_15.png b/imgs/icons/21575.png similarity index 100% rename from imgs/icons/124_15.png rename to imgs/icons/21575.png diff --git a/imgs/icons/125_1.png b/imgs/icons/21581.png similarity index 100% rename from imgs/icons/125_1.png rename to imgs/icons/21581.png diff --git a/imgs/icons/126_1.png b/imgs/icons/21593.png similarity index 100% rename from imgs/icons/126_1.png rename to imgs/icons/21593.png diff --git a/imgs/icons/127_9.png b/imgs/icons/21594.png similarity index 100% rename from imgs/icons/127_9.png rename to imgs/icons/21594.png diff --git a/imgs/icons/127_2.png b/imgs/icons/21595.png similarity index 100% rename from imgs/icons/127_2.png rename to imgs/icons/21595.png diff --git a/imgs/icons/127_1.png b/imgs/icons/21596.png similarity index 100% rename from imgs/icons/127_1.png rename to imgs/icons/21596.png diff --git a/imgs/icons/127_3.png b/imgs/icons/21597.png similarity index 100% rename from imgs/icons/127_3.png rename to imgs/icons/21597.png diff --git a/imgs/icons/127_4.png b/imgs/icons/21598.png similarity index 100% rename from imgs/icons/127_4.png rename to imgs/icons/21598.png diff --git a/imgs/icons/127_5.png b/imgs/icons/21599.png similarity index 100% rename from imgs/icons/127_5.png rename to imgs/icons/21599.png diff --git a/imgs/icons/127_10.png b/imgs/icons/21601.png similarity index 100% rename from imgs/icons/127_10.png rename to imgs/icons/21601.png diff --git a/imgs/icons/127_7.png b/imgs/icons/21602.png similarity index 100% rename from imgs/icons/127_7.png rename to imgs/icons/21602.png diff --git a/imgs/icons/emergencyhullenergizer.png b/imgs/icons/21603.png similarity index 100% rename from imgs/icons/emergencyhullenergizer.png rename to imgs/icons/21603.png diff --git a/imgs/icons/burstprojectorecm.png b/imgs/icons/21604.png similarity index 100% rename from imgs/icons/burstprojectorecm.png rename to imgs/icons/21604.png diff --git a/imgs/icons/burstprojectorenergyneutralization.png b/imgs/icons/21605.png similarity index 100% rename from imgs/icons/burstprojectorenergyneutralization.png rename to imgs/icons/21605.png diff --git a/imgs/icons/burstprojectorsensordampening.png b/imgs/icons/21607.png similarity index 100% rename from imgs/icons/burstprojectorsensordampening.png rename to imgs/icons/21607.png diff --git a/imgs/icons/burstprojectorstasiswebification.png b/imgs/icons/21608.png similarity index 100% rename from imgs/icons/burstprojectorstasiswebification.png rename to imgs/icons/21608.png diff --git a/imgs/icons/burstprojectortargetillumination.png b/imgs/icons/21609.png similarity index 100% rename from imgs/icons/burstprojectortargetillumination.png rename to imgs/icons/21609.png diff --git a/imgs/icons/burstprojectortrackingdisruption.png b/imgs/icons/21610.png similarity index 100% rename from imgs/icons/burstprojectortrackingdisruption.png rename to imgs/icons/21610.png diff --git a/imgs/icons/burstprojectorwarpdisruption.png b/imgs/icons/21611.png similarity index 100% rename from imgs/icons/burstprojectorwarpdisruption.png rename to imgs/icons/21611.png diff --git a/imgs/icons/multiuseanalyzer_64.png b/imgs/icons/21618.png similarity index 100% rename from imgs/icons/multiuseanalyzer_64.png rename to imgs/icons/21618.png diff --git a/imgs/icons/21620.png b/imgs/icons/21620.png new file mode 100644 index 000000000..400b0ab5e Binary files /dev/null and b/imgs/icons/21620.png differ diff --git a/imgs/icons/21621.png b/imgs/icons/21621.png new file mode 100644 index 000000000..395aa17ec Binary files /dev/null and b/imgs/icons/21621.png differ diff --git a/imgs/icons/21622.png b/imgs/icons/21622.png new file mode 100644 index 000000000..d2a633065 Binary files /dev/null and b/imgs/icons/21622.png differ diff --git a/imgs/icons/titangeneratoramarr.png b/imgs/icons/21683.png similarity index 100% rename from imgs/icons/titangeneratoramarr.png rename to imgs/icons/21683.png diff --git a/imgs/icons/titangeneratorcaldari.png b/imgs/icons/21684.png similarity index 100% rename from imgs/icons/titangeneratorcaldari.png rename to imgs/icons/21684.png diff --git a/imgs/icons/titangeneratorgallente.png b/imgs/icons/21685.png similarity index 100% rename from imgs/icons/titangeneratorgallente.png rename to imgs/icons/21685.png diff --git a/imgs/icons/titangeneratorminmatar.png b/imgs/icons/21686.png similarity index 100% rename from imgs/icons/titangeneratorminmatar.png rename to imgs/icons/21686.png diff --git a/imgs/icons/fleetboost_armorbase.png b/imgs/icons/21687.png similarity index 100% rename from imgs/icons/fleetboost_armorbase.png rename to imgs/icons/21687.png diff --git a/imgs/icons/fleetboost_armorbuffer.png b/imgs/icons/21688.png similarity index 100% rename from imgs/icons/fleetboost_armorbuffer.png rename to imgs/icons/21688.png diff --git a/imgs/icons/fleetboost_armorrepair.png b/imgs/icons/21689.png similarity index 100% rename from imgs/icons/fleetboost_armorrepair.png rename to imgs/icons/21689.png diff --git a/imgs/icons/fleetboost_armorresists.png b/imgs/icons/21690.png similarity index 100% rename from imgs/icons/fleetboost_armorresists.png rename to imgs/icons/21690.png diff --git a/imgs/icons/fleetboost_infobase.png b/imgs/icons/21691.png similarity index 100% rename from imgs/icons/fleetboost_infobase.png rename to imgs/icons/21691.png diff --git a/imgs/icons/fleetboost_infoewar.png b/imgs/icons/21692.png similarity index 100% rename from imgs/icons/fleetboost_infoewar.png rename to imgs/icons/21692.png diff --git a/imgs/icons/fleetboost_infosensors.png b/imgs/icons/21693.png similarity index 100% rename from imgs/icons/fleetboost_infosensors.png rename to imgs/icons/21693.png diff --git a/imgs/icons/fleetboost_infotargeting.png b/imgs/icons/21694.png similarity index 100% rename from imgs/icons/fleetboost_infotargeting.png rename to imgs/icons/21694.png diff --git a/imgs/icons/fleetboost_miningbase.png b/imgs/icons/21695.png similarity index 100% rename from imgs/icons/fleetboost_miningbase.png rename to imgs/icons/21695.png diff --git a/imgs/icons/fleetboost_miningcrystal.png b/imgs/icons/21696.png similarity index 100% rename from imgs/icons/fleetboost_miningcrystal.png rename to imgs/icons/21696.png diff --git a/imgs/icons/fleetboost_miningcycle.png b/imgs/icons/21698.png similarity index 100% rename from imgs/icons/fleetboost_miningcycle.png rename to imgs/icons/21698.png diff --git a/imgs/icons/fleetboost_miningrange.png b/imgs/icons/21699.png similarity index 100% rename from imgs/icons/fleetboost_miningrange.png rename to imgs/icons/21699.png diff --git a/imgs/icons/fleetboost_shieldbase.png b/imgs/icons/21700.png similarity index 100% rename from imgs/icons/fleetboost_shieldbase.png rename to imgs/icons/21700.png diff --git a/imgs/icons/fleetboost_shieldbuffer.png b/imgs/icons/21701.png similarity index 100% rename from imgs/icons/fleetboost_shieldbuffer.png rename to imgs/icons/21701.png diff --git a/imgs/icons/fleetboost_shieldrepair.png b/imgs/icons/21702.png similarity index 100% rename from imgs/icons/fleetboost_shieldrepair.png rename to imgs/icons/21702.png diff --git a/imgs/icons/fleetboost_shieldresists.png b/imgs/icons/21703.png similarity index 100% rename from imgs/icons/fleetboost_shieldresists.png rename to imgs/icons/21703.png diff --git a/imgs/icons/fleetboost_skirmishbase.png b/imgs/icons/21704.png similarity index 100% rename from imgs/icons/fleetboost_skirmishbase.png rename to imgs/icons/21704.png diff --git a/imgs/icons/fleetboost_skirmishsignature.png b/imgs/icons/21705.png similarity index 100% rename from imgs/icons/fleetboost_skirmishsignature.png rename to imgs/icons/21705.png diff --git a/imgs/icons/fleetboost_skirmishspeed.png b/imgs/icons/21706.png similarity index 100% rename from imgs/icons/fleetboost_skirmishspeed.png rename to imgs/icons/21706.png diff --git a/imgs/icons/fleetboost_skirmishweb.png b/imgs/icons/21707.png similarity index 100% rename from imgs/icons/fleetboost_skirmishweb.png rename to imgs/icons/21707.png diff --git a/imgs/icons/21725.png b/imgs/icons/21725.png new file mode 100644 index 000000000..4d8902f8a Binary files /dev/null and b/imgs/icons/21725.png differ diff --git a/imgs/icons/127_8.png b/imgs/icons/21729.png similarity index 100% rename from imgs/icons/127_8.png rename to imgs/icons/21729.png diff --git a/imgs/icons/panicmodule.png b/imgs/icons/21730.png similarity index 100% rename from imgs/icons/panicmodule.png rename to imgs/icons/21730.png diff --git a/imgs/icons/21731.png b/imgs/icons/21731.png new file mode 100644 index 000000000..674373a7e Binary files /dev/null and b/imgs/icons/21731.png differ diff --git a/imgs/icons/21741.png b/imgs/icons/21741.png new file mode 100644 index 000000000..7309dae24 Binary files /dev/null and b/imgs/icons/21741.png differ diff --git a/imgs/icons/21742.png b/imgs/icons/21742.png new file mode 100644 index 000000000..54066e4fc Binary files /dev/null and b/imgs/icons/21742.png differ diff --git a/imgs/icons/118_15.png b/imgs/icons/21743.png similarity index 100% rename from imgs/icons/118_15.png rename to imgs/icons/21743.png diff --git a/imgs/icons/2176.png b/imgs/icons/2176.png new file mode 100644 index 000000000..f8f217853 Binary files /dev/null and b/imgs/icons/2176.png differ diff --git a/imgs/icons/2177.png b/imgs/icons/2177.png new file mode 100644 index 000000000..274d26409 Binary files /dev/null and b/imgs/icons/2177.png differ diff --git a/imgs/icons/128_1.png b/imgs/icons/21774.png similarity index 100% rename from imgs/icons/128_1.png rename to imgs/icons/21774.png diff --git a/imgs/icons/2178.png b/imgs/icons/2178.png new file mode 100644 index 000000000..d2155a736 Binary files /dev/null and b/imgs/icons/2178.png differ diff --git a/imgs/icons/21783.png b/imgs/icons/21783.png new file mode 100644 index 000000000..71f2688b2 Binary files /dev/null and b/imgs/icons/21783.png differ diff --git a/imgs/icons/21784.png b/imgs/icons/21784.png new file mode 100644 index 000000000..8664c9006 Binary files /dev/null and b/imgs/icons/21784.png differ diff --git a/imgs/icons/refinery_chunkstabilization.png b/imgs/icons/21787.png similarity index 100% rename from imgs/icons/refinery_chunkstabilization.png rename to imgs/icons/21787.png diff --git a/imgs/icons/refinery_miningyield.png b/imgs/icons/21788.png similarity index 100% rename from imgs/icons/refinery_miningyield.png rename to imgs/icons/21788.png diff --git a/imgs/icons/refinery_boosterreactions.png b/imgs/icons/21789.png similarity index 100% rename from imgs/icons/refinery_boosterreactions.png rename to imgs/icons/21789.png diff --git a/imgs/icons/2179.png b/imgs/icons/2179.png new file mode 100644 index 000000000..df438c982 Binary files /dev/null and b/imgs/icons/2179.png differ diff --git a/imgs/icons/refinery_hybridreactions.png b/imgs/icons/21790.png similarity index 100% rename from imgs/icons/refinery_hybridreactions.png rename to imgs/icons/21790.png diff --git a/imgs/icons/refinery_t2reactions.png b/imgs/icons/21791.png similarity index 100% rename from imgs/icons/refinery_t2reactions.png rename to imgs/icons/21791.png diff --git a/imgs/icons/21792.png b/imgs/icons/21792.png new file mode 100644 index 000000000..ade482a72 Binary files /dev/null and b/imgs/icons/21792.png differ diff --git a/imgs/icons/21793.png b/imgs/icons/21793.png new file mode 100644 index 000000000..dbb276d47 Binary files /dev/null and b/imgs/icons/21793.png differ diff --git a/imgs/icons/21794.png b/imgs/icons/21794.png new file mode 100644 index 000000000..19a30961d Binary files /dev/null and b/imgs/icons/21794.png differ diff --git a/imgs/icons/21795.png b/imgs/icons/21795.png new file mode 100644 index 000000000..58a8e88f2 Binary files /dev/null and b/imgs/icons/21795.png differ diff --git a/imgs/icons/21796.png b/imgs/icons/21796.png new file mode 100644 index 000000000..3f0d61e3f Binary files /dev/null and b/imgs/icons/21796.png differ diff --git a/imgs/icons/21797.png b/imgs/icons/21797.png new file mode 100644 index 000000000..3fece2292 Binary files /dev/null and b/imgs/icons/21797.png differ diff --git a/imgs/icons/21798.png b/imgs/icons/21798.png new file mode 100644 index 000000000..7c9c8ccfd Binary files /dev/null and b/imgs/icons/21798.png differ diff --git a/imgs/icons/21799.png b/imgs/icons/21799.png new file mode 100644 index 000000000..6d6141075 Binary files /dev/null and b/imgs/icons/21799.png differ diff --git a/imgs/icons/2180.png b/imgs/icons/2180.png new file mode 100644 index 000000000..ceb87a92f Binary files /dev/null and b/imgs/icons/2180.png differ diff --git a/imgs/icons/21800.png b/imgs/icons/21800.png new file mode 100644 index 000000000..4c9edda62 Binary files /dev/null and b/imgs/icons/21800.png differ diff --git a/imgs/icons/21801.png b/imgs/icons/21801.png new file mode 100644 index 000000000..3720a3046 Binary files /dev/null and b/imgs/icons/21801.png differ diff --git a/imgs/icons/2181.png b/imgs/icons/2181.png new file mode 100644 index 000000000..963d789fb Binary files /dev/null and b/imgs/icons/2181.png differ diff --git a/imgs/icons/2182.png b/imgs/icons/2182.png new file mode 100644 index 000000000..78b37241f Binary files /dev/null and b/imgs/icons/2182.png differ diff --git a/imgs/icons/21829.png b/imgs/icons/21829.png new file mode 100644 index 000000000..75a8f7391 Binary files /dev/null and b/imgs/icons/21829.png differ diff --git a/imgs/icons/2183.png b/imgs/icons/2183.png new file mode 100644 index 000000000..7604edeb8 Binary files /dev/null and b/imgs/icons/2183.png differ diff --git a/imgs/icons/21832.png b/imgs/icons/21832.png new file mode 100644 index 000000000..c2781e73f Binary files /dev/null and b/imgs/icons/21832.png differ diff --git a/imgs/icons/21835.png b/imgs/icons/21835.png new file mode 100644 index 000000000..96b174d0b Binary files /dev/null and b/imgs/icons/21835.png differ diff --git a/imgs/icons/21839.png b/imgs/icons/21839.png new file mode 100644 index 000000000..6b80db00d Binary files /dev/null and b/imgs/icons/21839.png differ diff --git a/imgs/icons/2184.png b/imgs/icons/2184.png new file mode 100644 index 000000000..cb6a55c46 Binary files /dev/null and b/imgs/icons/2184.png differ diff --git a/imgs/icons/21840.png b/imgs/icons/21840.png new file mode 100644 index 000000000..b08c44e15 Binary files /dev/null and b/imgs/icons/21840.png differ diff --git a/imgs/icons/21841.png b/imgs/icons/21841.png new file mode 100644 index 000000000..2077205a7 Binary files /dev/null and b/imgs/icons/21841.png differ diff --git a/imgs/icons/21843.png b/imgs/icons/21843.png new file mode 100644 index 000000000..8cb2c852b Binary files /dev/null and b/imgs/icons/21843.png differ diff --git a/imgs/icons/21844.png b/imgs/icons/21844.png new file mode 100644 index 000000000..7ca97b872 Binary files /dev/null and b/imgs/icons/21844.png differ diff --git a/imgs/icons/2185.png b/imgs/icons/2185.png new file mode 100644 index 000000000..addb46ab4 Binary files /dev/null and b/imgs/icons/2185.png differ diff --git a/imgs/icons/2186.png b/imgs/icons/2186.png new file mode 100644 index 000000000..f35fcf3b5 Binary files /dev/null and b/imgs/icons/2186.png differ diff --git a/imgs/icons/assaultdamagecontrol.png b/imgs/icons/21860.png similarity index 100% rename from imgs/icons/assaultdamagecontrol.png rename to imgs/icons/21860.png diff --git a/imgs/icons/2187.png b/imgs/icons/2187.png new file mode 100644 index 000000000..f01d69f39 Binary files /dev/null and b/imgs/icons/2187.png differ diff --git a/imgs/icons/2188.png b/imgs/icons/2188.png new file mode 100644 index 000000000..4615e8eec Binary files /dev/null and b/imgs/icons/2188.png differ diff --git a/imgs/icons/2189.png b/imgs/icons/2189.png new file mode 100644 index 000000000..822d09c52 Binary files /dev/null and b/imgs/icons/2189.png differ diff --git a/imgs/icons/21891.png b/imgs/icons/21891.png new file mode 100644 index 000000000..2d78246c8 Binary files /dev/null and b/imgs/icons/21891.png differ diff --git a/imgs/icons/21898.png b/imgs/icons/21898.png new file mode 100644 index 000000000..1cc9b607b Binary files /dev/null and b/imgs/icons/21898.png differ diff --git a/imgs/icons/2190.png b/imgs/icons/2190.png new file mode 100644 index 000000000..edf770074 Binary files /dev/null and b/imgs/icons/2190.png differ diff --git a/imgs/icons/21903.png b/imgs/icons/21903.png new file mode 100644 index 000000000..20fe8d0bd Binary files /dev/null and b/imgs/icons/21903.png differ diff --git a/imgs/icons/21904.png b/imgs/icons/21904.png new file mode 100644 index 000000000..cef04ef69 Binary files /dev/null and b/imgs/icons/21904.png differ diff --git a/imgs/icons/21905.png b/imgs/icons/21905.png new file mode 100644 index 000000000..915da572a Binary files /dev/null and b/imgs/icons/21905.png differ diff --git a/imgs/icons/21906.png b/imgs/icons/21906.png new file mode 100644 index 000000000..32dfd3da7 Binary files /dev/null and b/imgs/icons/21906.png differ diff --git a/imgs/icons/21907.png b/imgs/icons/21907.png new file mode 100644 index 000000000..9c92dd6a1 Binary files /dev/null and b/imgs/icons/21907.png differ diff --git a/imgs/icons/2191.png b/imgs/icons/2191.png new file mode 100644 index 000000000..47bc2ec2a Binary files /dev/null and b/imgs/icons/2191.png differ diff --git a/imgs/icons/21916.png b/imgs/icons/21916.png new file mode 100644 index 000000000..860b8b7d4 Binary files /dev/null and b/imgs/icons/21916.png differ diff --git a/imgs/icons/21917.png b/imgs/icons/21917.png new file mode 100644 index 000000000..6d0770031 Binary files /dev/null and b/imgs/icons/21917.png differ diff --git a/imgs/icons/21918.png b/imgs/icons/21918.png new file mode 100644 index 000000000..a6edffdaa Binary files /dev/null and b/imgs/icons/21918.png differ diff --git a/imgs/icons/21919.png b/imgs/icons/21919.png new file mode 100644 index 000000000..4fa31b09a Binary files /dev/null and b/imgs/icons/21919.png differ diff --git a/imgs/icons/2192.png b/imgs/icons/2192.png new file mode 100644 index 000000000..e89e17f0a Binary files /dev/null and b/imgs/icons/2192.png differ diff --git a/imgs/icons/21920.png b/imgs/icons/21920.png new file mode 100644 index 000000000..e28bf6372 Binary files /dev/null and b/imgs/icons/21920.png differ diff --git a/imgs/icons/disintegratorcannonl.png b/imgs/icons/21921.png similarity index 100% rename from imgs/icons/disintegratorcannonl.png rename to imgs/icons/21921.png diff --git a/imgs/icons/disintegratorcannonm.png b/imgs/icons/21922.png similarity index 100% rename from imgs/icons/disintegratorcannonm.png rename to imgs/icons/21922.png diff --git a/imgs/icons/disintegratorcannons.png b/imgs/icons/21923.png similarity index 100% rename from imgs/icons/disintegratorcannons.png rename to imgs/icons/21923.png diff --git a/imgs/icons/21924.png b/imgs/icons/21924.png new file mode 100644 index 000000000..727636e2c Binary files /dev/null and b/imgs/icons/21924.png differ diff --git a/imgs/icons/21925.png b/imgs/icons/21925.png new file mode 100644 index 000000000..819e075bf Binary files /dev/null and b/imgs/icons/21925.png differ diff --git a/imgs/icons/21926.png b/imgs/icons/21926.png new file mode 100644 index 000000000..7bfeb6f42 Binary files /dev/null and b/imgs/icons/21926.png differ diff --git a/imgs/icons/21927.png b/imgs/icons/21927.png new file mode 100644 index 000000000..11e4cc6f9 Binary files /dev/null and b/imgs/icons/21927.png differ diff --git a/imgs/icons/21928.png b/imgs/icons/21928.png new file mode 100644 index 000000000..8bccf772c Binary files /dev/null and b/imgs/icons/21928.png differ diff --git a/imgs/icons/2193.png b/imgs/icons/2193.png new file mode 100644 index 000000000..f1a8d450c Binary files /dev/null and b/imgs/icons/2193.png differ diff --git a/imgs/icons/2194.png b/imgs/icons/2194.png new file mode 100644 index 000000000..22c74cdd6 Binary files /dev/null and b/imgs/icons/2194.png differ diff --git a/imgs/icons/2195.png b/imgs/icons/2195.png new file mode 100644 index 000000000..91e813909 Binary files /dev/null and b/imgs/icons/2195.png differ diff --git a/imgs/icons/2196.png b/imgs/icons/2196.png new file mode 100644 index 000000000..6519c0f8e Binary files /dev/null and b/imgs/icons/2196.png differ diff --git a/imgs/icons/2197.png b/imgs/icons/2197.png new file mode 100644 index 000000000..69b478173 Binary files /dev/null and b/imgs/icons/2197.png differ diff --git a/imgs/icons/2198.png b/imgs/icons/2198.png new file mode 100644 index 000000000..6908e7aea Binary files /dev/null and b/imgs/icons/2198.png differ diff --git a/imgs/icons/21980.png b/imgs/icons/21980.png new file mode 100644 index 000000000..a6106c06b Binary files /dev/null and b/imgs/icons/21980.png differ diff --git a/imgs/icons/21981.png b/imgs/icons/21981.png new file mode 100644 index 000000000..38ba32ef5 Binary files /dev/null and b/imgs/icons/21981.png differ diff --git a/imgs/icons/21982.png b/imgs/icons/21982.png new file mode 100644 index 000000000..eea25ce63 Binary files /dev/null and b/imgs/icons/21982.png differ diff --git a/imgs/icons/21983.png b/imgs/icons/21983.png new file mode 100644 index 000000000..7fc535e92 Binary files /dev/null and b/imgs/icons/21983.png differ diff --git a/imgs/icons/21984.png b/imgs/icons/21984.png new file mode 100644 index 000000000..2b92aaffd Binary files /dev/null and b/imgs/icons/21984.png differ diff --git a/imgs/icons/21985.png b/imgs/icons/21985.png new file mode 100644 index 000000000..1f7634e09 Binary files /dev/null and b/imgs/icons/21985.png differ diff --git a/imgs/icons/21986.png b/imgs/icons/21986.png new file mode 100644 index 000000000..6cdb7af13 Binary files /dev/null and b/imgs/icons/21986.png differ diff --git a/imgs/icons/21987.png b/imgs/icons/21987.png new file mode 100644 index 000000000..392eb57ff Binary files /dev/null and b/imgs/icons/21987.png differ diff --git a/imgs/icons/21989.png b/imgs/icons/21989.png new file mode 100644 index 000000000..4222f787b Binary files /dev/null and b/imgs/icons/21989.png differ diff --git a/imgs/icons/2199.png b/imgs/icons/2199.png new file mode 100644 index 000000000..a39b17640 Binary files /dev/null and b/imgs/icons/2199.png differ diff --git a/imgs/icons/21990.png b/imgs/icons/21990.png new file mode 100644 index 000000000..033675a50 Binary files /dev/null and b/imgs/icons/21990.png differ diff --git a/imgs/icons/21991.png b/imgs/icons/21991.png new file mode 100644 index 000000000..e1f82f0c5 Binary files /dev/null and b/imgs/icons/21991.png differ diff --git a/imgs/icons/21992.png b/imgs/icons/21992.png new file mode 100644 index 000000000..0a7e7a3da Binary files /dev/null and b/imgs/icons/21992.png differ diff --git a/imgs/icons/21993.png b/imgs/icons/21993.png new file mode 100644 index 000000000..af740ae93 Binary files /dev/null and b/imgs/icons/21993.png differ diff --git a/imgs/icons/21994.png b/imgs/icons/21994.png new file mode 100644 index 000000000..2fb38766b Binary files /dev/null and b/imgs/icons/21994.png differ diff --git a/imgs/icons/21995.png b/imgs/icons/21995.png new file mode 100644 index 000000000..95637ed81 Binary files /dev/null and b/imgs/icons/21995.png differ diff --git a/imgs/icons/21996.png b/imgs/icons/21996.png new file mode 100644 index 000000000..f5069dee4 Binary files /dev/null and b/imgs/icons/21996.png differ diff --git a/imgs/icons/21997.png b/imgs/icons/21997.png new file mode 100644 index 000000000..66d550d34 Binary files /dev/null and b/imgs/icons/21997.png differ diff --git a/imgs/icons/21998.png b/imgs/icons/21998.png new file mode 100644 index 000000000..1975bd9cf Binary files /dev/null and b/imgs/icons/21998.png differ diff --git a/imgs/icons/22.png b/imgs/icons/22.png new file mode 100644 index 000000000..1984eb339 Binary files /dev/null and b/imgs/icons/22.png differ diff --git a/imgs/icons/2200.png b/imgs/icons/2200.png new file mode 100644 index 000000000..187de507b Binary files /dev/null and b/imgs/icons/2200.png differ diff --git a/imgs/icons/22000.png b/imgs/icons/22000.png new file mode 100644 index 000000000..fc2b6e23f Binary files /dev/null and b/imgs/icons/22000.png differ diff --git a/imgs/icons/22001.png b/imgs/icons/22001.png new file mode 100644 index 000000000..6652d93da Binary files /dev/null and b/imgs/icons/22001.png differ diff --git a/imgs/icons/22002.png b/imgs/icons/22002.png new file mode 100644 index 000000000..742225a90 Binary files /dev/null and b/imgs/icons/22002.png differ diff --git a/imgs/icons/22003.png b/imgs/icons/22003.png new file mode 100644 index 000000000..f0e3afbcf Binary files /dev/null and b/imgs/icons/22003.png differ diff --git a/imgs/icons/22004.png b/imgs/icons/22004.png new file mode 100644 index 000000000..6b9da0ca7 Binary files /dev/null and b/imgs/icons/22004.png differ diff --git a/imgs/icons/22005.png b/imgs/icons/22005.png new file mode 100644 index 000000000..bde8369f5 Binary files /dev/null and b/imgs/icons/22005.png differ diff --git a/imgs/icons/22006.png b/imgs/icons/22006.png new file mode 100644 index 000000000..535d46be2 Binary files /dev/null and b/imgs/icons/22006.png differ diff --git a/imgs/icons/22007.png b/imgs/icons/22007.png new file mode 100644 index 000000000..c4f08eeb4 Binary files /dev/null and b/imgs/icons/22007.png differ diff --git a/imgs/icons/22008.png b/imgs/icons/22008.png new file mode 100644 index 000000000..4111d0614 Binary files /dev/null and b/imgs/icons/22008.png differ diff --git a/imgs/icons/22009.png b/imgs/icons/22009.png new file mode 100644 index 000000000..c0bf58f31 Binary files /dev/null and b/imgs/icons/22009.png differ diff --git a/imgs/icons/2201.png b/imgs/icons/2201.png new file mode 100644 index 000000000..90294d1b6 Binary files /dev/null and b/imgs/icons/2201.png differ diff --git a/imgs/icons/22011.png b/imgs/icons/22011.png new file mode 100644 index 000000000..2576c3916 Binary files /dev/null and b/imgs/icons/22011.png differ diff --git a/imgs/icons/22012.png b/imgs/icons/22012.png new file mode 100644 index 000000000..69fd52998 Binary files /dev/null and b/imgs/icons/22012.png differ diff --git a/imgs/icons/22013.png b/imgs/icons/22013.png new file mode 100644 index 000000000..f24221f15 Binary files /dev/null and b/imgs/icons/22013.png differ diff --git a/imgs/icons/22014.png b/imgs/icons/22014.png new file mode 100644 index 000000000..36b5462f9 Binary files /dev/null and b/imgs/icons/22014.png differ diff --git a/imgs/icons/22016.png b/imgs/icons/22016.png new file mode 100644 index 000000000..4f4fdde46 Binary files /dev/null and b/imgs/icons/22016.png differ diff --git a/imgs/icons/22018.png b/imgs/icons/22018.png new file mode 100644 index 000000000..06a14e070 Binary files /dev/null and b/imgs/icons/22018.png differ diff --git a/imgs/icons/2202.png b/imgs/icons/2202.png new file mode 100644 index 000000000..0ea3a59b1 Binary files /dev/null and b/imgs/icons/2202.png differ diff --git a/imgs/icons/22020.png b/imgs/icons/22020.png new file mode 100644 index 000000000..1bc6bbb69 Binary files /dev/null and b/imgs/icons/22020.png differ diff --git a/imgs/icons/2203.png b/imgs/icons/2203.png new file mode 100644 index 000000000..69a3de595 Binary files /dev/null and b/imgs/icons/2203.png differ diff --git a/imgs/icons/2204.png b/imgs/icons/2204.png new file mode 100644 index 000000000..071a54d87 Binary files /dev/null and b/imgs/icons/2204.png differ diff --git a/imgs/icons/2206.png b/imgs/icons/2206.png new file mode 100644 index 000000000..b923f669b Binary files /dev/null and b/imgs/icons/2206.png differ diff --git a/imgs/icons/2209.png b/imgs/icons/2209.png new file mode 100644 index 000000000..3da5d96a5 Binary files /dev/null and b/imgs/icons/2209.png differ diff --git a/imgs/icons/2210.png b/imgs/icons/2210.png new file mode 100644 index 000000000..b4cfbbaa0 Binary files /dev/null and b/imgs/icons/2210.png differ diff --git a/imgs/icons/2211.png b/imgs/icons/2211.png new file mode 100644 index 000000000..7e6efac53 Binary files /dev/null and b/imgs/icons/2211.png differ diff --git a/imgs/icons/2212.png b/imgs/icons/2212.png new file mode 100644 index 000000000..2598c39a9 Binary files /dev/null and b/imgs/icons/2212.png differ diff --git a/imgs/icons/2213.png b/imgs/icons/2213.png new file mode 100644 index 000000000..b19b33837 Binary files /dev/null and b/imgs/icons/2213.png differ diff --git a/imgs/icons/2214.png b/imgs/icons/2214.png new file mode 100644 index 000000000..78f952307 Binary files /dev/null and b/imgs/icons/2214.png differ diff --git a/imgs/icons/2215.png b/imgs/icons/2215.png new file mode 100644 index 000000000..9db849aab Binary files /dev/null and b/imgs/icons/2215.png differ diff --git a/imgs/icons/2216.png b/imgs/icons/2216.png new file mode 100644 index 000000000..63bda9069 Binary files /dev/null and b/imgs/icons/2216.png differ diff --git a/imgs/icons/2217.png b/imgs/icons/2217.png new file mode 100644 index 000000000..ceb9eab78 Binary files /dev/null and b/imgs/icons/2217.png differ diff --git a/imgs/icons/2218.png b/imgs/icons/2218.png new file mode 100644 index 000000000..b53d5fc22 Binary files /dev/null and b/imgs/icons/2218.png differ diff --git a/imgs/icons/2219.png b/imgs/icons/2219.png new file mode 100644 index 000000000..a9612242b Binary files /dev/null and b/imgs/icons/2219.png differ diff --git a/imgs/icons/2220.png b/imgs/icons/2220.png new file mode 100644 index 000000000..28e2ad9dc Binary files /dev/null and b/imgs/icons/2220.png differ diff --git a/imgs/icons/2221.png b/imgs/icons/2221.png new file mode 100644 index 000000000..068c8d295 Binary files /dev/null and b/imgs/icons/2221.png differ diff --git a/imgs/icons/40_14.png b/imgs/icons/2222.png similarity index 100% rename from imgs/icons/40_14.png rename to imgs/icons/2222.png diff --git a/imgs/icons/40_16.png b/imgs/icons/2224.png similarity index 100% rename from imgs/icons/40_16.png rename to imgs/icons/2224.png diff --git a/imgs/icons/2225.png b/imgs/icons/2225.png new file mode 100644 index 000000000..850fb226f Binary files /dev/null and b/imgs/icons/2225.png differ diff --git a/imgs/icons/2226.png b/imgs/icons/2226.png new file mode 100644 index 000000000..eb2c03e65 Binary files /dev/null and b/imgs/icons/2226.png differ diff --git a/imgs/icons/2227.png b/imgs/icons/2227.png new file mode 100644 index 000000000..6bc8f1db4 Binary files /dev/null and b/imgs/icons/2227.png differ diff --git a/imgs/icons/2228.png b/imgs/icons/2228.png new file mode 100644 index 000000000..fce4401a1 Binary files /dev/null and b/imgs/icons/2228.png differ diff --git a/imgs/icons/2229.png b/imgs/icons/2229.png new file mode 100644 index 000000000..098cfbecd Binary files /dev/null and b/imgs/icons/2229.png differ diff --git a/imgs/icons/2230.png b/imgs/icons/2230.png new file mode 100644 index 000000000..4325080ac Binary files /dev/null and b/imgs/icons/2230.png differ diff --git a/imgs/icons/2231.png b/imgs/icons/2231.png new file mode 100644 index 000000000..1743fdae0 Binary files /dev/null and b/imgs/icons/2231.png differ diff --git a/imgs/icons/2232.png b/imgs/icons/2232.png new file mode 100644 index 000000000..a22baf46b Binary files /dev/null and b/imgs/icons/2232.png differ diff --git a/imgs/icons/2233.png b/imgs/icons/2233.png new file mode 100644 index 000000000..0b893a439 Binary files /dev/null and b/imgs/icons/2233.png differ diff --git a/imgs/icons/2234.png b/imgs/icons/2234.png new file mode 100644 index 000000000..60e782502 Binary files /dev/null and b/imgs/icons/2234.png differ diff --git a/imgs/icons/2244.png b/imgs/icons/2244.png new file mode 100644 index 000000000..60f658f49 Binary files /dev/null and b/imgs/icons/2244.png differ diff --git a/imgs/icons/230.png b/imgs/icons/230.png new file mode 100644 index 000000000..5d2dbd862 Binary files /dev/null and b/imgs/icons/230.png differ diff --git a/imgs/icons/2302.png b/imgs/icons/2302.png new file mode 100644 index 000000000..0e5fb47cd Binary files /dev/null and b/imgs/icons/2302.png differ diff --git a/imgs/icons/2304.png b/imgs/icons/2304.png new file mode 100644 index 000000000..b778426d7 Binary files /dev/null and b/imgs/icons/2304.png differ diff --git a/imgs/icons/2309.png b/imgs/icons/2309.png new file mode 100644 index 000000000..d560585bc Binary files /dev/null and b/imgs/icons/2309.png differ diff --git a/imgs/icons/231.png b/imgs/icons/231.png new file mode 100644 index 000000000..69d183bbf Binary files /dev/null and b/imgs/icons/231.png differ diff --git a/imgs/icons/2310.png b/imgs/icons/2310.png new file mode 100644 index 000000000..dc8a4f4b1 Binary files /dev/null and b/imgs/icons/2310.png differ diff --git a/imgs/icons/2311.png b/imgs/icons/2311.png new file mode 100644 index 000000000..31b00331b Binary files /dev/null and b/imgs/icons/2311.png differ diff --git a/imgs/icons/2312.png b/imgs/icons/2312.png new file mode 100644 index 000000000..454718b95 Binary files /dev/null and b/imgs/icons/2312.png differ diff --git a/imgs/icons/2313.png b/imgs/icons/2313.png new file mode 100644 index 000000000..d7f2cf3d8 Binary files /dev/null and b/imgs/icons/2313.png differ diff --git a/imgs/icons/2314.png b/imgs/icons/2314.png new file mode 100644 index 000000000..d97478d5e Binary files /dev/null and b/imgs/icons/2314.png differ diff --git a/imgs/icons/2315.png b/imgs/icons/2315.png new file mode 100644 index 000000000..c83026b91 Binary files /dev/null and b/imgs/icons/2315.png differ diff --git a/imgs/icons/2316.png b/imgs/icons/2316.png new file mode 100644 index 000000000..0916120b8 Binary files /dev/null and b/imgs/icons/2316.png differ diff --git a/imgs/icons/2317.png b/imgs/icons/2317.png new file mode 100644 index 000000000..bb8d94a61 Binary files /dev/null and b/imgs/icons/2317.png differ diff --git a/imgs/icons/2318.png b/imgs/icons/2318.png new file mode 100644 index 000000000..6f7d8ad7b Binary files /dev/null and b/imgs/icons/2318.png differ diff --git a/imgs/icons/2319.png b/imgs/icons/2319.png new file mode 100644 index 000000000..bb6f36af4 Binary files /dev/null and b/imgs/icons/2319.png differ diff --git a/imgs/icons/232.png b/imgs/icons/232.png new file mode 100644 index 000000000..414311f63 Binary files /dev/null and b/imgs/icons/232.png differ diff --git a/imgs/icons/2320.png b/imgs/icons/2320.png new file mode 100644 index 000000000..60a1dcfd3 Binary files /dev/null and b/imgs/icons/2320.png differ diff --git a/imgs/icons/2321.png b/imgs/icons/2321.png new file mode 100644 index 000000000..bf19e392b Binary files /dev/null and b/imgs/icons/2321.png differ diff --git a/imgs/icons/2322.png b/imgs/icons/2322.png new file mode 100644 index 000000000..f08a94615 Binary files /dev/null and b/imgs/icons/2322.png differ diff --git a/imgs/icons/2323.png b/imgs/icons/2323.png new file mode 100644 index 000000000..acbdf0123 Binary files /dev/null and b/imgs/icons/2323.png differ diff --git a/imgs/icons/2324.png b/imgs/icons/2324.png new file mode 100644 index 000000000..320dee2a6 Binary files /dev/null and b/imgs/icons/2324.png differ diff --git a/imgs/icons/2325.png b/imgs/icons/2325.png new file mode 100644 index 000000000..daf49a471 Binary files /dev/null and b/imgs/icons/2325.png differ diff --git a/imgs/icons/2326.png b/imgs/icons/2326.png new file mode 100644 index 000000000..694b599d0 Binary files /dev/null and b/imgs/icons/2326.png differ diff --git a/imgs/icons/2327.png b/imgs/icons/2327.png new file mode 100644 index 000000000..9fc77803e Binary files /dev/null and b/imgs/icons/2327.png differ diff --git a/imgs/icons/2328.png b/imgs/icons/2328.png new file mode 100644 index 000000000..f87a58bca Binary files /dev/null and b/imgs/icons/2328.png differ diff --git a/imgs/icons/2329.png b/imgs/icons/2329.png new file mode 100644 index 000000000..117c781c9 Binary files /dev/null and b/imgs/icons/2329.png differ diff --git a/imgs/icons/2330.png b/imgs/icons/2330.png new file mode 100644 index 000000000..1cb76ee56 Binary files /dev/null and b/imgs/icons/2330.png differ diff --git a/imgs/icons/2331.png b/imgs/icons/2331.png new file mode 100644 index 000000000..b56caa254 Binary files /dev/null and b/imgs/icons/2331.png differ diff --git a/imgs/icons/2332.png b/imgs/icons/2332.png new file mode 100644 index 000000000..156302d46 Binary files /dev/null and b/imgs/icons/2332.png differ diff --git a/imgs/icons/2333.png b/imgs/icons/2333.png new file mode 100644 index 000000000..5f2125b5a Binary files /dev/null and b/imgs/icons/2333.png differ diff --git a/imgs/icons/2334.png b/imgs/icons/2334.png new file mode 100644 index 000000000..830bcedba Binary files /dev/null and b/imgs/icons/2334.png differ diff --git a/imgs/icons/2338.png b/imgs/icons/2338.png new file mode 100644 index 000000000..cfdeb233c Binary files /dev/null and b/imgs/icons/2338.png differ diff --git a/imgs/icons/2340.png b/imgs/icons/2340.png new file mode 100644 index 000000000..61a417565 Binary files /dev/null and b/imgs/icons/2340.png differ diff --git a/imgs/icons/2355.png b/imgs/icons/2355.png new file mode 100644 index 000000000..c29b50603 Binary files /dev/null and b/imgs/icons/2355.png differ diff --git a/imgs/icons/7_12.png b/imgs/icons/2512.png similarity index 100% rename from imgs/icons/7_12.png rename to imgs/icons/2512.png diff --git a/imgs/icons/49_6.png b/imgs/icons/2526.png similarity index 100% rename from imgs/icons/49_6.png rename to imgs/icons/2526.png diff --git a/imgs/icons/49_5.png b/imgs/icons/2527.png similarity index 100% rename from imgs/icons/49_5.png rename to imgs/icons/2527.png diff --git a/imgs/icons/2528.png b/imgs/icons/2528.png new file mode 100644 index 000000000..95ed37401 Binary files /dev/null and b/imgs/icons/2528.png differ diff --git a/imgs/icons/2529.png b/imgs/icons/2529.png new file mode 100644 index 000000000..c839964b9 Binary files /dev/null and b/imgs/icons/2529.png differ diff --git a/imgs/icons/45_11.png b/imgs/icons/2530.png similarity index 100% rename from imgs/icons/45_11.png rename to imgs/icons/2530.png diff --git a/imgs/icons/45_12.png b/imgs/icons/2531.png similarity index 100% rename from imgs/icons/45_12.png rename to imgs/icons/2531.png diff --git a/imgs/icons/2532.png b/imgs/icons/2532.png new file mode 100644 index 000000000..1d52e95e8 Binary files /dev/null and b/imgs/icons/2532.png differ diff --git a/imgs/icons/2536.png b/imgs/icons/2536.png new file mode 100644 index 000000000..72d112bac Binary files /dev/null and b/imgs/icons/2536.png differ diff --git a/imgs/icons/2537.png b/imgs/icons/2537.png new file mode 100644 index 000000000..7a5c4319c Binary files /dev/null and b/imgs/icons/2537.png differ diff --git a/imgs/icons/2538.png b/imgs/icons/2538.png new file mode 100644 index 000000000..93965f7ad Binary files /dev/null and b/imgs/icons/2538.png differ diff --git a/imgs/icons/2539.png b/imgs/icons/2539.png new file mode 100644 index 000000000..49a29e6b0 Binary files /dev/null and b/imgs/icons/2539.png differ diff --git a/imgs/icons/2540.png b/imgs/icons/2540.png new file mode 100644 index 000000000..45ae7b5fc Binary files /dev/null and b/imgs/icons/2540.png differ diff --git a/imgs/icons/2541.png b/imgs/icons/2541.png new file mode 100644 index 000000000..e4e2f5c1c Binary files /dev/null and b/imgs/icons/2541.png differ diff --git a/imgs/icons/2542.png b/imgs/icons/2542.png new file mode 100644 index 000000000..4922ff694 Binary files /dev/null and b/imgs/icons/2542.png differ diff --git a/imgs/icons/2543.png b/imgs/icons/2543.png new file mode 100644 index 000000000..f83f5a287 Binary files /dev/null and b/imgs/icons/2543.png differ diff --git a/imgs/icons/2544.png b/imgs/icons/2544.png new file mode 100644 index 000000000..e09f6f869 Binary files /dev/null and b/imgs/icons/2544.png differ diff --git a/imgs/icons/2545.png b/imgs/icons/2545.png new file mode 100644 index 000000000..4c9d37854 Binary files /dev/null and b/imgs/icons/2545.png differ diff --git a/imgs/icons/2546.png b/imgs/icons/2546.png new file mode 100644 index 000000000..65fc45284 Binary files /dev/null and b/imgs/icons/2546.png differ diff --git a/imgs/icons/2547.png b/imgs/icons/2547.png new file mode 100644 index 000000000..f2b4aa5b0 Binary files /dev/null and b/imgs/icons/2547.png differ diff --git a/imgs/icons/2548.png b/imgs/icons/2548.png new file mode 100644 index 000000000..f2bd92307 Binary files /dev/null and b/imgs/icons/2548.png differ diff --git a/imgs/icons/2549.png b/imgs/icons/2549.png new file mode 100644 index 000000000..6e9fc22db Binary files /dev/null and b/imgs/icons/2549.png differ diff --git a/imgs/icons/2550.png b/imgs/icons/2550.png new file mode 100644 index 000000000..12e6a9470 Binary files /dev/null and b/imgs/icons/2550.png differ diff --git a/imgs/icons/2551.png b/imgs/icons/2551.png new file mode 100644 index 000000000..f2699f052 Binary files /dev/null and b/imgs/icons/2551.png differ diff --git a/imgs/icons/2552.png b/imgs/icons/2552.png new file mode 100644 index 000000000..2a6848019 Binary files /dev/null and b/imgs/icons/2552.png differ diff --git a/imgs/icons/2553.png b/imgs/icons/2553.png new file mode 100644 index 000000000..027283437 Binary files /dev/null and b/imgs/icons/2553.png differ diff --git a/imgs/icons/2554.png b/imgs/icons/2554.png new file mode 100644 index 000000000..59daff81c Binary files /dev/null and b/imgs/icons/2554.png differ diff --git a/imgs/icons/2555.png b/imgs/icons/2555.png new file mode 100644 index 000000000..b53e55bf9 Binary files /dev/null and b/imgs/icons/2555.png differ diff --git a/imgs/icons/2556.png b/imgs/icons/2556.png new file mode 100644 index 000000000..864fc099e Binary files /dev/null and b/imgs/icons/2556.png differ diff --git a/imgs/icons/2557.png b/imgs/icons/2557.png new file mode 100644 index 000000000..3bc267324 Binary files /dev/null and b/imgs/icons/2557.png differ diff --git a/imgs/icons/2558.png b/imgs/icons/2558.png new file mode 100644 index 000000000..64d90bf29 Binary files /dev/null and b/imgs/icons/2558.png differ diff --git a/imgs/icons/2559.png b/imgs/icons/2559.png new file mode 100644 index 000000000..6d9e6038a Binary files /dev/null and b/imgs/icons/2559.png differ diff --git a/imgs/icons/2560.png b/imgs/icons/2560.png new file mode 100644 index 000000000..d65419db8 Binary files /dev/null and b/imgs/icons/2560.png differ diff --git a/imgs/icons/2561.png b/imgs/icons/2561.png new file mode 100644 index 000000000..38d72a177 Binary files /dev/null and b/imgs/icons/2561.png differ diff --git a/imgs/icons/2_16.png b/imgs/icons/2563.png similarity index 100% rename from imgs/icons/2_16.png rename to imgs/icons/2563.png diff --git a/imgs/icons/2567.png b/imgs/icons/2567.png new file mode 100644 index 000000000..bd9be2578 Binary files /dev/null and b/imgs/icons/2567.png differ diff --git a/imgs/icons/2568.png b/imgs/icons/2568.png new file mode 100644 index 000000000..8c63e527b Binary files /dev/null and b/imgs/icons/2568.png differ diff --git a/imgs/icons/2569.png b/imgs/icons/2569.png new file mode 100644 index 000000000..518c605c4 Binary files /dev/null and b/imgs/icons/2569.png differ diff --git a/imgs/icons/2570.png b/imgs/icons/2570.png new file mode 100644 index 000000000..6616ad5cf Binary files /dev/null and b/imgs/icons/2570.png differ diff --git a/imgs/icons/2571.png b/imgs/icons/2571.png new file mode 100644 index 000000000..cb9e304b6 Binary files /dev/null and b/imgs/icons/2571.png differ diff --git a/imgs/icons/2572.png b/imgs/icons/2572.png new file mode 100644 index 000000000..a585b6bf5 Binary files /dev/null and b/imgs/icons/2572.png differ diff --git a/imgs/icons/2573.png b/imgs/icons/2573.png new file mode 100644 index 000000000..4e46ce732 Binary files /dev/null and b/imgs/icons/2573.png differ diff --git a/imgs/icons/2574.png b/imgs/icons/2574.png new file mode 100644 index 000000000..bf967b4d7 Binary files /dev/null and b/imgs/icons/2574.png differ diff --git a/imgs/icons/2575.png b/imgs/icons/2575.png new file mode 100644 index 000000000..cc6cc0c38 Binary files /dev/null and b/imgs/icons/2575.png differ diff --git a/imgs/icons/2576.png b/imgs/icons/2576.png new file mode 100644 index 000000000..2f34b02d2 Binary files /dev/null and b/imgs/icons/2576.png differ diff --git a/imgs/icons/2577.png b/imgs/icons/2577.png new file mode 100644 index 000000000..c6cbf047f Binary files /dev/null and b/imgs/icons/2577.png differ diff --git a/imgs/icons/2578.png b/imgs/icons/2578.png new file mode 100644 index 000000000..f94774d1e Binary files /dev/null and b/imgs/icons/2578.png differ diff --git a/imgs/icons/2579.png b/imgs/icons/2579.png new file mode 100644 index 000000000..276a994d9 Binary files /dev/null and b/imgs/icons/2579.png differ diff --git a/imgs/icons/2580.png b/imgs/icons/2580.png new file mode 100644 index 000000000..daa50c30d Binary files /dev/null and b/imgs/icons/2580.png differ diff --git a/imgs/icons/2581.png b/imgs/icons/2581.png new file mode 100644 index 000000000..c49d53267 Binary files /dev/null and b/imgs/icons/2581.png differ diff --git a/imgs/icons/2582.png b/imgs/icons/2582.png new file mode 100644 index 000000000..93ec9eacd Binary files /dev/null and b/imgs/icons/2582.png differ diff --git a/imgs/icons/26.png b/imgs/icons/26.png new file mode 100644 index 000000000..018b9ff57 Binary files /dev/null and b/imgs/icons/26.png differ diff --git a/imgs/icons/48_14.png b/imgs/icons/2645.png similarity index 100% rename from imgs/icons/48_14.png rename to imgs/icons/2645.png diff --git a/imgs/icons/48_13.png b/imgs/icons/2646.png similarity index 100% rename from imgs/icons/48_13.png rename to imgs/icons/2646.png diff --git a/imgs/icons/48_12.png b/imgs/icons/2647.png similarity index 100% rename from imgs/icons/48_12.png rename to imgs/icons/2647.png diff --git a/imgs/icons/48_11.png b/imgs/icons/2648.png similarity index 100% rename from imgs/icons/48_11.png rename to imgs/icons/2648.png diff --git a/imgs/icons/48_10.png b/imgs/icons/2649.png similarity index 100% rename from imgs/icons/48_10.png rename to imgs/icons/2649.png diff --git a/imgs/icons/48_9.png b/imgs/icons/2650.png similarity index 100% rename from imgs/icons/48_9.png rename to imgs/icons/2650.png diff --git a/imgs/icons/48_8.png b/imgs/icons/2651.png similarity index 100% rename from imgs/icons/48_8.png rename to imgs/icons/2651.png diff --git a/imgs/icons/48_7.png b/imgs/icons/2652.png similarity index 100% rename from imgs/icons/48_7.png rename to imgs/icons/2652.png diff --git a/imgs/icons/48_6.png b/imgs/icons/2653.png similarity index 100% rename from imgs/icons/48_6.png rename to imgs/icons/2653.png diff --git a/imgs/icons/48_16.png b/imgs/icons/2654.png similarity index 100% rename from imgs/icons/48_16.png rename to imgs/icons/2654.png diff --git a/imgs/icons/48_5.png b/imgs/icons/2655.png similarity index 100% rename from imgs/icons/48_5.png rename to imgs/icons/2655.png diff --git a/imgs/icons/48_4.png b/imgs/icons/2656.png similarity index 100% rename from imgs/icons/48_4.png rename to imgs/icons/2656.png diff --git a/imgs/icons/48_3.png b/imgs/icons/2657.png similarity index 100% rename from imgs/icons/48_3.png rename to imgs/icons/2657.png diff --git a/imgs/icons/48_2.png b/imgs/icons/2658.png similarity index 100% rename from imgs/icons/48_2.png rename to imgs/icons/2658.png diff --git a/imgs/icons/48_15.png b/imgs/icons/2659.png similarity index 100% rename from imgs/icons/48_15.png rename to imgs/icons/2659.png diff --git a/imgs/icons/48_1.png b/imgs/icons/2660.png similarity index 100% rename from imgs/icons/48_1.png rename to imgs/icons/2660.png diff --git a/imgs/icons/2661.png b/imgs/icons/2661.png new file mode 100644 index 000000000..ab2303855 Binary files /dev/null and b/imgs/icons/2661.png differ diff --git a/imgs/icons/2662.png b/imgs/icons/2662.png new file mode 100644 index 000000000..4253b14a8 Binary files /dev/null and b/imgs/icons/2662.png differ diff --git a/imgs/icons/50_3.png b/imgs/icons/2663.png similarity index 100% rename from imgs/icons/50_3.png rename to imgs/icons/2663.png diff --git a/imgs/icons/2664.png b/imgs/icons/2664.png new file mode 100644 index 000000000..e51ecae4d Binary files /dev/null and b/imgs/icons/2664.png differ diff --git a/imgs/icons/2665.png b/imgs/icons/2665.png new file mode 100644 index 000000000..698b0bb06 Binary files /dev/null and b/imgs/icons/2665.png differ diff --git a/imgs/icons/2666.png b/imgs/icons/2666.png new file mode 100644 index 000000000..eb55e62f9 Binary files /dev/null and b/imgs/icons/2666.png differ diff --git a/imgs/icons/2667.png b/imgs/icons/2667.png new file mode 100644 index 000000000..cc7c9cc7e Binary files /dev/null and b/imgs/icons/2667.png differ diff --git a/imgs/icons/2668.png b/imgs/icons/2668.png new file mode 100644 index 000000000..c29eba37a Binary files /dev/null and b/imgs/icons/2668.png differ diff --git a/imgs/icons/2669.png b/imgs/icons/2669.png new file mode 100644 index 000000000..95b1ed1d2 Binary files /dev/null and b/imgs/icons/2669.png differ diff --git a/imgs/icons/2670.png b/imgs/icons/2670.png new file mode 100644 index 000000000..fe661ccb0 Binary files /dev/null and b/imgs/icons/2670.png differ diff --git a/imgs/icons/2674.png b/imgs/icons/2674.png new file mode 100644 index 000000000..b20eb0b0a Binary files /dev/null and b/imgs/icons/2674.png differ diff --git a/imgs/icons/49_7.png b/imgs/icons/2677.png similarity index 100% rename from imgs/icons/49_7.png rename to imgs/icons/2677.png diff --git a/imgs/icons/2678.png b/imgs/icons/2678.png new file mode 100644 index 000000000..4ca57246b Binary files /dev/null and b/imgs/icons/2678.png differ diff --git a/imgs/icons/2679.png b/imgs/icons/2679.png new file mode 100644 index 000000000..e374147c6 Binary files /dev/null and b/imgs/icons/2679.png differ diff --git a/imgs/icons/2680.png b/imgs/icons/2680.png new file mode 100644 index 000000000..55d269d13 Binary files /dev/null and b/imgs/icons/2680.png differ diff --git a/imgs/icons/2681.png b/imgs/icons/2681.png new file mode 100644 index 000000000..19c2eae3c Binary files /dev/null and b/imgs/icons/2681.png differ diff --git a/imgs/icons/2682.png b/imgs/icons/2682.png new file mode 100644 index 000000000..ae43dc248 Binary files /dev/null and b/imgs/icons/2682.png differ diff --git a/imgs/icons/2683.png b/imgs/icons/2683.png new file mode 100644 index 000000000..824c82d33 Binary files /dev/null and b/imgs/icons/2683.png differ diff --git a/imgs/icons/2684.png b/imgs/icons/2684.png new file mode 100644 index 000000000..26df6c98d Binary files /dev/null and b/imgs/icons/2684.png differ diff --git a/imgs/icons/2685.png b/imgs/icons/2685.png new file mode 100644 index 000000000..3315819f7 Binary files /dev/null and b/imgs/icons/2685.png differ diff --git a/imgs/icons/2686.png b/imgs/icons/2686.png new file mode 100644 index 000000000..5e907f0eb Binary files /dev/null and b/imgs/icons/2686.png differ diff --git a/imgs/icons/2696.png b/imgs/icons/2696.png new file mode 100644 index 000000000..64be6e813 Binary files /dev/null and b/imgs/icons/2696.png differ diff --git a/imgs/icons/2697.png b/imgs/icons/2697.png new file mode 100644 index 000000000..5b01d9b52 Binary files /dev/null and b/imgs/icons/2697.png differ diff --git a/imgs/icons/2698.png b/imgs/icons/2698.png new file mode 100644 index 000000000..c8f68260c Binary files /dev/null and b/imgs/icons/2698.png differ diff --git a/imgs/icons/2699.png b/imgs/icons/2699.png new file mode 100644 index 000000000..fd70478f7 Binary files /dev/null and b/imgs/icons/2699.png differ diff --git a/imgs/icons/27.png b/imgs/icons/27.png new file mode 100644 index 000000000..ce3065385 Binary files /dev/null and b/imgs/icons/27.png differ diff --git a/imgs/icons/2700.png b/imgs/icons/2700.png new file mode 100644 index 000000000..7081d175e Binary files /dev/null and b/imgs/icons/2700.png differ diff --git a/imgs/icons/2701.png b/imgs/icons/2701.png new file mode 100644 index 000000000..ad9f0030b Binary files /dev/null and b/imgs/icons/2701.png differ diff --git a/imgs/icons/2702.png b/imgs/icons/2702.png new file mode 100644 index 000000000..a1232ca10 Binary files /dev/null and b/imgs/icons/2702.png differ diff --git a/imgs/icons/2703.png b/imgs/icons/2703.png new file mode 100644 index 000000000..41bb34deb Binary files /dev/null and b/imgs/icons/2703.png differ diff --git a/imgs/icons/2705.png b/imgs/icons/2705.png new file mode 100644 index 000000000..c816f069e Binary files /dev/null and b/imgs/icons/2705.png differ diff --git a/imgs/icons/3_12.png b/imgs/icons/2732.png similarity index 100% rename from imgs/icons/3_12.png rename to imgs/icons/2732.png diff --git a/imgs/icons/2754.png b/imgs/icons/2754.png new file mode 100644 index 000000000..3714dfe54 Binary files /dev/null and b/imgs/icons/2754.png differ diff --git a/imgs/icons/28.png b/imgs/icons/28.png new file mode 100644 index 000000000..e8ded28d4 Binary files /dev/null and b/imgs/icons/28.png differ diff --git a/imgs/icons/52_1.png b/imgs/icons/2827.png similarity index 100% rename from imgs/icons/52_1.png rename to imgs/icons/2827.png diff --git a/imgs/icons/52_2.png b/imgs/icons/2828.png similarity index 100% rename from imgs/icons/52_2.png rename to imgs/icons/2828.png diff --git a/imgs/icons/52_3.png b/imgs/icons/2829.png similarity index 100% rename from imgs/icons/52_3.png rename to imgs/icons/2829.png diff --git a/imgs/icons/52_4.png b/imgs/icons/2830.png similarity index 100% rename from imgs/icons/52_4.png rename to imgs/icons/2830.png diff --git a/imgs/icons/52_5.png b/imgs/icons/2831.png similarity index 100% rename from imgs/icons/52_5.png rename to imgs/icons/2831.png diff --git a/imgs/icons/52_6.png b/imgs/icons/2832.png similarity index 100% rename from imgs/icons/52_6.png rename to imgs/icons/2832.png diff --git a/imgs/icons/52_7.png b/imgs/icons/2833.png similarity index 100% rename from imgs/icons/52_7.png rename to imgs/icons/2833.png diff --git a/imgs/icons/52_8.png b/imgs/icons/2834.png similarity index 100% rename from imgs/icons/52_8.png rename to imgs/icons/2834.png diff --git a/imgs/icons/52_10.png b/imgs/icons/2836.png similarity index 100% rename from imgs/icons/52_10.png rename to imgs/icons/2836.png diff --git a/imgs/icons/52_11.png b/imgs/icons/2837.png similarity index 100% rename from imgs/icons/52_11.png rename to imgs/icons/2837.png diff --git a/imgs/icons/52_12.png b/imgs/icons/2838.png similarity index 100% rename from imgs/icons/52_12.png rename to imgs/icons/2838.png diff --git a/imgs/icons/52_13.png b/imgs/icons/2839.png similarity index 100% rename from imgs/icons/52_13.png rename to imgs/icons/2839.png diff --git a/imgs/icons/52_14.png b/imgs/icons/2840.png similarity index 100% rename from imgs/icons/52_14.png rename to imgs/icons/2840.png diff --git a/imgs/icons/52_15.png b/imgs/icons/2841.png similarity index 100% rename from imgs/icons/52_15.png rename to imgs/icons/2841.png diff --git a/imgs/icons/52_16.png b/imgs/icons/2842.png similarity index 100% rename from imgs/icons/52_16.png rename to imgs/icons/2842.png diff --git a/imgs/icons/53_1.png b/imgs/icons/2843.png similarity index 100% rename from imgs/icons/53_1.png rename to imgs/icons/2843.png diff --git a/imgs/icons/53_2.png b/imgs/icons/2844.png similarity index 100% rename from imgs/icons/53_2.png rename to imgs/icons/2844.png diff --git a/imgs/icons/53_3.png b/imgs/icons/2845.png similarity index 100% rename from imgs/icons/53_3.png rename to imgs/icons/2845.png diff --git a/imgs/icons/53_4.png b/imgs/icons/2846.png similarity index 100% rename from imgs/icons/53_4.png rename to imgs/icons/2846.png diff --git a/imgs/icons/53_5.png b/imgs/icons/2847.png similarity index 100% rename from imgs/icons/53_5.png rename to imgs/icons/2847.png diff --git a/imgs/icons/53_6.png b/imgs/icons/2848.png similarity index 100% rename from imgs/icons/53_6.png rename to imgs/icons/2848.png diff --git a/imgs/icons/53_7.png b/imgs/icons/2849.png similarity index 100% rename from imgs/icons/53_7.png rename to imgs/icons/2849.png diff --git a/imgs/icons/53_8.png b/imgs/icons/2850.png similarity index 100% rename from imgs/icons/53_8.png rename to imgs/icons/2850.png diff --git a/imgs/icons/53_9.png b/imgs/icons/2851.png similarity index 100% rename from imgs/icons/53_9.png rename to imgs/icons/2851.png diff --git a/imgs/icons/2852.png b/imgs/icons/2852.png new file mode 100644 index 000000000..0691d311b Binary files /dev/null and b/imgs/icons/2852.png differ diff --git a/imgs/icons/2853.png b/imgs/icons/2853.png new file mode 100644 index 000000000..e2058455b Binary files /dev/null and b/imgs/icons/2853.png differ diff --git a/imgs/icons/2854.png b/imgs/icons/2854.png new file mode 100644 index 000000000..3487ddb7e Binary files /dev/null and b/imgs/icons/2854.png differ diff --git a/imgs/icons/2855.png b/imgs/icons/2855.png new file mode 100644 index 000000000..3922d6fb8 Binary files /dev/null and b/imgs/icons/2855.png differ diff --git a/imgs/icons/53_14.png b/imgs/icons/2856.png similarity index 100% rename from imgs/icons/53_14.png rename to imgs/icons/2856.png diff --git a/imgs/icons/53_15.png b/imgs/icons/2857.png similarity index 100% rename from imgs/icons/53_15.png rename to imgs/icons/2857.png diff --git a/imgs/icons/2858.png b/imgs/icons/2858.png new file mode 100644 index 000000000..0d8d74510 Binary files /dev/null and b/imgs/icons/2858.png differ diff --git a/imgs/icons/2859.png b/imgs/icons/2859.png new file mode 100644 index 000000000..aaa14840d Binary files /dev/null and b/imgs/icons/2859.png differ diff --git a/imgs/icons/2860.png b/imgs/icons/2860.png new file mode 100644 index 000000000..c01a3f351 Binary files /dev/null and b/imgs/icons/2860.png differ diff --git a/imgs/icons/2861.png b/imgs/icons/2861.png new file mode 100644 index 000000000..f9b8e09f6 Binary files /dev/null and b/imgs/icons/2861.png differ diff --git a/imgs/icons/2862.png b/imgs/icons/2862.png new file mode 100644 index 000000000..3bf6975fc Binary files /dev/null and b/imgs/icons/2862.png differ diff --git a/imgs/icons/2863.png b/imgs/icons/2863.png new file mode 100644 index 000000000..8199c3613 Binary files /dev/null and b/imgs/icons/2863.png differ diff --git a/imgs/icons/2864.png b/imgs/icons/2864.png new file mode 100644 index 000000000..4e0d1482d Binary files /dev/null and b/imgs/icons/2864.png differ diff --git a/imgs/icons/2865.png b/imgs/icons/2865.png new file mode 100644 index 000000000..b007bfa97 Binary files /dev/null and b/imgs/icons/2865.png differ diff --git a/imgs/icons/2866.png b/imgs/icons/2866.png new file mode 100644 index 000000000..7be5b66c4 Binary files /dev/null and b/imgs/icons/2866.png differ diff --git a/imgs/icons/2867.png b/imgs/icons/2867.png new file mode 100644 index 000000000..094d9329a Binary files /dev/null and b/imgs/icons/2867.png differ diff --git a/imgs/icons/2868.png b/imgs/icons/2868.png new file mode 100644 index 000000000..043b52798 Binary files /dev/null and b/imgs/icons/2868.png differ diff --git a/imgs/icons/2869.png b/imgs/icons/2869.png new file mode 100644 index 000000000..44fab052a Binary files /dev/null and b/imgs/icons/2869.png differ diff --git a/imgs/icons/2870.png b/imgs/icons/2870.png new file mode 100644 index 000000000..9228be24f Binary files /dev/null and b/imgs/icons/2870.png differ diff --git a/imgs/icons/2871.png b/imgs/icons/2871.png new file mode 100644 index 000000000..067cbc670 Binary files /dev/null and b/imgs/icons/2871.png differ diff --git a/imgs/icons/2872.png b/imgs/icons/2872.png new file mode 100644 index 000000000..50ef94241 Binary files /dev/null and b/imgs/icons/2872.png differ diff --git a/imgs/icons/2873.png b/imgs/icons/2873.png new file mode 100644 index 000000000..93fa59a15 Binary files /dev/null and b/imgs/icons/2873.png differ diff --git a/imgs/icons/2874.png b/imgs/icons/2874.png new file mode 100644 index 000000000..d8e240b5f Binary files /dev/null and b/imgs/icons/2874.png differ diff --git a/imgs/icons/2875.png b/imgs/icons/2875.png new file mode 100644 index 000000000..ea5ccc90a Binary files /dev/null and b/imgs/icons/2875.png differ diff --git a/imgs/icons/2876.png b/imgs/icons/2876.png new file mode 100644 index 000000000..441ca29aa Binary files /dev/null and b/imgs/icons/2876.png differ diff --git a/imgs/icons/2877.png b/imgs/icons/2877.png new file mode 100644 index 000000000..08d585336 Binary files /dev/null and b/imgs/icons/2877.png differ diff --git a/imgs/icons/2878.png b/imgs/icons/2878.png new file mode 100644 index 000000000..665d879d4 Binary files /dev/null and b/imgs/icons/2878.png differ diff --git a/imgs/icons/2879.png b/imgs/icons/2879.png new file mode 100644 index 000000000..fd1465995 Binary files /dev/null and b/imgs/icons/2879.png differ diff --git a/imgs/icons/2880.png b/imgs/icons/2880.png new file mode 100644 index 000000000..5b7ba0fcf Binary files /dev/null and b/imgs/icons/2880.png differ diff --git a/imgs/icons/2881.png b/imgs/icons/2881.png new file mode 100644 index 000000000..6ade5f140 Binary files /dev/null and b/imgs/icons/2881.png differ diff --git a/imgs/icons/2882.png b/imgs/icons/2882.png new file mode 100644 index 000000000..d1ba44bf8 Binary files /dev/null and b/imgs/icons/2882.png differ diff --git a/imgs/icons/2883.png b/imgs/icons/2883.png new file mode 100644 index 000000000..ac2b7412d Binary files /dev/null and b/imgs/icons/2883.png differ diff --git a/imgs/icons/2884.png b/imgs/icons/2884.png new file mode 100644 index 000000000..13758931a Binary files /dev/null and b/imgs/icons/2884.png differ diff --git a/imgs/icons/2885.png b/imgs/icons/2885.png new file mode 100644 index 000000000..b890354d1 Binary files /dev/null and b/imgs/icons/2885.png differ diff --git a/imgs/icons/2886.png b/imgs/icons/2886.png new file mode 100644 index 000000000..205ee547f Binary files /dev/null and b/imgs/icons/2886.png differ diff --git a/imgs/icons/55_13.png b/imgs/icons/2887.png similarity index 100% rename from imgs/icons/55_13.png rename to imgs/icons/2887.png diff --git a/imgs/icons/2888.png b/imgs/icons/2888.png new file mode 100644 index 000000000..51f1c5ca4 Binary files /dev/null and b/imgs/icons/2888.png differ diff --git a/imgs/icons/2889.png b/imgs/icons/2889.png new file mode 100644 index 000000000..63c691f1d Binary files /dev/null and b/imgs/icons/2889.png differ diff --git a/imgs/icons/2890.png b/imgs/icons/2890.png new file mode 100644 index 000000000..6ad10ff8b Binary files /dev/null and b/imgs/icons/2890.png differ diff --git a/imgs/icons/2891.png b/imgs/icons/2891.png new file mode 100644 index 000000000..53ad9ee91 Binary files /dev/null and b/imgs/icons/2891.png differ diff --git a/imgs/icons/2893.png b/imgs/icons/2893.png new file mode 100644 index 000000000..b1df4c624 Binary files /dev/null and b/imgs/icons/2893.png differ diff --git a/imgs/icons/29.png b/imgs/icons/29.png new file mode 100644 index 000000000..4c0695dd5 Binary files /dev/null and b/imgs/icons/29.png differ diff --git a/imgs/icons/2908.png b/imgs/icons/2908.png new file mode 100644 index 000000000..56ef341aa Binary files /dev/null and b/imgs/icons/2908.png differ diff --git a/imgs/icons/8_11.png b/imgs/icons/293.png similarity index 100% rename from imgs/icons/8_11.png rename to imgs/icons/293.png diff --git a/imgs/icons/56_2.png b/imgs/icons/2934.png similarity index 100% rename from imgs/icons/56_2.png rename to imgs/icons/2934.png diff --git a/imgs/icons/8_10.png b/imgs/icons/294.png similarity index 100% rename from imgs/icons/8_10.png rename to imgs/icons/294.png diff --git a/imgs/icons/57_4.png b/imgs/icons/2943.png similarity index 100% rename from imgs/icons/57_4.png rename to imgs/icons/2943.png diff --git a/imgs/icons/8_9.png b/imgs/icons/295.png similarity index 100% rename from imgs/icons/8_9.png rename to imgs/icons/295.png diff --git a/imgs/icons/56_1.png b/imgs/icons/2983.png similarity index 100% rename from imgs/icons/56_1.png rename to imgs/icons/2983.png diff --git a/imgs/icons/56_3.png b/imgs/icons/2985.png similarity index 100% rename from imgs/icons/56_3.png rename to imgs/icons/2985.png diff --git a/imgs/icons/56_4.png b/imgs/icons/2986.png similarity index 100% rename from imgs/icons/56_4.png rename to imgs/icons/2986.png diff --git a/imgs/icons/56_5.png b/imgs/icons/2987.png similarity index 100% rename from imgs/icons/56_5.png rename to imgs/icons/2987.png diff --git a/imgs/icons/56_6.png b/imgs/icons/2988.png similarity index 100% rename from imgs/icons/56_6.png rename to imgs/icons/2988.png diff --git a/imgs/icons/56_7.png b/imgs/icons/2989.png similarity index 100% rename from imgs/icons/56_7.png rename to imgs/icons/2989.png diff --git a/imgs/icons/56_8.png b/imgs/icons/2990.png similarity index 100% rename from imgs/icons/56_8.png rename to imgs/icons/2990.png diff --git a/imgs/icons/2991.png b/imgs/icons/2991.png new file mode 100644 index 000000000..cc602567c Binary files /dev/null and b/imgs/icons/2991.png differ diff --git a/imgs/icons/2992.png b/imgs/icons/2992.png new file mode 100644 index 000000000..4ef3a31c3 Binary files /dev/null and b/imgs/icons/2992.png differ diff --git a/imgs/icons/2994.png b/imgs/icons/2994.png new file mode 100644 index 000000000..6f904f813 Binary files /dev/null and b/imgs/icons/2994.png differ diff --git a/imgs/icons/30.png b/imgs/icons/30.png new file mode 100644 index 000000000..3919a5f03 Binary files /dev/null and b/imgs/icons/30.png differ diff --git a/imgs/icons/3000.png b/imgs/icons/3000.png new file mode 100644 index 000000000..a98c2e021 Binary files /dev/null and b/imgs/icons/3000.png differ diff --git a/imgs/icons/3001.png b/imgs/icons/3001.png new file mode 100644 index 000000000..6e254552e Binary files /dev/null and b/imgs/icons/3001.png differ diff --git a/imgs/icons/57_9.png b/imgs/icons/3006.png similarity index 100% rename from imgs/icons/57_9.png rename to imgs/icons/3006.png diff --git a/imgs/icons/57_10.png b/imgs/icons/3007.png similarity index 100% rename from imgs/icons/57_10.png rename to imgs/icons/3007.png diff --git a/imgs/icons/3010.png b/imgs/icons/3010.png new file mode 100644 index 000000000..54faf3975 Binary files /dev/null and b/imgs/icons/3010.png differ diff --git a/imgs/icons/3012.png b/imgs/icons/3012.png new file mode 100644 index 000000000..2999e98cb Binary files /dev/null and b/imgs/icons/3012.png differ diff --git a/imgs/icons/57_16.png b/imgs/icons/3013.png similarity index 100% rename from imgs/icons/57_16.png rename to imgs/icons/3013.png diff --git a/imgs/icons/3019.png b/imgs/icons/3019.png new file mode 100644 index 000000000..cd43cbf24 Binary files /dev/null and b/imgs/icons/3019.png differ diff --git a/imgs/icons/3025.png b/imgs/icons/3025.png new file mode 100644 index 000000000..631c2946d Binary files /dev/null and b/imgs/icons/3025.png differ diff --git a/imgs/icons/3036.png b/imgs/icons/3036.png new file mode 100644 index 000000000..2e54703ad Binary files /dev/null and b/imgs/icons/3036.png differ diff --git a/imgs/icons/35_3.png b/imgs/icons/3074.png similarity index 100% rename from imgs/icons/35_3.png rename to imgs/icons/3074.png diff --git a/imgs/icons/31.png b/imgs/icons/31.png new file mode 100644 index 000000000..b42900b03 Binary files /dev/null and b/imgs/icons/31.png differ diff --git a/imgs/icons/3181.png b/imgs/icons/3181.png new file mode 100644 index 000000000..4ea42ec86 Binary files /dev/null and b/imgs/icons/3181.png differ diff --git a/imgs/icons/3182.png b/imgs/icons/3182.png new file mode 100644 index 000000000..02a27d1ee Binary files /dev/null and b/imgs/icons/3182.png differ diff --git a/imgs/icons/3183.png b/imgs/icons/3183.png new file mode 100644 index 000000000..8eb1009fc Binary files /dev/null and b/imgs/icons/3183.png differ diff --git a/imgs/icons/3184.png b/imgs/icons/3184.png new file mode 100644 index 000000000..dfcea100e Binary files /dev/null and b/imgs/icons/3184.png differ diff --git a/imgs/icons/3185.png b/imgs/icons/3185.png new file mode 100644 index 000000000..3cbe41c42 Binary files /dev/null and b/imgs/icons/3185.png differ diff --git a/imgs/icons/3186.png b/imgs/icons/3186.png new file mode 100644 index 000000000..98e2b6396 Binary files /dev/null and b/imgs/icons/3186.png differ diff --git a/imgs/icons/3187.png b/imgs/icons/3187.png new file mode 100644 index 000000000..194e6e35d Binary files /dev/null and b/imgs/icons/3187.png differ diff --git a/imgs/icons/3188.png b/imgs/icons/3188.png new file mode 100644 index 000000000..fe8f4cab3 Binary files /dev/null and b/imgs/icons/3188.png differ diff --git a/imgs/icons/3189.png b/imgs/icons/3189.png new file mode 100644 index 000000000..b505c9856 Binary files /dev/null and b/imgs/icons/3189.png differ diff --git a/imgs/icons/3190.png b/imgs/icons/3190.png new file mode 100644 index 000000000..293da75a1 Binary files /dev/null and b/imgs/icons/3190.png differ diff --git a/imgs/icons/3191.png b/imgs/icons/3191.png new file mode 100644 index 000000000..e6b3ca92b Binary files /dev/null and b/imgs/icons/3191.png differ diff --git a/imgs/icons/3192.png b/imgs/icons/3192.png new file mode 100644 index 000000000..31deb6c06 Binary files /dev/null and b/imgs/icons/3192.png differ diff --git a/imgs/icons/68_9.png b/imgs/icons/3193.png similarity index 100% rename from imgs/icons/68_9.png rename to imgs/icons/3193.png diff --git a/imgs/icons/68_10.png b/imgs/icons/3194.png similarity index 100% rename from imgs/icons/68_10.png rename to imgs/icons/3194.png diff --git a/imgs/icons/68_11.png b/imgs/icons/3195.png similarity index 100% rename from imgs/icons/68_11.png rename to imgs/icons/3195.png diff --git a/imgs/icons/68_12.png b/imgs/icons/3196.png similarity index 100% rename from imgs/icons/68_12.png rename to imgs/icons/3196.png diff --git a/imgs/icons/68_13.png b/imgs/icons/3197.png similarity index 100% rename from imgs/icons/68_13.png rename to imgs/icons/3197.png diff --git a/imgs/icons/68_14.png b/imgs/icons/3198.png similarity index 100% rename from imgs/icons/68_14.png rename to imgs/icons/3198.png diff --git a/imgs/icons/68_15.png b/imgs/icons/3199.png similarity index 100% rename from imgs/icons/68_15.png rename to imgs/icons/3199.png diff --git a/imgs/icons/68_16.png b/imgs/icons/3200.png similarity index 100% rename from imgs/icons/68_16.png rename to imgs/icons/3200.png diff --git a/imgs/icons/68_2.png b/imgs/icons/3201.png similarity index 100% rename from imgs/icons/68_2.png rename to imgs/icons/3201.png diff --git a/imgs/icons/68_3.png b/imgs/icons/3202.png similarity index 100% rename from imgs/icons/68_3.png rename to imgs/icons/3202.png diff --git a/imgs/icons/68_4.png b/imgs/icons/3203.png similarity index 100% rename from imgs/icons/68_4.png rename to imgs/icons/3203.png diff --git a/imgs/icons/62_1.png b/imgs/icons/3210.png similarity index 100% rename from imgs/icons/62_1.png rename to imgs/icons/3210.png diff --git a/imgs/icons/62_2.png b/imgs/icons/3211.png similarity index 100% rename from imgs/icons/62_2.png rename to imgs/icons/3211.png diff --git a/imgs/icons/62_3.png b/imgs/icons/3212.png similarity index 100% rename from imgs/icons/62_3.png rename to imgs/icons/3212.png diff --git a/imgs/icons/62_4.png b/imgs/icons/3213.png similarity index 100% rename from imgs/icons/62_4.png rename to imgs/icons/3213.png diff --git a/imgs/icons/62_5.png b/imgs/icons/3214.png similarity index 100% rename from imgs/icons/62_5.png rename to imgs/icons/3214.png diff --git a/imgs/icons/62_6.png b/imgs/icons/3215.png similarity index 100% rename from imgs/icons/62_6.png rename to imgs/icons/3215.png diff --git a/imgs/icons/62_7.png b/imgs/icons/3216.png similarity index 100% rename from imgs/icons/62_7.png rename to imgs/icons/3216.png diff --git a/imgs/icons/62_8.png b/imgs/icons/3217.png similarity index 100% rename from imgs/icons/62_8.png rename to imgs/icons/3217.png diff --git a/imgs/icons/62_9.png b/imgs/icons/3218.png similarity index 100% rename from imgs/icons/62_9.png rename to imgs/icons/3218.png diff --git a/imgs/icons/62_10.png b/imgs/icons/3219.png similarity index 100% rename from imgs/icons/62_10.png rename to imgs/icons/3219.png diff --git a/imgs/icons/62_11.png b/imgs/icons/3220.png similarity index 100% rename from imgs/icons/62_11.png rename to imgs/icons/3220.png diff --git a/imgs/icons/62_12.png b/imgs/icons/3221.png similarity index 100% rename from imgs/icons/62_12.png rename to imgs/icons/3221.png diff --git a/imgs/icons/62_13.png b/imgs/icons/3222.png similarity index 100% rename from imgs/icons/62_13.png rename to imgs/icons/3222.png diff --git a/imgs/icons/62_14.png b/imgs/icons/3223.png similarity index 100% rename from imgs/icons/62_14.png rename to imgs/icons/3223.png diff --git a/imgs/icons/62_15.png b/imgs/icons/3224.png similarity index 100% rename from imgs/icons/62_15.png rename to imgs/icons/3224.png diff --git a/imgs/icons/62_16.png b/imgs/icons/3225.png similarity index 100% rename from imgs/icons/62_16.png rename to imgs/icons/3225.png diff --git a/imgs/icons/63_13.png b/imgs/icons/3226.png similarity index 100% rename from imgs/icons/63_13.png rename to imgs/icons/3226.png diff --git a/imgs/icons/63_14.png b/imgs/icons/3227.png similarity index 100% rename from imgs/icons/63_14.png rename to imgs/icons/3227.png diff --git a/imgs/icons/63_15.png b/imgs/icons/3228.png similarity index 100% rename from imgs/icons/63_15.png rename to imgs/icons/3228.png diff --git a/imgs/icons/63_16.png b/imgs/icons/3229.png similarity index 100% rename from imgs/icons/63_16.png rename to imgs/icons/3229.png diff --git a/imgs/icons/3230.png b/imgs/icons/3230.png new file mode 100644 index 000000000..a82fe277a Binary files /dev/null and b/imgs/icons/3230.png differ diff --git a/imgs/icons/3231.png b/imgs/icons/3231.png new file mode 100644 index 000000000..137c3234f Binary files /dev/null and b/imgs/icons/3231.png differ diff --git a/imgs/icons/3232.png b/imgs/icons/3232.png new file mode 100644 index 000000000..72a62624f Binary files /dev/null and b/imgs/icons/3232.png differ diff --git a/imgs/icons/3233.png b/imgs/icons/3233.png new file mode 100644 index 000000000..67a7b64e2 Binary files /dev/null and b/imgs/icons/3233.png differ diff --git a/imgs/icons/64_5.png b/imgs/icons/3234.png similarity index 100% rename from imgs/icons/64_5.png rename to imgs/icons/3234.png diff --git a/imgs/icons/64_6.png b/imgs/icons/3235.png similarity index 100% rename from imgs/icons/64_6.png rename to imgs/icons/3235.png diff --git a/imgs/icons/64_7.png b/imgs/icons/3236.png similarity index 100% rename from imgs/icons/64_7.png rename to imgs/icons/3236.png diff --git a/imgs/icons/64_8.png b/imgs/icons/3237.png similarity index 100% rename from imgs/icons/64_8.png rename to imgs/icons/3237.png diff --git a/imgs/icons/64_11.png b/imgs/icons/3240.png similarity index 100% rename from imgs/icons/64_11.png rename to imgs/icons/3240.png diff --git a/imgs/icons/64_12.png b/imgs/icons/3241.png similarity index 100% rename from imgs/icons/64_12.png rename to imgs/icons/3241.png diff --git a/imgs/icons/3246.png b/imgs/icons/3246.png new file mode 100644 index 000000000..30ba7fe18 Binary files /dev/null and b/imgs/icons/3246.png differ diff --git a/imgs/icons/3247.png b/imgs/icons/3247.png new file mode 100644 index 000000000..ac262341b Binary files /dev/null and b/imgs/icons/3247.png differ diff --git a/imgs/icons/3248.png b/imgs/icons/3248.png new file mode 100644 index 000000000..9e4e86f10 Binary files /dev/null and b/imgs/icons/3248.png differ diff --git a/imgs/icons/3249.png b/imgs/icons/3249.png new file mode 100644 index 000000000..ca404da38 Binary files /dev/null and b/imgs/icons/3249.png differ diff --git a/imgs/icons/3250.png b/imgs/icons/3250.png new file mode 100644 index 000000000..93a2210a5 Binary files /dev/null and b/imgs/icons/3250.png differ diff --git a/imgs/icons/3251.png b/imgs/icons/3251.png new file mode 100644 index 000000000..4f93098fc Binary files /dev/null and b/imgs/icons/3251.png differ diff --git a/imgs/icons/3252.png b/imgs/icons/3252.png new file mode 100644 index 000000000..858e3804b Binary files /dev/null and b/imgs/icons/3252.png differ diff --git a/imgs/icons/3253.png b/imgs/icons/3253.png new file mode 100644 index 000000000..e055c56a3 Binary files /dev/null and b/imgs/icons/3253.png differ diff --git a/imgs/icons/3254.png b/imgs/icons/3254.png new file mode 100644 index 000000000..2a6dd41b9 Binary files /dev/null and b/imgs/icons/3254.png differ diff --git a/imgs/icons/3255.png b/imgs/icons/3255.png new file mode 100644 index 000000000..6a0951721 Binary files /dev/null and b/imgs/icons/3255.png differ diff --git a/imgs/icons/3256.png b/imgs/icons/3256.png new file mode 100644 index 000000000..a8904b701 Binary files /dev/null and b/imgs/icons/3256.png differ diff --git a/imgs/icons/3257.png b/imgs/icons/3257.png new file mode 100644 index 000000000..1104c6ff2 Binary files /dev/null and b/imgs/icons/3257.png differ diff --git a/imgs/icons/3258.png b/imgs/icons/3258.png new file mode 100644 index 000000000..950de7298 Binary files /dev/null and b/imgs/icons/3258.png differ diff --git a/imgs/icons/3259.png b/imgs/icons/3259.png new file mode 100644 index 000000000..1169f2ba2 Binary files /dev/null and b/imgs/icons/3259.png differ diff --git a/imgs/icons/3260.png b/imgs/icons/3260.png new file mode 100644 index 000000000..4e40b0c5a Binary files /dev/null and b/imgs/icons/3260.png differ diff --git a/imgs/icons/3261.png b/imgs/icons/3261.png new file mode 100644 index 000000000..3bce43692 Binary files /dev/null and b/imgs/icons/3261.png differ diff --git a/imgs/icons/3262.png b/imgs/icons/3262.png new file mode 100644 index 000000000..39bed64b4 Binary files /dev/null and b/imgs/icons/3262.png differ diff --git a/imgs/icons/3263.png b/imgs/icons/3263.png new file mode 100644 index 000000000..c5b622919 Binary files /dev/null and b/imgs/icons/3263.png differ diff --git a/imgs/icons/3264.png b/imgs/icons/3264.png new file mode 100644 index 000000000..65db16123 Binary files /dev/null and b/imgs/icons/3264.png differ diff --git a/imgs/icons/3265.png b/imgs/icons/3265.png new file mode 100644 index 000000000..275655fc6 Binary files /dev/null and b/imgs/icons/3265.png differ diff --git a/imgs/icons/68_1.png b/imgs/icons/3266.png similarity index 100% rename from imgs/icons/68_1.png rename to imgs/icons/3266.png diff --git a/imgs/icons/70_5.png b/imgs/icons/3278.png similarity index 100% rename from imgs/icons/70_5.png rename to imgs/icons/3278.png diff --git a/imgs/icons/70_8.png b/imgs/icons/3279.png similarity index 100% rename from imgs/icons/70_8.png rename to imgs/icons/3279.png diff --git a/imgs/icons/70_6.png b/imgs/icons/3280.png similarity index 100% rename from imgs/icons/70_6.png rename to imgs/icons/3280.png diff --git a/imgs/icons/70_7.png b/imgs/icons/3281.png similarity index 100% rename from imgs/icons/70_7.png rename to imgs/icons/3281.png diff --git a/imgs/icons/70_3.png b/imgs/icons/3282.png similarity index 100% rename from imgs/icons/70_3.png rename to imgs/icons/3282.png diff --git a/imgs/icons/70_4.png b/imgs/icons/3283.png similarity index 100% rename from imgs/icons/70_4.png rename to imgs/icons/3283.png diff --git a/imgs/icons/50_11.png b/imgs/icons/33.png similarity index 100% rename from imgs/icons/50_11.png rename to imgs/icons/33.png diff --git a/imgs/icons/70_10.png b/imgs/icons/3300.png similarity index 100% rename from imgs/icons/70_10.png rename to imgs/icons/3300.png diff --git a/imgs/icons/70_12.png b/imgs/icons/3302.png similarity index 100% rename from imgs/icons/70_12.png rename to imgs/icons/3302.png diff --git a/imgs/icons/70_13.png b/imgs/icons/3303.png similarity index 100% rename from imgs/icons/70_13.png rename to imgs/icons/3303.png diff --git a/imgs/icons/70_14.png b/imgs/icons/3304.png similarity index 100% rename from imgs/icons/70_14.png rename to imgs/icons/3304.png diff --git a/imgs/icons/70_15.png b/imgs/icons/3305.png similarity index 100% rename from imgs/icons/70_15.png rename to imgs/icons/3305.png diff --git a/imgs/icons/70_16.png b/imgs/icons/3306.png similarity index 100% rename from imgs/icons/70_16.png rename to imgs/icons/3306.png diff --git a/imgs/icons/3307.png b/imgs/icons/3307.png new file mode 100644 index 000000000..273d5ff82 Binary files /dev/null and b/imgs/icons/3307.png differ diff --git a/imgs/icons/3308.png b/imgs/icons/3308.png new file mode 100644 index 000000000..b0234ca68 Binary files /dev/null and b/imgs/icons/3308.png differ diff --git a/imgs/icons/3309.png b/imgs/icons/3309.png new file mode 100644 index 000000000..9555ecc5d Binary files /dev/null and b/imgs/icons/3309.png differ diff --git a/imgs/icons/3310.png b/imgs/icons/3310.png new file mode 100644 index 000000000..1a03688b5 Binary files /dev/null and b/imgs/icons/3310.png differ diff --git a/imgs/icons/3311.png b/imgs/icons/3311.png new file mode 100644 index 000000000..ed828f13d Binary files /dev/null and b/imgs/icons/3311.png differ diff --git a/imgs/icons/3312.png b/imgs/icons/3312.png new file mode 100644 index 000000000..a8dc323c1 Binary files /dev/null and b/imgs/icons/3312.png differ diff --git a/imgs/icons/3313.png b/imgs/icons/3313.png new file mode 100644 index 000000000..5a7d469c8 Binary files /dev/null and b/imgs/icons/3313.png differ diff --git a/imgs/icons/3314.png b/imgs/icons/3314.png new file mode 100644 index 000000000..5f61b1117 Binary files /dev/null and b/imgs/icons/3314.png differ diff --git a/imgs/icons/3315.png b/imgs/icons/3315.png new file mode 100644 index 000000000..d3d12a680 Binary files /dev/null and b/imgs/icons/3315.png differ diff --git a/imgs/icons/3316.png b/imgs/icons/3316.png new file mode 100644 index 000000000..5d9f53b2b Binary files /dev/null and b/imgs/icons/3316.png differ diff --git a/imgs/icons/3317.png b/imgs/icons/3317.png new file mode 100644 index 000000000..3cdd5605b Binary files /dev/null and b/imgs/icons/3317.png differ diff --git a/imgs/icons/3318.png b/imgs/icons/3318.png new file mode 100644 index 000000000..e7b86f56d Binary files /dev/null and b/imgs/icons/3318.png differ diff --git a/imgs/icons/3319.png b/imgs/icons/3319.png new file mode 100644 index 000000000..cdbbe9f1e Binary files /dev/null and b/imgs/icons/3319.png differ diff --git a/imgs/icons/3320.png b/imgs/icons/3320.png new file mode 100644 index 000000000..cd7ee5faf Binary files /dev/null and b/imgs/icons/3320.png differ diff --git a/imgs/icons/3321.png b/imgs/icons/3321.png new file mode 100644 index 000000000..2f67c1deb Binary files /dev/null and b/imgs/icons/3321.png differ diff --git a/imgs/icons/3322.png b/imgs/icons/3322.png new file mode 100644 index 000000000..b3d2d9f26 Binary files /dev/null and b/imgs/icons/3322.png differ diff --git a/imgs/icons/3323.png b/imgs/icons/3323.png new file mode 100644 index 000000000..3365cae85 Binary files /dev/null and b/imgs/icons/3323.png differ diff --git a/imgs/icons/3324.png b/imgs/icons/3324.png new file mode 100644 index 000000000..cf60ca050 Binary files /dev/null and b/imgs/icons/3324.png differ diff --git a/imgs/icons/3325.png b/imgs/icons/3325.png new file mode 100644 index 000000000..d9b5b8643 Binary files /dev/null and b/imgs/icons/3325.png differ diff --git a/imgs/icons/3326.png b/imgs/icons/3326.png new file mode 100644 index 000000000..7377c3ad6 Binary files /dev/null and b/imgs/icons/3326.png differ diff --git a/imgs/icons/3327.png b/imgs/icons/3327.png new file mode 100644 index 000000000..1baa569fd Binary files /dev/null and b/imgs/icons/3327.png differ diff --git a/imgs/icons/3328.png b/imgs/icons/3328.png new file mode 100644 index 000000000..6d0a2b0a2 Binary files /dev/null and b/imgs/icons/3328.png differ diff --git a/imgs/icons/3329.png b/imgs/icons/3329.png new file mode 100644 index 000000000..a2d242d1b Binary files /dev/null and b/imgs/icons/3329.png differ diff --git a/imgs/icons/3330.png b/imgs/icons/3330.png new file mode 100644 index 000000000..4b87d803c Binary files /dev/null and b/imgs/icons/3330.png differ diff --git a/imgs/icons/3333.png b/imgs/icons/3333.png new file mode 100644 index 000000000..53992b878 Binary files /dev/null and b/imgs/icons/3333.png differ diff --git a/imgs/icons/3334.png b/imgs/icons/3334.png new file mode 100644 index 000000000..af009578f Binary files /dev/null and b/imgs/icons/3334.png differ diff --git a/imgs/icons/3335.png b/imgs/icons/3335.png new file mode 100644 index 000000000..5a6fbaa8b Binary files /dev/null and b/imgs/icons/3335.png differ diff --git a/imgs/icons/3336.png b/imgs/icons/3336.png new file mode 100644 index 000000000..034daa298 Binary files /dev/null and b/imgs/icons/3336.png differ diff --git a/imgs/icons/3337.png b/imgs/icons/3337.png new file mode 100644 index 000000000..90aa55da6 Binary files /dev/null and b/imgs/icons/3337.png differ diff --git a/imgs/icons/3338.png b/imgs/icons/3338.png new file mode 100644 index 000000000..6ff574a94 Binary files /dev/null and b/imgs/icons/3338.png differ diff --git a/imgs/icons/74_1.png b/imgs/icons/3339.png similarity index 100% rename from imgs/icons/74_1.png rename to imgs/icons/3339.png diff --git a/imgs/icons/74_2.png b/imgs/icons/3340.png similarity index 100% rename from imgs/icons/74_2.png rename to imgs/icons/3340.png diff --git a/imgs/icons/74_3.png b/imgs/icons/3341.png similarity index 100% rename from imgs/icons/74_3.png rename to imgs/icons/3341.png diff --git a/imgs/icons/74_4.png b/imgs/icons/3342.png similarity index 100% rename from imgs/icons/74_4.png rename to imgs/icons/3342.png diff --git a/imgs/icons/74_5.png b/imgs/icons/3343.png similarity index 100% rename from imgs/icons/74_5.png rename to imgs/icons/3343.png diff --git a/imgs/icons/74_6.png b/imgs/icons/3344.png similarity index 100% rename from imgs/icons/74_6.png rename to imgs/icons/3344.png diff --git a/imgs/icons/74_7.png b/imgs/icons/3345.png similarity index 100% rename from imgs/icons/74_7.png rename to imgs/icons/3345.png diff --git a/imgs/icons/74_8.png b/imgs/icons/3346.png similarity index 100% rename from imgs/icons/74_8.png rename to imgs/icons/3346.png diff --git a/imgs/icons/74_9.png b/imgs/icons/3347.png similarity index 100% rename from imgs/icons/74_9.png rename to imgs/icons/3347.png diff --git a/imgs/icons/74_10.png b/imgs/icons/3348.png similarity index 100% rename from imgs/icons/74_10.png rename to imgs/icons/3348.png diff --git a/imgs/icons/8_16.png b/imgs/icons/34.png similarity index 100% rename from imgs/icons/8_16.png rename to imgs/icons/34.png diff --git a/imgs/icons/76_1.png b/imgs/icons/3433.png similarity index 100% rename from imgs/icons/76_1.png rename to imgs/icons/3433.png diff --git a/imgs/icons/3435.png b/imgs/icons/3435.png new file mode 100644 index 000000000..f8f48c881 Binary files /dev/null and b/imgs/icons/3435.png differ diff --git a/imgs/icons/3436.png b/imgs/icons/3436.png new file mode 100644 index 000000000..70d72fa58 Binary files /dev/null and b/imgs/icons/3436.png differ diff --git a/imgs/icons/3437.png b/imgs/icons/3437.png new file mode 100644 index 000000000..e5899a458 Binary files /dev/null and b/imgs/icons/3437.png differ diff --git a/imgs/icons/3438.png b/imgs/icons/3438.png new file mode 100644 index 000000000..aabd42c96 Binary files /dev/null and b/imgs/icons/3438.png differ diff --git a/imgs/icons/3439.png b/imgs/icons/3439.png new file mode 100644 index 000000000..6ff4e6e84 Binary files /dev/null and b/imgs/icons/3439.png differ diff --git a/imgs/icons/3440.png b/imgs/icons/3440.png new file mode 100644 index 000000000..0644ae27c Binary files /dev/null and b/imgs/icons/3440.png differ diff --git a/imgs/icons/3441.png b/imgs/icons/3441.png new file mode 100644 index 000000000..73e89cb01 Binary files /dev/null and b/imgs/icons/3441.png differ diff --git a/imgs/icons/3442.png b/imgs/icons/3442.png new file mode 100644 index 000000000..d90b179e7 Binary files /dev/null and b/imgs/icons/3442.png differ diff --git a/imgs/icons/3443.png b/imgs/icons/3443.png new file mode 100644 index 000000000..8ad8a1664 Binary files /dev/null and b/imgs/icons/3443.png differ diff --git a/imgs/icons/3444.png b/imgs/icons/3444.png new file mode 100644 index 000000000..00cf4bca1 Binary files /dev/null and b/imgs/icons/3444.png differ diff --git a/imgs/icons/3445.png b/imgs/icons/3445.png new file mode 100644 index 000000000..c820a3cbc Binary files /dev/null and b/imgs/icons/3445.png differ diff --git a/imgs/icons/3446.png b/imgs/icons/3446.png new file mode 100644 index 000000000..d4ed6820a Binary files /dev/null and b/imgs/icons/3446.png differ diff --git a/imgs/icons/3447.png b/imgs/icons/3447.png new file mode 100644 index 000000000..110984ac2 Binary files /dev/null and b/imgs/icons/3447.png differ diff --git a/imgs/icons/3448.png b/imgs/icons/3448.png new file mode 100644 index 000000000..823292c7b Binary files /dev/null and b/imgs/icons/3448.png differ diff --git a/imgs/icons/3449.png b/imgs/icons/3449.png new file mode 100644 index 000000000..4a2665fd3 Binary files /dev/null and b/imgs/icons/3449.png differ diff --git a/imgs/icons/3450.png b/imgs/icons/3450.png new file mode 100644 index 000000000..d4a8a46b1 Binary files /dev/null and b/imgs/icons/3450.png differ diff --git a/imgs/icons/13_5.png b/imgs/icons/349.png similarity index 100% rename from imgs/icons/13_5.png rename to imgs/icons/349.png diff --git a/imgs/icons/13_13.png b/imgs/icons/350.png similarity index 100% rename from imgs/icons/13_13.png rename to imgs/icons/350.png diff --git a/imgs/icons/13_9.png b/imgs/icons/352.png similarity index 100% rename from imgs/icons/13_9.png rename to imgs/icons/352.png diff --git a/imgs/icons/13_10.png b/imgs/icons/355.png similarity index 100% rename from imgs/icons/13_10.png rename to imgs/icons/355.png diff --git a/imgs/icons/13_14.png b/imgs/icons/356.png similarity index 100% rename from imgs/icons/13_14.png rename to imgs/icons/356.png diff --git a/imgs/icons/13_15.png b/imgs/icons/360.png similarity index 100% rename from imgs/icons/13_15.png rename to imgs/icons/360.png diff --git a/imgs/icons/13_11.png b/imgs/icons/361.png similarity index 100% rename from imgs/icons/13_11.png rename to imgs/icons/361.png diff --git a/imgs/icons/76_6.png b/imgs/icons/3631.png similarity index 100% rename from imgs/icons/76_6.png rename to imgs/icons/3631.png diff --git a/imgs/icons/76_7.png b/imgs/icons/3636.png similarity index 100% rename from imgs/icons/76_7.png rename to imgs/icons/3636.png diff --git a/imgs/icons/76_5.png b/imgs/icons/3641.png similarity index 100% rename from imgs/icons/76_5.png rename to imgs/icons/3641.png diff --git a/imgs/icons/76_8.png b/imgs/icons/3646.png similarity index 100% rename from imgs/icons/76_8.png rename to imgs/icons/3646.png diff --git a/imgs/icons/13_3.png b/imgs/icons/365.png similarity index 100% rename from imgs/icons/13_3.png rename to imgs/icons/365.png diff --git a/imgs/icons/13_7.png b/imgs/icons/366.png similarity index 100% rename from imgs/icons/13_7.png rename to imgs/icons/366.png diff --git a/imgs/icons/13_6.png b/imgs/icons/370.png similarity index 100% rename from imgs/icons/13_6.png rename to imgs/icons/370.png diff --git a/imgs/icons/13_2.png b/imgs/icons/371.png similarity index 100% rename from imgs/icons/13_2.png rename to imgs/icons/371.png diff --git a/imgs/icons/3716.png b/imgs/icons/3716.png new file mode 100644 index 000000000..fa58aa849 Binary files /dev/null and b/imgs/icons/3716.png differ diff --git a/imgs/icons/3717.png b/imgs/icons/3717.png new file mode 100644 index 000000000..bb180c9e6 Binary files /dev/null and b/imgs/icons/3717.png differ diff --git a/imgs/icons/3718.png b/imgs/icons/3718.png new file mode 100644 index 000000000..2d6ff813a Binary files /dev/null and b/imgs/icons/3718.png differ diff --git a/imgs/icons/3719.png b/imgs/icons/3719.png new file mode 100644 index 000000000..0bb2390bd Binary files /dev/null and b/imgs/icons/3719.png differ diff --git a/imgs/icons/3720.png b/imgs/icons/3720.png new file mode 100644 index 000000000..f1505c304 Binary files /dev/null and b/imgs/icons/3720.png differ diff --git a/imgs/icons/3721.png b/imgs/icons/3721.png new file mode 100644 index 000000000..395bf1bee Binary files /dev/null and b/imgs/icons/3721.png differ diff --git a/imgs/icons/3722.png b/imgs/icons/3722.png new file mode 100644 index 000000000..b0a2d1973 Binary files /dev/null and b/imgs/icons/3722.png differ diff --git a/imgs/icons/3723.png b/imgs/icons/3723.png new file mode 100644 index 000000000..d3482d5cf Binary files /dev/null and b/imgs/icons/3723.png differ diff --git a/imgs/icons/3724.png b/imgs/icons/3724.png new file mode 100644 index 000000000..efad7d902 Binary files /dev/null and b/imgs/icons/3724.png differ diff --git a/imgs/icons/3725.png b/imgs/icons/3725.png new file mode 100644 index 000000000..395d9593a Binary files /dev/null and b/imgs/icons/3725.png differ diff --git a/imgs/icons/3726.png b/imgs/icons/3726.png new file mode 100644 index 000000000..65721890b Binary files /dev/null and b/imgs/icons/3726.png differ diff --git a/imgs/icons/3727.png b/imgs/icons/3727.png new file mode 100644 index 000000000..ae19b7c51 Binary files /dev/null and b/imgs/icons/3727.png differ diff --git a/imgs/icons/3729.png b/imgs/icons/3729.png new file mode 100644 index 000000000..604ae1ee8 Binary files /dev/null and b/imgs/icons/3729.png differ diff --git a/imgs/icons/3730.png b/imgs/icons/3730.png new file mode 100644 index 000000000..c438c759f Binary files /dev/null and b/imgs/icons/3730.png differ diff --git a/imgs/icons/3733.png b/imgs/icons/3733.png new file mode 100644 index 000000000..4e357b2c7 Binary files /dev/null and b/imgs/icons/3733.png differ diff --git a/imgs/icons/3734.png b/imgs/icons/3734.png new file mode 100644 index 000000000..9d352bfcd Binary files /dev/null and b/imgs/icons/3734.png differ diff --git a/imgs/icons/3736.png b/imgs/icons/3736.png new file mode 100644 index 000000000..2c7c2af44 Binary files /dev/null and b/imgs/icons/3736.png differ diff --git a/imgs/icons/3737.png b/imgs/icons/3737.png new file mode 100644 index 000000000..f1c057122 Binary files /dev/null and b/imgs/icons/3737.png differ diff --git a/imgs/icons/3738.png b/imgs/icons/3738.png new file mode 100644 index 000000000..1cf8f3800 Binary files /dev/null and b/imgs/icons/3738.png differ diff --git a/imgs/icons/3739.png b/imgs/icons/3739.png new file mode 100644 index 000000000..3b149b5be Binary files /dev/null and b/imgs/icons/3739.png differ diff --git a/imgs/icons/3740.png b/imgs/icons/3740.png new file mode 100644 index 000000000..54e7d8aa2 Binary files /dev/null and b/imgs/icons/3740.png differ diff --git a/imgs/icons/3741.png b/imgs/icons/3741.png new file mode 100644 index 000000000..f312e0458 Binary files /dev/null and b/imgs/icons/3741.png differ diff --git a/imgs/icons/3744.png b/imgs/icons/3744.png new file mode 100644 index 000000000..1c78ac12a Binary files /dev/null and b/imgs/icons/3744.png differ diff --git a/imgs/icons/3745.png b/imgs/icons/3745.png new file mode 100644 index 000000000..642a53986 Binary files /dev/null and b/imgs/icons/3745.png differ diff --git a/imgs/icons/3746.png b/imgs/icons/3746.png new file mode 100644 index 000000000..681b713bc Binary files /dev/null and b/imgs/icons/3746.png differ diff --git a/imgs/icons/3750.png b/imgs/icons/3750.png new file mode 100644 index 000000000..8009cf6fc Binary files /dev/null and b/imgs/icons/3750.png differ diff --git a/imgs/icons/3751.png b/imgs/icons/3751.png new file mode 100644 index 000000000..6580f0077 Binary files /dev/null and b/imgs/icons/3751.png differ diff --git a/imgs/icons/3753.png b/imgs/icons/3753.png new file mode 100644 index 000000000..09ba47e81 Binary files /dev/null and b/imgs/icons/3753.png differ diff --git a/imgs/icons/3754.png b/imgs/icons/3754.png new file mode 100644 index 000000000..59f37595c Binary files /dev/null and b/imgs/icons/3754.png differ diff --git a/imgs/icons/3755.png b/imgs/icons/3755.png new file mode 100644 index 000000000..b880d2258 Binary files /dev/null and b/imgs/icons/3755.png differ diff --git a/imgs/icons/76_4.png b/imgs/icons/3756.png similarity index 100% rename from imgs/icons/76_4.png rename to imgs/icons/3756.png diff --git a/imgs/icons/76_16.png b/imgs/icons/3759.png similarity index 100% rename from imgs/icons/76_16.png rename to imgs/icons/3759.png diff --git a/imgs/icons/13_1.png b/imgs/icons/376.png similarity index 100% rename from imgs/icons/13_1.png rename to imgs/icons/376.png diff --git a/imgs/icons/89_1.png b/imgs/icons/3762.png similarity index 100% rename from imgs/icons/89_1.png rename to imgs/icons/3762.png diff --git a/imgs/icons/89_2.png b/imgs/icons/3763.png similarity index 100% rename from imgs/icons/89_2.png rename to imgs/icons/3763.png diff --git a/imgs/icons/89_3.png b/imgs/icons/3764.png similarity index 100% rename from imgs/icons/89_3.png rename to imgs/icons/3764.png diff --git a/imgs/icons/89_4.png b/imgs/icons/3765.png similarity index 100% rename from imgs/icons/89_4.png rename to imgs/icons/3765.png diff --git a/imgs/icons/3766.png b/imgs/icons/3766.png new file mode 100644 index 000000000..d1d1d98c4 Binary files /dev/null and b/imgs/icons/3766.png differ diff --git a/imgs/icons/12_15.png b/imgs/icons/379.png similarity index 100% rename from imgs/icons/12_15.png rename to imgs/icons/379.png diff --git a/imgs/icons/12_11.png b/imgs/icons/381.png similarity index 100% rename from imgs/icons/12_11.png rename to imgs/icons/381.png diff --git a/imgs/icons/12_14.png b/imgs/icons/384.png similarity index 100% rename from imgs/icons/12_14.png rename to imgs/icons/384.png diff --git a/imgs/icons/12_10.png b/imgs/icons/386.png similarity index 100% rename from imgs/icons/12_10.png rename to imgs/icons/386.png diff --git a/imgs/icons/12_9.png b/imgs/icons/387.png similarity index 100% rename from imgs/icons/12_9.png rename to imgs/icons/387.png diff --git a/imgs/icons/12_13.png b/imgs/icons/389.png similarity index 100% rename from imgs/icons/12_13.png rename to imgs/icons/389.png diff --git a/imgs/icons/3943.png b/imgs/icons/3943.png new file mode 100644 index 000000000..ec15ce642 Binary files /dev/null and b/imgs/icons/3943.png differ diff --git a/imgs/icons/3945.png b/imgs/icons/3945.png new file mode 100644 index 000000000..1501c7da5 Binary files /dev/null and b/imgs/icons/3945.png differ diff --git a/imgs/icons/3946.png b/imgs/icons/3946.png new file mode 100644 index 000000000..4a31b572d Binary files /dev/null and b/imgs/icons/3946.png differ diff --git a/imgs/icons/3947.png b/imgs/icons/3947.png new file mode 100644 index 000000000..54575acd4 Binary files /dev/null and b/imgs/icons/3947.png differ diff --git a/imgs/icons/3948.png b/imgs/icons/3948.png new file mode 100644 index 000000000..b1665f39b Binary files /dev/null and b/imgs/icons/3948.png differ diff --git a/imgs/icons/3950.png b/imgs/icons/3950.png new file mode 100644 index 000000000..ff7822814 Binary files /dev/null and b/imgs/icons/3950.png differ diff --git a/imgs/icons/3951.png b/imgs/icons/3951.png new file mode 100644 index 000000000..97dc394d1 Binary files /dev/null and b/imgs/icons/3951.png differ diff --git a/imgs/icons/3952.png b/imgs/icons/3952.png new file mode 100644 index 000000000..747597fb9 Binary files /dev/null and b/imgs/icons/3952.png differ diff --git a/imgs/icons/3953.png b/imgs/icons/3953.png new file mode 100644 index 000000000..c11b03066 Binary files /dev/null and b/imgs/icons/3953.png differ diff --git a/imgs/icons/95_5.png b/imgs/icons/3955.png similarity index 100% rename from imgs/icons/95_5.png rename to imgs/icons/3955.png diff --git a/imgs/icons/11_5.png b/imgs/icons/398.png similarity index 100% rename from imgs/icons/11_5.png rename to imgs/icons/398.png diff --git a/imgs/icons/400.png b/imgs/icons/400.png new file mode 100644 index 000000000..518e3dc75 Binary files /dev/null and b/imgs/icons/400.png differ diff --git a/imgs/icons/401.png b/imgs/icons/401.png new file mode 100644 index 000000000..b63fab8d1 Binary files /dev/null and b/imgs/icons/401.png differ diff --git a/imgs/icons/402.png b/imgs/icons/402.png new file mode 100644 index 000000000..e5e4a54b1 Binary files /dev/null and b/imgs/icons/402.png differ diff --git a/imgs/icons/404.png b/imgs/icons/404.png new file mode 100644 index 000000000..b39071f4c Binary files /dev/null and b/imgs/icons/404.png differ diff --git a/imgs/icons/405.png b/imgs/icons/405.png new file mode 100644 index 000000000..e4b58d21d Binary files /dev/null and b/imgs/icons/405.png differ diff --git a/imgs/icons/8_12.png b/imgs/icons/413.png similarity index 100% rename from imgs/icons/8_12.png rename to imgs/icons/413.png diff --git a/imgs/icons/4_16.png b/imgs/icons/4_16.png deleted file mode 100644 index 811602e78..000000000 Binary files a/imgs/icons/4_16.png and /dev/null differ diff --git a/imgs/icons/2_9.png b/imgs/icons/67.png similarity index 100% rename from imgs/icons/2_9.png rename to imgs/icons/67.png diff --git a/imgs/icons/1_9.png b/imgs/icons/68.png similarity index 100% rename from imgs/icons/1_9.png rename to imgs/icons/68.png diff --git a/imgs/icons/1_13.png b/imgs/icons/69.png similarity index 100% rename from imgs/icons/1_13.png rename to imgs/icons/69.png diff --git a/imgs/icons/70.png b/imgs/icons/70.png new file mode 100644 index 000000000..cf8d2316f Binary files /dev/null and b/imgs/icons/70.png differ diff --git a/imgs/icons/3_13.png b/imgs/icons/71.png similarity index 100% rename from imgs/icons/3_13.png rename to imgs/icons/71.png diff --git a/imgs/icons/3_1.png b/imgs/icons/72.png similarity index 100% rename from imgs/icons/3_1.png rename to imgs/icons/72.png diff --git a/imgs/icons/2_14.png b/imgs/icons/73.png similarity index 100% rename from imgs/icons/2_14.png rename to imgs/icons/73.png diff --git a/imgs/icons/3_9.png b/imgs/icons/74.png similarity index 100% rename from imgs/icons/3_9.png rename to imgs/icons/74.png diff --git a/imgs/icons/2_10.png b/imgs/icons/76.png similarity index 100% rename from imgs/icons/2_10.png rename to imgs/icons/76.png diff --git a/imgs/icons/76_9.png b/imgs/icons/76_9.png deleted file mode 100644 index 2233095e1..000000000 Binary files a/imgs/icons/76_9.png and /dev/null differ diff --git a/imgs/icons/2_11.png b/imgs/icons/77.png similarity index 100% rename from imgs/icons/2_11.png rename to imgs/icons/77.png diff --git a/imgs/icons/1_10.png b/imgs/icons/79.png similarity index 100% rename from imgs/icons/1_10.png rename to imgs/icons/79.png diff --git a/imgs/icons/1_11.png b/imgs/icons/80.png similarity index 100% rename from imgs/icons/1_11.png rename to imgs/icons/80.png diff --git a/imgs/icons/2_2.png b/imgs/icons/81.png similarity index 100% rename from imgs/icons/2_2.png rename to imgs/icons/81.png diff --git a/imgs/icons/2_4.png b/imgs/icons/82.png similarity index 100% rename from imgs/icons/2_4.png rename to imgs/icons/82.png diff --git a/imgs/icons/1_15.png b/imgs/icons/83.png similarity index 100% rename from imgs/icons/1_15.png rename to imgs/icons/83.png diff --git a/imgs/icons/2_3.png b/imgs/icons/84.png similarity index 100% rename from imgs/icons/2_3.png rename to imgs/icons/84.png diff --git a/imgs/icons/1_16.png b/imgs/icons/86.png similarity index 100% rename from imgs/icons/1_16.png rename to imgs/icons/86.png diff --git a/imgs/icons/1_4.png b/imgs/icons/89.png similarity index 100% rename from imgs/icons/1_4.png rename to imgs/icons/89.png diff --git a/imgs/icons/1_1.png b/imgs/icons/90.png similarity index 100% rename from imgs/icons/1_1.png rename to imgs/icons/90.png diff --git a/imgs/icons/4_13.png b/imgs/icons/92.png similarity index 100% rename from imgs/icons/4_13.png rename to imgs/icons/92.png diff --git a/imgs/icons/94.png b/imgs/icons/94.png new file mode 100644 index 000000000..05893d76d Binary files /dev/null and b/imgs/icons/94.png differ diff --git a/imgs/icons/3_2.png b/imgs/icons/96.png similarity index 100% rename from imgs/icons/3_2.png rename to imgs/icons/96.png diff --git a/imgs/icons/3_8.png b/imgs/icons/97.png similarity index 100% rename from imgs/icons/3_8.png rename to imgs/icons/97.png diff --git a/imgs/icons/3_5.png b/imgs/icons/98.png similarity index 100% rename from imgs/icons/3_5.png rename to imgs/icons/98.png diff --git a/imgs/renders/10006.png b/imgs/renders/10006.png new file mode 100644 index 000000000..1cd52cf34 Binary files /dev/null and b/imgs/renders/10006.png differ diff --git a/imgs/renders/10013.png b/imgs/renders/10013.png new file mode 100644 index 000000000..4dc9ee83d Binary files /dev/null and b/imgs/renders/10013.png differ diff --git a/imgs/renders/10038.png b/imgs/renders/10038.png new file mode 100644 index 000000000..5220d5d2a Binary files /dev/null and b/imgs/renders/10038.png differ diff --git a/imgs/renders/10040.png b/imgs/renders/10040.png new file mode 100644 index 000000000..34d55fe8a Binary files /dev/null and b/imgs/renders/10040.png differ diff --git a/imgs/renders/1053.png b/imgs/renders/1053.png new file mode 100644 index 000000000..25e622fc0 Binary files /dev/null and b/imgs/renders/1053.png differ diff --git a/imgs/renders/1064.png b/imgs/renders/1064.png new file mode 100644 index 000000000..9239a3ac7 Binary files /dev/null and b/imgs/renders/1064.png differ diff --git a/imgs/renders/1065.png b/imgs/renders/1065.png new file mode 100644 index 000000000..fca1b7e30 Binary files /dev/null and b/imgs/renders/1065.png differ diff --git a/imgs/renders/1066.png b/imgs/renders/1066.png new file mode 100644 index 000000000..31c68f8fe Binary files /dev/null and b/imgs/renders/1066.png differ diff --git a/imgs/renders/1067.png b/imgs/renders/1067.png new file mode 100644 index 000000000..23ea76dbd Binary files /dev/null and b/imgs/renders/1067.png differ diff --git a/imgs/renders/10782.png b/imgs/renders/10782.png new file mode 100644 index 000000000..ec369b328 Binary files /dev/null and b/imgs/renders/10782.png differ diff --git a/imgs/renders/10950.png b/imgs/renders/10950.png new file mode 100644 index 000000000..7b3cc06b0 Binary files /dev/null and b/imgs/renders/10950.png differ diff --git a/imgs/renders/10951.png b/imgs/renders/10951.png new file mode 100644 index 000000000..6d0291b65 Binary files /dev/null and b/imgs/renders/10951.png differ diff --git a/imgs/renders/11011.png b/imgs/renders/11011.png deleted file mode 100644 index 43f603822..000000000 Binary files a/imgs/renders/11011.png and /dev/null differ diff --git a/imgs/renders/11129.png b/imgs/renders/11129.png deleted file mode 100644 index e61896246..000000000 Binary files a/imgs/renders/11129.png and /dev/null differ diff --git a/imgs/renders/11132.png b/imgs/renders/11132.png deleted file mode 100644 index ddf54b1ee..000000000 Binary files a/imgs/renders/11132.png and /dev/null differ diff --git a/imgs/renders/11134.png b/imgs/renders/11134.png deleted file mode 100644 index bb8f8b418..000000000 Binary files a/imgs/renders/11134.png and /dev/null differ diff --git a/imgs/renders/11172.png b/imgs/renders/11172.png deleted file mode 100644 index 5e5c2e88d..000000000 Binary files a/imgs/renders/11172.png and /dev/null differ diff --git a/imgs/renders/11174.png b/imgs/renders/11174.png deleted file mode 100644 index d0ecdc900..000000000 Binary files a/imgs/renders/11174.png and /dev/null differ diff --git a/imgs/renders/11176.png b/imgs/renders/11176.png deleted file mode 100644 index ef3e002e6..000000000 Binary files a/imgs/renders/11176.png and /dev/null differ diff --git a/imgs/renders/11178.png b/imgs/renders/11178.png deleted file mode 100644 index 03bff6e3c..000000000 Binary files a/imgs/renders/11178.png and /dev/null differ diff --git a/imgs/renders/11182.png b/imgs/renders/11182.png deleted file mode 100644 index 38685248e..000000000 Binary files a/imgs/renders/11182.png and /dev/null differ diff --git a/imgs/renders/11184.png b/imgs/renders/11184.png deleted file mode 100644 index 6bed254be..000000000 Binary files a/imgs/renders/11184.png and /dev/null differ diff --git a/imgs/renders/11186.png b/imgs/renders/11186.png deleted file mode 100644 index e8f75b15b..000000000 Binary files a/imgs/renders/11186.png and /dev/null differ diff --git a/imgs/renders/11188.png b/imgs/renders/11188.png deleted file mode 100644 index 92a56d3e0..000000000 Binary files a/imgs/renders/11188.png and /dev/null differ diff --git a/imgs/renders/11190.png b/imgs/renders/11190.png deleted file mode 100644 index cdaf79494..000000000 Binary files a/imgs/renders/11190.png and /dev/null differ diff --git a/imgs/renders/11192.png b/imgs/renders/11192.png deleted file mode 100644 index 76174e5cc..000000000 Binary files a/imgs/renders/11192.png and /dev/null differ diff --git a/imgs/renders/11194.png b/imgs/renders/11194.png deleted file mode 100644 index ee31b2b47..000000000 Binary files a/imgs/renders/11194.png and /dev/null differ diff --git a/imgs/renders/11196.png b/imgs/renders/11196.png deleted file mode 100644 index 669de8269..000000000 Binary files a/imgs/renders/11196.png and /dev/null differ diff --git a/imgs/renders/11198.png b/imgs/renders/11198.png deleted file mode 100644 index 731935b84..000000000 Binary files a/imgs/renders/11198.png and /dev/null differ diff --git a/imgs/renders/11200.png b/imgs/renders/11200.png deleted file mode 100644 index 757a2107f..000000000 Binary files a/imgs/renders/11200.png and /dev/null differ diff --git a/imgs/renders/11202.png b/imgs/renders/11202.png deleted file mode 100644 index 9f4f879ed..000000000 Binary files a/imgs/renders/11202.png and /dev/null differ diff --git a/imgs/renders/11365.png b/imgs/renders/11365.png deleted file mode 100644 index 680d5a513..000000000 Binary files a/imgs/renders/11365.png and /dev/null differ diff --git a/imgs/renders/11371.png b/imgs/renders/11371.png deleted file mode 100644 index 432961bcd..000000000 Binary files a/imgs/renders/11371.png and /dev/null differ diff --git a/imgs/renders/11377.png b/imgs/renders/11377.png deleted file mode 100644 index ff3e2793d..000000000 Binary files a/imgs/renders/11377.png and /dev/null differ diff --git a/imgs/renders/11379.png b/imgs/renders/11379.png deleted file mode 100644 index 5a31c2abf..000000000 Binary files a/imgs/renders/11379.png and /dev/null differ diff --git a/imgs/renders/11381.png b/imgs/renders/11381.png deleted file mode 100644 index 964281297..000000000 Binary files a/imgs/renders/11381.png and /dev/null differ diff --git a/imgs/renders/11387.png b/imgs/renders/11387.png deleted file mode 100644 index 086292471..000000000 Binary files a/imgs/renders/11387.png and /dev/null differ diff --git a/imgs/renders/11393.png b/imgs/renders/11393.png deleted file mode 100644 index 3c7463e65..000000000 Binary files a/imgs/renders/11393.png and /dev/null differ diff --git a/imgs/renders/11400.png b/imgs/renders/11400.png deleted file mode 100644 index c4b62b635..000000000 Binary files a/imgs/renders/11400.png and /dev/null differ diff --git a/imgs/renders/11567.png b/imgs/renders/11567.png deleted file mode 100644 index 3afae72a4..000000000 Binary files a/imgs/renders/11567.png and /dev/null differ diff --git a/imgs/renders/11775.png b/imgs/renders/11775.png new file mode 100644 index 000000000..723891576 Binary files /dev/null and b/imgs/renders/11775.png differ diff --git a/imgs/renders/11776.png b/imgs/renders/11776.png new file mode 100644 index 000000000..98a7c6084 Binary files /dev/null and b/imgs/renders/11776.png differ diff --git a/imgs/renders/11777.png b/imgs/renders/11777.png new file mode 100644 index 000000000..ffe72de06 Binary files /dev/null and b/imgs/renders/11777.png differ diff --git a/imgs/renders/11778.png b/imgs/renders/11778.png new file mode 100644 index 000000000..8828106d7 Binary files /dev/null and b/imgs/renders/11778.png differ diff --git a/imgs/renders/11859.png b/imgs/renders/11859.png new file mode 100644 index 000000000..514d6779a Binary files /dev/null and b/imgs/renders/11859.png differ diff --git a/imgs/renders/11863.png b/imgs/renders/11863.png new file mode 100644 index 000000000..eda9d7a51 Binary files /dev/null and b/imgs/renders/11863.png differ diff --git a/imgs/renders/11865.png b/imgs/renders/11865.png new file mode 100644 index 000000000..c895bcb10 Binary files /dev/null and b/imgs/renders/11865.png differ diff --git a/imgs/renders/11869.png b/imgs/renders/11869.png new file mode 100644 index 000000000..dcfdb3fa2 Binary files /dev/null and b/imgs/renders/11869.png differ diff --git a/imgs/renders/11875.png b/imgs/renders/11875.png new file mode 100644 index 000000000..79c8543b1 Binary files /dev/null and b/imgs/renders/11875.png differ diff --git a/imgs/renders/11876.png b/imgs/renders/11876.png new file mode 100644 index 000000000..b77bd65cf Binary files /dev/null and b/imgs/renders/11876.png differ diff --git a/imgs/renders/11877.png b/imgs/renders/11877.png new file mode 100644 index 000000000..f692aece7 Binary files /dev/null and b/imgs/renders/11877.png differ diff --git a/imgs/renders/11936.png b/imgs/renders/11936.png deleted file mode 100644 index b9ddb0338..000000000 Binary files a/imgs/renders/11936.png and /dev/null differ diff --git a/imgs/renders/11938.png b/imgs/renders/11938.png deleted file mode 100644 index bf209e75a..000000000 Binary files a/imgs/renders/11938.png and /dev/null differ diff --git a/imgs/renders/11940.png b/imgs/renders/11940.png deleted file mode 100644 index 611f2ea7e..000000000 Binary files a/imgs/renders/11940.png and /dev/null differ diff --git a/imgs/renders/11942.png b/imgs/renders/11942.png deleted file mode 100644 index 4b25c3af1..000000000 Binary files a/imgs/renders/11942.png and /dev/null differ diff --git a/imgs/renders/11957.png b/imgs/renders/11957.png deleted file mode 100644 index 20115952a..000000000 Binary files a/imgs/renders/11957.png and /dev/null differ diff --git a/imgs/renders/11959.png b/imgs/renders/11959.png deleted file mode 100644 index 46d9d95ea..000000000 Binary files a/imgs/renders/11959.png and /dev/null differ diff --git a/imgs/renders/11961.png b/imgs/renders/11961.png deleted file mode 100644 index 79a87aa70..000000000 Binary files a/imgs/renders/11961.png and /dev/null differ diff --git a/imgs/renders/11963.png b/imgs/renders/11963.png deleted file mode 100644 index efa20706b..000000000 Binary files a/imgs/renders/11963.png and /dev/null differ diff --git a/imgs/renders/11965.png b/imgs/renders/11965.png deleted file mode 100644 index 1b719e5e7..000000000 Binary files a/imgs/renders/11965.png and /dev/null differ diff --git a/imgs/renders/11969.png b/imgs/renders/11969.png deleted file mode 100644 index 0e3ab23cc..000000000 Binary files a/imgs/renders/11969.png and /dev/null differ diff --git a/imgs/renders/11971.png b/imgs/renders/11971.png deleted file mode 100644 index f67c09933..000000000 Binary files a/imgs/renders/11971.png and /dev/null differ diff --git a/imgs/renders/11978.png b/imgs/renders/11978.png deleted file mode 100644 index c8b821365..000000000 Binary files a/imgs/renders/11978.png and /dev/null differ diff --git a/imgs/renders/11985.png b/imgs/renders/11985.png deleted file mode 100644 index 4eee6f035..000000000 Binary files a/imgs/renders/11985.png and /dev/null differ diff --git a/imgs/renders/11987.png b/imgs/renders/11987.png deleted file mode 100644 index 82604748e..000000000 Binary files a/imgs/renders/11987.png and /dev/null differ diff --git a/imgs/renders/11989.png b/imgs/renders/11989.png deleted file mode 100644 index 6b983eb2d..000000000 Binary files a/imgs/renders/11989.png and /dev/null differ diff --git a/imgs/renders/11993.png b/imgs/renders/11993.png deleted file mode 100644 index 77d765dd1..000000000 Binary files a/imgs/renders/11993.png and /dev/null differ diff --git a/imgs/renders/11995.png b/imgs/renders/11995.png deleted file mode 100644 index ff2f6fa30..000000000 Binary files a/imgs/renders/11995.png and /dev/null differ diff --git a/imgs/renders/11999.png b/imgs/renders/11999.png deleted file mode 100644 index 4dc9a2922..000000000 Binary files a/imgs/renders/11999.png and /dev/null differ diff --git a/imgs/renders/12003.png b/imgs/renders/12003.png deleted file mode 100644 index a9d1d13db..000000000 Binary files a/imgs/renders/12003.png and /dev/null differ diff --git a/imgs/renders/12005.png b/imgs/renders/12005.png deleted file mode 100644 index ee62f7a0e..000000000 Binary files a/imgs/renders/12005.png and /dev/null differ diff --git a/imgs/renders/12011.png b/imgs/renders/12011.png deleted file mode 100644 index a98fb65eb..000000000 Binary files a/imgs/renders/12011.png and /dev/null differ diff --git a/imgs/renders/12013.png b/imgs/renders/12013.png deleted file mode 100644 index 6d35410fe..000000000 Binary files a/imgs/renders/12013.png and /dev/null differ diff --git a/imgs/renders/12015.png b/imgs/renders/12015.png deleted file mode 100644 index e3d859413..000000000 Binary files a/imgs/renders/12015.png and /dev/null differ diff --git a/imgs/renders/12017.png b/imgs/renders/12017.png deleted file mode 100644 index fd1375e90..000000000 Binary files a/imgs/renders/12017.png and /dev/null differ diff --git a/imgs/renders/12019.png b/imgs/renders/12019.png deleted file mode 100644 index 00e393ff8..000000000 Binary files a/imgs/renders/12019.png and /dev/null differ diff --git a/imgs/renders/12021.png b/imgs/renders/12021.png deleted file mode 100644 index b72b6c3f2..000000000 Binary files a/imgs/renders/12021.png and /dev/null differ diff --git a/imgs/renders/12023.png b/imgs/renders/12023.png deleted file mode 100644 index ebeb8aaee..000000000 Binary files a/imgs/renders/12023.png and /dev/null differ diff --git a/imgs/renders/12032.png b/imgs/renders/12032.png deleted file mode 100644 index 4bd038a26..000000000 Binary files a/imgs/renders/12032.png and /dev/null differ diff --git a/imgs/renders/12034.png b/imgs/renders/12034.png deleted file mode 100644 index 4a2a30d8b..000000000 Binary files a/imgs/renders/12034.png and /dev/null differ diff --git a/imgs/renders/12038.png b/imgs/renders/12038.png deleted file mode 100644 index 25933035a..000000000 Binary files a/imgs/renders/12038.png and /dev/null differ diff --git a/imgs/renders/12042.png b/imgs/renders/12042.png deleted file mode 100644 index bf089ad01..000000000 Binary files a/imgs/renders/12042.png and /dev/null differ diff --git a/imgs/renders/12044.png b/imgs/renders/12044.png deleted file mode 100644 index 728d23d47..000000000 Binary files a/imgs/renders/12044.png and /dev/null differ diff --git a/imgs/renders/1231.png b/imgs/renders/1231.png new file mode 100644 index 000000000..f3935d4cb Binary files /dev/null and b/imgs/renders/1231.png differ diff --git a/imgs/renders/1232.png b/imgs/renders/1232.png new file mode 100644 index 000000000..b7ffd74fe Binary files /dev/null and b/imgs/renders/1232.png differ diff --git a/imgs/renders/1233.png b/imgs/renders/1233.png new file mode 100644 index 000000000..343f8c45a Binary files /dev/null and b/imgs/renders/1233.png differ diff --git a/imgs/renders/1236.png b/imgs/renders/1236.png new file mode 100644 index 000000000..346d175db Binary files /dev/null and b/imgs/renders/1236.png differ diff --git a/imgs/renders/1237.png b/imgs/renders/1237.png new file mode 100644 index 000000000..80cd573b4 Binary files /dev/null and b/imgs/renders/1237.png differ diff --git a/imgs/renders/1240.png b/imgs/renders/1240.png new file mode 100644 index 000000000..4b7d2612a Binary files /dev/null and b/imgs/renders/1240.png differ diff --git a/imgs/renders/12729.png b/imgs/renders/12729.png deleted file mode 100644 index a61153fbb..000000000 Binary files a/imgs/renders/12729.png and /dev/null differ diff --git a/imgs/renders/12731.png b/imgs/renders/12731.png deleted file mode 100644 index dff2c2cf5..000000000 Binary files a/imgs/renders/12731.png and /dev/null differ diff --git a/imgs/renders/12733.png b/imgs/renders/12733.png deleted file mode 100644 index 875263a31..000000000 Binary files a/imgs/renders/12733.png and /dev/null differ diff --git a/imgs/renders/12735.png b/imgs/renders/12735.png deleted file mode 100644 index 431390131..000000000 Binary files a/imgs/renders/12735.png and /dev/null differ diff --git a/imgs/renders/12743.png b/imgs/renders/12743.png deleted file mode 100644 index a7d2d572f..000000000 Binary files a/imgs/renders/12743.png and /dev/null differ diff --git a/imgs/renders/12745.png b/imgs/renders/12745.png deleted file mode 100644 index 183c134eb..000000000 Binary files a/imgs/renders/12745.png and /dev/null differ diff --git a/imgs/renders/12747.png b/imgs/renders/12747.png deleted file mode 100644 index 47780e28d..000000000 Binary files a/imgs/renders/12747.png and /dev/null differ diff --git a/imgs/renders/12753.png b/imgs/renders/12753.png deleted file mode 100644 index 1dbfe679b..000000000 Binary files a/imgs/renders/12753.png and /dev/null differ diff --git a/imgs/renders/13202.png b/imgs/renders/13202.png deleted file mode 100644 index 0cb36beca..000000000 Binary files a/imgs/renders/13202.png and /dev/null differ diff --git a/imgs/renders/16227.png b/imgs/renders/16227.png deleted file mode 100644 index 4a8b68874..000000000 Binary files a/imgs/renders/16227.png and /dev/null differ diff --git a/imgs/renders/16229.png b/imgs/renders/16229.png deleted file mode 100644 index 8f34313ab..000000000 Binary files a/imgs/renders/16229.png and /dev/null differ diff --git a/imgs/renders/16231.png b/imgs/renders/16231.png deleted file mode 100644 index ec96c2524..000000000 Binary files a/imgs/renders/16231.png and /dev/null differ diff --git a/imgs/renders/16233.png b/imgs/renders/16233.png deleted file mode 100644 index 0824197c1..000000000 Binary files a/imgs/renders/16233.png and /dev/null differ diff --git a/imgs/renders/16236.png b/imgs/renders/16236.png deleted file mode 100644 index e2dc3ef37..000000000 Binary files a/imgs/renders/16236.png and /dev/null differ diff --git a/imgs/renders/16238.png b/imgs/renders/16238.png deleted file mode 100644 index 885beef26..000000000 Binary files a/imgs/renders/16238.png and /dev/null differ diff --git a/imgs/renders/16240.png b/imgs/renders/16240.png deleted file mode 100644 index 61565d129..000000000 Binary files a/imgs/renders/16240.png and /dev/null differ diff --git a/imgs/renders/16242.png b/imgs/renders/16242.png deleted file mode 100644 index 807c78a39..000000000 Binary files a/imgs/renders/16242.png and /dev/null differ diff --git a/imgs/renders/1730.png b/imgs/renders/1730.png new file mode 100644 index 000000000..9eea77b49 Binary files /dev/null and b/imgs/renders/1730.png differ diff --git a/imgs/renders/1731.png b/imgs/renders/1731.png new file mode 100644 index 000000000..9d6e1678e Binary files /dev/null and b/imgs/renders/1731.png differ diff --git a/imgs/renders/1733.png b/imgs/renders/1733.png new file mode 100644 index 000000000..3efd2fbaa Binary files /dev/null and b/imgs/renders/1733.png differ diff --git a/imgs/renders/17476.png b/imgs/renders/17476.png deleted file mode 100644 index f71ab37be..000000000 Binary files a/imgs/renders/17476.png and /dev/null differ diff --git a/imgs/renders/17478.png b/imgs/renders/17478.png deleted file mode 100644 index 92f20b6ea..000000000 Binary files a/imgs/renders/17478.png and /dev/null differ diff --git a/imgs/renders/17480.png b/imgs/renders/17480.png deleted file mode 100644 index b5d38deb4..000000000 Binary files a/imgs/renders/17480.png and /dev/null differ diff --git a/imgs/renders/1751.png b/imgs/renders/1751.png new file mode 100644 index 000000000..13b64bf56 Binary files /dev/null and b/imgs/renders/1751.png differ diff --git a/imgs/renders/17619.png b/imgs/renders/17619.png deleted file mode 100644 index a1cf3a992..000000000 Binary files a/imgs/renders/17619.png and /dev/null differ diff --git a/imgs/renders/1762.png b/imgs/renders/1762.png new file mode 100644 index 000000000..b1cde9d38 Binary files /dev/null and b/imgs/renders/1762.png differ diff --git a/imgs/renders/17634.png b/imgs/renders/17634.png deleted file mode 100644 index 175f41be8..000000000 Binary files a/imgs/renders/17634.png and /dev/null differ diff --git a/imgs/renders/17636.png b/imgs/renders/17636.png deleted file mode 100644 index 2ba2b65f8..000000000 Binary files a/imgs/renders/17636.png and /dev/null differ diff --git a/imgs/renders/17703.png b/imgs/renders/17703.png deleted file mode 100644 index 9713d4594..000000000 Binary files a/imgs/renders/17703.png and /dev/null differ diff --git a/imgs/renders/17709.png b/imgs/renders/17709.png deleted file mode 100644 index a863c5ca6..000000000 Binary files a/imgs/renders/17709.png and /dev/null differ diff --git a/imgs/renders/1771.png b/imgs/renders/1771.png new file mode 100644 index 000000000..cbfa225c0 Binary files /dev/null and b/imgs/renders/1771.png differ diff --git a/imgs/renders/17713.png b/imgs/renders/17713.png deleted file mode 100644 index 6997f8389..000000000 Binary files a/imgs/renders/17713.png and /dev/null differ diff --git a/imgs/renders/17715.png b/imgs/renders/17715.png deleted file mode 100644 index 6892e2318..000000000 Binary files a/imgs/renders/17715.png and /dev/null differ diff --git a/imgs/renders/17718.png b/imgs/renders/17718.png deleted file mode 100644 index 3f4f8a7e3..000000000 Binary files a/imgs/renders/17718.png and /dev/null differ diff --git a/imgs/renders/17720.png b/imgs/renders/17720.png deleted file mode 100644 index 6aa21b7d0..000000000 Binary files a/imgs/renders/17720.png and /dev/null differ diff --git a/imgs/renders/17722.png b/imgs/renders/17722.png deleted file mode 100644 index ef45cc709..000000000 Binary files a/imgs/renders/17722.png and /dev/null differ diff --git a/imgs/renders/17726.png b/imgs/renders/17726.png deleted file mode 100644 index 2cf4932c2..000000000 Binary files a/imgs/renders/17726.png and /dev/null differ diff --git a/imgs/renders/17728.png b/imgs/renders/17728.png deleted file mode 100644 index 3b0c49399..000000000 Binary files a/imgs/renders/17728.png and /dev/null differ diff --git a/imgs/renders/1773.png b/imgs/renders/1773.png new file mode 100644 index 000000000..e7f6eabd9 Binary files /dev/null and b/imgs/renders/1773.png differ diff --git a/imgs/renders/17732.png b/imgs/renders/17732.png deleted file mode 100644 index dedc5483f..000000000 Binary files a/imgs/renders/17732.png and /dev/null differ diff --git a/imgs/renders/17736.png b/imgs/renders/17736.png deleted file mode 100644 index 5f022ee08..000000000 Binary files a/imgs/renders/17736.png and /dev/null differ diff --git a/imgs/renders/17738.png b/imgs/renders/17738.png deleted file mode 100644 index b0deb515c..000000000 Binary files a/imgs/renders/17738.png and /dev/null differ diff --git a/imgs/renders/17740.png b/imgs/renders/17740.png deleted file mode 100644 index 2e88144b3..000000000 Binary files a/imgs/renders/17740.png and /dev/null differ diff --git a/imgs/renders/1776.png b/imgs/renders/1776.png new file mode 100644 index 000000000..a58b00699 Binary files /dev/null and b/imgs/renders/1776.png differ diff --git a/imgs/renders/1777.png b/imgs/renders/1777.png new file mode 100644 index 000000000..fd3f55b38 Binary files /dev/null and b/imgs/renders/1777.png differ diff --git a/imgs/renders/1778.png b/imgs/renders/1778.png new file mode 100644 index 000000000..1590473e9 Binary files /dev/null and b/imgs/renders/1778.png differ diff --git a/imgs/renders/1779.png b/imgs/renders/1779.png new file mode 100644 index 000000000..652cce032 Binary files /dev/null and b/imgs/renders/1779.png differ diff --git a/imgs/renders/17812.png b/imgs/renders/17812.png deleted file mode 100644 index 7cc6847cc..000000000 Binary files a/imgs/renders/17812.png and /dev/null differ diff --git a/imgs/renders/1784.png b/imgs/renders/1784.png new file mode 100644 index 000000000..901b12eb0 Binary files /dev/null and b/imgs/renders/1784.png differ diff --git a/imgs/renders/17841.png b/imgs/renders/17841.png deleted file mode 100644 index 6e45c0c7e..000000000 Binary files a/imgs/renders/17841.png and /dev/null differ diff --git a/imgs/renders/17843.png b/imgs/renders/17843.png deleted file mode 100644 index 97912d02e..000000000 Binary files a/imgs/renders/17843.png and /dev/null differ diff --git a/imgs/renders/1786.png b/imgs/renders/1786.png new file mode 100644 index 000000000..786c8707d Binary files /dev/null and b/imgs/renders/1786.png differ diff --git a/imgs/renders/1789.png b/imgs/renders/1789.png new file mode 100644 index 000000000..45007e9cf Binary files /dev/null and b/imgs/renders/1789.png differ diff --git a/imgs/renders/17918.png b/imgs/renders/17918.png deleted file mode 100644 index ce7e07fdc..000000000 Binary files a/imgs/renders/17918.png and /dev/null differ diff --git a/imgs/renders/17920.png b/imgs/renders/17920.png deleted file mode 100644 index 979afd242..000000000 Binary files a/imgs/renders/17920.png and /dev/null differ diff --git a/imgs/renders/17922.png b/imgs/renders/17922.png deleted file mode 100644 index 9019b8edc..000000000 Binary files a/imgs/renders/17922.png and /dev/null differ diff --git a/imgs/renders/17924.png b/imgs/renders/17924.png deleted file mode 100644 index 84e647803..000000000 Binary files a/imgs/renders/17924.png and /dev/null differ diff --git a/imgs/renders/17926.png b/imgs/renders/17926.png deleted file mode 100644 index 44a45b729..000000000 Binary files a/imgs/renders/17926.png and /dev/null differ diff --git a/imgs/renders/17928.png b/imgs/renders/17928.png deleted file mode 100644 index b840c14ec..000000000 Binary files a/imgs/renders/17928.png and /dev/null differ diff --git a/imgs/renders/17930.png b/imgs/renders/17930.png deleted file mode 100644 index 0d8ad8fb7..000000000 Binary files a/imgs/renders/17930.png and /dev/null differ diff --git a/imgs/renders/17932.png b/imgs/renders/17932.png deleted file mode 100644 index 9d001d0c1..000000000 Binary files a/imgs/renders/17932.png and /dev/null differ diff --git a/imgs/renders/1802.png b/imgs/renders/1802.png new file mode 100644 index 000000000..1a7fdf913 Binary files /dev/null and b/imgs/renders/1802.png differ diff --git a/imgs/renders/1803.png b/imgs/renders/1803.png new file mode 100644 index 000000000..1d11007a0 Binary files /dev/null and b/imgs/renders/1803.png differ diff --git a/imgs/renders/1811.png b/imgs/renders/1811.png new file mode 100644 index 000000000..af8695ed3 Binary files /dev/null and b/imgs/renders/1811.png differ diff --git a/imgs/renders/1814.png b/imgs/renders/1814.png new file mode 100644 index 000000000..34b55f1f3 Binary files /dev/null and b/imgs/renders/1814.png differ diff --git a/imgs/renders/1815.png b/imgs/renders/1815.png new file mode 100644 index 000000000..ae16df32e Binary files /dev/null and b/imgs/renders/1815.png differ diff --git a/imgs/renders/1816.png b/imgs/renders/1816.png new file mode 100644 index 000000000..bc3195087 Binary files /dev/null and b/imgs/renders/1816.png differ diff --git a/imgs/renders/1824.png b/imgs/renders/1824.png new file mode 100644 index 000000000..2746fc8ac Binary files /dev/null and b/imgs/renders/1824.png differ diff --git a/imgs/renders/1825.png b/imgs/renders/1825.png new file mode 100644 index 000000000..10785a55f Binary files /dev/null and b/imgs/renders/1825.png differ diff --git a/imgs/renders/1829.png b/imgs/renders/1829.png new file mode 100644 index 000000000..22388c686 Binary files /dev/null and b/imgs/renders/1829.png differ diff --git a/imgs/renders/1831.png b/imgs/renders/1831.png new file mode 100644 index 000000000..78d329fba Binary files /dev/null and b/imgs/renders/1831.png differ diff --git a/imgs/renders/1835.png b/imgs/renders/1835.png new file mode 100644 index 000000000..4a39bfec5 Binary files /dev/null and b/imgs/renders/1835.png differ diff --git a/imgs/renders/1840.png b/imgs/renders/1840.png new file mode 100644 index 000000000..5b829445b Binary files /dev/null and b/imgs/renders/1840.png differ diff --git a/imgs/renders/1841.png b/imgs/renders/1841.png new file mode 100644 index 000000000..ff81219f3 Binary files /dev/null and b/imgs/renders/1841.png differ diff --git a/imgs/renders/1847.png b/imgs/renders/1847.png new file mode 100644 index 000000000..9ed1da920 Binary files /dev/null and b/imgs/renders/1847.png differ diff --git a/imgs/renders/1848.png b/imgs/renders/1848.png new file mode 100644 index 000000000..c09733d8c Binary files /dev/null and b/imgs/renders/1848.png differ diff --git a/imgs/renders/1854.png b/imgs/renders/1854.png new file mode 100644 index 000000000..b1ad27934 Binary files /dev/null and b/imgs/renders/1854.png differ diff --git a/imgs/renders/1855.png b/imgs/renders/1855.png new file mode 100644 index 000000000..24fe526d8 Binary files /dev/null and b/imgs/renders/1855.png differ diff --git a/imgs/renders/1860.png b/imgs/renders/1860.png new file mode 100644 index 000000000..2a715dc21 Binary files /dev/null and b/imgs/renders/1860.png differ diff --git a/imgs/renders/1861.png b/imgs/renders/1861.png new file mode 100644 index 000000000..7e9b53bc1 Binary files /dev/null and b/imgs/renders/1861.png differ diff --git a/imgs/renders/1872.png b/imgs/renders/1872.png new file mode 100644 index 000000000..75bb2921c Binary files /dev/null and b/imgs/renders/1872.png differ diff --git a/imgs/renders/1878.png b/imgs/renders/1878.png new file mode 100644 index 000000000..ecc2b8735 Binary files /dev/null and b/imgs/renders/1878.png differ diff --git a/imgs/renders/1881.png b/imgs/renders/1881.png new file mode 100644 index 000000000..25e7d5aca Binary files /dev/null and b/imgs/renders/1881.png differ diff --git a/imgs/renders/1882.png b/imgs/renders/1882.png new file mode 100644 index 000000000..ac214b10e Binary files /dev/null and b/imgs/renders/1882.png differ diff --git a/imgs/renders/1884.png b/imgs/renders/1884.png new file mode 100644 index 000000000..59424e700 Binary files /dev/null and b/imgs/renders/1884.png differ diff --git a/imgs/renders/1887.png b/imgs/renders/1887.png new file mode 100644 index 000000000..4b1f00e87 Binary files /dev/null and b/imgs/renders/1887.png differ diff --git a/imgs/renders/1894.png b/imgs/renders/1894.png new file mode 100644 index 000000000..970a02611 Binary files /dev/null and b/imgs/renders/1894.png differ diff --git a/imgs/renders/1901.png b/imgs/renders/1901.png new file mode 100644 index 000000000..14cfd3c7b Binary files /dev/null and b/imgs/renders/1901.png differ diff --git a/imgs/renders/1902.png b/imgs/renders/1902.png new file mode 100644 index 000000000..3588f1fcc Binary files /dev/null and b/imgs/renders/1902.png differ diff --git a/imgs/renders/1903.png b/imgs/renders/1903.png new file mode 100644 index 000000000..25ab2556a Binary files /dev/null and b/imgs/renders/1903.png differ diff --git a/imgs/renders/1909.png b/imgs/renders/1909.png new file mode 100644 index 000000000..082141e76 Binary files /dev/null and b/imgs/renders/1909.png differ diff --git a/imgs/renders/1912.png b/imgs/renders/1912.png new file mode 100644 index 000000000..77b402bb0 Binary files /dev/null and b/imgs/renders/1912.png differ diff --git a/imgs/renders/1913.png b/imgs/renders/1913.png new file mode 100644 index 000000000..a125e26ca Binary files /dev/null and b/imgs/renders/1913.png differ diff --git a/imgs/renders/1914.png b/imgs/renders/1914.png new file mode 100644 index 000000000..463d1c4ee Binary files /dev/null and b/imgs/renders/1914.png differ diff --git a/imgs/renders/1916.png b/imgs/renders/1916.png new file mode 100644 index 000000000..75b6a8c35 Binary files /dev/null and b/imgs/renders/1916.png differ diff --git a/imgs/renders/1920.png b/imgs/renders/1920.png new file mode 100644 index 000000000..bfa0f9a4f Binary files /dev/null and b/imgs/renders/1920.png differ diff --git a/imgs/renders/1921.png b/imgs/renders/1921.png new file mode 100644 index 000000000..ccc0187e4 Binary files /dev/null and b/imgs/renders/1921.png differ diff --git a/imgs/renders/1925.png b/imgs/renders/1925.png new file mode 100644 index 000000000..24ac7d767 Binary files /dev/null and b/imgs/renders/1925.png differ diff --git a/imgs/renders/1928.png b/imgs/renders/1928.png new file mode 100644 index 000000000..556796c13 Binary files /dev/null and b/imgs/renders/1928.png differ diff --git a/imgs/renders/1931.png b/imgs/renders/1931.png new file mode 100644 index 000000000..dba9566a8 Binary files /dev/null and b/imgs/renders/1931.png differ diff --git a/imgs/renders/1943.png b/imgs/renders/1943.png new file mode 100644 index 000000000..af7244e09 Binary files /dev/null and b/imgs/renders/1943.png differ diff --git a/imgs/renders/1944.png b/imgs/renders/1944.png deleted file mode 100644 index 36ff10ad4..000000000 Binary files a/imgs/renders/1944.png and /dev/null differ diff --git a/imgs/renders/1945.png b/imgs/renders/1945.png new file mode 100644 index 000000000..5a1ffe9c2 Binary files /dev/null and b/imgs/renders/1945.png differ diff --git a/imgs/renders/1948.png b/imgs/renders/1948.png new file mode 100644 index 000000000..e1353bdbe Binary files /dev/null and b/imgs/renders/1948.png differ diff --git a/imgs/renders/1950.png b/imgs/renders/1950.png new file mode 100644 index 000000000..df28a58af Binary files /dev/null and b/imgs/renders/1950.png differ diff --git a/imgs/renders/1966.png b/imgs/renders/1966.png new file mode 100644 index 000000000..e3402e414 Binary files /dev/null and b/imgs/renders/1966.png differ diff --git a/imgs/renders/19720.png b/imgs/renders/19720.png deleted file mode 100644 index 0ffcdbab9..000000000 Binary files a/imgs/renders/19720.png and /dev/null differ diff --git a/imgs/renders/19722.png b/imgs/renders/19722.png deleted file mode 100644 index 55d8cefd9..000000000 Binary files a/imgs/renders/19722.png and /dev/null differ diff --git a/imgs/renders/19724.png b/imgs/renders/19724.png deleted file mode 100644 index de93acd6e..000000000 Binary files a/imgs/renders/19724.png and /dev/null differ diff --git a/imgs/renders/19726.png b/imgs/renders/19726.png deleted file mode 100644 index 01706208f..000000000 Binary files a/imgs/renders/19726.png and /dev/null differ diff --git a/imgs/renders/1973.png b/imgs/renders/1973.png new file mode 100644 index 000000000..25b5b933f Binary files /dev/null and b/imgs/renders/1973.png differ diff --git a/imgs/renders/19744.png b/imgs/renders/19744.png deleted file mode 100644 index 3dae640ae..000000000 Binary files a/imgs/renders/19744.png and /dev/null differ diff --git a/imgs/renders/1976.png b/imgs/renders/1976.png new file mode 100644 index 000000000..15e933736 Binary files /dev/null and b/imgs/renders/1976.png differ diff --git a/imgs/renders/2006.png b/imgs/renders/2006.png deleted file mode 100644 index b1377357b..000000000 Binary files a/imgs/renders/2006.png and /dev/null differ diff --git a/imgs/renders/20125.png b/imgs/renders/20125.png deleted file mode 100644 index 554e6a17c..000000000 Binary files a/imgs/renders/20125.png and /dev/null differ diff --git a/imgs/renders/20136.png b/imgs/renders/20136.png new file mode 100644 index 000000000..719af2bfe Binary files /dev/null and b/imgs/renders/20136.png differ diff --git a/imgs/renders/20137.png b/imgs/renders/20137.png new file mode 100644 index 000000000..50b114455 Binary files /dev/null and b/imgs/renders/20137.png differ diff --git a/imgs/renders/20183.png b/imgs/renders/20183.png deleted file mode 100644 index 913c105c4..000000000 Binary files a/imgs/renders/20183.png and /dev/null differ diff --git a/imgs/renders/20185.png b/imgs/renders/20185.png deleted file mode 100644 index 542f79e67..000000000 Binary files a/imgs/renders/20185.png and /dev/null differ diff --git a/imgs/renders/20187.png b/imgs/renders/20187.png deleted file mode 100644 index c8633ab8c..000000000 Binary files a/imgs/renders/20187.png and /dev/null differ diff --git a/imgs/renders/20189.png b/imgs/renders/20189.png deleted file mode 100644 index 3c7600a96..000000000 Binary files a/imgs/renders/20189.png and /dev/null differ diff --git a/imgs/renders/20198.png b/imgs/renders/20198.png new file mode 100644 index 000000000..4ab2cadfb Binary files /dev/null and b/imgs/renders/20198.png differ diff --git a/imgs/renders/20199.png b/imgs/renders/20199.png new file mode 100644 index 000000000..35d5e3c50 Binary files /dev/null and b/imgs/renders/20199.png differ diff --git a/imgs/renders/20200.png b/imgs/renders/20200.png new file mode 100644 index 000000000..ac05d0d78 Binary files /dev/null and b/imgs/renders/20200.png differ diff --git a/imgs/renders/20201.png b/imgs/renders/20201.png new file mode 100644 index 000000000..dc846c435 Binary files /dev/null and b/imgs/renders/20201.png differ diff --git a/imgs/renders/20202.png b/imgs/renders/20202.png new file mode 100644 index 000000000..4b2db9cbe Binary files /dev/null and b/imgs/renders/20202.png differ diff --git a/imgs/renders/20215.png b/imgs/renders/20215.png new file mode 100644 index 000000000..aabe56a1c Binary files /dev/null and b/imgs/renders/20215.png differ diff --git a/imgs/renders/20216.png b/imgs/renders/20216.png new file mode 100644 index 000000000..e955b2c45 Binary files /dev/null and b/imgs/renders/20216.png differ diff --git a/imgs/renders/20217.png b/imgs/renders/20217.png new file mode 100644 index 000000000..b8586bae0 Binary files /dev/null and b/imgs/renders/20217.png differ diff --git a/imgs/renders/20218.png b/imgs/renders/20218.png new file mode 100644 index 000000000..cdbb2d9f5 Binary files /dev/null and b/imgs/renders/20218.png differ diff --git a/imgs/renders/20227.png b/imgs/renders/20227.png new file mode 100644 index 000000000..0ab8aeea9 Binary files /dev/null and b/imgs/renders/20227.png differ diff --git a/imgs/renders/20229.png b/imgs/renders/20229.png new file mode 100644 index 000000000..fcc104dbc Binary files /dev/null and b/imgs/renders/20229.png differ diff --git a/imgs/renders/20230.png b/imgs/renders/20230.png new file mode 100644 index 000000000..fe2b13d20 Binary files /dev/null and b/imgs/renders/20230.png differ diff --git a/imgs/renders/20231.png b/imgs/renders/20231.png new file mode 100644 index 000000000..9afef8547 Binary files /dev/null and b/imgs/renders/20231.png differ diff --git a/imgs/renders/20277.png b/imgs/renders/20277.png new file mode 100644 index 000000000..2305a869c Binary files /dev/null and b/imgs/renders/20277.png differ diff --git a/imgs/renders/20283.png b/imgs/renders/20283.png new file mode 100644 index 000000000..b09434c1d Binary files /dev/null and b/imgs/renders/20283.png differ diff --git a/imgs/renders/20301.png b/imgs/renders/20301.png new file mode 100644 index 000000000..f9c232256 Binary files /dev/null and b/imgs/renders/20301.png differ diff --git a/imgs/renders/20344.png b/imgs/renders/20344.png new file mode 100644 index 000000000..a3b03f7da Binary files /dev/null and b/imgs/renders/20344.png differ diff --git a/imgs/renders/20345.png b/imgs/renders/20345.png new file mode 100644 index 000000000..a671e16c1 Binary files /dev/null and b/imgs/renders/20345.png differ diff --git a/imgs/renders/20384.png b/imgs/renders/20384.png new file mode 100644 index 000000000..ff3460893 Binary files /dev/null and b/imgs/renders/20384.png differ diff --git a/imgs/renders/20385.png b/imgs/renders/20385.png new file mode 100644 index 000000000..6dc632bfd Binary files /dev/null and b/imgs/renders/20385.png differ diff --git a/imgs/renders/20386.png b/imgs/renders/20386.png new file mode 100644 index 000000000..2ed36cabd Binary files /dev/null and b/imgs/renders/20386.png differ diff --git a/imgs/renders/20402.png b/imgs/renders/20402.png new file mode 100644 index 000000000..beafc27b8 Binary files /dev/null and b/imgs/renders/20402.png differ diff --git a/imgs/renders/20403.png b/imgs/renders/20403.png new file mode 100644 index 000000000..ed4a2a255 Binary files /dev/null and b/imgs/renders/20403.png differ diff --git a/imgs/renders/2043.png b/imgs/renders/2043.png new file mode 100644 index 000000000..ea2b62de3 Binary files /dev/null and b/imgs/renders/2043.png differ diff --git a/imgs/renders/2044.png b/imgs/renders/2044.png new file mode 100644 index 000000000..47e790acf Binary files /dev/null and b/imgs/renders/2044.png differ diff --git a/imgs/renders/2045.png b/imgs/renders/2045.png new file mode 100644 index 000000000..7ced44a15 Binary files /dev/null and b/imgs/renders/2045.png differ diff --git a/imgs/renders/20600.png b/imgs/renders/20600.png new file mode 100644 index 000000000..465a8cb79 Binary files /dev/null and b/imgs/renders/20600.png differ diff --git a/imgs/renders/20604.png b/imgs/renders/20604.png new file mode 100644 index 000000000..84f4bb553 Binary files /dev/null and b/imgs/renders/20604.png differ diff --git a/imgs/renders/20605.png b/imgs/renders/20605.png new file mode 100644 index 000000000..1ef80c05a Binary files /dev/null and b/imgs/renders/20605.png differ diff --git a/imgs/renders/20614.png b/imgs/renders/20614.png new file mode 100644 index 000000000..7b2f49fd3 Binary files /dev/null and b/imgs/renders/20614.png differ diff --git a/imgs/renders/20615.png b/imgs/renders/20615.png new file mode 100644 index 000000000..4371073ba Binary files /dev/null and b/imgs/renders/20615.png differ diff --git a/imgs/renders/20616.png b/imgs/renders/20616.png new file mode 100644 index 000000000..c3ed0de77 Binary files /dev/null and b/imgs/renders/20616.png differ diff --git a/imgs/renders/2078.png b/imgs/renders/2078.png deleted file mode 100644 index 9c589200d..000000000 Binary files a/imgs/renders/2078.png and /dev/null differ diff --git a/imgs/renders/20977.png b/imgs/renders/20977.png new file mode 100644 index 000000000..c6ed70d3c Binary files /dev/null and b/imgs/renders/20977.png differ diff --git a/imgs/renders/20980.png b/imgs/renders/20980.png new file mode 100644 index 000000000..4e38b88e7 Binary files /dev/null and b/imgs/renders/20980.png differ diff --git a/imgs/renders/21052.png b/imgs/renders/21052.png new file mode 100644 index 000000000..afc5ec8a7 Binary files /dev/null and b/imgs/renders/21052.png differ diff --git a/imgs/renders/21076.png b/imgs/renders/21076.png new file mode 100644 index 000000000..b2f31ff50 Binary files /dev/null and b/imgs/renders/21076.png differ diff --git a/imgs/renders/21097.png b/imgs/renders/21097.png deleted file mode 100644 index ba94fbcdb..000000000 Binary files a/imgs/renders/21097.png and /dev/null differ diff --git a/imgs/renders/21135.png b/imgs/renders/21135.png new file mode 100644 index 000000000..4147746cf Binary files /dev/null and b/imgs/renders/21135.png differ diff --git a/imgs/renders/21137.png b/imgs/renders/21137.png new file mode 100644 index 000000000..75c6fb597 Binary files /dev/null and b/imgs/renders/21137.png differ diff --git a/imgs/renders/21138.png b/imgs/renders/21138.png new file mode 100644 index 000000000..b539240d8 Binary files /dev/null and b/imgs/renders/21138.png differ diff --git a/imgs/renders/21139.png b/imgs/renders/21139.png new file mode 100644 index 000000000..d2172c7d2 Binary files /dev/null and b/imgs/renders/21139.png differ diff --git a/imgs/renders/21150.png b/imgs/renders/21150.png new file mode 100644 index 000000000..3c059ade9 Binary files /dev/null and b/imgs/renders/21150.png differ diff --git a/imgs/renders/21155.png b/imgs/renders/21155.png new file mode 100644 index 000000000..dc01dec6b Binary files /dev/null and b/imgs/renders/21155.png differ diff --git a/imgs/renders/21156.png b/imgs/renders/21156.png new file mode 100644 index 000000000..301607cd4 Binary files /dev/null and b/imgs/renders/21156.png differ diff --git a/imgs/renders/21210.png b/imgs/renders/21210.png new file mode 100644 index 000000000..8c480714c Binary files /dev/null and b/imgs/renders/21210.png differ diff --git a/imgs/renders/21217.png b/imgs/renders/21217.png new file mode 100644 index 000000000..7a1ba9757 Binary files /dev/null and b/imgs/renders/21217.png differ diff --git a/imgs/renders/21218.png b/imgs/renders/21218.png new file mode 100644 index 000000000..8ec3ff689 Binary files /dev/null and b/imgs/renders/21218.png differ diff --git a/imgs/renders/21219.png b/imgs/renders/21219.png new file mode 100644 index 000000000..2447b0126 Binary files /dev/null and b/imgs/renders/21219.png differ diff --git a/imgs/renders/2122.png b/imgs/renders/2122.png new file mode 100644 index 000000000..60d932abd Binary files /dev/null and b/imgs/renders/2122.png differ diff --git a/imgs/renders/21220.png b/imgs/renders/21220.png new file mode 100644 index 000000000..6200a04f5 Binary files /dev/null and b/imgs/renders/21220.png differ diff --git a/imgs/renders/21221.png b/imgs/renders/21221.png new file mode 100644 index 000000000..7d8c5bf25 Binary files /dev/null and b/imgs/renders/21221.png differ diff --git a/imgs/renders/21222.png b/imgs/renders/21222.png new file mode 100644 index 000000000..663aeb07e Binary files /dev/null and b/imgs/renders/21222.png differ diff --git a/imgs/renders/21223.png b/imgs/renders/21223.png new file mode 100644 index 000000000..83351f499 Binary files /dev/null and b/imgs/renders/21223.png differ diff --git a/imgs/renders/21224.png b/imgs/renders/21224.png new file mode 100644 index 000000000..cf9bbd2aa Binary files /dev/null and b/imgs/renders/21224.png differ diff --git a/imgs/renders/2123.png b/imgs/renders/2123.png new file mode 100644 index 000000000..683c7c203 Binary files /dev/null and b/imgs/renders/2123.png differ diff --git a/imgs/renders/21252.png b/imgs/renders/21252.png new file mode 100644 index 000000000..ba3c372bd Binary files /dev/null and b/imgs/renders/21252.png differ diff --git a/imgs/renders/21254.png b/imgs/renders/21254.png new file mode 100644 index 000000000..df1a462d6 Binary files /dev/null and b/imgs/renders/21254.png differ diff --git a/imgs/renders/21255.png b/imgs/renders/21255.png new file mode 100644 index 000000000..2636806d7 Binary files /dev/null and b/imgs/renders/21255.png differ diff --git a/imgs/renders/21256.png b/imgs/renders/21256.png new file mode 100644 index 000000000..ba4ec4cc9 Binary files /dev/null and b/imgs/renders/21256.png differ diff --git a/imgs/renders/21277.png b/imgs/renders/21277.png new file mode 100644 index 000000000..d431ecd64 Binary files /dev/null and b/imgs/renders/21277.png differ diff --git a/imgs/renders/21278.png b/imgs/renders/21278.png new file mode 100644 index 000000000..f40192c09 Binary files /dev/null and b/imgs/renders/21278.png differ diff --git a/imgs/renders/21279.png b/imgs/renders/21279.png new file mode 100644 index 000000000..f208bbe6d Binary files /dev/null and b/imgs/renders/21279.png differ diff --git a/imgs/renders/21280.png b/imgs/renders/21280.png new file mode 100644 index 000000000..551b3fcee Binary files /dev/null and b/imgs/renders/21280.png differ diff --git a/imgs/renders/21282.png b/imgs/renders/21282.png new file mode 100644 index 000000000..42a868297 Binary files /dev/null and b/imgs/renders/21282.png differ diff --git a/imgs/renders/21283.png b/imgs/renders/21283.png new file mode 100644 index 000000000..acc5b3b74 Binary files /dev/null and b/imgs/renders/21283.png differ diff --git a/imgs/renders/21315.png b/imgs/renders/21315.png new file mode 100644 index 000000000..a979cf167 Binary files /dev/null and b/imgs/renders/21315.png differ diff --git a/imgs/renders/21354.png b/imgs/renders/21354.png new file mode 100644 index 000000000..2d5518416 Binary files /dev/null and b/imgs/renders/21354.png differ diff --git a/imgs/renders/21358.png b/imgs/renders/21358.png new file mode 100644 index 000000000..895870881 Binary files /dev/null and b/imgs/renders/21358.png differ diff --git a/imgs/renders/21360.png b/imgs/renders/21360.png new file mode 100644 index 000000000..c4a71c94e Binary files /dev/null and b/imgs/renders/21360.png differ diff --git a/imgs/renders/21361.png b/imgs/renders/21361.png new file mode 100644 index 000000000..4beb7c94e Binary files /dev/null and b/imgs/renders/21361.png differ diff --git a/imgs/renders/2138.png b/imgs/renders/2138.png new file mode 100644 index 000000000..0a79c4e31 Binary files /dev/null and b/imgs/renders/2138.png differ diff --git a/imgs/renders/2139.png b/imgs/renders/2139.png new file mode 100644 index 000000000..ea8df81e4 Binary files /dev/null and b/imgs/renders/2139.png differ diff --git a/imgs/renders/2140.png b/imgs/renders/2140.png new file mode 100644 index 000000000..c4f2414cf Binary files /dev/null and b/imgs/renders/2140.png differ diff --git a/imgs/renders/2141.png b/imgs/renders/2141.png new file mode 100644 index 000000000..30e1aeb1c Binary files /dev/null and b/imgs/renders/2141.png differ diff --git a/imgs/renders/21445.png b/imgs/renders/21445.png new file mode 100644 index 000000000..6164455ea Binary files /dev/null and b/imgs/renders/21445.png differ diff --git a/imgs/renders/21451.png b/imgs/renders/21451.png new file mode 100644 index 000000000..dac81f5de Binary files /dev/null and b/imgs/renders/21451.png differ diff --git a/imgs/renders/21489.png b/imgs/renders/21489.png new file mode 100644 index 000000000..dd586ff40 Binary files /dev/null and b/imgs/renders/21489.png differ diff --git a/imgs/renders/21490.png b/imgs/renders/21490.png new file mode 100644 index 000000000..24cd179bd Binary files /dev/null and b/imgs/renders/21490.png differ diff --git a/imgs/renders/21493.png b/imgs/renders/21493.png new file mode 100644 index 000000000..1228da8de Binary files /dev/null and b/imgs/renders/21493.png differ diff --git a/imgs/renders/2157.png b/imgs/renders/2157.png new file mode 100644 index 000000000..d5c3d9ff0 Binary files /dev/null and b/imgs/renders/2157.png differ diff --git a/imgs/renders/2159.png b/imgs/renders/2159.png new file mode 100644 index 000000000..170e98100 Binary files /dev/null and b/imgs/renders/2159.png differ diff --git a/imgs/renders/2160.png b/imgs/renders/2160.png new file mode 100644 index 000000000..9672f7bc9 Binary files /dev/null and b/imgs/renders/2160.png differ diff --git a/imgs/renders/2161.png b/imgs/renders/2161.png deleted file mode 100644 index 3b7357aa5..000000000 Binary files a/imgs/renders/2161.png and /dev/null differ diff --git a/imgs/renders/21628.png b/imgs/renders/21628.png deleted file mode 100644 index e9f1afb63..000000000 Binary files a/imgs/renders/21628.png and /dev/null differ diff --git a/imgs/renders/21766.png b/imgs/renders/21766.png new file mode 100644 index 000000000..1c86ba6dd Binary files /dev/null and b/imgs/renders/21766.png differ diff --git a/imgs/renders/21821.png b/imgs/renders/21821.png new file mode 100644 index 000000000..ddbb7cf5e Binary files /dev/null and b/imgs/renders/21821.png differ diff --git a/imgs/renders/21822.png b/imgs/renders/21822.png new file mode 100644 index 000000000..515bd6515 Binary files /dev/null and b/imgs/renders/21822.png differ diff --git a/imgs/renders/21864.png b/imgs/renders/21864.png new file mode 100644 index 000000000..350ae2319 Binary files /dev/null and b/imgs/renders/21864.png differ diff --git a/imgs/renders/21976.png b/imgs/renders/21976.png new file mode 100644 index 000000000..aefeddc98 Binary files /dev/null and b/imgs/renders/21976.png differ diff --git a/imgs/renders/21993.png b/imgs/renders/21993.png new file mode 100644 index 000000000..58d3b493a Binary files /dev/null and b/imgs/renders/21993.png differ diff --git a/imgs/renders/22001.png b/imgs/renders/22001.png new file mode 100644 index 000000000..1f87b04ab Binary files /dev/null and b/imgs/renders/22001.png differ diff --git a/imgs/renders/22007.png b/imgs/renders/22007.png new file mode 100644 index 000000000..9fcb0d65a Binary files /dev/null and b/imgs/renders/22007.png differ diff --git a/imgs/renders/22070.png b/imgs/renders/22070.png new file mode 100644 index 000000000..e8145f53a Binary files /dev/null and b/imgs/renders/22070.png differ diff --git a/imgs/renders/22142.png b/imgs/renders/22142.png new file mode 100644 index 000000000..9697779ee Binary files /dev/null and b/imgs/renders/22142.png differ diff --git a/imgs/renders/22150.png b/imgs/renders/22150.png new file mode 100644 index 000000000..3124c9d54 Binary files /dev/null and b/imgs/renders/22150.png differ diff --git a/imgs/renders/22161.png b/imgs/renders/22161.png new file mode 100644 index 000000000..a6cf11b6c Binary files /dev/null and b/imgs/renders/22161.png differ diff --git a/imgs/renders/22189.png b/imgs/renders/22189.png new file mode 100644 index 000000000..d60a33c87 Binary files /dev/null and b/imgs/renders/22189.png differ diff --git a/imgs/renders/22195.png b/imgs/renders/22195.png new file mode 100644 index 000000000..2a223205b Binary files /dev/null and b/imgs/renders/22195.png differ diff --git a/imgs/renders/2239.png b/imgs/renders/2239.png new file mode 100644 index 000000000..27f5985f9 Binary files /dev/null and b/imgs/renders/2239.png differ diff --git a/imgs/renders/2240.png b/imgs/renders/2240.png new file mode 100644 index 000000000..ebee08f1d Binary files /dev/null and b/imgs/renders/2240.png differ diff --git a/imgs/renders/2241.png b/imgs/renders/2241.png new file mode 100644 index 000000000..95c274b6b Binary files /dev/null and b/imgs/renders/2241.png differ diff --git a/imgs/renders/2242.png b/imgs/renders/2242.png new file mode 100644 index 000000000..85b031fdc Binary files /dev/null and b/imgs/renders/2242.png differ diff --git a/imgs/renders/22428.png b/imgs/renders/22428.png deleted file mode 100644 index 71aaf8f4e..000000000 Binary files a/imgs/renders/22428.png and /dev/null differ diff --git a/imgs/renders/22430.png b/imgs/renders/22430.png deleted file mode 100644 index af78fde73..000000000 Binary files a/imgs/renders/22430.png and /dev/null differ diff --git a/imgs/renders/22436.png b/imgs/renders/22436.png deleted file mode 100644 index a66a042fc..000000000 Binary files a/imgs/renders/22436.png and /dev/null differ diff --git a/imgs/renders/22440.png b/imgs/renders/22440.png deleted file mode 100644 index 89c553aa8..000000000 Binary files a/imgs/renders/22440.png and /dev/null differ diff --git a/imgs/renders/22442.png b/imgs/renders/22442.png deleted file mode 100644 index 6e04a38e5..000000000 Binary files a/imgs/renders/22442.png and /dev/null differ diff --git a/imgs/renders/22444.png b/imgs/renders/22444.png deleted file mode 100644 index 53e45c0b4..000000000 Binary files a/imgs/renders/22444.png and /dev/null differ diff --git a/imgs/renders/22446.png b/imgs/renders/22446.png deleted file mode 100644 index b024e7f66..000000000 Binary files a/imgs/renders/22446.png and /dev/null differ diff --git a/imgs/renders/22448.png b/imgs/renders/22448.png deleted file mode 100644 index 3d1530008..000000000 Binary files a/imgs/renders/22448.png and /dev/null differ diff --git a/imgs/renders/22452.png b/imgs/renders/22452.png deleted file mode 100644 index 9424b7f8d..000000000 Binary files a/imgs/renders/22452.png and /dev/null differ diff --git a/imgs/renders/22456.png b/imgs/renders/22456.png deleted file mode 100644 index 7142c8782..000000000 Binary files a/imgs/renders/22456.png and /dev/null differ diff --git a/imgs/renders/22460.png b/imgs/renders/22460.png deleted file mode 100644 index 92dbd2e99..000000000 Binary files a/imgs/renders/22460.png and /dev/null differ diff --git a/imgs/renders/22464.png b/imgs/renders/22464.png deleted file mode 100644 index 3158871d7..000000000 Binary files a/imgs/renders/22464.png and /dev/null differ diff --git a/imgs/renders/22466.png b/imgs/renders/22466.png deleted file mode 100644 index 7b9e14b5c..000000000 Binary files a/imgs/renders/22466.png and /dev/null differ diff --git a/imgs/renders/22468.png b/imgs/renders/22468.png deleted file mode 100644 index d27945674..000000000 Binary files a/imgs/renders/22468.png and /dev/null differ diff --git a/imgs/renders/22470.png b/imgs/renders/22470.png deleted file mode 100644 index 2500548ad..000000000 Binary files a/imgs/renders/22470.png and /dev/null differ diff --git a/imgs/renders/22474.png b/imgs/renders/22474.png deleted file mode 100644 index dabff8d17..000000000 Binary files a/imgs/renders/22474.png and /dev/null differ diff --git a/imgs/renders/22544.png b/imgs/renders/22544.png deleted file mode 100644 index c7accef7b..000000000 Binary files a/imgs/renders/22544.png and /dev/null differ diff --git a/imgs/renders/22546.png b/imgs/renders/22546.png deleted file mode 100644 index 63d5120a1..000000000 Binary files a/imgs/renders/22546.png and /dev/null differ diff --git a/imgs/renders/22548.png b/imgs/renders/22548.png deleted file mode 100644 index a784a7952..000000000 Binary files a/imgs/renders/22548.png and /dev/null differ diff --git a/imgs/renders/22852.png b/imgs/renders/22852.png deleted file mode 100644 index 49d66346d..000000000 Binary files a/imgs/renders/22852.png and /dev/null differ diff --git a/imgs/renders/2295.png b/imgs/renders/2295.png new file mode 100644 index 000000000..a818b6b36 Binary files /dev/null and b/imgs/renders/2295.png differ diff --git a/imgs/renders/23757.png b/imgs/renders/23757.png deleted file mode 100644 index dd854d4df..000000000 Binary files a/imgs/renders/23757.png and /dev/null differ diff --git a/imgs/renders/23773.png b/imgs/renders/23773.png deleted file mode 100644 index f318658bd..000000000 Binary files a/imgs/renders/23773.png and /dev/null differ diff --git a/imgs/renders/2382.png b/imgs/renders/2382.png new file mode 100644 index 000000000..f788027e8 Binary files /dev/null and b/imgs/renders/2382.png differ diff --git a/imgs/renders/2383.png b/imgs/renders/2383.png new file mode 100644 index 000000000..daf484d79 Binary files /dev/null and b/imgs/renders/2383.png differ diff --git a/imgs/renders/2384.png b/imgs/renders/2384.png new file mode 100644 index 000000000..2d159cd80 Binary files /dev/null and b/imgs/renders/2384.png differ diff --git a/imgs/renders/2385.png b/imgs/renders/2385.png new file mode 100644 index 000000000..747c39f97 Binary files /dev/null and b/imgs/renders/2385.png differ diff --git a/imgs/renders/2387.png b/imgs/renders/2387.png new file mode 100644 index 000000000..91c63d231 Binary files /dev/null and b/imgs/renders/2387.png differ diff --git a/imgs/renders/2388.png b/imgs/renders/2388.png new file mode 100644 index 000000000..b9d52d9c8 Binary files /dev/null and b/imgs/renders/2388.png differ diff --git a/imgs/renders/2389.png b/imgs/renders/2389.png new file mode 100644 index 000000000..d56369225 Binary files /dev/null and b/imgs/renders/2389.png differ diff --git a/imgs/renders/2390.png b/imgs/renders/2390.png new file mode 100644 index 000000000..082750fb9 Binary files /dev/null and b/imgs/renders/2390.png differ diff --git a/imgs/renders/23911.png b/imgs/renders/23911.png deleted file mode 100644 index 8472b288c..000000000 Binary files a/imgs/renders/23911.png and /dev/null differ diff --git a/imgs/renders/23913.png b/imgs/renders/23913.png deleted file mode 100644 index cfddcdc15..000000000 Binary files a/imgs/renders/23913.png and /dev/null differ diff --git a/imgs/renders/23915.png b/imgs/renders/23915.png deleted file mode 100644 index 5ae1caf44..000000000 Binary files a/imgs/renders/23915.png and /dev/null differ diff --git a/imgs/renders/23917.png b/imgs/renders/23917.png deleted file mode 100644 index 714794ae5..000000000 Binary files a/imgs/renders/23917.png and /dev/null differ diff --git a/imgs/renders/23919.png b/imgs/renders/23919.png deleted file mode 100644 index 74e61caab..000000000 Binary files a/imgs/renders/23919.png and /dev/null differ diff --git a/imgs/renders/24483.png b/imgs/renders/24483.png deleted file mode 100644 index 007b6da8e..000000000 Binary files a/imgs/renders/24483.png and /dev/null differ diff --git a/imgs/renders/24688.png b/imgs/renders/24688.png deleted file mode 100644 index 6376a4d6d..000000000 Binary files a/imgs/renders/24688.png and /dev/null differ diff --git a/imgs/renders/24690.png b/imgs/renders/24690.png deleted file mode 100644 index 306a640d0..000000000 Binary files a/imgs/renders/24690.png and /dev/null differ diff --git a/imgs/renders/24692.png b/imgs/renders/24692.png deleted file mode 100644 index d91b62cbb..000000000 Binary files a/imgs/renders/24692.png and /dev/null differ diff --git a/imgs/renders/24694.png b/imgs/renders/24694.png deleted file mode 100644 index d8012a4c6..000000000 Binary files a/imgs/renders/24694.png and /dev/null differ diff --git a/imgs/renders/24696.png b/imgs/renders/24696.png deleted file mode 100644 index b01590821..000000000 Binary files a/imgs/renders/24696.png and /dev/null differ diff --git a/imgs/renders/24698.png b/imgs/renders/24698.png deleted file mode 100644 index a8c4c5cc0..000000000 Binary files a/imgs/renders/24698.png and /dev/null differ diff --git a/imgs/renders/24700.png b/imgs/renders/24700.png deleted file mode 100644 index 64a48a852..000000000 Binary files a/imgs/renders/24700.png and /dev/null differ diff --git a/imgs/renders/24702.png b/imgs/renders/24702.png deleted file mode 100644 index 1993c8469..000000000 Binary files a/imgs/renders/24702.png and /dev/null differ diff --git a/imgs/renders/2522.png b/imgs/renders/2522.png new file mode 100644 index 000000000..83a89a806 Binary files /dev/null and b/imgs/renders/2522.png differ diff --git a/imgs/renders/2523.png b/imgs/renders/2523.png new file mode 100644 index 000000000..d64be2c8c Binary files /dev/null and b/imgs/renders/2523.png differ diff --git a/imgs/renders/2524.png b/imgs/renders/2524.png new file mode 100644 index 000000000..473cb847d Binary files /dev/null and b/imgs/renders/2524.png differ diff --git a/imgs/renders/2632.png b/imgs/renders/2632.png new file mode 100644 index 000000000..6ce3fae3b Binary files /dev/null and b/imgs/renders/2632.png differ diff --git a/imgs/renders/2633.png b/imgs/renders/2633.png new file mode 100644 index 000000000..e57bc5921 Binary files /dev/null and b/imgs/renders/2633.png differ diff --git a/imgs/renders/2634.png b/imgs/renders/2634.png new file mode 100644 index 000000000..32de7e243 Binary files /dev/null and b/imgs/renders/2634.png differ diff --git a/imgs/renders/2635.png b/imgs/renders/2635.png new file mode 100644 index 000000000..83b77b0aa Binary files /dev/null and b/imgs/renders/2635.png differ diff --git a/imgs/renders/2636.png b/imgs/renders/2636.png new file mode 100644 index 000000000..8d4d8eb8e Binary files /dev/null and b/imgs/renders/2636.png differ diff --git a/imgs/renders/2642.png b/imgs/renders/2642.png new file mode 100644 index 000000000..faa239356 Binary files /dev/null and b/imgs/renders/2642.png differ diff --git a/imgs/renders/26840.png b/imgs/renders/26840.png deleted file mode 100644 index aecd27c78..000000000 Binary files a/imgs/renders/26840.png and /dev/null differ diff --git a/imgs/renders/26842.png b/imgs/renders/26842.png deleted file mode 100644 index ae240f33e..000000000 Binary files a/imgs/renders/26842.png and /dev/null differ diff --git a/imgs/renders/2709.png b/imgs/renders/2709.png new file mode 100644 index 000000000..e437369b1 Binary files /dev/null and b/imgs/renders/2709.png differ diff --git a/imgs/renders/2710.png b/imgs/renders/2710.png new file mode 100644 index 000000000..7423caceb Binary files /dev/null and b/imgs/renders/2710.png differ diff --git a/imgs/renders/2711.png b/imgs/renders/2711.png new file mode 100644 index 000000000..644459c8f Binary files /dev/null and b/imgs/renders/2711.png differ diff --git a/imgs/renders/2712.png b/imgs/renders/2712.png new file mode 100644 index 000000000..361f98d65 Binary files /dev/null and b/imgs/renders/2712.png differ diff --git a/imgs/renders/2713.png b/imgs/renders/2713.png new file mode 100644 index 000000000..e5c2fcbd6 Binary files /dev/null and b/imgs/renders/2713.png differ diff --git a/imgs/renders/2714.png b/imgs/renders/2714.png new file mode 100644 index 000000000..dfed49028 Binary files /dev/null and b/imgs/renders/2714.png differ diff --git a/imgs/renders/2715.png b/imgs/renders/2715.png new file mode 100644 index 000000000..e2b157b37 Binary files /dev/null and b/imgs/renders/2715.png differ diff --git a/imgs/renders/2716.png b/imgs/renders/2716.png new file mode 100644 index 000000000..880dca8f5 Binary files /dev/null and b/imgs/renders/2716.png differ diff --git a/imgs/renders/27299.png b/imgs/renders/27299.png deleted file mode 100644 index a37af08c1..000000000 Binary files a/imgs/renders/27299.png and /dev/null differ diff --git a/imgs/renders/27301.png b/imgs/renders/27301.png deleted file mode 100644 index da561c922..000000000 Binary files a/imgs/renders/27301.png and /dev/null differ diff --git a/imgs/renders/27303.png b/imgs/renders/27303.png deleted file mode 100644 index 58f552426..000000000 Binary files a/imgs/renders/27303.png and /dev/null differ diff --git a/imgs/renders/27305.png b/imgs/renders/27305.png deleted file mode 100644 index f0ceaa0fa..000000000 Binary files a/imgs/renders/27305.png and /dev/null differ diff --git a/imgs/renders/2737.png b/imgs/renders/2737.png new file mode 100644 index 000000000..b52180477 Binary files /dev/null and b/imgs/renders/2737.png differ diff --git a/imgs/renders/2738.png b/imgs/renders/2738.png new file mode 100644 index 000000000..748126a42 Binary files /dev/null and b/imgs/renders/2738.png differ diff --git a/imgs/renders/2739.png b/imgs/renders/2739.png new file mode 100644 index 000000000..7272871cf Binary files /dev/null and b/imgs/renders/2739.png differ diff --git a/imgs/renders/2740.png b/imgs/renders/2740.png new file mode 100644 index 000000000..c890051c0 Binary files /dev/null and b/imgs/renders/2740.png differ diff --git a/imgs/renders/2743.png b/imgs/renders/2743.png new file mode 100644 index 000000000..992742625 Binary files /dev/null and b/imgs/renders/2743.png differ diff --git a/imgs/renders/2744.png b/imgs/renders/2744.png new file mode 100644 index 000000000..cc0f586bc Binary files /dev/null and b/imgs/renders/2744.png differ diff --git a/imgs/renders/2755.png b/imgs/renders/2755.png new file mode 100644 index 000000000..dff2d0aa8 Binary files /dev/null and b/imgs/renders/2755.png differ diff --git a/imgs/renders/2786.png b/imgs/renders/2786.png new file mode 100644 index 000000000..d090d0188 Binary files /dev/null and b/imgs/renders/2786.png differ diff --git a/imgs/renders/2794.png b/imgs/renders/2794.png new file mode 100644 index 000000000..649b65724 Binary files /dev/null and b/imgs/renders/2794.png differ diff --git a/imgs/renders/2798.png b/imgs/renders/2798.png new file mode 100644 index 000000000..53fd98d19 Binary files /dev/null and b/imgs/renders/2798.png differ diff --git a/imgs/renders/2801.png b/imgs/renders/2801.png new file mode 100644 index 000000000..edb632905 Binary files /dev/null and b/imgs/renders/2801.png differ diff --git a/imgs/renders/2802.png b/imgs/renders/2802.png new file mode 100644 index 000000000..146953185 Binary files /dev/null and b/imgs/renders/2802.png differ diff --git a/imgs/renders/2804.png b/imgs/renders/2804.png new file mode 100644 index 000000000..622e4e663 Binary files /dev/null and b/imgs/renders/2804.png differ diff --git a/imgs/renders/2805.png b/imgs/renders/2805.png new file mode 100644 index 000000000..4869cc2b3 Binary files /dev/null and b/imgs/renders/2805.png differ diff --git a/imgs/renders/2807.png b/imgs/renders/2807.png new file mode 100644 index 000000000..ea4959ddc Binary files /dev/null and b/imgs/renders/2807.png differ diff --git a/imgs/renders/2811.png b/imgs/renders/2811.png new file mode 100644 index 000000000..067888b85 Binary files /dev/null and b/imgs/renders/2811.png differ diff --git a/imgs/renders/2814.png b/imgs/renders/2814.png new file mode 100644 index 000000000..bbb2f1b51 Binary files /dev/null and b/imgs/renders/2814.png differ diff --git a/imgs/renders/2834.png b/imgs/renders/2834.png deleted file mode 100644 index b9dcb96e3..000000000 Binary files a/imgs/renders/2834.png and /dev/null differ diff --git a/imgs/renders/28352.png b/imgs/renders/28352.png deleted file mode 100644 index b4991c240..000000000 Binary files a/imgs/renders/28352.png and /dev/null differ diff --git a/imgs/renders/2836.png b/imgs/renders/2836.png deleted file mode 100644 index 6a6f42330..000000000 Binary files a/imgs/renders/2836.png and /dev/null differ diff --git a/imgs/renders/28606.png b/imgs/renders/28606.png deleted file mode 100644 index 585522404..000000000 Binary files a/imgs/renders/28606.png and /dev/null differ diff --git a/imgs/renders/2863.png b/imgs/renders/2863.png deleted file mode 100644 index 04ff60da0..000000000 Binary files a/imgs/renders/2863.png and /dev/null differ diff --git a/imgs/renders/28659.png b/imgs/renders/28659.png deleted file mode 100644 index 61f8fdf30..000000000 Binary files a/imgs/renders/28659.png and /dev/null differ diff --git a/imgs/renders/28661.png b/imgs/renders/28661.png deleted file mode 100644 index d5dc3e86f..000000000 Binary files a/imgs/renders/28661.png and /dev/null differ diff --git a/imgs/renders/28665.png b/imgs/renders/28665.png deleted file mode 100644 index ce1b9b0a3..000000000 Binary files a/imgs/renders/28665.png and /dev/null differ diff --git a/imgs/renders/28710.png b/imgs/renders/28710.png deleted file mode 100644 index 44e2fd2f2..000000000 Binary files a/imgs/renders/28710.png and /dev/null differ diff --git a/imgs/renders/28844.png b/imgs/renders/28844.png deleted file mode 100644 index 60df79006..000000000 Binary files a/imgs/renders/28844.png and /dev/null differ diff --git a/imgs/renders/28846.png b/imgs/renders/28846.png deleted file mode 100644 index 31898e2a3..000000000 Binary files a/imgs/renders/28846.png and /dev/null differ diff --git a/imgs/renders/28848.png b/imgs/renders/28848.png deleted file mode 100644 index f50843aa5..000000000 Binary files a/imgs/renders/28848.png and /dev/null differ diff --git a/imgs/renders/28850.png b/imgs/renders/28850.png deleted file mode 100644 index 6bb510dce..000000000 Binary files a/imgs/renders/28850.png and /dev/null differ diff --git a/imgs/renders/2894.png b/imgs/renders/2894.png new file mode 100644 index 000000000..213accd0f Binary files /dev/null and b/imgs/renders/2894.png differ diff --git a/imgs/renders/2905.png b/imgs/renders/2905.png new file mode 100644 index 000000000..1c6c411b0 Binary files /dev/null and b/imgs/renders/2905.png differ diff --git a/imgs/renders/2906.png b/imgs/renders/2906.png new file mode 100644 index 000000000..6a6fc75f1 Binary files /dev/null and b/imgs/renders/2906.png differ diff --git a/imgs/renders/2909.png b/imgs/renders/2909.png new file mode 100644 index 000000000..c661b0b8e Binary files /dev/null and b/imgs/renders/2909.png differ diff --git a/imgs/renders/2910.png b/imgs/renders/2910.png new file mode 100644 index 000000000..ae229638e Binary files /dev/null and b/imgs/renders/2910.png differ diff --git a/imgs/renders/2911.png b/imgs/renders/2911.png new file mode 100644 index 000000000..51b0917d4 Binary files /dev/null and b/imgs/renders/2911.png differ diff --git a/imgs/renders/2912.png b/imgs/renders/2912.png new file mode 100644 index 000000000..503fdfd20 Binary files /dev/null and b/imgs/renders/2912.png differ diff --git a/imgs/renders/29248.png b/imgs/renders/29248.png deleted file mode 100644 index 64af89c39..000000000 Binary files a/imgs/renders/29248.png and /dev/null differ diff --git a/imgs/renders/2925.png b/imgs/renders/2925.png new file mode 100644 index 000000000..affff46ed Binary files /dev/null and b/imgs/renders/2925.png differ diff --git a/imgs/renders/2926.png b/imgs/renders/2926.png new file mode 100644 index 000000000..1eb3c1b4e Binary files /dev/null and b/imgs/renders/2926.png differ diff --git a/imgs/renders/29266.png b/imgs/renders/29266.png deleted file mode 100644 index 073a8955d..000000000 Binary files a/imgs/renders/29266.png and /dev/null differ diff --git a/imgs/renders/2928.png b/imgs/renders/2928.png new file mode 100644 index 000000000..9bdce46ad Binary files /dev/null and b/imgs/renders/2928.png differ diff --git a/imgs/renders/2929.png b/imgs/renders/2929.png new file mode 100644 index 000000000..0295ddd2d Binary files /dev/null and b/imgs/renders/2929.png differ diff --git a/imgs/renders/2930.png b/imgs/renders/2930.png new file mode 100644 index 000000000..cb53959f7 Binary files /dev/null and b/imgs/renders/2930.png differ diff --git a/imgs/renders/2931.png b/imgs/renders/2931.png new file mode 100644 index 000000000..d26f5a1eb Binary files /dev/null and b/imgs/renders/2931.png differ diff --git a/imgs/renders/2932.png b/imgs/renders/2932.png new file mode 100644 index 000000000..1fdad3fd6 Binary files /dev/null and b/imgs/renders/2932.png differ diff --git a/imgs/renders/29336.png b/imgs/renders/29336.png deleted file mode 100644 index c80a4674a..000000000 Binary files a/imgs/renders/29336.png and /dev/null differ diff --git a/imgs/renders/29337.png b/imgs/renders/29337.png deleted file mode 100644 index 4c58953e7..000000000 Binary files a/imgs/renders/29337.png and /dev/null differ diff --git a/imgs/renders/29340.png b/imgs/renders/29340.png deleted file mode 100644 index 1879bf84e..000000000 Binary files a/imgs/renders/29340.png and /dev/null differ diff --git a/imgs/renders/29344.png b/imgs/renders/29344.png deleted file mode 100644 index b1cc30a56..000000000 Binary files a/imgs/renders/29344.png and /dev/null differ diff --git a/imgs/renders/2938.png b/imgs/renders/2938.png new file mode 100644 index 000000000..01008cc86 Binary files /dev/null and b/imgs/renders/2938.png differ diff --git a/imgs/renders/2939.png b/imgs/renders/2939.png new file mode 100644 index 000000000..ff69c1f5d Binary files /dev/null and b/imgs/renders/2939.png differ diff --git a/imgs/renders/2940.png b/imgs/renders/2940.png new file mode 100644 index 000000000..306b6618d Binary files /dev/null and b/imgs/renders/2940.png differ diff --git a/imgs/renders/2942.png b/imgs/renders/2942.png new file mode 100644 index 000000000..bdaec696a Binary files /dev/null and b/imgs/renders/2942.png differ diff --git a/imgs/renders/296.png b/imgs/renders/296.png new file mode 100644 index 000000000..c9c775197 Binary files /dev/null and b/imgs/renders/296.png differ diff --git a/imgs/renders/297.png b/imgs/renders/297.png new file mode 100644 index 000000000..9347c5a5b Binary files /dev/null and b/imgs/renders/297.png differ diff --git a/imgs/renders/298.png b/imgs/renders/298.png new file mode 100644 index 000000000..9be1318ae Binary files /dev/null and b/imgs/renders/298.png differ diff --git a/imgs/renders/299.png b/imgs/renders/299.png new file mode 100644 index 000000000..7fa2d4785 Binary files /dev/null and b/imgs/renders/299.png differ diff --git a/imgs/renders/2998.png b/imgs/renders/2998.png deleted file mode 100644 index 94630a292..000000000 Binary files a/imgs/renders/2998.png and /dev/null differ diff --git a/imgs/renders/29984.png b/imgs/renders/29984.png deleted file mode 100644 index 3a126e25f..000000000 Binary files a/imgs/renders/29984.png and /dev/null differ diff --git a/imgs/renders/29986.png b/imgs/renders/29986.png deleted file mode 100644 index 5adfd68e1..000000000 Binary files a/imgs/renders/29986.png and /dev/null differ diff --git a/imgs/renders/29988.png b/imgs/renders/29988.png deleted file mode 100644 index 5e31d6689..000000000 Binary files a/imgs/renders/29988.png and /dev/null differ diff --git a/imgs/renders/29990.png b/imgs/renders/29990.png deleted file mode 100644 index 529f59377..000000000 Binary files a/imgs/renders/29990.png and /dev/null differ diff --git a/imgs/renders/300.png b/imgs/renders/300.png new file mode 100644 index 000000000..17a4f727a Binary files /dev/null and b/imgs/renders/300.png differ diff --git a/imgs/renders/301.png b/imgs/renders/301.png new file mode 100644 index 000000000..7289b5453 Binary files /dev/null and b/imgs/renders/301.png differ diff --git a/imgs/renders/302.png b/imgs/renders/302.png new file mode 100644 index 000000000..d600bf8d2 Binary files /dev/null and b/imgs/renders/302.png differ diff --git a/imgs/renders/3020.png b/imgs/renders/3020.png new file mode 100644 index 000000000..f6d281f90 Binary files /dev/null and b/imgs/renders/3020.png differ diff --git a/imgs/renders/303.png b/imgs/renders/303.png new file mode 100644 index 000000000..5f8158adf Binary files /dev/null and b/imgs/renders/303.png differ diff --git a/imgs/renders/304.png b/imgs/renders/304.png new file mode 100644 index 000000000..58eee6e34 Binary files /dev/null and b/imgs/renders/304.png differ diff --git a/imgs/renders/305.png b/imgs/renders/305.png new file mode 100644 index 000000000..be6f1e952 Binary files /dev/null and b/imgs/renders/305.png differ diff --git a/imgs/renders/306.png b/imgs/renders/306.png new file mode 100644 index 000000000..87b6bf145 Binary files /dev/null and b/imgs/renders/306.png differ diff --git a/imgs/renders/308.png b/imgs/renders/308.png new file mode 100644 index 000000000..a4166ca7e Binary files /dev/null and b/imgs/renders/308.png differ diff --git a/imgs/renders/30842.png b/imgs/renders/30842.png deleted file mode 100644 index 2831b8c55..000000000 Binary files a/imgs/renders/30842.png and /dev/null differ diff --git a/imgs/renders/309.png b/imgs/renders/309.png new file mode 100644 index 000000000..4272d403e Binary files /dev/null and b/imgs/renders/309.png differ diff --git a/imgs/renders/310.png b/imgs/renders/310.png new file mode 100644 index 000000000..e810a525a Binary files /dev/null and b/imgs/renders/310.png differ diff --git a/imgs/renders/311.png b/imgs/renders/311.png new file mode 100644 index 000000000..7bac7bfbe Binary files /dev/null and b/imgs/renders/311.png differ diff --git a/imgs/renders/312.png b/imgs/renders/312.png new file mode 100644 index 000000000..93be20fc6 Binary files /dev/null and b/imgs/renders/312.png differ diff --git a/imgs/renders/313.png b/imgs/renders/313.png new file mode 100644 index 000000000..1ab81e5d7 Binary files /dev/null and b/imgs/renders/313.png differ diff --git a/imgs/renders/3132.png b/imgs/renders/3132.png new file mode 100644 index 000000000..21b3f8146 Binary files /dev/null and b/imgs/renders/3132.png differ diff --git a/imgs/renders/3133.png b/imgs/renders/3133.png new file mode 100644 index 000000000..c56e40ad8 Binary files /dev/null and b/imgs/renders/3133.png differ diff --git a/imgs/renders/3134.png b/imgs/renders/3134.png new file mode 100644 index 000000000..20e6f9e07 Binary files /dev/null and b/imgs/renders/3134.png differ diff --git a/imgs/renders/3135.png b/imgs/renders/3135.png new file mode 100644 index 000000000..b203b719c Binary files /dev/null and b/imgs/renders/3135.png differ diff --git a/imgs/renders/314.png b/imgs/renders/314.png new file mode 100644 index 000000000..3afed99e3 Binary files /dev/null and b/imgs/renders/314.png differ diff --git a/imgs/renders/316.png b/imgs/renders/316.png new file mode 100644 index 000000000..4f2e53bf4 Binary files /dev/null and b/imgs/renders/316.png differ diff --git a/imgs/renders/3168.png b/imgs/renders/3168.png new file mode 100644 index 000000000..afd6849a8 Binary files /dev/null and b/imgs/renders/3168.png differ diff --git a/imgs/renders/3169.png b/imgs/renders/3169.png new file mode 100644 index 000000000..b1d3f187c Binary files /dev/null and b/imgs/renders/3169.png differ diff --git a/imgs/renders/317.png b/imgs/renders/317.png new file mode 100644 index 000000000..3e95ed11a Binary files /dev/null and b/imgs/renders/317.png differ diff --git a/imgs/renders/3170.png b/imgs/renders/3170.png new file mode 100644 index 000000000..0c6786b73 Binary files /dev/null and b/imgs/renders/3170.png differ diff --git a/imgs/renders/318.png b/imgs/renders/318.png new file mode 100644 index 000000000..c17afcdd8 Binary files /dev/null and b/imgs/renders/318.png differ diff --git a/imgs/renders/319.png b/imgs/renders/319.png new file mode 100644 index 000000000..344a09c2f Binary files /dev/null and b/imgs/renders/319.png differ diff --git a/imgs/renders/320.png b/imgs/renders/320.png new file mode 100644 index 000000000..d1087c7a1 Binary files /dev/null and b/imgs/renders/320.png differ diff --git a/imgs/renders/3204.png b/imgs/renders/3204.png new file mode 100644 index 000000000..8d66a2c90 Binary files /dev/null and b/imgs/renders/3204.png differ diff --git a/imgs/renders/3205.png b/imgs/renders/3205.png new file mode 100644 index 000000000..15a06c49e Binary files /dev/null and b/imgs/renders/3205.png differ diff --git a/imgs/renders/3207.png b/imgs/renders/3207.png new file mode 100644 index 000000000..769c51579 Binary files /dev/null and b/imgs/renders/3207.png differ diff --git a/imgs/renders/321.png b/imgs/renders/321.png new file mode 100644 index 000000000..580e39d2b Binary files /dev/null and b/imgs/renders/321.png differ diff --git a/imgs/renders/322.png b/imgs/renders/322.png new file mode 100644 index 000000000..b51b9815c Binary files /dev/null and b/imgs/renders/322.png differ diff --git a/imgs/renders/32207.png b/imgs/renders/32207.png deleted file mode 100644 index 240347bd4..000000000 Binary files a/imgs/renders/32207.png and /dev/null differ diff --git a/imgs/renders/32209.png b/imgs/renders/32209.png deleted file mode 100644 index 38d534a39..000000000 Binary files a/imgs/renders/32209.png and /dev/null differ diff --git a/imgs/renders/323.png b/imgs/renders/323.png new file mode 100644 index 000000000..e921f3b8e Binary files /dev/null and b/imgs/renders/323.png differ diff --git a/imgs/renders/32305.png b/imgs/renders/32305.png deleted file mode 100644 index f6d5b9ef3..000000000 Binary files a/imgs/renders/32305.png and /dev/null differ diff --git a/imgs/renders/32307.png b/imgs/renders/32307.png deleted file mode 100644 index e79bb5c52..000000000 Binary files a/imgs/renders/32307.png and /dev/null differ diff --git a/imgs/renders/32309.png b/imgs/renders/32309.png deleted file mode 100644 index 83443e7a6..000000000 Binary files a/imgs/renders/32309.png and /dev/null differ diff --git a/imgs/renders/32311.png b/imgs/renders/32311.png deleted file mode 100644 index 630fce427..000000000 Binary files a/imgs/renders/32311.png and /dev/null differ diff --git a/imgs/renders/324.png b/imgs/renders/324.png new file mode 100644 index 000000000..92c127d16 Binary files /dev/null and b/imgs/renders/324.png differ diff --git a/imgs/renders/325.png b/imgs/renders/325.png new file mode 100644 index 000000000..3bab3c461 Binary files /dev/null and b/imgs/renders/325.png differ diff --git a/imgs/renders/326.png b/imgs/renders/326.png new file mode 100644 index 000000000..4c2b5d201 Binary files /dev/null and b/imgs/renders/326.png differ diff --git a/imgs/renders/327.png b/imgs/renders/327.png new file mode 100644 index 000000000..305005ea3 Binary files /dev/null and b/imgs/renders/327.png differ diff --git a/imgs/renders/32788.png b/imgs/renders/32788.png deleted file mode 100644 index 2cdd23f36..000000000 Binary files a/imgs/renders/32788.png and /dev/null differ diff --git a/imgs/renders/32790.png b/imgs/renders/32790.png deleted file mode 100644 index b38da752c..000000000 Binary files a/imgs/renders/32790.png and /dev/null differ diff --git a/imgs/renders/328.png b/imgs/renders/328.png new file mode 100644 index 000000000..0d2b4f28a Binary files /dev/null and b/imgs/renders/328.png differ diff --git a/imgs/renders/32811.png b/imgs/renders/32811.png deleted file mode 100644 index 56636bd3a..000000000 Binary files a/imgs/renders/32811.png and /dev/null differ diff --git a/imgs/renders/32872.png b/imgs/renders/32872.png deleted file mode 100644 index cf6607d03..000000000 Binary files a/imgs/renders/32872.png and /dev/null differ diff --git a/imgs/renders/32874.png b/imgs/renders/32874.png deleted file mode 100644 index 6b7d449a4..000000000 Binary files a/imgs/renders/32874.png and /dev/null differ diff --git a/imgs/renders/32876.png b/imgs/renders/32876.png deleted file mode 100644 index 572a7f3d7..000000000 Binary files a/imgs/renders/32876.png and /dev/null differ diff --git a/imgs/renders/32878.png b/imgs/renders/32878.png deleted file mode 100644 index 4146be95e..000000000 Binary files a/imgs/renders/32878.png and /dev/null differ diff --git a/imgs/renders/32880.png b/imgs/renders/32880.png deleted file mode 100644 index 356d98c4f..000000000 Binary files a/imgs/renders/32880.png and /dev/null differ diff --git a/imgs/renders/330.png b/imgs/renders/330.png new file mode 100644 index 000000000..ffaa4d1a3 Binary files /dev/null and b/imgs/renders/330.png differ diff --git a/imgs/renders/33079.png b/imgs/renders/33079.png deleted file mode 100644 index 3db3be1a5..000000000 Binary files a/imgs/renders/33079.png and /dev/null differ diff --git a/imgs/renders/33081.png b/imgs/renders/33081.png deleted file mode 100644 index bb3a03933..000000000 Binary files a/imgs/renders/33081.png and /dev/null differ diff --git a/imgs/renders/33083.png b/imgs/renders/33083.png deleted file mode 100644 index ccba8c16d..000000000 Binary files a/imgs/renders/33083.png and /dev/null differ diff --git a/imgs/renders/33151.png b/imgs/renders/33151.png deleted file mode 100644 index 4f958d5b4..000000000 Binary files a/imgs/renders/33151.png and /dev/null differ diff --git a/imgs/renders/33153.png b/imgs/renders/33153.png deleted file mode 100644 index 13f671270..000000000 Binary files a/imgs/renders/33153.png and /dev/null differ diff --git a/imgs/renders/33155.png b/imgs/renders/33155.png deleted file mode 100644 index 5947fd012..000000000 Binary files a/imgs/renders/33155.png and /dev/null differ diff --git a/imgs/renders/33157.png b/imgs/renders/33157.png deleted file mode 100644 index 99a5aa38c..000000000 Binary files a/imgs/renders/33157.png and /dev/null differ diff --git a/imgs/renders/3331.png b/imgs/renders/3331.png new file mode 100644 index 000000000..fd0ef771c Binary files /dev/null and b/imgs/renders/3331.png differ diff --git a/imgs/renders/33395.png b/imgs/renders/33395.png deleted file mode 100644 index c6bdb66aa..000000000 Binary files a/imgs/renders/33395.png and /dev/null differ diff --git a/imgs/renders/33397.png b/imgs/renders/33397.png deleted file mode 100644 index fb5fb512f..000000000 Binary files a/imgs/renders/33397.png and /dev/null differ diff --git a/imgs/renders/33468.png b/imgs/renders/33468.png deleted file mode 100644 index 6606f2c69..000000000 Binary files a/imgs/renders/33468.png and /dev/null differ diff --git a/imgs/renders/33470.png b/imgs/renders/33470.png deleted file mode 100644 index 9cca50559..000000000 Binary files a/imgs/renders/33470.png and /dev/null differ diff --git a/imgs/renders/33472.png b/imgs/renders/33472.png deleted file mode 100644 index 351044eb5..000000000 Binary files a/imgs/renders/33472.png and /dev/null differ diff --git a/imgs/renders/3349.png b/imgs/renders/3349.png new file mode 100644 index 000000000..52f823161 Binary files /dev/null and b/imgs/renders/3349.png differ diff --git a/imgs/renders/335.png b/imgs/renders/335.png new file mode 100644 index 000000000..12946c678 Binary files /dev/null and b/imgs/renders/335.png differ diff --git a/imgs/renders/3350.png b/imgs/renders/3350.png new file mode 100644 index 000000000..b0b983b40 Binary files /dev/null and b/imgs/renders/3350.png differ diff --git a/imgs/renders/3351.png b/imgs/renders/3351.png new file mode 100644 index 000000000..97f5d21b3 Binary files /dev/null and b/imgs/renders/3351.png differ diff --git a/imgs/renders/33513.png b/imgs/renders/33513.png deleted file mode 100644 index 15e7c9a17..000000000 Binary files a/imgs/renders/33513.png and /dev/null differ diff --git a/imgs/renders/3352.png b/imgs/renders/3352.png new file mode 100644 index 000000000..53a6b27fa Binary files /dev/null and b/imgs/renders/3352.png differ diff --git a/imgs/renders/3353.png b/imgs/renders/3353.png new file mode 100644 index 000000000..ee643cfa1 Binary files /dev/null and b/imgs/renders/3353.png differ diff --git a/imgs/renders/3354.png b/imgs/renders/3354.png new file mode 100644 index 000000000..5137bb437 Binary files /dev/null and b/imgs/renders/3354.png differ diff --git a/imgs/renders/3355.png b/imgs/renders/3355.png new file mode 100644 index 000000000..d6c18617d Binary files /dev/null and b/imgs/renders/3355.png differ diff --git a/imgs/renders/33553.png b/imgs/renders/33553.png deleted file mode 100644 index 19d7dfa45..000000000 Binary files a/imgs/renders/33553.png and /dev/null differ diff --git a/imgs/renders/3356.png b/imgs/renders/3356.png new file mode 100644 index 000000000..a24de44ec Binary files /dev/null and b/imgs/renders/3356.png differ diff --git a/imgs/renders/3357.png b/imgs/renders/3357.png new file mode 100644 index 000000000..a57601104 Binary files /dev/null and b/imgs/renders/3357.png differ diff --git a/imgs/renders/3359.png b/imgs/renders/3359.png new file mode 100644 index 000000000..2912ef7df Binary files /dev/null and b/imgs/renders/3359.png differ diff --git a/imgs/renders/3360.png b/imgs/renders/3360.png new file mode 100644 index 000000000..bb2a89a6c Binary files /dev/null and b/imgs/renders/3360.png differ diff --git a/imgs/renders/3361.png b/imgs/renders/3361.png new file mode 100644 index 000000000..d59b14e2a Binary files /dev/null and b/imgs/renders/3361.png differ diff --git a/imgs/renders/3362.png b/imgs/renders/3362.png new file mode 100644 index 000000000..da3b82353 Binary files /dev/null and b/imgs/renders/3362.png differ diff --git a/imgs/renders/3363.png b/imgs/renders/3363.png new file mode 100644 index 000000000..1bc577f2a Binary files /dev/null and b/imgs/renders/3363.png differ diff --git a/imgs/renders/3364.png b/imgs/renders/3364.png new file mode 100644 index 000000000..9f76b9c73 Binary files /dev/null and b/imgs/renders/3364.png differ diff --git a/imgs/renders/3365.png b/imgs/renders/3365.png new file mode 100644 index 000000000..30fd81f9c Binary files /dev/null and b/imgs/renders/3365.png differ diff --git a/imgs/renders/3367.png b/imgs/renders/3367.png new file mode 100644 index 000000000..b983d0119 Binary files /dev/null and b/imgs/renders/3367.png differ diff --git a/imgs/renders/33673.png b/imgs/renders/33673.png deleted file mode 100644 index c1962ea45..000000000 Binary files a/imgs/renders/33673.png and /dev/null differ diff --git a/imgs/renders/33675.png b/imgs/renders/33675.png deleted file mode 100644 index 5b9d7cb13..000000000 Binary files a/imgs/renders/33675.png and /dev/null differ diff --git a/imgs/renders/33697.png b/imgs/renders/33697.png deleted file mode 100644 index 0e53faa6c..000000000 Binary files a/imgs/renders/33697.png and /dev/null differ diff --git a/imgs/renders/337.png b/imgs/renders/337.png new file mode 100644 index 000000000..a07e99639 Binary files /dev/null and b/imgs/renders/337.png differ diff --git a/imgs/renders/338.png b/imgs/renders/338.png new file mode 100644 index 000000000..cd6d95ce8 Binary files /dev/null and b/imgs/renders/338.png differ diff --git a/imgs/renders/33816.png b/imgs/renders/33816.png deleted file mode 100644 index f3fd0e670..000000000 Binary files a/imgs/renders/33816.png and /dev/null differ diff --git a/imgs/renders/33818.png b/imgs/renders/33818.png deleted file mode 100644 index 7e572efa8..000000000 Binary files a/imgs/renders/33818.png and /dev/null differ diff --git a/imgs/renders/33820.png b/imgs/renders/33820.png deleted file mode 100644 index 91cd5aba9..000000000 Binary files a/imgs/renders/33820.png and /dev/null differ diff --git a/imgs/renders/341.png b/imgs/renders/341.png new file mode 100644 index 000000000..567d10c98 Binary files /dev/null and b/imgs/renders/341.png differ diff --git a/imgs/renders/34151.png b/imgs/renders/34151.png deleted file mode 100644 index 7dad71ef8..000000000 Binary files a/imgs/renders/34151.png and /dev/null differ diff --git a/imgs/renders/3424.png b/imgs/renders/3424.png new file mode 100644 index 000000000..8865181d3 Binary files /dev/null and b/imgs/renders/3424.png differ diff --git a/imgs/renders/343.png b/imgs/renders/343.png new file mode 100644 index 000000000..9802dcaae Binary files /dev/null and b/imgs/renders/343.png differ diff --git a/imgs/renders/34317.png b/imgs/renders/34317.png deleted file mode 100644 index d3604598e..000000000 Binary files a/imgs/renders/34317.png and /dev/null differ diff --git a/imgs/renders/34328.png b/imgs/renders/34328.png deleted file mode 100644 index 9f4d50b8a..000000000 Binary files a/imgs/renders/34328.png and /dev/null differ diff --git a/imgs/renders/34496.png b/imgs/renders/34496.png deleted file mode 100644 index 78a3c7eb2..000000000 Binary files a/imgs/renders/34496.png and /dev/null differ diff --git a/imgs/renders/34562.png b/imgs/renders/34562.png deleted file mode 100644 index 03200d301..000000000 Binary files a/imgs/renders/34562.png and /dev/null differ diff --git a/imgs/renders/34590.png b/imgs/renders/34590.png deleted file mode 100644 index 0b80f3cd9..000000000 Binary files a/imgs/renders/34590.png and /dev/null differ diff --git a/imgs/renders/3466.png b/imgs/renders/3466.png new file mode 100644 index 000000000..80c5ec991 Binary files /dev/null and b/imgs/renders/3466.png differ diff --git a/imgs/renders/34828.png b/imgs/renders/34828.png deleted file mode 100644 index 93ada7c87..000000000 Binary files a/imgs/renders/34828.png and /dev/null differ diff --git a/imgs/renders/3514.png b/imgs/renders/3514.png deleted file mode 100644 index 48e552bbd..000000000 Binary files a/imgs/renders/3514.png and /dev/null differ diff --git a/imgs/renders/3516.png b/imgs/renders/3516.png deleted file mode 100644 index 29f9b1122..000000000 Binary files a/imgs/renders/3516.png and /dev/null differ diff --git a/imgs/renders/3518.png b/imgs/renders/3518.png deleted file mode 100644 index a7aec2248..000000000 Binary files a/imgs/renders/3518.png and /dev/null differ diff --git a/imgs/renders/3532.png b/imgs/renders/3532.png deleted file mode 100644 index 0ee7ed351..000000000 Binary files a/imgs/renders/3532.png and /dev/null differ diff --git a/imgs/renders/35683.png b/imgs/renders/35683.png deleted file mode 100644 index 3413a046b..000000000 Binary files a/imgs/renders/35683.png and /dev/null differ diff --git a/imgs/renders/35779.png b/imgs/renders/35779.png deleted file mode 100644 index d215ec668..000000000 Binary files a/imgs/renders/35779.png and /dev/null differ diff --git a/imgs/renders/35781.png b/imgs/renders/35781.png deleted file mode 100644 index e7de9f9e6..000000000 Binary files a/imgs/renders/35781.png and /dev/null differ diff --git a/imgs/renders/35825.png b/imgs/renders/35825.png deleted file mode 100644 index beb2f0592..000000000 Binary files a/imgs/renders/35825.png and /dev/null differ diff --git a/imgs/renders/35826.png b/imgs/renders/35826.png deleted file mode 100644 index da511d002..000000000 Binary files a/imgs/renders/35826.png and /dev/null differ diff --git a/imgs/renders/35827.png b/imgs/renders/35827.png deleted file mode 100644 index b36e40c3e..000000000 Binary files a/imgs/renders/35827.png and /dev/null differ diff --git a/imgs/renders/35832.png b/imgs/renders/35832.png deleted file mode 100644 index e4f3f70d8..000000000 Binary files a/imgs/renders/35832.png and /dev/null differ diff --git a/imgs/renders/35833.png b/imgs/renders/35833.png deleted file mode 100644 index bc3743124..000000000 Binary files a/imgs/renders/35833.png and /dev/null differ diff --git a/imgs/renders/35834.png b/imgs/renders/35834.png deleted file mode 100644 index 9224ba047..000000000 Binary files a/imgs/renders/35834.png and /dev/null differ diff --git a/imgs/renders/35835.png b/imgs/renders/35835.png deleted file mode 100644 index ebe9e3dc5..000000000 Binary files a/imgs/renders/35835.png and /dev/null differ diff --git a/imgs/renders/35836.png b/imgs/renders/35836.png deleted file mode 100644 index 0b0782ce0..000000000 Binary files a/imgs/renders/35836.png and /dev/null differ diff --git a/imgs/renders/37135.png b/imgs/renders/37135.png deleted file mode 100644 index 9f596de10..000000000 Binary files a/imgs/renders/37135.png and /dev/null differ diff --git a/imgs/renders/3714.png b/imgs/renders/3714.png new file mode 100644 index 000000000..bfcc08609 Binary files /dev/null and b/imgs/renders/3714.png differ diff --git a/imgs/renders/37453.png b/imgs/renders/37453.png deleted file mode 100644 index 575a418bb..000000000 Binary files a/imgs/renders/37453.png and /dev/null differ diff --git a/imgs/renders/37454.png b/imgs/renders/37454.png deleted file mode 100644 index 31ac83e1f..000000000 Binary files a/imgs/renders/37454.png and /dev/null differ diff --git a/imgs/renders/37455.png b/imgs/renders/37455.png deleted file mode 100644 index b30b4b88e..000000000 Binary files a/imgs/renders/37455.png and /dev/null differ diff --git a/imgs/renders/37456.png b/imgs/renders/37456.png deleted file mode 100644 index 0edfbec2b..000000000 Binary files a/imgs/renders/37456.png and /dev/null differ diff --git a/imgs/renders/37457.png b/imgs/renders/37457.png deleted file mode 100644 index 8f42b0bdf..000000000 Binary files a/imgs/renders/37457.png and /dev/null differ diff --git a/imgs/renders/37458.png b/imgs/renders/37458.png deleted file mode 100644 index 5a20a743c..000000000 Binary files a/imgs/renders/37458.png and /dev/null differ diff --git a/imgs/renders/37459.png b/imgs/renders/37459.png deleted file mode 100644 index ff745cd26..000000000 Binary files a/imgs/renders/37459.png and /dev/null differ diff --git a/imgs/renders/37460.png b/imgs/renders/37460.png deleted file mode 100644 index 4ff569799..000000000 Binary files a/imgs/renders/37460.png and /dev/null differ diff --git a/imgs/renders/37480.png b/imgs/renders/37480.png deleted file mode 100644 index 79ef03e0f..000000000 Binary files a/imgs/renders/37480.png and /dev/null differ diff --git a/imgs/renders/37481.png b/imgs/renders/37481.png deleted file mode 100644 index 9bc8184d7..000000000 Binary files a/imgs/renders/37481.png and /dev/null differ diff --git a/imgs/renders/37482.png b/imgs/renders/37482.png deleted file mode 100644 index 609367af8..000000000 Binary files a/imgs/renders/37482.png and /dev/null differ diff --git a/imgs/renders/37483.png b/imgs/renders/37483.png deleted file mode 100644 index 22347022d..000000000 Binary files a/imgs/renders/37483.png and /dev/null differ diff --git a/imgs/renders/3756.png b/imgs/renders/3756.png deleted file mode 100644 index d1c1d6d09..000000000 Binary files a/imgs/renders/3756.png and /dev/null differ diff --git a/imgs/renders/37604.png b/imgs/renders/37604.png deleted file mode 100644 index 8c2eb4343..000000000 Binary files a/imgs/renders/37604.png and /dev/null differ diff --git a/imgs/renders/37605.png b/imgs/renders/37605.png deleted file mode 100644 index 07c1eb99f..000000000 Binary files a/imgs/renders/37605.png and /dev/null differ diff --git a/imgs/renders/37606.png b/imgs/renders/37606.png deleted file mode 100644 index 317a37c20..000000000 Binary files a/imgs/renders/37606.png and /dev/null differ diff --git a/imgs/renders/37607.png b/imgs/renders/37607.png deleted file mode 100644 index 1cd489c7e..000000000 Binary files a/imgs/renders/37607.png and /dev/null differ diff --git a/imgs/renders/3764.png b/imgs/renders/3764.png deleted file mode 100644 index 8d25f7825..000000000 Binary files a/imgs/renders/3764.png and /dev/null differ diff --git a/imgs/renders/3766.png b/imgs/renders/3766.png deleted file mode 100644 index b6e27f7c1..000000000 Binary files a/imgs/renders/3766.png and /dev/null differ diff --git a/imgs/renders/3799.png b/imgs/renders/3799.png new file mode 100644 index 000000000..a0de48c35 Binary files /dev/null and b/imgs/renders/3799.png differ diff --git a/imgs/renders/38.png b/imgs/renders/38.png new file mode 100644 index 000000000..6d17e8f06 Binary files /dev/null and b/imgs/renders/38.png differ diff --git a/imgs/renders/3800.png b/imgs/renders/3800.png new file mode 100644 index 000000000..7746c0eb9 Binary files /dev/null and b/imgs/renders/3800.png differ diff --git a/imgs/renders/3814.png b/imgs/renders/3814.png new file mode 100644 index 000000000..62e54b7e0 Binary files /dev/null and b/imgs/renders/3814.png differ diff --git a/imgs/renders/3815.png b/imgs/renders/3815.png new file mode 100644 index 000000000..5555e1d58 Binary files /dev/null and b/imgs/renders/3815.png differ diff --git a/imgs/renders/39.png b/imgs/renders/39.png new file mode 100644 index 000000000..169d189c4 Binary files /dev/null and b/imgs/renders/39.png differ diff --git a/imgs/renders/40.png b/imgs/renders/40.png new file mode 100644 index 000000000..1f168195c Binary files /dev/null and b/imgs/renders/40.png differ diff --git a/imgs/renders/40340.png b/imgs/renders/40340.png deleted file mode 100644 index 38e9179ac..000000000 Binary files a/imgs/renders/40340.png and /dev/null differ diff --git a/imgs/renders/41.png b/imgs/renders/41.png new file mode 100644 index 000000000..875f340b9 Binary files /dev/null and b/imgs/renders/41.png differ diff --git a/imgs/renders/42.png b/imgs/renders/42.png new file mode 100644 index 000000000..348b594b6 Binary files /dev/null and b/imgs/renders/42.png differ diff --git a/imgs/renders/42124.png b/imgs/renders/42124.png deleted file mode 100644 index 081dee596..000000000 Binary files a/imgs/renders/42124.png and /dev/null differ diff --git a/imgs/renders/42125.png b/imgs/renders/42125.png deleted file mode 100644 index aa58bed96..000000000 Binary files a/imgs/renders/42125.png and /dev/null differ diff --git a/imgs/renders/42126.png b/imgs/renders/42126.png deleted file mode 100644 index a27d4a533..000000000 Binary files a/imgs/renders/42126.png and /dev/null differ diff --git a/imgs/renders/42241.png b/imgs/renders/42241.png deleted file mode 100644 index 14dc0ee57..000000000 Binary files a/imgs/renders/42241.png and /dev/null differ diff --git a/imgs/renders/42242.png b/imgs/renders/42242.png deleted file mode 100644 index 3610d4afe..000000000 Binary files a/imgs/renders/42242.png and /dev/null differ diff --git a/imgs/renders/42243.png b/imgs/renders/42243.png deleted file mode 100644 index 14e131173..000000000 Binary files a/imgs/renders/42243.png and /dev/null differ diff --git a/imgs/renders/42244.png b/imgs/renders/42244.png deleted file mode 100644 index 2424e9bab..000000000 Binary files a/imgs/renders/42244.png and /dev/null differ diff --git a/imgs/renders/42245.png b/imgs/renders/42245.png deleted file mode 100644 index ba85060bf..000000000 Binary files a/imgs/renders/42245.png and /dev/null differ diff --git a/imgs/renders/42246.png b/imgs/renders/42246.png deleted file mode 100644 index 9e29ce143..000000000 Binary files a/imgs/renders/42246.png and /dev/null differ diff --git a/imgs/renders/42685.png b/imgs/renders/42685.png deleted file mode 100644 index cad1c5ce5..000000000 Binary files a/imgs/renders/42685.png and /dev/null differ diff --git a/imgs/renders/43.png b/imgs/renders/43.png new file mode 100644 index 000000000..b66ce126b Binary files /dev/null and b/imgs/renders/43.png differ diff --git a/imgs/renders/4302.png b/imgs/renders/4302.png deleted file mode 100644 index 459b0416d..000000000 Binary files a/imgs/renders/4302.png and /dev/null differ diff --git a/imgs/renders/4306.png b/imgs/renders/4306.png deleted file mode 100644 index 0cb7a46f6..000000000 Binary files a/imgs/renders/4306.png and /dev/null differ diff --git a/imgs/renders/4308.png b/imgs/renders/4308.png deleted file mode 100644 index a04127fab..000000000 Binary files a/imgs/renders/4308.png and /dev/null differ diff --git a/imgs/renders/4310.png b/imgs/renders/4310.png deleted file mode 100644 index 508140910..000000000 Binary files a/imgs/renders/4310.png and /dev/null differ diff --git a/imgs/renders/4363.png b/imgs/renders/4363.png deleted file mode 100644 index b0910f4ad..000000000 Binary files a/imgs/renders/4363.png and /dev/null differ diff --git a/imgs/renders/4388.png b/imgs/renders/4388.png deleted file mode 100644 index 8048a6c2c..000000000 Binary files a/imgs/renders/4388.png and /dev/null differ diff --git a/imgs/renders/44.png b/imgs/renders/44.png new file mode 100644 index 000000000..da8d39686 Binary files /dev/null and b/imgs/renders/44.png differ diff --git a/imgs/renders/44993.png b/imgs/renders/44993.png deleted file mode 100644 index d1c2b0b74..000000000 Binary files a/imgs/renders/44993.png and /dev/null differ diff --git a/imgs/renders/44995.png b/imgs/renders/44995.png deleted file mode 100644 index c75e4ca35..000000000 Binary files a/imgs/renders/44995.png and /dev/null differ diff --git a/imgs/renders/44996.png b/imgs/renders/44996.png deleted file mode 100644 index 45e0ca987..000000000 Binary files a/imgs/renders/44996.png and /dev/null differ diff --git a/imgs/renders/45.png b/imgs/renders/45.png new file mode 100644 index 000000000..f6703c4af Binary files /dev/null and b/imgs/renders/45.png differ diff --git a/imgs/renders/4515.png b/imgs/renders/4515.png new file mode 100644 index 000000000..9b6420381 Binary files /dev/null and b/imgs/renders/4515.png differ diff --git a/imgs/renders/4517.png b/imgs/renders/4517.png new file mode 100644 index 000000000..376875fbb Binary files /dev/null and b/imgs/renders/4517.png differ diff --git a/imgs/renders/45530.png b/imgs/renders/45530.png deleted file mode 100644 index f99717e7a..000000000 Binary files a/imgs/renders/45530.png and /dev/null differ diff --git a/imgs/renders/45531.png b/imgs/renders/45531.png deleted file mode 100644 index 9b81e7d0b..000000000 Binary files a/imgs/renders/45531.png and /dev/null differ diff --git a/imgs/renders/45534.png b/imgs/renders/45534.png deleted file mode 100644 index c1aec27af..000000000 Binary files a/imgs/renders/45534.png and /dev/null differ diff --git a/imgs/renders/45645.png b/imgs/renders/45645.png deleted file mode 100644 index a35243fb5..000000000 Binary files a/imgs/renders/45645.png and /dev/null differ diff --git a/imgs/renders/45647.png b/imgs/renders/45647.png deleted file mode 100644 index 9e548bee9..000000000 Binary files a/imgs/renders/45647.png and /dev/null differ diff --git a/imgs/renders/45649.png b/imgs/renders/45649.png deleted file mode 100644 index 0b9a961e2..000000000 Binary files a/imgs/renders/45649.png and /dev/null differ diff --git a/imgs/renders/46.png b/imgs/renders/46.png new file mode 100644 index 000000000..4c1d16dd9 Binary files /dev/null and b/imgs/renders/46.png differ diff --git a/imgs/renders/47.png b/imgs/renders/47.png new file mode 100644 index 000000000..77d577f93 Binary files /dev/null and b/imgs/renders/47.png differ diff --git a/imgs/renders/47269.png b/imgs/renders/47269.png deleted file mode 100644 index e5b4d2267..000000000 Binary files a/imgs/renders/47269.png and /dev/null differ diff --git a/imgs/renders/47270.png b/imgs/renders/47270.png deleted file mode 100644 index 1227fd88e..000000000 Binary files a/imgs/renders/47270.png and /dev/null differ diff --git a/imgs/renders/47271.png b/imgs/renders/47271.png deleted file mode 100644 index 00b1f364c..000000000 Binary files a/imgs/renders/47271.png and /dev/null differ diff --git a/imgs/renders/47466.png b/imgs/renders/47466.png deleted file mode 100644 index 0da4159c9..000000000 Binary files a/imgs/renders/47466.png and /dev/null differ diff --git a/imgs/renders/47512.png b/imgs/renders/47512.png deleted file mode 100644 index 715b98ab9..000000000 Binary files a/imgs/renders/47512.png and /dev/null differ diff --git a/imgs/renders/47513.png b/imgs/renders/47513.png deleted file mode 100644 index b83b4c071..000000000 Binary files a/imgs/renders/47513.png and /dev/null differ diff --git a/imgs/renders/47514.png b/imgs/renders/47514.png deleted file mode 100644 index 3a8b67eed..000000000 Binary files a/imgs/renders/47514.png and /dev/null differ diff --git a/imgs/renders/47515.png b/imgs/renders/47515.png deleted file mode 100644 index 888a7956b..000000000 Binary files a/imgs/renders/47515.png and /dev/null differ diff --git a/imgs/renders/47516.png b/imgs/renders/47516.png deleted file mode 100644 index 69f229e8c..000000000 Binary files a/imgs/renders/47516.png and /dev/null differ diff --git a/imgs/renders/48.png b/imgs/renders/48.png new file mode 100644 index 000000000..850a21007 Binary files /dev/null and b/imgs/renders/48.png differ diff --git a/imgs/renders/49.png b/imgs/renders/49.png new file mode 100644 index 000000000..9fd16706e Binary files /dev/null and b/imgs/renders/49.png differ diff --git a/imgs/renders/50.png b/imgs/renders/50.png new file mode 100644 index 000000000..64794389e Binary files /dev/null and b/imgs/renders/50.png differ diff --git a/imgs/renders/51.png b/imgs/renders/51.png new file mode 100644 index 000000000..d580823cc Binary files /dev/null and b/imgs/renders/51.png differ diff --git a/imgs/renders/52.png b/imgs/renders/52.png new file mode 100644 index 000000000..cbe43aea5 Binary files /dev/null and b/imgs/renders/52.png differ diff --git a/imgs/renders/53.png b/imgs/renders/53.png new file mode 100644 index 000000000..efbf8b8ed Binary files /dev/null and b/imgs/renders/53.png differ diff --git a/imgs/renders/54.png b/imgs/renders/54.png new file mode 100644 index 000000000..601dac8cc Binary files /dev/null and b/imgs/renders/54.png differ diff --git a/imgs/renders/55.png b/imgs/renders/55.png new file mode 100644 index 000000000..5baaa699e Binary files /dev/null and b/imgs/renders/55.png differ diff --git a/imgs/renders/56.png b/imgs/renders/56.png new file mode 100644 index 000000000..713382762 Binary files /dev/null and b/imgs/renders/56.png differ diff --git a/imgs/renders/57.png b/imgs/renders/57.png new file mode 100644 index 000000000..935429e08 Binary files /dev/null and b/imgs/renders/57.png differ diff --git a/imgs/renders/58.png b/imgs/renders/58.png new file mode 100644 index 000000000..cae7b85d1 Binary files /dev/null and b/imgs/renders/58.png differ diff --git a/imgs/renders/582.png b/imgs/renders/582.png deleted file mode 100644 index 37718ce83..000000000 Binary files a/imgs/renders/582.png and /dev/null differ diff --git a/imgs/renders/583.png b/imgs/renders/583.png deleted file mode 100644 index bd98cd510..000000000 Binary files a/imgs/renders/583.png and /dev/null differ diff --git a/imgs/renders/584.png b/imgs/renders/584.png deleted file mode 100644 index 9f1f224ff..000000000 Binary files a/imgs/renders/584.png and /dev/null differ diff --git a/imgs/renders/585.png b/imgs/renders/585.png deleted file mode 100644 index f0777c6e3..000000000 Binary files a/imgs/renders/585.png and /dev/null differ diff --git a/imgs/renders/586.png b/imgs/renders/586.png deleted file mode 100644 index eeddfa3ec..000000000 Binary files a/imgs/renders/586.png and /dev/null differ diff --git a/imgs/renders/587.png b/imgs/renders/587.png deleted file mode 100644 index fe4c5a653..000000000 Binary files a/imgs/renders/587.png and /dev/null differ diff --git a/imgs/renders/588.png b/imgs/renders/588.png deleted file mode 100644 index cd1188159..000000000 Binary files a/imgs/renders/588.png and /dev/null differ diff --git a/imgs/renders/589.png b/imgs/renders/589.png deleted file mode 100644 index 40d8f113b..000000000 Binary files a/imgs/renders/589.png and /dev/null differ diff --git a/imgs/renders/59.png b/imgs/renders/59.png new file mode 100644 index 000000000..ca316b3b1 Binary files /dev/null and b/imgs/renders/59.png differ diff --git a/imgs/renders/590.png b/imgs/renders/590.png deleted file mode 100644 index 4ecf4d3c6..000000000 Binary files a/imgs/renders/590.png and /dev/null differ diff --git a/imgs/renders/591.png b/imgs/renders/591.png deleted file mode 100644 index 96bce75fd..000000000 Binary files a/imgs/renders/591.png and /dev/null differ diff --git a/imgs/renders/592.png b/imgs/renders/592.png deleted file mode 100644 index 4b8fc8d6e..000000000 Binary files a/imgs/renders/592.png and /dev/null differ diff --git a/imgs/renders/593.png b/imgs/renders/593.png deleted file mode 100644 index 120800038..000000000 Binary files a/imgs/renders/593.png and /dev/null differ diff --git a/imgs/renders/594.png b/imgs/renders/594.png deleted file mode 100644 index c6ec27e1a..000000000 Binary files a/imgs/renders/594.png and /dev/null differ diff --git a/imgs/renders/596.png b/imgs/renders/596.png deleted file mode 100644 index e019d41ae..000000000 Binary files a/imgs/renders/596.png and /dev/null differ diff --git a/imgs/renders/597.png b/imgs/renders/597.png deleted file mode 100644 index 814f4f9ae..000000000 Binary files a/imgs/renders/597.png and /dev/null differ diff --git a/imgs/renders/598.png b/imgs/renders/598.png deleted file mode 100644 index 4670cf972..000000000 Binary files a/imgs/renders/598.png and /dev/null differ diff --git a/imgs/renders/599.png b/imgs/renders/599.png deleted file mode 100644 index 762d0d45e..000000000 Binary files a/imgs/renders/599.png and /dev/null differ diff --git a/imgs/renders/60.png b/imgs/renders/60.png new file mode 100644 index 000000000..36a3d2a9e Binary files /dev/null and b/imgs/renders/60.png differ diff --git a/imgs/renders/601.png b/imgs/renders/601.png deleted file mode 100644 index d6ed875d1..000000000 Binary files a/imgs/renders/601.png and /dev/null differ diff --git a/imgs/renders/602.png b/imgs/renders/602.png deleted file mode 100644 index 300349a18..000000000 Binary files a/imgs/renders/602.png and /dev/null differ diff --git a/imgs/renders/603.png b/imgs/renders/603.png deleted file mode 100644 index 89a3eab15..000000000 Binary files a/imgs/renders/603.png and /dev/null differ diff --git a/imgs/renders/605.png b/imgs/renders/605.png deleted file mode 100644 index a295915ed..000000000 Binary files a/imgs/renders/605.png and /dev/null differ diff --git a/imgs/renders/606.png b/imgs/renders/606.png deleted file mode 100644 index 30c516529..000000000 Binary files a/imgs/renders/606.png and /dev/null differ diff --git a/imgs/renders/607.png b/imgs/renders/607.png deleted file mode 100644 index 2cfec3475..000000000 Binary files a/imgs/renders/607.png and /dev/null differ diff --git a/imgs/renders/608.png b/imgs/renders/608.png deleted file mode 100644 index 9988b684b..000000000 Binary files a/imgs/renders/608.png and /dev/null differ diff --git a/imgs/renders/609.png b/imgs/renders/609.png deleted file mode 100644 index d205f36a8..000000000 Binary files a/imgs/renders/609.png and /dev/null differ diff --git a/imgs/renders/61.png b/imgs/renders/61.png new file mode 100644 index 000000000..169752d86 Binary files /dev/null and b/imgs/renders/61.png differ diff --git a/imgs/renders/615.png b/imgs/renders/615.png deleted file mode 100644 index 04d848864..000000000 Binary files a/imgs/renders/615.png and /dev/null differ diff --git a/imgs/renders/617.png b/imgs/renders/617.png deleted file mode 100644 index 3c5475318..000000000 Binary files a/imgs/renders/617.png and /dev/null differ diff --git a/imgs/renders/62.png b/imgs/renders/62.png new file mode 100644 index 000000000..1775d7347 Binary files /dev/null and b/imgs/renders/62.png differ diff --git a/imgs/renders/620.png b/imgs/renders/620.png deleted file mode 100644 index 1d6a29d5c..000000000 Binary files a/imgs/renders/620.png and /dev/null differ diff --git a/imgs/renders/621.png b/imgs/renders/621.png deleted file mode 100644 index f34d75c64..000000000 Binary files a/imgs/renders/621.png and /dev/null differ diff --git a/imgs/renders/622.png b/imgs/renders/622.png deleted file mode 100644 index 2f7a8b546..000000000 Binary files a/imgs/renders/622.png and /dev/null differ diff --git a/imgs/renders/623.png b/imgs/renders/623.png deleted file mode 100644 index 037243c7a..000000000 Binary files a/imgs/renders/623.png and /dev/null differ diff --git a/imgs/renders/624.png b/imgs/renders/624.png deleted file mode 100644 index faf472cb3..000000000 Binary files a/imgs/renders/624.png and /dev/null differ diff --git a/imgs/renders/625.png b/imgs/renders/625.png deleted file mode 100644 index 0444d5140..000000000 Binary files a/imgs/renders/625.png and /dev/null differ diff --git a/imgs/renders/626.png b/imgs/renders/626.png deleted file mode 100644 index e0b4ea0d9..000000000 Binary files a/imgs/renders/626.png and /dev/null differ diff --git a/imgs/renders/627.png b/imgs/renders/627.png deleted file mode 100644 index 47c5db4c0..000000000 Binary files a/imgs/renders/627.png and /dev/null differ diff --git a/imgs/renders/628.png b/imgs/renders/628.png deleted file mode 100644 index c8e48ce8d..000000000 Binary files a/imgs/renders/628.png and /dev/null differ diff --git a/imgs/renders/629.png b/imgs/renders/629.png deleted file mode 100644 index 6b083c386..000000000 Binary files a/imgs/renders/629.png and /dev/null differ diff --git a/imgs/renders/63.png b/imgs/renders/63.png new file mode 100644 index 000000000..75490116d Binary files /dev/null and b/imgs/renders/63.png differ diff --git a/imgs/renders/630.png b/imgs/renders/630.png deleted file mode 100644 index da49c4b98..000000000 Binary files a/imgs/renders/630.png and /dev/null differ diff --git a/imgs/renders/631.png b/imgs/renders/631.png deleted file mode 100644 index d929843ab..000000000 Binary files a/imgs/renders/631.png and /dev/null differ diff --git a/imgs/renders/632.png b/imgs/renders/632.png deleted file mode 100644 index f1f9e40b9..000000000 Binary files a/imgs/renders/632.png and /dev/null differ diff --git a/imgs/renders/633.png b/imgs/renders/633.png deleted file mode 100644 index b676099e9..000000000 Binary files a/imgs/renders/633.png and /dev/null differ diff --git a/imgs/renders/634.png b/imgs/renders/634.png deleted file mode 100644 index 17ec75849..000000000 Binary files a/imgs/renders/634.png and /dev/null differ diff --git a/imgs/renders/635.png b/imgs/renders/635.png deleted file mode 100644 index 2e4f95913..000000000 Binary files a/imgs/renders/635.png and /dev/null differ diff --git a/imgs/renders/638.png b/imgs/renders/638.png deleted file mode 100644 index 9757f61ad..000000000 Binary files a/imgs/renders/638.png and /dev/null differ diff --git a/imgs/renders/639.png b/imgs/renders/639.png deleted file mode 100644 index b405e5499..000000000 Binary files a/imgs/renders/639.png and /dev/null differ diff --git a/imgs/renders/64.png b/imgs/renders/64.png new file mode 100644 index 000000000..34666801a Binary files /dev/null and b/imgs/renders/64.png differ diff --git a/imgs/renders/640.png b/imgs/renders/640.png deleted file mode 100644 index efe0f8d1a..000000000 Binary files a/imgs/renders/640.png and /dev/null differ diff --git a/imgs/renders/641.png b/imgs/renders/641.png deleted file mode 100644 index fa5a41154..000000000 Binary files a/imgs/renders/641.png and /dev/null differ diff --git a/imgs/renders/642.png b/imgs/renders/642.png deleted file mode 100644 index 6432e5015..000000000 Binary files a/imgs/renders/642.png and /dev/null differ diff --git a/imgs/renders/643.png b/imgs/renders/643.png deleted file mode 100644 index b7352dce8..000000000 Binary files a/imgs/renders/643.png and /dev/null differ diff --git a/imgs/renders/644.png b/imgs/renders/644.png deleted file mode 100644 index 67900f05e..000000000 Binary files a/imgs/renders/644.png and /dev/null differ diff --git a/imgs/renders/645.png b/imgs/renders/645.png deleted file mode 100644 index 7e4b64e11..000000000 Binary files a/imgs/renders/645.png and /dev/null differ diff --git a/imgs/renders/648.png b/imgs/renders/648.png deleted file mode 100644 index 08fcac2d8..000000000 Binary files a/imgs/renders/648.png and /dev/null differ diff --git a/imgs/renders/649.png b/imgs/renders/649.png deleted file mode 100644 index b11ed729c..000000000 Binary files a/imgs/renders/649.png and /dev/null differ diff --git a/imgs/renders/65.png b/imgs/renders/65.png new file mode 100644 index 000000000..311b7bf45 Binary files /dev/null and b/imgs/renders/65.png differ diff --git a/imgs/renders/650.png b/imgs/renders/650.png deleted file mode 100644 index 107b29d05..000000000 Binary files a/imgs/renders/650.png and /dev/null differ diff --git a/imgs/renders/651.png b/imgs/renders/651.png deleted file mode 100644 index af4452aa6..000000000 Binary files a/imgs/renders/651.png and /dev/null differ diff --git a/imgs/renders/652.png b/imgs/renders/652.png deleted file mode 100644 index 628ac7416..000000000 Binary files a/imgs/renders/652.png and /dev/null differ diff --git a/imgs/renders/653.png b/imgs/renders/653.png deleted file mode 100644 index 83036c295..000000000 Binary files a/imgs/renders/653.png and /dev/null differ diff --git a/imgs/renders/654.png b/imgs/renders/654.png deleted file mode 100644 index cdd583909..000000000 Binary files a/imgs/renders/654.png and /dev/null differ diff --git a/imgs/renders/655.png b/imgs/renders/655.png deleted file mode 100644 index 2e22d069f..000000000 Binary files a/imgs/renders/655.png and /dev/null differ diff --git a/imgs/renders/656.png b/imgs/renders/656.png deleted file mode 100644 index 4b26ae600..000000000 Binary files a/imgs/renders/656.png and /dev/null differ diff --git a/imgs/renders/657.png b/imgs/renders/657.png deleted file mode 100644 index 3d13e0e23..000000000 Binary files a/imgs/renders/657.png and /dev/null differ diff --git a/imgs/renders/671.png b/imgs/renders/671.png deleted file mode 100644 index 23db1e7aa..000000000 Binary files a/imgs/renders/671.png and /dev/null differ diff --git a/imgs/renders/672.png b/imgs/renders/672.png deleted file mode 100644 index ba94fbcdb..000000000 Binary files a/imgs/renders/672.png and /dev/null differ diff --git a/pyfa.py b/pyfa.py index b60be70e8..740d443ab 100755 --- a/pyfa.py +++ b/pyfa.py @@ -25,6 +25,7 @@ import traceback from optparse import AmbiguousOptionError, BadOptionError, OptionParser from service.prereqsCheck import PreCheckException, PreCheckMessage, version_precheck, version_block import config +import datetime # ascii_text = ''' # ++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -69,10 +70,12 @@ parser.add_option("-d", "--debug", action="store_true", dest="debug", help="Set parser.add_option("-t", "--title", action="store", dest="title", help="Set Window Title", default=None) parser.add_option("-s", "--savepath", action="store", dest="savepath", help="Set the folder for savedata", default=None) parser.add_option("-l", "--logginglevel", action="store", dest="logginglevel", help="Set desired logging level [Critical|Error|Warning|Info|Debug]", default="Error") +parser.add_option("-p", "--profile", action="store", dest="profile_path", help="Set location to save profileing.", default=None) (options, args) = parser.parse_args() if __name__ == "__main__": + try: # first and foremost - check required libraries version_precheck() @@ -134,7 +137,14 @@ if __name__ == "__main__": pyfa = wx.App(False) mf = MainFrame(options.title) ErrorHandler.SetParent(mf) - pyfa.MainLoop() + + if options.profile_path: + profile_path = os.path.join(options.profile_path, 'pyfa-{}.profile'.format(datetime.datetime.now().strftime('%Y%m%d_%H%M%S'))) + pyfalog.debug("Starting pyfa with a profiler, saving to {}".format(profile_path)) + import cProfile + cProfile.run('pyfa.MainLoop()', profile_path) + else: + pyfa.MainLoop() # TODO: Add some thread cleanup code here. Right now we bail, and that can lead to orphaned threads or threads not properly exiting. sys.exit() diff --git a/scripts/icons_update.py b/scripts/icons_update.py index e6a4050a3..7205e3e08 100644 --- a/scripts/icons_update.py +++ b/scripts/icons_update.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python2.7 """ This script updates only market/item icons. @@ -9,50 +9,66 @@ import argparse import os import re import sqlite3 +import json from PIL import Image +from shutil import copyfile parser = argparse.ArgumentParser(description='This script updates module icons for pyfa') -parser.add_argument('-i', '--icons', required=True, type=str, help='path to unpacked Icons folder from CCP\'s image export') +parser.add_argument('-e', '--eve', required=True, type=str, help='path to eve\'s ') +parser.add_argument('-s', '--server', required=False, default='tq', type=str, help='which server to use (defaults to tq)') +parser.add_argument('-i', '--icons', required=True, type=str, help='Path to icons .json') args = parser.parse_args() script_dir = os.path.dirname(os.path.abspath(__file__)) db_path = os.path.abspath(os.path.join(script_dir, '..', 'eve.db')) icons_dir = os.path.abspath(os.path.join(script_dir, '..', 'imgs', 'icons')) -export_dir = os.path.abspath(os.path.expanduser(os.path.join(args.icons, 'items'))) - -dirs = [export_dir, os.path.join(export_dir, "Modules")] +render_dir = os.path.abspath(os.path.join(script_dir, '..', 'imgs', 'renders')) db = sqlite3.connect(db_path) cursor = db.cursor() ICON_SIZE = (16, 16) +RENDER_SIZE = (32, 32) -ITEM_CATEGORIES = ( - 2, # Celestial - 6, # Ship - 7, # Module - 8, # Charge - 16, # Skill - 18, # Drone - 20, # Implant - 32, # Subsystem - 66, # Structure Module -) +with open(args.icons, 'r') as f: + icon_json = json.load(f) -MARKET_ROOTS = { - 9, # Modules - 1111, # Rigs - 157, # Drones - 11, # Ammo - 1112, # Subsystems - 24, # Implants & Boosters - 404, # Deployables - 2202, # Structure Equipment - 2203 # Structure Modifications (Rigs) -} +eve_path = os.path.join(args.eve, 'index_{}.txt'.format(args.server)) +with open(eve_path, 'r') as f: + lines = f.readlines() + file_index = {x.split(',')[0]: x.split(',') for x in lines} + +resfileindex = file_index['app:/resfileindex.txt'] + +res_cache = os.path.join(args.eve, 'ResFiles') + +with open(os.path.join(res_cache, resfileindex[1]), 'r') as f: + lines = f.readlines() + res_index = {x.split(',')[0].lower(): x.split(',') for x in lines} + +# Need to copy the file to our cuirrent directory +graphics_loader_file = os.path.join(res_cache, file_index['app:/bin/graphicIDsLoader.pyd'][1]) +to_path = os.path.dirname(os.path.abspath(__file__)) +copyfile(graphics_loader_file, os.path.join(os.path.dirname(os.path.abspath(__file__)), 'graphicIDsLoader.pyd')) + +# The loader expect it to be the correct filename, so copy trhe file as well +graphics_file = os.path.join(res_cache, res_index['res:/staticdata/graphicIDs.fsdbinary'.lower()][1]) +to_path = os.path.dirname(os.path.abspath(__file__)) +copyfile(graphics_file, os.path.join(os.path.dirname(os.path.abspath(__file__)), 'graphicIDs.fsdbinary')) + +import graphicIDsLoader + +print(dir(graphicIDsLoader)) + +graphics = graphicIDsLoader.load(os.path.join(to_path, 'graphicIDs.fsdbinary')) + +graphics_py_ob = {} +for x, v in graphics.items(): + if (hasattr(v, 'iconFolder')): + graphics_py_ob[x] = v.iconFolder # Add children to market group list # {parent: {children}} @@ -75,101 +91,35 @@ def get_children(parent): return children -market_groups = set() -for root in MARKET_ROOTS: - market_groups.add(root) - market_groups.update(get_children(root)) - - -query_items = 'select distinct i.iconFile from icons as i inner join invtypes as it on it.iconID = i.iconID inner join invgroups as ig on it.groupID = ig.groupID where ig.categoryID in ({})'.format(', '.join(str(i) for i in ITEM_CATEGORIES)) -query_groups = 'select distinct i.iconFile from icons as i inner join invgroups as ig on ig.iconID = i.iconID where ig.categoryID in ({})'.format(', '.join(str(i) for i in ITEM_CATEGORIES)) -query_cats = 'select distinct i.iconFile from icons as i inner join invcategories as ic on ic.iconID = i.iconID where ic.categoryID in ({})'.format(', '.join(str(i) for i in ITEM_CATEGORIES)) -query_market = 'select distinct i.iconFile from icons as i inner join invmarketgroups as img on img.iconID = i.iconID where img.marketGroupID in ({})'.format(', '.join(str(i) for i in market_groups)) -query_attrib = 'select distinct i.iconFile from icons as i inner join dgmattribs as da on da.iconID = i.iconID' - +query_items = 'select distinct iconID from invtypes' +query_groups = 'select distinct iconID from invgroups' +query_cats = 'select distinct iconID from invcategories' +query_market = 'select distinct iconID from invmarketgroups' +query_attrib = 'select distinct iconID from dgmattribs' +query_ships = 'select it.graphicID from invtypes as it inner join invgroups as ig on it.groupID = ig.groupID where ig.categoryID in (6, 65)' needed = set() existing = set() export = {} -def strip_path(fname): - """ - Here we extract 'core' of icon name. Path and - extension are sometimes specified in database - but we don't need them. - """ - # Path before the icon file name - fname = fname.split('/')[-1] - # Extension - fname = fname.rsplit('.', 1)[0] - return fname - - -def unzero(fname): - """ - Get rid of leading zeros in triplet. They are often specified in DB - but almost never in actual files. - """ - m = re.match(r'^(?P[^_\.]+)_((?P\d+)_)?(?P[^_\.]+)(?P\..*)?$', fname) - if m: - prefix = m.group('prefix') - size = m.group('size') - suffix = m.group('suffix') - tail = m.group('tail') - try: - prefix = int(prefix) - except (TypeError, ValueError): - pass - try: - size = int(size) - except (TypeError, ValueError): - pass - try: - suffix = int(suffix) - except (TypeError, ValueError): - pass - if size is None: - fname = '{}_{}'.format(prefix, suffix) - else: - fname = '{}_{}_{}'.format(prefix, size, suffix) - return fname - else: - return fname - # Get a list of needed icons based on the items / attributes / etc from the database for query in (query_items, query_groups, query_cats, query_market, query_attrib): for row in cursor.execute(query): fname = row[0] - if not fname: + if fname is None: continue - fname = strip_path(fname) needed.add(fname) # Get a list of all the icons we currently have for fname in os.listdir(icons_dir): if not os.path.isfile(os.path.join(icons_dir, fname)): continue - fname = strip_path(fname) + fname = os.path.splitext(fname)[0] # Get rid of "icon" prefix as well #fname = re.sub('^icon', '', fname) - print(fname,"exists") existing.add(fname) -# Get a list of all the icons currently available in export -for dir in dirs: - for fname in os.listdir(dir): - if not os.path.isfile(os.path.join(dir, fname)): - continue - stripped = strip_path(fname) - stripped = unzero(stripped) - # Icons in export often specify size in their name, but references often use - # convention without size specification - sizeless = re.sub('^(?P[^_]+)_(?P\d+)_(?P[^_]+)$', r'\1_\3', stripped) - # Often items referred to with 01_01 format, - fnames = export.setdefault(sizeless.lower(), set()) - fnames.add(fname) - def crop_image(img): w, h = img.size if h == w: @@ -185,38 +135,25 @@ def crop_image(img): return img.crop(box) -def get_icon_file(request): +def get_icon_file(res_path, size): """ Get the iconFile field value and find proper icon for it. Return as PIL image object down- scaled for use in pyfa. """ - rq = strip_path(request) - rq = unzero(rq) - try: - fnames = export[rq] - except KeyError: + if res_path not in res_index: return None - # {(h, w): source full path} - sizes = {} - for dir in dirs: - for fname in fnames: - fullpath = os.path.join(dir, fname) - if not os.path.isfile(fullpath): - continue - img = Image.open(fullpath) - sizes[img.size] = fullpath - # Try to return image which is already in necessary format - try: - fullpath = sizes[ICON_SIZE] - # Otherwise, convert biggest image - except KeyError: - fullpath = sizes[max(sizes)] - img = Image.open(fullpath) - img = crop_image(img) - img.thumbnail(ICON_SIZE, Image.ANTIALIAS) - else: - img = Image.open(fullpath) + res_icon = res_index[res_path] + icon_path = res_icon[1] + + fullpath = os.path.join(res_cache, icon_path) + + if not os.path.isfile(fullpath): + return None + img = Image.open(fullpath) + img = crop_image(img) + img.thumbnail(size, Image.ANTIALIAS) + # Strip all additional image info (mostly for ICC color # profiles, see issue #337) img.info.clear() @@ -232,7 +169,6 @@ if toremove: print('Some icons are not used and will be removed:') for fname in sorted(toremove): fullname = '{}.png'.format(fname) - print((' {}'.format(fullname))) fullpath = os.path.join(icons_dir, fullname) os.remove(fullpath) @@ -256,7 +192,9 @@ if toadd: print(('Adding {} icons...'.format(len(toadd)))) missing = set() for fname in sorted(toadd): - icon = get_icon_file(fname) + icon = icon_json[str(fname)] + key = icon['iconFile'].lower() + icon = get_icon_file(key, ICON_SIZE) if icon is None: missing.add(fname) continue @@ -267,3 +205,36 @@ if toadd: print((' {} icons are missing in export:'.format(len(missing)))) for fname in sorted(missing): print((' {}'.format(fname))) + +print(missing) + +print("Doing renders") + +needed.clear() +existing.clear() +toremove.clear() + +for row in cursor.execute(query_ships): + needed.add(row[0]) + +toremove = existing.difference(needed) +toupdate = existing.intersection(needed) +toadd = needed.difference(existing) + +if toadd: + print(('Adding {} icons...'.format(len(toadd)))) + missing = set() + for fname in sorted(toadd): + icon = graphics_py_ob[int(fname)] + icon = "{}/{}_64.png".format(icon, fname) + icon = get_icon_file(icon, RENDER_SIZE) + if icon is None: + missing.add(fname) + continue + fullname = '{}.png'.format(fname) + fullpath = os.path.join(render_dir, fullname) + icon.save(fullpath, 'png') + if missing: + print((' {} icons are missing in export:'.format(len(missing)))) + for fname in sorted(missing): + print((' {}'.format(fname))) diff --git a/scripts/jsonToSql.py b/scripts/jsonToSql.py index ba3a721b6..3cb2caf0a 100755 --- a/scripts/jsonToSql.py +++ b/scripts/jsonToSql.py @@ -30,6 +30,10 @@ sys.path.insert(0, os.path.realpath(os.path.join(path, ".."))) import json import argparse +CATEGORIES_TO_REMOVE = [ + 30 # Apparel +] + def main(db, json_path): if os.path.isfile(db): os.remove(db) @@ -56,7 +60,6 @@ def main(db, json_path): "dgmtypeattribs": eos.gamedata.Attribute, "dgmtypeeffects": eos.gamedata.ItemEffect, "dgmunits": eos.gamedata.Unit, - "icons": eos.gamedata.Icon, "evecategories": eos.gamedata.Category, "evegroups": eos.gamedata.Group, "invmetagroups": eos.gamedata.MetaGroup, @@ -252,6 +255,29 @@ def main(db, json_path): eos.db.gamedata_session.add(instance) + # quick and dirty hack to get this data in + with open(os.path.join(jsonPath, "dynamicAttributes.json"), encoding="utf-8") as f: + bulkdata = json.load(f) + for mutaID, data in bulkdata.items(): + muta = eos.gamedata.DynamicItem() + muta.typeID = mutaID + muta.resultingTypeID = data['inputOutputMapping'][0]['resultingType'] + eos.db.gamedata_session.add(muta) + + for x in data['inputOutputMapping'][0]['applicableTypes']: + item = eos.gamedata.DynamicItemItem() + item.typeID = mutaID + item.applicableTypeID = x + eos.db.gamedata_session.add(item) + + for attrID, attrData in data['attributeIDs'].items(): + attr = eos.gamedata.DynamicItemAttribute() + attr.typeID = mutaID + attr.attributeID = attrID + attr.min = attrData['min'] + attr.max = attrData['max'] + eos.db.gamedata_session.add(attr) + eos.db.gamedata_session.commit() # CCP still has 5 subsystems assigned to T3Cs, even though only 4 are available / usable. They probably have some @@ -260,6 +286,16 @@ def main(db, json_path): eos.db.gamedata_engine.execute("UPDATE dgmtypeattribs SET value = 4.0 WHERE attributeID = ?", (1367,)) eos.db.gamedata_engine.execute("UPDATE invtypes SET published = 0 WHERE typeName LIKE '%abyssal%'") + + print() + for x in CATEGORIES_TO_REMOVE: + cat = eos.db.gamedata_session.query(eos.gamedata.Category).filter(eos.gamedata.Category.ID == x).first() + print ("Removing Category: {}".format(cat.name)) + eos.db.gamedata_session.delete(cat) + + eos.db.gamedata_session.commit() + eos.db.gamedata_engine.execute("VACUUM") + print("done") if __name__ == "__main__": @@ -269,3 +305,4 @@ if __name__ == "__main__": args = parser.parse_args() main(args.db, args.json) + diff --git a/service/attribute.py b/service/attribute.py index e33cbef4b..b4c3453e9 100644 --- a/service/attribute.py +++ b/service/attribute.py @@ -33,10 +33,10 @@ class Attribute(object): @staticmethod def getAttributeInfo(identity): if isinstance(identity, (int, str)): - info = eos.db.getAttributeInfo(identity, eager=("icon", "unit")) + info = eos.db.getAttributeInfo(identity, eager=("unit")) elif isinstance(identity, (int, float)): id_ = int(identity) - info = eos.db.getAttributeInfo(id_, eager=("icon", "unit")) + info = eos.db.getAttributeInfo(id_, eager=("unit")) else: info = None return info diff --git a/service/fit.py b/service/fit.py index 75939a049..dccb58e5e 100644 --- a/service/fit.py +++ b/service/fit.py @@ -95,7 +95,7 @@ class Fit(object): fits = eos.db.getFitsWithShip(shipID) names = [] for fit in fits: - names.append((fit.ID, fit.name, fit.booster, fit.modified or fit.created or datetime.datetime.fromtimestamp(fit.timestamp), fit.notes)) + names.append((fit.ID, fit.name, fit.booster, fit.modified or fit.created or datetime.datetime.fromtimestamp(fit.timestamp), fit.notes, fit.ship.item.graphicID)) return names @@ -379,7 +379,10 @@ class Fit(object): thing = eos.db.getItem(thing, eager=("attributes", "group.category")) - if isinstance(thing, FitType): + if isinstance(thing, es_Module): + thing = copy.deepcopy(thing) + fit.projectedModules.append(thing) + elif isinstance(thing, FitType): if thing in fit.projectedFits: return @@ -517,6 +520,13 @@ class Fit(object): eos.db.commit() self.recalc(fit) + def changeMutatedValue(self, mutator, value): + pyfalog.debug("Changing mutated value for {} / {}: {} => {}".format(mutator.module, mutator.module.mutaplasmid, mutator.value, value)) + mutator.value = value + + eos.db.commit() + return mutator.value + def appendModule(self, fitID, itemID): pyfalog.debug("Appending module for fit ({0}) using item: {1}", fitID, itemID) fit = eos.db.getFit(fitID) @@ -575,6 +585,37 @@ class Fit(object): eos.db.commit() return numSlots != len(fit.modules) + def convertMutaplasmid(self, fitID, position, mutaplasmid): + # this is mostly the same thing as the self.changeModule method, however it initializes an abyssal module with + # the old module as it's base, and then replaces it + fit = eos.db.getFit(fitID) + base = fit.modules[position] + fit.modules.toDummy(position) + + try: + m = es_Module(mutaplasmid.resultingItem, base.item, mutaplasmid) + except ValueError: + pyfalog.warning("Invalid item: {0} AHHHH") + return False + + if m.fits(fit): + m.owner = fit + fit.modules.toModule(position, m) + if m.isValidState(State.ACTIVE): + m.state = State.ACTIVE + + # As some items may affect state-limiting attributes of the ship, calculate new attributes first + self.recalc(fit) + # Then, check states of all modules and change where needed. This will recalc if needed + self.checkStates(fit, m) + + fit.fill() + eos.db.commit() + + return True + else: + return None + def changeModule(self, fitID, position, newItemID): fit = eos.db.getFit(fitID) @@ -667,11 +708,12 @@ class Fit(object): cargo.amount -= 1 if not module.isEmpty: # if module is placeholder, we don't want to convert/add it - for x in fit.cargo.find(module.item): + moduleItem = module.item if not module.item.isAbyssal else module.baseItem + for x in fit.cargo.find(moduleItem ): x.amount += 1 break else: - moduleP = es_Cargo(module.item) + moduleP = es_Cargo(moduleItem ) moduleP.amount = 1 fit.cargo.insert(cargoIdx, moduleP) diff --git a/service/market.py b/service/market.py index 16d677e04..895cb2e98 100644 --- a/service/market.py +++ b/service/market.py @@ -121,13 +121,13 @@ class SearchWorkerThread(threading.Thread): if len(request) >= config.minItemSearchLength: results = eos.db.searchItems(request, where=filter_, join=(types_Item.group, types_Group.category), - eager=("icon", "group.category", "metaGroup", "metaGroup.parent")) + eager=("group.category", "metaGroup", "metaGroup.parent")) jargon_results = [] if len(jargon_request) >= config.minItemSearchLength: jargon_results = eos.db.searchItems(jargon_request, where=filter_, join=(types_Item.group, types_Group.category), - eager=("icon", "group.category", "metaGroup", "metaGroup.parent")) + eager=("group.category", "metaGroup", "metaGroup.parent")) items = set() # Return only published items, consult with Market service this time @@ -676,8 +676,8 @@ class Market(object): def getIconByMarketGroup(self, mg): """Return icon associated to marketgroup""" - if mg.icon: - return mg.icon.iconFile + if mg.iconID: + return mg.iconID else: while mg and not mg.hasTypes: mg = mg.parent @@ -692,7 +692,7 @@ class Market(object): except KeyError: return "" - return item.icon.iconFile if item.icon else "" + return item.iconID if item.icon else "" elif self.getMarketGroupChildren(mg) > 0: kids = self.getMarketGroupChildren(mg) mktGroups = self.getIconByMarketGroup(kids) @@ -725,7 +725,7 @@ class Market(object): """ root = set() for id_ in self.ROOT_MARKET_GROUPS: - mg = self.getMarketGroup(id_, eager="icon") + mg = self.getMarketGroup(id_) root.add(mg) return root @@ -752,7 +752,7 @@ class Market(object): filter_ = types_Category.name.in_(["Ship", "Structure"]) results = eos.db.searchItems(name, where=filter_, join=(types_Item.group, types_Group.category), - eager=("icon", "group.category", "metaGroup", "metaGroup.parent")) + eager=("group.category", "metaGroup", "metaGroup.parent")) ships = set() for item in results: if self.getPublicityByItem(item):