From 3cc47ae3cbcd4105079a42cb17c3c75e9556404f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20=C3=81lvarez?= Date: Mon, 10 Jul 2017 10:58:51 +0200 Subject: [PATCH] First commit --- README.md | 35 +++ affixes.py | 16 ++ conf.py | 113 +++++++++ discord-icons/affixes/m_bolstering.jpg | Bin 0 -> 629 bytes discord-icons/affixes/m_bursting.jpg | Bin 0 -> 1874 bytes discord-icons/affixes/m_explosive.jpg | Bin 0 -> 1890 bytes discord-icons/affixes/m_forti.jpg | Bin 0 -> 686 bytes discord-icons/affixes/m_grievous.jpg | Bin 0 -> 1980 bytes discord-icons/affixes/m_necro.jpg | Bin 0 -> 662 bytes discord-icons/affixes/m_over.jpg | Bin 0 -> 644 bytes discord-icons/affixes/m_quaking.jpg | Bin 0 -> 1667 bytes discord-icons/affixes/m_raging.jpg | Bin 0 -> 658 bytes discord-icons/affixes/m_sanguine.jpg | Bin 0 -> 653 bytes discord-icons/affixes/m_skittish.jpg | Bin 0 -> 616 bytes discord-icons/affixes/m_teeming.jpg | Bin 0 -> 651 bytes discord-icons/affixes/m_tyra.jpg | Bin 0 -> 602 bytes discord-icons/affixes/m_volcanic.jpg | Bin 0 -> 683 bytes discord-icons/boss.gif | Bin 0 -> 1001 bytes discord-icons/brands/mmochampion.png | Bin 0 -> 24875 bytes discord-icons/brands/twitch.png | Bin 0 -> 10417 bytes discord-icons/brands/warcraftlogs.png | Bin 0 -> 27061 bytes discord-icons/brands/wowhead.png | Bin 0 -> 3473 bytes discord-icons/classes/class_deathknight.jpg | Bin 0 -> 1117 bytes discord-icons/classes/class_demonhunter.jpg | Bin 0 -> 1153 bytes discord-icons/classes/class_druid.jpg | Bin 0 -> 1016 bytes discord-icons/classes/class_hunter.jpg | Bin 0 -> 1018 bytes discord-icons/classes/class_mage.jpg | Bin 0 -> 1152 bytes discord-icons/classes/class_monk.jpg | Bin 0 -> 1223 bytes discord-icons/classes/class_paladin.jpg | Bin 0 -> 1231 bytes discord-icons/classes/class_priest.jpg | Bin 0 -> 1097 bytes discord-icons/classes/class_rogue.jpg | Bin 0 -> 1136 bytes discord-icons/classes/class_shaman.jpg | Bin 0 -> 1261 bytes discord-icons/classes/class_warlock.jpg | Bin 0 -> 1165 bytes discord-icons/classes/class_warrior.jpg | Bin 0 -> 1028 bytes discord-icons/mushroom.png | Bin 0 -> 716 bytes discord-icons/races/race_bloodelf.jpg | Bin 0 -> 714 bytes discord-icons/races/race_bloodelf_female.jpg | Bin 0 -> 695 bytes discord-icons/races/race_draenei.jpg | Bin 0 -> 666 bytes discord-icons/races/race_draenei_female.jpg | Bin 0 -> 656 bytes discord-icons/races/race_dwarf.jpg | Bin 0 -> 708 bytes discord-icons/races/race_dwarf_female.jpg | Bin 0 -> 731 bytes discord-icons/races/race_gnome.jpg | Bin 0 -> 711 bytes discord-icons/races/race_gnome_female.jpg | Bin 0 -> 694 bytes discord-icons/races/race_goblin.jpg | Bin 0 -> 3817 bytes discord-icons/races/race_goblin_female.jpg | Bin 0 -> 675 bytes discord-icons/races/race_human.jpg | Bin 0 -> 624 bytes discord-icons/races/race_human_female.jpg | Bin 0 -> 663 bytes discord-icons/races/race_nightelf.jpg | Bin 0 -> 672 bytes discord-icons/races/race_nightelf_female.jpg | Bin 0 -> 665 bytes discord-icons/races/race_orc.jpg | Bin 0 -> 698 bytes discord-icons/races/race_orc_female.jpg | Bin 0 -> 679 bytes discord-icons/races/race_pandaren.jpg | Bin 0 -> 8256 bytes discord-icons/races/race_pandaren_female.jpg | Bin 0 -> 585 bytes discord-icons/races/race_scourge.jpg | Bin 0 -> 672 bytes discord-icons/races/race_scourge_female.jpg | Bin 0 -> 668 bytes discord-icons/races/race_tauren.jpg | Bin 0 -> 675 bytes discord-icons/races/race_tauren_female.jpg | Bin 0 -> 722 bytes discord-icons/races/race_troll.jpg | Bin 0 -> 692 bytes discord-icons/races/race_troll_female.jpg | Bin 0 -> 705 bytes discord-icons/races/race_worgen.jpg | Bin 0 -> 3761 bytes discord-icons/races/race_worgen_female.jpg | Bin 0 -> 612 bytes discord-icons/raidmarks/mark_blue.png | Bin 0 -> 1279 bytes discord-icons/raidmarks/mark_cross.png | Bin 0 -> 1581 bytes discord-icons/raidmarks/mark_green.png | Bin 0 -> 1128 bytes discord-icons/raidmarks/mark_moon.png | Bin 0 -> 1424 bytes discord-icons/raidmarks/mark_orange.png | Bin 0 -> 1720 bytes discord-icons/raidmarks/mark_purple.png | Bin 0 -> 1276 bytes discord-icons/raidmarks/mark_skull.png | Bin 0 -> 1756 bytes discord-icons/raidmarks/mark_star.png | Bin 0 -> 1153 bytes discord-icons/roles/rol_dps.png | Bin 0 -> 568 bytes discord-icons/roles/rol_healer.png | Bin 0 -> 338 bytes discord-icons/roles/rol_tank.png | Bin 0 -> 568 bytes discord-icons/roles/role_dps.gif | Bin 0 -> 1003 bytes discord-icons/roles/role_healer.gif | Bin 0 -> 995 bytes discord-icons/roles/role_tank.gif | Bin 0 -> 1000 bytes guild.py | 64 +++++ items_legend.json | 246 +++++++++++++++++++ loot.py | 59 +++++ mythics.py | 94 +++++++ rss.py | 47 ++++ streams.py | 31 +++ warcraftlogs.py | 29 +++ webhook.py | 64 +++++ wowprogress.py | 36 +++ 84 files changed, 834 insertions(+) create mode 100644 README.md create mode 100755 affixes.py create mode 100644 conf.py create mode 100644 discord-icons/affixes/m_bolstering.jpg create mode 100644 discord-icons/affixes/m_bursting.jpg create mode 100644 discord-icons/affixes/m_explosive.jpg create mode 100644 discord-icons/affixes/m_forti.jpg create mode 100644 discord-icons/affixes/m_grievous.jpg create mode 100644 discord-icons/affixes/m_necro.jpg create mode 100644 discord-icons/affixes/m_over.jpg create mode 100644 discord-icons/affixes/m_quaking.jpg create mode 100644 discord-icons/affixes/m_raging.jpg create mode 100644 discord-icons/affixes/m_sanguine.jpg create mode 100644 discord-icons/affixes/m_skittish.jpg create mode 100644 discord-icons/affixes/m_teeming.jpg create mode 100644 discord-icons/affixes/m_tyra.jpg create mode 100644 discord-icons/affixes/m_volcanic.jpg create mode 100644 discord-icons/boss.gif create mode 100644 discord-icons/brands/mmochampion.png create mode 100644 discord-icons/brands/twitch.png create mode 100644 discord-icons/brands/warcraftlogs.png create mode 100644 discord-icons/brands/wowhead.png create mode 100644 discord-icons/classes/class_deathknight.jpg create mode 100644 discord-icons/classes/class_demonhunter.jpg create mode 100644 discord-icons/classes/class_druid.jpg create mode 100644 discord-icons/classes/class_hunter.jpg create mode 100644 discord-icons/classes/class_mage.jpg create mode 100644 discord-icons/classes/class_monk.jpg create mode 100644 discord-icons/classes/class_paladin.jpg create mode 100644 discord-icons/classes/class_priest.jpg create mode 100644 discord-icons/classes/class_rogue.jpg create mode 100644 discord-icons/classes/class_shaman.jpg create mode 100644 discord-icons/classes/class_warlock.jpg create mode 100644 discord-icons/classes/class_warrior.jpg create mode 100644 discord-icons/mushroom.png create mode 100644 discord-icons/races/race_bloodelf.jpg create mode 100644 discord-icons/races/race_bloodelf_female.jpg create mode 100644 discord-icons/races/race_draenei.jpg create mode 100644 discord-icons/races/race_draenei_female.jpg create mode 100644 discord-icons/races/race_dwarf.jpg create mode 100644 discord-icons/races/race_dwarf_female.jpg create mode 100644 discord-icons/races/race_gnome.jpg create mode 100644 discord-icons/races/race_gnome_female.jpg create mode 100644 discord-icons/races/race_goblin.jpg create mode 100644 discord-icons/races/race_goblin_female.jpg create mode 100644 discord-icons/races/race_human.jpg create mode 100644 discord-icons/races/race_human_female.jpg create mode 100644 discord-icons/races/race_nightelf.jpg create mode 100644 discord-icons/races/race_nightelf_female.jpg create mode 100644 discord-icons/races/race_orc.jpg create mode 100644 discord-icons/races/race_orc_female.jpg create mode 100644 discord-icons/races/race_pandaren.jpg create mode 100644 discord-icons/races/race_pandaren_female.jpg create mode 100644 discord-icons/races/race_scourge.jpg create mode 100644 discord-icons/races/race_scourge_female.jpg create mode 100644 discord-icons/races/race_tauren.jpg create mode 100644 discord-icons/races/race_tauren_female.jpg create mode 100644 discord-icons/races/race_troll.jpg create mode 100644 discord-icons/races/race_troll_female.jpg create mode 100644 discord-icons/races/race_worgen.jpg create mode 100644 discord-icons/races/race_worgen_female.jpg create mode 100644 discord-icons/raidmarks/mark_blue.png create mode 100644 discord-icons/raidmarks/mark_cross.png create mode 100644 discord-icons/raidmarks/mark_green.png create mode 100644 discord-icons/raidmarks/mark_moon.png create mode 100644 discord-icons/raidmarks/mark_orange.png create mode 100644 discord-icons/raidmarks/mark_purple.png create mode 100644 discord-icons/raidmarks/mark_skull.png create mode 100644 discord-icons/raidmarks/mark_star.png create mode 100644 discord-icons/roles/rol_dps.png create mode 100644 discord-icons/roles/rol_healer.png create mode 100644 discord-icons/roles/rol_tank.png create mode 100644 discord-icons/roles/role_dps.gif create mode 100644 discord-icons/roles/role_healer.gif create mode 100644 discord-icons/roles/role_tank.gif create mode 100755 guild.py create mode 100644 items_legend.json create mode 100755 loot.py create mode 100755 mythics.py create mode 100755 rss.py create mode 100755 streams.py create mode 100755 warcraftlogs.py create mode 100644 webhook.py create mode 100755 wowprogress.py diff --git a/README.md b/README.md new file mode 100644 index 0000000..45410cf --- /dev/null +++ b/README.md @@ -0,0 +1,35 @@ +# first of all + +Take in mind that the first execution of each script will cause a bit of spam on your server. + +# configuration + +You should edit the `conf.py` file. + +To get your Discord Webhook URL go [here](https://support.discordapp.com/hc/en-us/articles/228383668-Intro-to-Webhooks) + +To get your Battle.net API Key go [here](https://dev.battle.net/) + +# dependencies + +* python3 +* redis-server +* redis-py + +# crontab + +```*/15 * * * * timeout 890 /path/guild.py >> /path/log/guild.log 2>&1 +*/15 * * * * timeout 890 /path/mythics.py >> /path/log/mythics.log 2>&1 +*/30 * * * * timeout 1790 /path/loot.py >> /path/log/loot.log 2>&1 +* * * * * timeout 58 /path/rss.py >> /path/log/rss.log 2>&1 +* * * * * timeout 58 /path/streams.py >> /path/log/streams.log 2>&1 +* * * * * timeout 58 /path/warcraftlogs.py >> /path/cron/log/warcraftlogs.log 2>&1 +0 9 * * 3 timeout 60 /path/wowprogress.py >> /path/cron/log/wowprogress.log 2>&1 +0 8 * * 3 timeout 60 /path/affixes.py >> /path/log/affixes.log 2>&1``` + +# credits + +Readme writted with [stackedit](https://stackedit.io/editor). +Coded with [Sublime Text 3](https://www.sublimetext.com/3). +Scripts running under [Gigabyte Brix](https://www.gigabyte.com/Mini-PcBarebone/GB-BXi3-5010-rev-10#ov) + [Ubuntu](https://www.ubuntu.com/). +Originally did it for [Vagrant Story](https://vagrantstory.eu/) (EU-Dun Modr) guild. \ No newline at end of file diff --git a/affixes.py b/affixes.py new file mode 100755 index 0000000..ae7e1c5 --- /dev/null +++ b/affixes.py @@ -0,0 +1,16 @@ +#! /usr/bin/python3 + +import datetime +import webhook +import conf + +wh = webhook.Webhook(conf.url_discord_webhook) + +week = (int(datetime.datetime.now().strftime("%V")) % len(conf.affix_rotation)) - 1 + +f = [] +for s in conf.affix_rotation[week]: + f.append(webhook.field("{1} {0}".format(s, conf.affixes[s]), conf.affix_human[s], True)) + +wh.add_embed(webhook.embed(color=0x3f89ff, fields=f)) +wh.send("**[Affixes de esta semana]()**") diff --git a/conf.py b/conf.py new file mode 100644 index 0000000..5eebb95 --- /dev/null +++ b/conf.py @@ -0,0 +1,113 @@ + +url_discord_webhook = "https://discordapp.com/api/webhooks/???/???????" + +battle_net_region = "eu" +battle_net_apikey = "????" + +twitch_token = "?????" + +warcraftlogs_token = "???????" + +icon_wowhead = "<:wowhead:283900950379233280>" +icon_mmoc = "<:mmochampion:283900921694650368>" +icon_twitch = "<:twitch:332609778285019137>" +icon_warcraftlogs = "<:warcraftlogs:283906655484379138>" + +affixes = { + "Bullente": "<:m_teeming:278565188410802176>", + "Detonante": "<:m_bursting:327109581048250369>", + "Dolorosa": "<:m_grievous:327109581132136449>", + "Explosiva": "<:m_explosive:327109581249576960>", + "Furibunda": "<:m_raging:278565187986915328>", + "Inquieta": "<:m_skittish:278565188087840768>", + "Necrótica": "<:m_necro:278565187634593795>", + "Potenciante": "<:m_bolstering:278565187987046400>", + "Rebosante": "<:m_over:278565188033314816>", + "Reforzada": "<:m_forti:278565187588456450>", + "Sanguina": "<:m_sanguine:278565188020469760>", + "Sísmica": "<:m_quaking:327109581236862976>", + "Tiránica": "<:m_tyra:278565187852828674>", + "Volcánica": "<:m_volcanic:278565188125458432>" +} + +affix_human = { + "Bullente": "+ bichos", + "Detonante": "Explotan al morir", + "Dolorosa": "Sangrado 90%", + "Explosiva": "Orbes de mierda", + "Furibunda": "Enrage 30%", + "Inquieta": "-Aggro", + "Necrótica": "-Sanación", + "Potenciante": "Se buffan al morir", + "Rebosante": "Overheal", + "Reforzada": "Bichos tochos", + "Sanguina": "Pozo al morir", + "Sísmica": "El puto quake", + "Tiránica": "Bosses tochos", + "Volcánica": "El puto volcanic" +} + +affix_rotation = [ + ["Furibunda", "Volcánica", "Tiránica"], + ["Bullente", "Explosiva", "Reforzada"], + ["Potenciante", "Dolorosa", "Tiránica"], + ["Sanguina", "Volcánica", "Reforzada"], + ["Detonante", "Inquieta", "Tiránica"], + ["Bullente", "Sísmica", "Reforzada"], + ["Furibunda", "Necrótica", "Tiránica"], + ["Potenciante", "Inquieta", "Reforzada"], + ["Bullente", "Necrótica", "Tiránica"], + ["Sanguina", "Dolorosa", "Reforzada"], + ["Potenciante", "Explosiva", "Tiránica"], + ["Detonante", "Sísmica", "Reforzada"] +] + +zones = { + "darkheart-thicket": "Arboleda Corazón Oscuro", + "court-of-stars": "Corte de las Estrellas", + "vault-of-the-wardens": "Cámara de las Celadoras", + "halls-of-valor": "Cámaras del Valor", + "maw-of-souls": "Fauce de Almas", + "neltharions-lair": "Guarida de Neltharion", + "the-arcway": "La Arquería", + "eye-of-azshara": "Ojo de Azshara", + "black-rook-hold": "Torreón Grajo Negro", + "cathedral-of-eternal-night": "Catedral de la Noche Eterna", + "return-to-karazhan-lower": "Regreso a Karazhan: inferior", + "return-to-karazhan-upper": "Regreso a Karazhan: superior" +} + +timers = { + "black-rook-hold": ["38:00", "30:24", "22:48"], + "court-of-stars": ["30:00", "24:00", "18:00"], + "darkheart-thicket": ["30:00", "24:00", "18:00"], + "eye-of-azshara": ["35:00", "28:00", "21:00"], + "halls-of-valor": ["45:00", "36:00", "27:00"], + "maw-of-souls": ["24:00", "19:12", "14:24"], + "neltharions-lair": ["33:00", "27:24", "19:48"], + "the-arcway": ["45:00", "36:00", "27:00"], + "vault-of-the-wardens": ["33:00", "26:24", "19:48"], + "cathedral-of-eternal-night": ["33:00", "27:24", "19:48"], + "return-to-karazhan-lower": ["39:00", "31:12", "23:24"], + "return-to-karazhan-upper": ["39:00", "31:12", "23:24"] +} + +class_icons = { + "Character--WARRIOR": "<:class_warrior:278565187257237505>", + "Character--DRUID": "<:class_druid:278565188381442048>", + "Character--HUNTER": "<:class_hunter:278565187605364737>", + "Character--DEATHKNIGHT": "<:class_deathknight:278565187903029248>", + "Character--MAGE": "<:class_mage:278565187919937537>", + "Character--DEMONHUNTER": "<:class_demonhunter:278565187500376065>", + "Character--PRIEST": "<:class_priest:278565187970269184>", + "Character--PALADIN": "<:class_paladin:278565187588587521>", + "Character--SHAMAN": "<:class_shaman:278565187831726081>", + "Character--ROGUE": "<:class_rogue:278565187940909056>", + "Character--WARLOCK": "<:class_warlock:278565187596976130>", + "Character--MONK": "<:class_monk:278565187618078722>" +} + +#stop here! + +def battle_net_url(pattern): + return pattern.format(battle_net_region, battle_net_apikey) diff --git a/discord-icons/affixes/m_bolstering.jpg b/discord-icons/affixes/m_bolstering.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ee35d9a6150d328491a802d14416245df81f7c39 GIT binary patch literal 629 zcmex==~{F?Dyw=^e_IIMdq@@@kbw~F|jqy?wRAs;<7uB@liR8 zhPCj9`+;kOj*H1Fik^6+^ZBEgj;s1-1+Lo@7Jn-Y`u%4ooAu<4S5x2FE7+;OG})PC z6?u5h{=YHT9!^czF2Y_mG5O_{Ngd%6m^%|Za=q&AeX^;a{F~i)%8}rW{_=GXHp&&0N-Y mfK%haciB|lFU%Fm4>B!h{*?3mlzdZtli#e&rAyBIzX<>{GQht8 literal 0 HcmV?d00001 diff --git a/discord-icons/affixes/m_bursting.jpg b/discord-icons/affixes/m_bursting.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6d9cb380b501ee673e2df7a4fc71070035a4a98e GIT binary patch literal 1874 zcmb7?S6GvI7RLWyzI+L7frNm7kW4@p5f~*D=|TX32*Ct!MJz)b=@Jpq2qLIpiGu_P zy+{!Qjsj9eM|ur)K-M4*(i~9;A}}kAlgaGf>|XABp6A@0^Zw3zam4==&j3Z*LDz!- zf*{}`DIlH#4gi7CXf%vS8iF7gteg~9A_ZAlX*rw%9*+!7vPAQ3#CudjmqjXn^1_c(M^ziJ)cA@T0JlsflT$yK34@ zm}isTN?hs?K*9fmL?aN4!Tv?uivth}4P!9Se|VDXC>Wq|WFvb&1h2(lr6~~-@70X9 zDQlO!T@?#~94w*XU>rCA+5*Y3J~BBm@snkiwe?q?4;)M7o9e0W47Cqh;0aqb$Ba|Q zZ=E^KnH$ilE=lz+tQ3R(@w$}LAL38$*|y1Zs@Ho{5vZ8CSK~Wft0!EW-D+Q|#~Ps* zJ(I&OA}&Qx*B8?Y%oe@NAF&~Kc_Xiyl2OGB*+YhP@vz>p3^v%G5WRdv40Z^W-zYK8 zZ9H=S32&RKpz%%GWadoVdh2>wJvMYp-^HL~WGi9^KX?!I(SCU~>kaDVT8nP_o5JoV z)6P>K!M~+IXTQ$m!BCUCPO)Wlq4#?ct>fFK*qc8!UVmbB{)8@zXRz|1}0AHraFelk@CkgKjR}cZp!^-vRhoJiQW!wqAaD~0JvQXsS z_0-I;CObRBk^5G+DI__^>Y}DAiN5?g-Oa}#*j?qW%ZQzlRpdFcj*1M{m_GSIttj}I z%tmRww&FYMPAjhGtbbn;A$g*1m3e_|$4N5cT<&r^pHg*(Eo^To-_jpci9DMX9`jvk z9MgWKA>eLOF=}hg*?gvy#sy6Npuh}!@BQJ+L{b(UsAB zVJJ~_e|{<=vX2$QKu2*s)IQK3W%)h`EK<>yZ=wN)7-*G@eSFVgc5vsd8;3d(gM65= z6+U2xr`q*;ZKo4;?{8kJWKvb?(}M8Gs)~Ahw`0}$3>o}yPMn0-uBdpFwj6HkL*J^e`X%hG$t?T^nN zbY0#(fWDSagW_W|D)BD8vT}4rSnX#0nY<9Qa-W4$nlV@UvwtX5DQIyyd2swol!7UJ zVr_@z(#GP)DWjeGBD7a?vtb17FxSKFS{carVh4cU_;i@eq%zCoH3?H*8us{lR$%jr zY!jqiAw^?H=L#PGLppsyS#XYUHMz8Ly>xy%*Got`-&g4=n0t>{u0OkVdj&L7P<`r^ z^8pTat|LKnho`Nh%ihU-Q^2?JUUrJfCZlakty3w-w2L^~4Ch@s)ryIJYOj*N*VXhC zJw%B9V(>EQ?|vZ<+_a-b7CIfjPMr>}@=~2{m&t2DRa3ZYJz4)Mx#eD`s}XThwS!M= zFESc!pbzjId`yM1|rnGgxUH-iJU~l)UZ)1-fVkDR&laRF- z+}d68Dl>xehVuA6Jhh@cIQ)z++I{t@#ccc%HrQcRzq3q~NzM)@8RxMRH%WtR2eaF5 z&er%iM@}?({vGL)>YT_)IWB3!OxmXyee@`M@lvNp-xG3Y;NU^Q2Jk#Qp3f=DC5T`B2?gsHnE(I) literal 0 HcmV?d00001 diff --git a/discord-icons/affixes/m_explosive.jpg b/discord-icons/affixes/m_explosive.jpg new file mode 100644 index 0000000000000000000000000000000000000000..757598a090c0cd436d5496509ff77c7e2038e96e GIT binary patch literal 1890 zcmb7;c{tPy7sr3IPf3g!JA*N@HMZgbeFxdZFyH5ZV5-CP1c3Yx5DJFDg&c&?B%p+ikO+lC{&PbY& z1N(#+FiJRJ4bb+<4)>3miM6Tp{^F5gzL=WZf{taQ+wj?>XA2rpT_CDiV6)MK_XnPS zW!BqO_HZca2OXV`A#$D6?1JSB@OPgI1VQmLT!fdBu1nQ|y!jxJ#a^Js2OoJ)Q2)a% zOR@JC6RGt>H1vp`&6Aa*u_mj0j^}&R#r_ak_C58vHp$WcIjivw?cnDb%I7yGR+-j& z9-K7)E1$}Vuu6%^_5?`Ve*~OfvF@VlnFXoLy}v~(aE)z8iPdY8`)?}RaniqwTWekg#jg)3X$dTokABZt}V2pq6`yb zS=kQTRIb6Jx)!s>Cz=aOWnT&|#Jafj<6nE^#*~P@W`Zh;El*!lI`p?^H8t3xt?oMb zV+t@u+iK-c!A+!6L*HI~wV>W9YLx8WOfrbSSGC9bz}1h7Mo7*@zOPo0_YcE+uQo=! zg92_9Xg9x>c~M8Zo9uqjWM$Lz>i*s>>J?QV7)N;6movpG9xY|6g+o+>{ss1 z^EumG+v7(EEG@c%hImWMqED+bufJ&8##H^b#P#pr)X2Zc#ju(aHw896vbJ?ifqs~y z3I3PsjXOav!{Wuzu73^Y^Tv-rOL;BI=*XS))#bEL>j*mzDQYzJS>f|Oin(}W=>xYT ztemJ!>;(VzHnIFz;9Jh9`plywc_tf48LsO&2mfI_ntZTqi}6jWsf*ghMw-j7Or@T{k>dCYD zE8wI`-8j%2A5aG)y*}Zi+un^)>MetYykNqsaOXJS_9SJ0YnkYc#miB=$;MV1N5QiG zzUl&$;?62MjX>^Q9b%$}ztWx9Yg6z3rPM3YZVV6&Z z-7S4Jk3A9Kq@hgL(jjzUg6}H*?3u@f?Kap>f}F^x)NyLweod7y&6caAHYxsReWEP; z_#OO<4=l5ql=3g%t{$xLBWnH2;(WJG&+)eYMaEOC_E4MoySZkLq(VwxytH#k7#6CMRt)%_cc*sQ=}6|)@v5?;i|N@ z`>T3Z->QL=?gnP|206|@A&V(uL9DIWYpZVhl1jCb^mWOIlF4fLQ&%~B@HWPHhja6SypPr)2=o{DO&CkuFPE@yq q{HkRfP}}53&D@Qknt`OpGjy%*@QJ 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 literal 0 HcmV?d00001 diff --git a/discord-icons/affixes/m_quaking.jpg b/discord-icons/affixes/m_quaking.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b7e3a4783c73fea93528fbf06f51f8d161436ef1 GIT binary patch literal 1667 zcmb7;do2Y35pFN4JzH$qS92Fp-dGW4XK7{jA?adG~U#sYb@hY(-`H* zV^qDGG=xPx8X}#>c(fTtsg|xbQLC}7K_8+fwTxubJ$ufcv;Xb)o_qhf_xt%?{S*BH zU>O<|5(GdX5Fpr4fL;Xz0&oxpgMo0vfWzTN2s2}ZK^CT_NHdfL8jZ3*p)fYsT^K8S zYZS`X+1B2{0f)n3cHs$lM*`Ln=lB5vF<22s2y{{UCrc2FL&zgx~=v z3Id`a`nv!Y0H9FN@a=zvfEz(UnDK}00ZRY^f>5}jVTgZUKnyDYjxusaV?2+XMOa1P zy$W}y8(Z515a@#Lp*4-cWe)-V2ML2iK_lP;(H&*TgF*~U_}uCP`Bap{xjAS zO=g?di#wOiVJI{aqi8kPKt|Th4<2w@BBzO$O>SKZ=$?u6X-b)V%9O(emUR~;MZEw+ zFbk@sdrx>AfQRzdj@e9zW$(hCc{bzZqnB(lOAaPUJ*zFtdDq`G@$=9HYC-C0T;$3! z?NEFi(b-G*L(zP&J1wb_`jfSRIv+GG_>9uCjPtW%aoh1Y&d401i=6(7Wx-Ivm`BA72V&s}=FtUUDq|5qwfO!&fy zovpgi^|dpSE^EU|k!1KG3bvt^-ucMYKBn4qKY?~lV$Mu|;_+i$IZTwFqX}cP`j;=h z4IEI(c^oCK_#=9t$lZS@@%fW|$yGb@oJkh0Z9_L*ss{?#*Eb5XMmuuq6mM!b0=}G4 z{J08}eBT~LbMI>;hH3}XhdEw?sgxjM{O7rr3PG`PcLqG2A-4Pu)px35adA<5Q?YY& z`j>pyrrezioHePlNzZV|Hy(ReB3=k6?PrR)eH0UEtj||Na&MM=`S`hX4$Pt7-> zas3U1+ux>hZ(liJ;8rzd6OeUcbCAs_H^b%Oyn|qYLdHamaSe$pTu|m%ExRp;g+2 zuaA!hQEyzYw*99G6*-xkteatoD>V#c%{+ZW`N{ZZ!Hm?w9iOZip5``jS5-YH)h)4C{#Z&Nkm(KB`roHr#>`0p zr^7?{lQH!VxH^gTV@P@$DQ|?8H)Ex(x95CW%V;!H)!uI@@DVaU)r??^M{gs{J$9-3qMGFZn z1KVJGfu;PrOKu-0e4Uh?dbsPk_|TE3@SRU*dQxTURi#C&EVlx!^?4$k(bPSsU4N(c5d$NYtX zpFi=6%$M7>D!cC<-hFk2V??o-7e}lF*qWR^cVN3_^bZS-lnr4SS6E*|SB?uv%RApB zm2AD7!#5{Mt$*h2v=Gj`-fY>{_4bW3-wqb_-=aRiq)6_-BqDbYf`wa2<=n%gN6-6b zx)gKc^Cn2o&d<5XhZW46eC&?+-lyIx?ahlBCei7(gT(D`H-%;Im4Q8kg7C%rEr|}F e+*{h0Q4BkWv{Q^sSVcs2B(hJ++*}LvPyYo;Z_7OZ literal 0 HcmV?d00001 diff --git a/discord-icons/affixes/m_raging.jpg b/discord-icons/affixes/m_raging.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fba3bd74437d065d4f232e7948b724b9924e5381 GIT binary patch literal 658 zcmex=kGB7hTAOjXQc2=N_x&Q+cBQp@N!Xz1) zm|0i_8Q6r_6&-~|43(6Pf(k)KFfuSP!_+v=_Q|&Bo)x0lTg2Oz%8Wkz~vd4 zm|0i_85G%s3>}r60+WD>B!E7J%Y#i}Wny7t2g+y(GB7bRGq7>P&1Pg0WMEcg5fX8n zxRI4jR4J&ianizrkN)3c-~k%JB*-ktV9)T`ul(4@DSy1?#f#3^UY6`9(|tX35clkSBgAHAQQW-dq1NOj7T5i{ah2du$OupSW<& zGtJy{`b1oK#V560#zGsNrIr--FAcr!WykPKrg-Bvd$u)U`zL!`XkKx1y{n}57cUO~ z_3_bGKW;vrbUUXfOHMR;!!F0oTlDvT4)~MVGbJ;8!t^#zi9I=GYdkw-`9b)=);)7pnbe%aiYY4ipFaFj4UZ(I!2!{ykH>KAM L<@3_^|GxkGB7hTAOoNaS%5Mc0t`%yEKH2d%&bsZ zMkZzk7FIzvAw_n_Kw(2CQ6rO}M35Pb3_uxVz{bf27X8^-1z?%0}s#zKw&`!dxkAl{Ou1dv&GMEzYY9R{ic1HOg5wH z+Rrg3Zluoop_nH2-cawt6!{$rFSq`@>sU1B@09C7Ta52)(K!^+9dYLvPf%Z;yj-6|H5n z_w!d*s`34@)O%jiIdO5=gbD3CrI~NMKB^h8C87F;>a7Ktzn`YbG-N literal 0 HcmV?d00001 diff --git a/discord-icons/affixes/m_teeming.jpg b/discord-icons/affixes/m_teeming.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9807dc53d4750168409c92cc3b9acc32f6f145db GIT binary patch literal 651 zcmex=~L!{=d9Whe5b3YJvC(K z+xul#j=!9-!c*SwPO)Rr1n-XZozs>qJKA?t$TvCQNbH||p33o4m_1H!I9}6!z2Z$y zM0d%&J=-3=T$39Uo6{Pp{Gs}%dgZgQq;jQsuWfhzX-~MpV9uPkcuh3R#&f?93wP=Y zPhj`(6JNdEb7gyn;KBR1o)k???DM;LJaxupWBct!L8-~|g>P?2U%a-@tUkTZqjQSe z?!+(l`z)3}*2u1HTG_ifX_~OMskYFyX&%$WD`FO#wt`QQ62r(EK_u2e6|XBSq@(k;YL!aSGp_v1bb K@t7X{|2F}Zz{tW36ju}kG8mazVOkj&7#WzD1r>!RUK9rE zT=@SM0}s$zCP8LF2789j;hone_i}OPaRtRsDBf&o;c)Myf)GRCq{7KBs;_5EwON1U zo&S@mk8i(!d)v0v_3n!}ercvVl}FDrr6gZ}Fn&CtX*GT?Can7daZHCTuFX0y}lE@o3{nL zxErx+eU{ssn&5)Fx%WMScHNx&OyCHQr$m~1*8+(E}#6{mdwu| KTyrY?|4jgtT(Oe? literal 0 HcmV?d00001 diff --git a/discord-icons/affixes/m_volcanic.jpg b/discord-icons/affixes/m_volcanic.jpg new file mode 100644 index 0000000000000000000000000000000000000000..61205026b5a75d5b357b141d034ae16f70ed91b6 GIT binary patch literal 683 zcmex=kGB7hTAOkjb4pyLyx&Q+c6C(={vO;AU znV4Bv83ctC+1P~*9i2EtOadnZ6^a8r3-m4$U}Irs2bmzqz{t$R%ES(r0-7MmV93HI zB&?WN#H!>N*m&^L|62?^Ko>9x0;TL3CjFA`Ym?_aK0|Hw?3Gix?=Mv8SlC^tb@Akd z0Iz&*`KH=U4l1uEebv5v?aR4}q8S{9J8#8#q#q4kSTDJESAU|@C&zD(J2`JY-YKs# z*Q?%p(!XD=GZQxJ>BMi@c=c%LlMULeuEK6_j`ZHNIJxu1riuH#SN~_Y^7*mlo?Pxq zX`O#ZPvq)|PO@BcX|vd$o73x$=N~WPP~TAX)OvkIneF3M!FGwc&XZV=YZ|JW3(I)$ z-OG7&;X;tl8V>`XD(*W1R;9)f*|xJjt+6Zmr)G7yRof^mzWSKvn%T;tG7WBwyWTLl z{bxvj?wj>yS+v|B$JCf7<|Nl(@*Yw=p literal 0 HcmV?d00001 diff --git a/discord-icons/boss.gif b/discord-icons/boss.gif new file mode 100644 index 0000000000000000000000000000000000000000..6b28342dbbb3d85e3489ddf6a256ffa30ab7d86f GIT binary patch literal 1001 zcmZ?wbhEHb%>#>dCU&(F`p!y_al^#A{VadGkg|G)hI|Cg7S zS6Eos!_)om@ArB-n(Y(2R`1@%!NK8RXRf0nzk2IBRb|<~|9?*CY&o>3PfSc?_wG%i zVj^!|J&lcwI(Bf&R9@CcPwyBQ=ybN!hX?pbNQf_8JpIP?%d;l6Sy`J13JNUdU^X!^ zDd1!=wJ?xUQb^%rn~)xspsU2p%)EBZnio&6D@jRg-oEPoiwEDoy#4+E_v+;fwpC~J zwYMjScpK?xH`Z1@e|nXfg_)6&k)55Lo10r+PWJ5C!xxY4*|T-I06+h>#^MVn z51u@+XTgG5`UXZ^TwISH-MMq~oUxI1W@+K|=TCzI{aTwV9juJcUOcfzhC5$YX#JW+ z?QJz>#YJmY&1GR>=Humyj}1+Tig0kWoj$qmxicq~6y;sG za0D3C45MJ+LO}5+3nK$V1A`9837|Z|z;TR$k&%lb!LgBvnTJEbVuClbeQi~R0TaW) z14<=)S3Cq%8mC%@2rwjUWNwybPuZ5!u-N55g9#VkpPvm+n))ogYnZrBoqr>#jcNLaR dNBvyem_n9R6ffmzXysuSvhY~2?mz>BH30Eo^Mn8Z literal 0 HcmV?d00001 diff --git a/discord-icons/brands/mmochampion.png b/discord-icons/brands/mmochampion.png new file mode 100644 index 0000000000000000000000000000000000000000..8a1c6d7072fe0ed9a0f77b6b577590948eebba37 GIT binary patch literal 24875 zcmc#)1y>wR(_JL!;_e#U-Q9w_ySoz{7Kh-$-9oV7?y|T9cZc8-T!MZ3yno``Gc$G0 zobBm8-P2X~-l~aFRhC6TB18fJ04QJNq|_lc@4piP4sxxb@mqozICBMADTsyqo+Uej zAqLS^PR|2k<^Ffdj5&z>ck`>OxDCYquRXwZND&MGX!L%O64&%uyXf`~z>!`Md7r%8 z%HR3|B|(0NE+GF`S}KVlnhQs&6aj%j8cIz7i4s9BdCR|cPB0u>g5itY-`0%H=QlSO ziGgnV!o$Gczkfvnv^~6Sey0Y09na#lK`6!kx}uh5`d-FqI`Z*hN}ETbg(`S*Uhcl~ z#YQ#_tSlf{N&IzgRqdcI<#z%@RG#NoP5$#AjV0q||Brudvq*N>=5tS$l$Jn%9mo6l zS*X41W6$6VgAHx`&w}ZjxEW>~I_#FVJ>BQ-hTp`9Q0yOO@1nlXdF>M1vd{t% z&GinQLdrtm@~#O#Z9$p(+!AY&ew}+GgO)pM)FwD{n&I< z)Lod~9GW*v?huPDdrVQytm@wx%j>|9e^LAPrj@KBc=C=G0_vMv>9$z76|cDFN9ZKf zdF^78jsLvwEl#~_y3m`u648VrA=g=`=NG?AHyXUXw)*8U7)A+D4#0#5C65iwlfIF} z2KE}uY#u_%efurtEMw-j^F15}M0HkM6f{9NRqB2%$TULwua?t+cJpIh6+KcBFIL(k z4lYF={n!9#1`QO@ICB`uH=R5ev0biZ5BlfhPe0dXf_c(y;pHi=6TxPoU3dxJ!}W$9&`qQuJ2BmHZhMRCbHq zA~ex(N|uqb2Kg=}+ckFKylw z0!JAYFZuSV9gcuR2CcSW&<8Se9`@m`2Vl~#%n;xU@cfu3c;OZA1DQ=SiozaKV0yrK z*9s+G8C(NEf=4AYzNQ}1Pt~vpLehCjfJN5%N9OLPkD$J?+ZS%48>?lRx8Y{*nM%(% zZKuB5vXkSxAPwS|+kdglvC1MP&}jf$v>i53+(!e`2kZCWSYikh?BF3xwLtmZieagdFb(Pe(XTZ6mQZK7l{!ZcT}H7i3>_%2okMcKbc43LwnF(%*2Sti;-*X zA@QFb>Zpu@D!co;H@6H_5jkjbm?W4TbkOTZN8tynS1q%Y`6YaeR12Bz2A|c zrP#{7ZYxM&%Q=`?WXeduwSb-A6Fr#ivUOVKDQ3_xx+K;dq{%`ciGYaVvrCUaPqY1z zewhZ{ZRI{z^dmDaQXq|DaBAI-&jr&RAVmH-3Z~CrJ;E}_*a5i7^?}dv-9zDvzdIEw zivFU+a>!INdKQhtY-vzpWVOSmkfcSbo>Tr|#y+RfgaeysV+*NfLQ)BL#h?0@pAa2We4@5wfu)R4A+ztL`1=S-zHN7?g-y; zd02%a!^^pzVB7k~q(ioQ_(64NZpW`d9)^Msy8UjB(XnOwbmE0-fPCD8mtd%qNJe5y zf9E{Z43>f>tPE6P(1tie^>)``XKFF-!3jV50``|SX3Pqotr7=z5r>|w#N()?Mn!r0 zK}^(U!hdG_uO)JEijs+D)!q7@m3Y+Nsmg-w_i!GLx7^`IiPD=txiee3B@H`)_PeDl zGnf7ke7^DO28eD;0ZrmP0{|ucu+X9Ng3c6z%w(dM?~_IPD33)lFu|D=*2oDT;#{Wum%{M0 zCzC{F15#BsmtkYJ&XzpPe39X!TmgLDkFu!08`8rmob3=-x8Rpd2GYQ2<2Zytf}{q) zA~CE%gwR`qlC|7w&~ZNROeD=jI95axa~EFrc36@ zuO!-U;$^U4^Y;o?fUmVwB!D^~yu>r*o?5z9{J0Q`Cn0Bj4RH{lDw#*=@pgLT;I;ukzKHUsOs7TA%PF(EU8b4egWtJfaJ#VAx*E3K2 z7G_~B#WqSqAy+g=x7W|b;`bH<-|GWc>FI8{)8rY?Wte{dZ4YDL?naK6m;G+RLGGPY z?B*a!E!89DsEZT_hlRi7xOQ-PLA+6C#k_}itmk~IB)+?UhA2xbix8?>(X}%0AwLII z=V>-5)KdbSjxo08zLhpEwNynKl#lDY!`{F8$%x>%6D3m}*2f0y z3fRo2zin!T3)rx;wC(Jme$^)4I$gwvtWIbw{AKOd+nHW=zUI4OEHC1d@46)v!vkQG#pDqA?ldwhBf1u)L9Cz-=!Ga9QtiGdnj5qc0)nH-p6w~&*-#^hnJ z6QKc^`v|*flea8hJQ-VE>3H(FPAU}YLfrj!^^yyN|KcQiM=*-Nes2$u0A2VB_ z_~DipD6tNgxaHKr($y1dlrx%;1p(5g8zqyyH}sA#x~3Z zyS77XZS2RFIetziPS{i)C<;m4^m|PlTk^D6wahB+u457n1QfyQNMdxT6(%haFz0&6GX-J)}+nv{Y(Tzu`8i6{%U z`1144Whnywoy;FA+`ZG7D7kN6!p26yV^dHymkE6D%UT=V*fB{w{a0vrn4ICOH0j?c zFx?8Fp(ZqM1i5S5$1IV?@@>q%a9amA;VvtSNCdUqkS#yv?D%>TZV{}CFL@jrteuLB zWLz45Q$>RAM&1zsRRJ8We_7X&S=T(_yLh2R$dob%ZGXUO&COv*h?Qq$!u}v)H22xzXcfECwRJH(BiotAAi&ZU2*0S$Oo8!*q+howc#FB}M?Js%7 zjR$aVTa2#HvA(>=Eez^J%Z7xPu^Qm#<0TQlxUYPD*}&Qmd349o|L`cc-SUc$(o2-1p`Ggtvo##PD!IG2tE<=+45PKw%>hJaK-iIT-0Wid zoUXDBSFNA;Ba>?|k`@MVky6^5ZJSC*6SwkVnrgmuKRQ+Rk{dnX86zgS!;fCP+b@{v$Y(rdSl z->)g*v*_CaP?cJbw)>|ian%zElzYY-qEo+nL*LG(OQc6+L>4RkHyjr#f2aEri5R$_ z1!O*)#=Q8Drog3J?d~u|m83v#!uQ12ylsb$jY^jM^UkQRit~hp4L1`cjTo*@cSgGkl|L_3%tgw|&dm z;+=nm;zs)!i07~8<+6M={X&?Po?Izrbg4PIMB(x&1;R&9|5&ezz&C;1Xp)f_T|9f? znG#Bjbveou5Zgz-yY>$Kzrcmn>2h9m^qbnzmH_H}w&_drsGubxj`kmsv!<_ll$dCp zL5CO#&Yj_P2GirIYFgnQU%$%SpK|Z)@1s;`!sYXdm#S0IpYU^Va273gz2X~FTbd8W zIkoxSK=nLZ8Onx?cxx7Jk7Hw^XFlp4H%sH5eZ)u1_sR&|o~r}E9915iNPgB`qxJkd zmi%zftMXT`ISx$h9WbKzv7-?vFpe4~J zQexyfazu`+e)#ab1s}C%J@_ilqAy1h#!wK14VMDwWAoGhAaIXx>_6D|rtY2Ij@LA3 z+-DGLJe*=Td-d`By9LATuvE_0Wym6HYDx|b12bFV@13bAbh+6ZCG7uTdX~<-@(w{> zUT_@ejUp)|c{oPRgkT+5KATR7ndJSIM4uFNR8yRHaZb4e>8>IJM2X>RnxK+ORT#2h zwCb@@7j{C$qaW_q30Y*!DOQ6F*DwE?=^U&w*h2;$tlYDT>LR;wvXWVI83D{ zgDngNeMzCAU}wiL2^Pj85%>yVwuqC!4`tM;F+KVI82~C3v;moAO}0hv>2&hJutogvq-B9ef(BP zkKF-T`Qo{A(kCRO8J*+}n^NsLyv_fSMZekpUjHEX>G>%01B~YC?Hzm}PzkIt?vA`J zNRVBams8Arfr5)aL(E&M3q}7518+K+Z8Sm!b9(i_^+x?y4P&kl>O$p zvM6aeYCSLp7BFL^s#%D8B3e6mBE%gAIwJh*+^&NR`GfF$S0ijUJKWP=W@V}R+0GrT z*1%wxJVEao&6VMJB1x8v62E&864=k*zhqi45C9-7MMZ+=*AocTXb)#(kd%h7UP5k% zfyKpU^=EB5;ySAd?bjCTsbCpCfbDhF$l7yfo!0?|+>h_I92y=vMj~#l zWB=WAI>6xT6ezYP2{sh)BT}!hM5l;jWcS!@W=-e{5yVQ4eq-XMn7{6CMtE&-;d!<9 zlhi5~x3))RA?Za4i&4pc-`-kHfj2X-2q+^%r*uFYtsGS}IGB%* zPm|$wWPjLfd#hWQ+n+ICQ1>c}*)@6<{%jen9xx?N7 zfcw+sT1_~}tHpl<9=FM~V*h%+A|Lg5eJvv=Cs%4?Nh07Ww&{1Tnprlmg;G|x-&$h3 zK#5;4O%Re!BDr&ZsLK#gAQH&HT@DXO*x$L>*Ko#<(fmdt=&en#D{ubXV1+O27uRl8 z)(1-T>#NEZT#zS8eYWSaH^x)0NoWgZ#^lIyWTF7R$S{-KW+R^fClr|`HT;eFec?HS z-tn16#M9J3U&8SEHb-y((%fVw3rN4T?6UrLFO$uesmO|pi$|Dsemx2OsU*qB+-cnX z?|89FrxdJEstzRPLyrx5#Q-E_Wrr~{q7AGslQ0W#4I3Ec^p|t)49pVw;O0l0fg`)M z-?$ytfElbt47blem2zgPY^ImLKf9QNBSn+4v%mRb1^1WasJI>d9l3hA9W0KYCr^)N zbM;g?*9(Te@NWWI;eTbL+kES=>oQh=A71Vk7ulUzYAn~P70_=&4w0gkSt#NALH%?8 zx|&X?=N_BeUOUQ=rOJ~=NLYBL*tUbPp9Ab->#6MH&9Z5SF;vtVjl;%7nfQU|U9gFQ@fUm`oTZf&6>qJ( zOifFl8!^vYJ0hyP&H1V;G~z6Mo5uk=X0Zl2rrYsG8H%UAFbionVuS=wBFN3>%{RnK zQr-$W_VZqW1|~;W!etw%UISjTjC<#1Ot8&;Pq`v4Dv~GgVj$t=X&(vfRf59k&B(3 zo$l?ri%;;5Sa^6id7Cra>0)*4lGEBwii+q^#e7-+ZEb7+#P&2=EFLS%JM$H^@85+3ee#C4c>(q^yx1xCX6sOnMRO%P3xi(U|E4k@-XUD`rLvnD-6rJgG8Y4Nm{pFf2XQNKaHs?)uFpxw5=3+rz^sL^EaHE}rKr81Sf?zj_#A*ezsAlyX|X1sCvN@gAz^$3K;g9rG8$oO1n& zA?YOx2`e!dfYNA<%bz`u2c?M(j8W`bCb@F3xhHe}p`;xhR5m4OVZw=t4NKW;MILdc zWd4k`ZxaBBSC3`xJ(mqqrfABZ)2`#TUkbR$pumk~zX3Ox6w5IUj}&Nb5WXAWvzY?A zy1FL>^f=Uks);MA3&(lPYdwHcBfl@-P-8||J+1Ni;93^$G3OegF%I<1`? z$Jv-(-(DHD>U3snw>#-3n7WnDmTWOGZ)DuJVQXqwj@1)bT<9EtjkrClVK~{2iYqPU9@8SDU?DZIJfwn+EtFzJW?YQI1WPh*Q?VjX94PJE2 zc0jn7s7sWZi~WS##$zpyHZfJG<_|U^%+x2HJroV}0kOg8es)TTAQ4%&qw7pVi+TTX z@FIHsF55lx)52p=RB51q@o{akJT{gyAh4=?7TIp0T&;qpn>z9%4C*0g56q!o(AOu{ z*n~Y^5q)ujB)rP#F%3Ww~s+@ z|B7VdPe0_W$Lj6oXJ+Jw+99Y96LasQ**%ZX4H`~z=rTfBNO<@B-0^mm75RP8!~u=G z@F!W%hZP}D?N)4+jf+PbVBHN9&031a}#|@%R{^;mvI$md0RrG9b z7vood)lZuN#>U1GoboO%F42SL08nkMN$Jh=)Ac?tgNa^r&_C?4u`!%TkFV~bQBh7> z3FHV*&pF#yN35L~YsD0Y9~>|WHnreYu#TaTVICTmgv|Ok9Yq0oJCH7=2xXc)9?Sbz z=7e*BFr_G+fhjPKhG=$_Xu3-+TNq_B!eUj%Hd1(0l*Q0DoP)@d)kgT!1@^>J5fag! zjY|PePGn?UmcAV4VdI{FPsJrA69LKy{cUdh0D#x&g7~)g_;y3P^P8Vxmrun8+hV0w zScWvM4#63=2S4X_d4N^FDI2+{Xzze4q$hXj)lJdq+o$U@lX};GthO7!NVQ!|q8CNq zVwfEsUW^toZfr1B3ANr7k8 zt|S)`5xJ_?exGbEECd*|I!hZHuYSUf9l{s#Vf*9$2@Zu=x26jQ9(89tZKAf?i}kW6Neht5(ayo8}gVpr_o$M$j~ z(qb;ktBeg#O+4-5rmrDBdoYfG zbG%u!B-MQLpV#QbRG9wlzZZEFI2a^kZ}38G&p;A|y@=H2?2wqw04!UyXS9lj0xYv^^j~=FUbzE7ojHOvMr|n7 z`tW$X8K&^E@WrmGV!MTO#{N^h$8q~>-gbGue@?X#H2YFUWp!U(T=>4;wJka}Flow2 z7MQXtiFzKJw(n+h*@fygTBj4yFr6dj3;9CF%Y-f9Rn!_?udedb(b0*it7Benb?P{; z@Hg6&1bsTxKU>PGuH$477YG);)xGpJKk#(+vR@9mxJirZ>(jrwzprL9{0{;?1OrrS zjfFSb+(@|ctTn$5=7GLXlJk(*;-rEl%~$HmyFE4gZ*dmevWu< z)|9ee=GRm~El9^a!+0E=qZoF&BHN&v461Cu5x$7mUJGAt`S`fM%z7aN6NlI}ipsjW zk`RjqK^NgD{$Umu9!(cjNa3CB?Wx;gy^Zg5KW7L zC&tQ`iUz;GE~j6E(QXySbla{*c*kRnYs(1Nx-F-YhB{x?Q2kF!2@EM2Y z8ZCxAcr;Sgg#C9n#^q869R>u6(m7&5XTvOa0q;x2MSE_@RM*-}7Q@Kg6=mJg=ka*& zc>s>gzW(;W?27{AGFZ0hGNr$I-945}H~gLXSxq#1;oqVvPmh9(%qX2(TqP4vs97?b zY5*eQby1g)tMGYwxCp+;aOB9c-5-uu7$Xq!xpJ8BtquNA=g8)9lK0IIcH)0|_{;h^ z$_(G{ajV;X|Jc)y(30YGqy3g4Zz(ha`2%Cu(8$Qn(()jZTfX%BQl-|!&s;bZ!kJ&c znB?h8&z7sp0^vN%#@5*W-J_-C!?Xc*2tj!O0lnlZrS)`I*Cye8PcLt`uDh$zsa|lx z{0>~Rt>qmSq^WEIasBC$L93l4eW_+)>J1NzJpE?9M~2p+|HG-4bJzEbG0LO6)kbZ1 z{U*mR&+_At4Uj@ULsL{#YKbm!e9&8)U7#b8VA?L=d2X9l@CJ{js;?|0Pak-8(Mk`{ zuMG;cuS@FYIO!I3ogu{Ix$Y5PhrAiq)-t6?IFHOxC4G!V4)h!U2 z=ul`SG0xElbq$89bDGL2iU(I;A+K~jddCrbP@FCxhYsu>n75R*`rjW<3flEL8AwRx zM9sVoKzc33qEVz1W_xp_EKOBsR;gIB3{;apDIQYz)oE3qxfS@dLcFZ`Ub;V(wpHe0 z!pPqo8fx34FB_khWbq@_8i%f;wzeQGw}=eL+bR_>bGG z^cx%2bFtQ8oFygVxgd^rnF303+T^)Y-OKbxs=cS5fZe!Gtu!AitBc>Cl^FRnC7ZGB zs1ljg)aI`j`jGL_)6+Lu-7ejo-&5UL{~?HPjGfoY4BT{rnJJ%i=AviCtf;iLJl#*W zik4M8l-vM{MpeHAjl7m_?=@CfxG}$KwknFq%s;;6-!;Y*sL4<5H-bQ*y|`aZnhoj> z4Zet}b7o-CCcS7@8YOyO=UFRky6(UacAVHDZI0aBJUc^kq{ZvBB*`gvzJwAa8;pC@ z)cHPin^Qd_84_ZWllc{?%39TgS;brx(K7NvkA$WohXT*i31`nAl(I8lQfzd`Et?1m z)a5gnOssy3!mKqe3#OK(R(b|RJTDVYk!{y>zu3v8%(#!y;3^znp~=pT9^-oidHzJ2 zuqsX!3BZ)L;>b$tg3wePG;zQCW66<##f+cVW_NxozDj2;Q)DnJNQFL|sx?VP*42cz zTMXDvf-U{)7Y1P^sRO2L61BXbPzh?x{@M;!d$>ga7!#0GrFq)n*KC^EX!-4zOUC2u zrHRYA{N;MIcf=Wd4Y$&o3S&O&R3|KVr7T@b+8FFz`*gkv?DH!Kl_OqH6G!2D?nCbFF(5HBZ1xLf@Y7Fz`e8eWM*$oO{Fdb?lK3s}VsdU~5EYJ7~55)Co7tm50RV z!a>-73+8=(R#_Fy6- z^gx%(VT%}|Ft~bngc+BG#qjDGX`(0Pd%r6o7iO?!xGvLh|J%#e zt1sn0MTEhlv+TVpC+4fE_a*%MM&GBTf0Q_(ArJ53TTBKXB zdD_S(CMJA>9g;N4iy$E*6{_P(R4_@2 z2Z^|Q+!m=s?o~GQDcS+qmHDq(&~2?@HZaqM3EiB0D7MG6vA6)z1BmMnKUe|rZiO@hQ_v~!t=F77rNp? z0h996tvTOxSWEgrsXy>sZ*6vtX?Vy4Va00qXWL3>sS{vxc;692@EnKnVx;-}54kY& zMJ02*-}+**_9Da8`xX@vUPBEnEq~y#W*Qvy+k!M1A~G^)&B^{0tNEjOlIf6ietnO? zQOFQ0QqA7ED)lSp zi-fEq+w9y#IQU|XC?+Ib2mMs$rUgr%CIYpvYpAOSy6-M#uAjpOf9>H)wrK&rEz9u( zoDedHn7}Qw_#Q*-5#AUD!6?uFuvHmAAaQPKDz0lnTQ@{|>cH(lJVu9K;JB>$f4ip6Pz*tvR?0wa4NR^Obz1``L9o+iF0WXavV~uCSdYC}=OF=LNC7GT6a$Yaws6hM z@i6Mhchu7T>FM8&n;|ul2k=;s9f6--;FZmV2eRYwQfMTrwZVh8AFD;`*dU1_F$jbn zP9ThlLc27(8|?Q9I3n=7JBeGm(3fy@XW9x7ak&(_J6%Vipr9}%{~pBYtxZn5htK*& zxas;0c3C|rEJTNj;RPEL*_nK_G_0w`;b;sgc^y&}0#lbr6>emQ>FHGL!Ad1?M112p zW{QBEju8R{FM;6Rbj_E-M#k~`({D^s%}4v_o)Uf2e#^$^yDPLa$UDdnYSC+8i^VYS z6b~x@Xdx1UwsgHtm)M;Q!QzyQ83Si&l(C<6D#}?k%&~q$Ki_Ud`-N}2Hbn%tIpJ9j zkh8RgE-U@nZ^|Wx9?l{B5W|O>m6a8p7%Mp+glcN+hBJ{vm;JRW^6X{KZFj?0F_RBN zzxwBslw*u;=;$cIMu!`g3)+2HY#FS6T7_m1vEdY4_KDpIptR*ILLD7i^R_zj%$vT6 z0gHG;3jaC~2LE2@@b^1hdpmz7hZ7t%X3T2DS?>u&iaL5^NJ}aYJw3tZ3IxJ+s?5uqQ4>ALZp<+y9%9RQy)~`IAVdLrH{KTL6@rCZrPZ*ZSgsb$>YiY1eiq8iF z_}s#xo6u*APM%5UX-}#S$cy@9zTZU47ktSChe`-ts*Z>*#)L`5!UG5Ya3LEjVtfTm zO7j~7t?m})v_i-5VkT$gAZIC}iqn-e@AFw&Sxc0#h6mTRE>Q}V8-Fw9n+VvsLQgL@}iT?XA~Who>yh)o1MitTOtkpT`1A{ zcoxE|Mq~$YUi{Nmkb|1mfPQ&-scmGAVdn3mi81K6zSPe&Lf)iD z2M|lM0jU%c!{q@YKjZ&%682eE-PsvG^C|OZ4dA!Jj7%g(3=S5>kC%aPvI*Bx_nb0B z3R8Ym_bi}H2_o9%Hn`G?(RFu^V8QV?(ziDN>2G8fAI3En*RUZS3IUrKq7yTBzATRU zZ7bu|jw7K=&^jTv5Rs&K6$ABV882EZX?{NGI|SNk z!on{n|NHmvn*;oEO2m_As%t*5#1%Uk>-!g1FJ@3}B0OC!41^A0M4A;&PD=zhGC{9> zGYiF)32Ajy;VfupxPo=3WnV*k7^&EPA5M{doGDkMLI?#7yegh=w7|ThSeDO@BFc1o zRYCArkQcFda`?b26WbNM!no~;qMwv(cHmSNEyj{KP@hz(!)Jenb-K=CUEA|wfs}Zc z!dy33zzv(DELj|eG1_s38L`ov=M(OzUh6W^Ihb@s!l#)xKNm5V{q{md{QsC;G^SMXwjr#@6 z6%HgmTdDy=N*AM57 z2Da-JD7nOj$$432DnOM0{Co_u^zX0UYj2%s#pV|K%_kKn#a$b(fRfo20#N5c)iJOT z7eob6PEnyr7{2U%kgU*z0>OY#*=n=2V0O&gY2nEsvZ1*OD_V=i(L+tJqmf40#Co9X z(UOte=Q;OH9E4Cn$yjtuBfR-a#zm4r5=wOsx}Px$Rc(aYOsKmbwX}`dHCrQlsT32` zr-;5BE%>k=WT}___n8WxiG0M^XL<_sFM8BMEPa*iXym)tJA5^hfjFt^o?%~XkMjsC_CSkA9a09td$f8^<-dcR(7*ePoc z#VNd)cv%ZU`X-=OxTifZ*{Q)jG$lLC0OsJwMYMY4t=EW;&XTAiJw zMm8#?jLz;J9sR6MznJCA|Evd*`BqttyGC^wkVyz57aUUYKXQ#ajx+v*KMkJ0cD+gh zGy%|nCzvZ()jxeIh~)5MG$2g?0U#eHn#IAg50KQ~RWtymoE#c3oMzb+Y!-1fU+(n( z3dx5Vizw1yAy6dAQ6G9B+?96nNFYEULZA3w@ccy1;nBf$jq`6}M)ShOilTW3(@<0a z5whTdfbiT&i7RL{`MVkXTQf_fnerT%=oN%8HTaamRztWFt+^;szkHjtc>y_f5EOEHu5dZ){%-zGay$hOaQZ(8qTKAegc+A1gGwz3)e> zu$#FwZ2jYHGGR%0%#qr{r#VbUdF!4mS}fv;{*n&hy?*C_B?EKgpQs@=*k?N#q3$B7 zr&2>|X}Y3-gFftAv*9H&iTmvL<2PkAApRYxfTultwK3z5&o(C})MW(f-!<-3N{YEz z)s4$JIXPVp4-btMRVL(EnCMb%x%4B*5w-x?eH;4x`bf!Ww;^8z0KRNwTG{p#`YjQb z&$#MHrMJ4M#CgQCzoh9-VV5JzGGrM|M7Q&y7T@%_Y&Cn$P(Dt@%`63#@;TkixCiHvIO?)23I zWr;00B*aWXA%_Qt1dzx(5u-bh)5pdHWk$!Pj{}=&ip@21%Yg6040|k2Epv=Q$j0;u z4JNLOlx9m&*_drW3T4Na%BLRzN~np@>6$a2u!z@|8U9GE5id(L~G7`G{0_f4<_KOcXa80B|K8ZQvl5p=#g-RK+@1q;TPX${pR6F{>(O0_n8B!#Q1XLw2q zmEoo#x?wA-P`7aTm?eiu*GJpcc?Gg>Sz^JMQebk81NPiZy;lxy0?ig|h&q;JCLZy~ z4dV55DQ#ljZ)kGp!d7%TWU&NIhHD~$09U7v(;&hSyc=;x0_{a~RSNvY}glD>)!^_C97gU>gB7Ta7LA)KG=Z94m2HEKqWeSHF40f-$9;GcoM-fJLd6TRs6*otX{%MK2dNkpQqb*& zA$Y9n_ms)ea@6LLR(b>OKr{SwS7HT-ichb}fD=a}3_C7aD5RSZqG*o6{|5nYX_Wh(pCdo+Sa7rww1Njg~j;4sfaWM+Kqd!UFlUVPkZWY-sW1 zq}}lqA)#47{*(NWIU@L0Xu)2|txADDLT*r;A!YBd+2EOgAnV`2fP@GmqsDfjn()Zu z*55N4T8=|$X9j2E-iX2QBe^deWF1E)n`F(Q_Qg}{)w^e>v3UHfKnvM~V84fjXHVp0 zso%eq|16dC8feyHkk8sS4LO=3gyc+OAqTy?{oQa0%0#@)YL!=*u-0#IpZ#^B@$)sc zYKn9D6I8hv=jL;Kd(H?PMvR3xFJHk-%dv{7OC_rb_#*?Ilu(DKBC_C%Ft z%nY>q+uM@nvxT1|0?lO}N5KkM^TieN1rv$yPbFmv+D!5Z(f)FQZIs54U4j<{a+dJ$WyUeuhPLs|a@sIriWIAQP4nbhV4__jv84UpU4U zbbtRxS0V7X-D<}(uaK63W!JA@7cy3XkFxeu^}K&~Ll(mDsHC9c{qtp)cNFMF628Yr z#M6TdyY|U@(ZD6mO01j3PyZCj*6>_>oUAGNT`jqkT! z{-*QrSP~HC;mhc}c09pLL{m+MEtmrO9e7_m1gS)0I@->Nvs1;!2 z{i!hk9*S7E?I~*IDifY(zecb3o6N9?I!qhv4hQJ=CGm2+D`>ifeV;5RxFmSHBME-z zHBsTPjQWSPMzXG^9Z{>kc*x!RzQNr?i9-bA5|i&c-D!eWrnZy5YAJnAWH^rqg6V4U z=i3sxQqP0a(jlS{1`m2{qz>yh28gz;p!3=^HnoXT5X4hMUn;ZKUe%1jKoNc^+7YWR z-`FG(G?S$;a=m;hT2vM>Ge00XGELI(?RLz@q9Vrr#$%yEg!j@!T=z~mx5E`Xq}e{5 zCNIMDP$4D6P)XpXnE>lf^GokPKlf7P#b44I`h^n<*P108EoUlKN20HM8TRqxgEUH# zQh=+e+*agTd zP?%oDYdCQ@?il%&8bS!rCy68pH-daF-uo^59fzHkiEQ;%o+Kawb#q`8 zl6B)cTmNz&_-JQhFPw6`)3Xwhk60)u1wtYD@C(6`k-$_Gasn}8 zFq=y7vy-%CEKM~@tx0oW=Ehs+jC|`O9401@(d!R!ccyB zJz-;mwVDpipI;r<_#Bh0intl9;2+8C%s8^+Q6V(Zvtw>8Zte$6h$d4G77o_M-PE#& zBO5Y4r!%&4fnb7vqRa01J#uERD=DNBuTZUu;wqK)#dRgabI0SM$*2 zS_hqCvwgS~4^wy=rB|V7^nOtaky&fQYVD|Ap1)FgeUUJzr0YZrRSw(U59eEnuL0|V z8yY4*Le%THVH|k8-Q4Qi`DQ8KVQH{b ztbb>-GjejSTMRGg@!WD)u8`+;yJ9BSn?=VVf=@g~We3=H+qnL+kH!+ z+KbTs*k+P^rZm-L6 zqY}vQXW9dop=kQKKoQXtJh|JtBG6C(r#UXz#jeW5&!!!@e17BObvIfEXE7yZKa5XQe&*-VL8*lzG_?+Wf(d3+J+K*s@QdYGHp_4@i++neQ#L&M04>?dw>+s444N=JdYh)bwz|>YrE%mXY+Vv zfxT}c@k@3R%ohM>IRL{82I&*0Y{3?bH;ja;EH<`E|ScwBX5 z@gS34Ys0f8W;AO&OVWk%W}+s6>dEx5^zY23khDb~hF))6uI9sNkwxi1_vQn0+)Gmv z?H#SkfZOdM^ON7p!*Y4^jGfmEK{L8Xakd@n90pl|s&xeQAno4yiAPccDoO2YU|PF> znWHyWd%LgC0~Z{mh=MycLY`hySJz7md#3_%xyEohHc@4UUtqV zdIGOHvEkqO?R6&4fkVLiferhVr2cjuuYb_qxy#|_2p;?Er!&2Ijh?J)5}Ek=uNMB- zuU7az!n$>epHB4weLrF}+-@(KWo2XLouSn?wT)x_%D<^rmSV+H-{;c`%lha_RfwUY zqCUCL9qGP|WG`%XKKz76hoOUYWo6+B+V1=deDb>N;@6Q)B*r7fBdX1i|Dlce)?!UU z$n6{#*{_5?SIDo=>k_*(wNClNO(R#>DUgSWV#tev3)OBAV7XACVRKD+AYI}57v(q# zO*TmNG@l${rP+cPA`Em!@Hpwy)@c{|QWQjImzLRxm9PZMzExnAK>^lV&+94|b&S3b zjnEcqSL+9d{(- zlqURCE(i^T_qM4qYGjEy@?{4wgZybq?55|2CW3`rEw|tFwu77wzB55;W9B&K#7u?X zJ>1;HUr;aPH|On}Gq1*^EG=z#%*iiJ8%wEJagGm)JQd(s=y++#^o>pektmc1!Rwo7 zFAwL_k*im?EFfP%57d>0vGW!$@*!)$$K?ODb6!zR1%Cp*kzS-DMUbM1G>J&>AT=N* zQl%@A-a+XgC{jdFdJ~W$7?EBL5E76g(m|RO=|~3&NO9-?xO>jN?9)DYPjd1yH#zq= zCG(s4zA3F%(%}=!+T!%_@ut7b7}wC?-=5Y0Rz32N%^#G-S312V(M`s`QaJ^lky=Q) ziJXZ^(=-PW)U+1p{DaaI^S0*B@mk;fdAuI`vI|_&5gxwwX%{W3cRlGrSH;jP8vR`P zxEFQ=&n54*VcHkeY{aJZL)L{1KN$w|?9L#4eNj=1Wh27YOy_vz!=3JQ3Rm=)TgA=` zbrZW8_mfNH(&OvNy%KFa{6b_TB+rZ98kf_DW5e0UD?;xzEj7!NR6y7#kO`65le6{T zsM<*9t8*#$xc%;PCO;P(ch9;p=4KXGw~5FVXF5EhP`pAAfK<)CO!}GACkQ&rWSG)q zB~DGMAs5ee%15gq988#KhkV&j>gf2G5+p(WmtxdDw=;P0o|6C?l#aLuPF-q@9!u|9 z^|bsPSYVVsSsO`bhQ4H(BR|;eKtT3aRabkhFFHk=9~&4%Q`p%Z*NL~SY<1K%Z-yhH#zy`x2$^Gsj*gD zH2OdMnT&H`QE#0f?v(4b8FiG%kJudyM0w$LBU@Z8Cd~r!1&HF*c1s(MgeqPzrKcxw zVq+j%AVcdG5LYd;tt!qFX6KK3G)@;Z^=;3hX6NmP`CL&JvR^YcmzUoZOW$BJ>Dzmk zt4O3D@5nS14UJ#q9>ot6*@Q?io0eO(E%4KN5!&4PFV~k>);fh_LBi1@qhzEa$_!xn_PL zov%2^lq1cf-1L+=pmndm?rTIDR+d%+*RC-s1g0GFhHj^La?1H(Ekvepv#m9s#|l@p z6SbF+Am7oq;Br+rt8|u8WtUp+w~@~hs=Ot9D-wst<9l)~5#E%@VdO3Qaa)J>EHxWTe;j5T?MTxeNa*X*D*#}iNo?yq2fcy9#rBPX;{1HPB5Q1PiD$LCNRe9J z7xUyHSH$!EQgO+|a`6mK<$92JO-n@5YxJoodLp>@2_TW?q*q$dsfJ*d!{t(@B$z zMD%CNp_Uwq7X4ONRlu~HXlC1HJ=9>6JF~oZo@z88pmKN6DBr-SB+t*!r-)PTaUL0M zhLwJ>%vziS;NOI9@(7F}WKJJX)e96|cb@aB3D{pALl8)SlU(YBJvlpR{@%*vKGR}& zV4Zi{DbN7nH|$^*M6^26$hbtZU%YMI9CW|Tx}E>az_S%E1VZ2}aM?F&$$zxAYoxr` zpjrD4`q(7P>dH#Pn{Pa#(_lg&m%Pw!xa>-AV%{_q#{;X%_ z(TeoSa-6aaw9SEpjdgAxb8l8@{_hA56$FyITa{GuM_hi)-cwUfH z;J=foLUhxrCA{RuulPv|Ne}e^upB<#93;Bj_f{(Lp-OdCb*xnibG~-T1Zy?mz8o1Q zi4(3UR=pXPF1+>UaE%Hw;qSs|1w4IupnJXHamAhM9|^zf0?-$i`!c91lZo&Z1~(Q< zY+4mLnESN)b-#zggUxVTRzYuAgtKkRH$KHEw`&djDKlvZYxSkVJeWWntj^@f`OgiQ zKwn`Tw~-3-fBBwd#l~145X$1)2-i%J=3;4-5*k+y&{i0 z_9@~It}`+%S9s0MO%L%#h1!NhIT;x-$@*R)2S&uFRq-ayv~tUJar*&- zV5My`Ek2|IK;_5EO1cb~v-jP;Ku0~ceBnQJ?_!OkbE;r*@Yh^jD*<@=0jBFi>Me-oc;2@bEW{KFc9lNm(J@Q*|OGY-ZKCKcBLD z3dPrI9Vh4cqoX}c<{1o zux%a|&Ierr$>1jk3Wq|;j~?-)SDT(}ZslZUb-tDHDaJ)4KYwqi@3lQ+1$n-VkEuqQ z5|fb3cPGJ@`f}uk$y)v@+E)!-pSyYUChPIM*6Hu>b-gEqZRWAyj@_#y9m79O#+#ek1SBMw z?d?8az6Wh zIXfZHUpXe8rxz^;uIPMq|8=wO$=3ehjm2t*F(G;w3>F>xa;(g1K z;Jr(Uf_}Dlp9B%Me;hBoQ+NDPT>H%v;ByUuzXd;8eU2J2no>;v?7JC}8+uBilX_E6 zCTuJCicSxbhGq61hm7yF6r}7&m$a=vHm0UES8QTZUsYzm__Ozb*m{n?>2rWuwu}!c zAP>t8$RPuja4eNDL{DV#^?nDMS{QnH;?JRY;`$&%XjolGb*kBx{PS`X}^JiPgR&9jWTQwt5Py5C?C92F%nX0MCswdB_DLy%X;Z> z5w~C1o@En!jEa$mr^`Euowo$?iGtPx#2bB1CMNsQ4(7FU*H7Y@Qz05`0@PA(Nd-G4 zo%8P0$qQ0@FoV0qhusVAjbVi)BN}#7!l_}=P`}5 zonP&dK73OHh_r$F!D@$o9?6@Bl;Ov@chk*^(*lsP))}^}xcSjIR6|Y8!N?4vXnk*@ z+MzP|*qeBiM$j}-O_0Q8tTx(JCg)bB?wlGg^5B8+iz<5P<$20x1dvw5GMJ=1ezcca z6w%tEnT@DIPFmt7e3s?8#Qe36=2RjdlG3ts+_v8tSaq_wt5bGQj&)P6MwFRfL4h;t zeA?bm_2mRvoSbzbW`IZw6yaP_^kcj8v=8BZ!&e?9W%3}Mo<%X z{QdoR=?xVXXB?-ci4}qlumg5@?zFFKJt;zOT2I^`N0^{dPziv|XfMZqIRxnno&Fzh zq}Q1b2bq+qRAJG37K=RBsk)2z-s>?l(ZuRoSy^S}DuuQ5ean)HqtFmg2ZE}hK_YDm z!gxztEM<~^CQl`jmW-Me?$;hof6@8-ClO#Eclfxe%-!|!+MUF|pj~mDZBfvqJ6a*5 z;b0;oBm3Om(IHzpnz{ar?mE9*=K-E}_PtGuH%cPh4-6rlYd}qe_r8as3=tiMhK8fM z*9-U|9(j4y?fLnqe}4aJ1v`%)K7RZNyXin9+5v)Hyb|Vd+SzBAH>h0~#gxZslf$Jls zs!yH}Ft4v_UMevXbaHlf=7uV*%URBk77{Rk^WP$ZlP#OjKm)~hFHd6vs#l8w=v0@9 z9J8~sgtWD_DTuix+2e7Cn^RP#<<=q5E63ZyTDbTe`Y?nc%Ljzng-GiMSR@G9hhK9!RzWg?+!TjN- z+$2B-<$Jn%k0_OyAP$AcOxuScEP>66N9U0zO44#N^Q>k>~Zyq9`5z_*^m z_Sd_zl0KEZf?k$_1Y8TqFWDfm9$oVd1{j_!A795i!KWP9Gr&uCH=i6xx=&YB)^d}_ z+0OLcz+!mp$--@5bG;e2R|gBos;a67fEqd77~;SX{u=(|4t4m2O0&}xGhsbssS(pCI!EGp`qL;u@X^8KQu1Mk$bRdI>Wjq-AAXWr-6CyFs+?KL$! zlhe~#Ih4FOa)VD}Sc-hv!bu?ps24nbv_1lXE3>GF+hU=Fh=>SdXx(fv4x0V|vdm<# zZ`HrCu~7@R5VZ>ZrVS3#M{cv z)g1Ku3$W{3NCsw+qTrDs8$9M9CNYr?^Y{D&%oRF7rNib#zWQ)M>OmrW5DigLFA4T;3L+&tF)=Uh)hkKR7}>hmd)&ohB`Q| zFYI)eY;S-6Vrp!v`C>DaNJUvxG%fqJnHr*pKCw}g;*Pfd$x!a9?bHr=xg_$iHfGL2IlG01g+jXnS9qX5>n2R#(OIL!i!4XS<0*;$8rso$= z4Mfyhu0goiXlE*qby6+ZzUk^kWy<~U=~kx?bUd+pm}@WLVcK=vFvP?plQFA9fQFF3 zd(452`S$lb$EH9orD4yY`~rX9dUl4UVLR& zs61`rJ-wfI+Ij2@4* zK5#xhCHnt-GUfj~8uK))DJ>w_q4AjxIM~+aS`}! zBePE?fLXft) sp4ul>+X(J|*S`q-i@?7K{ENW92>gq{zX<$`z`qFmi@?7K{9hvQU)0C$%K!iX literal 0 HcmV?d00001 diff --git a/discord-icons/brands/twitch.png b/discord-icons/brands/twitch.png new file mode 100644 index 0000000000000000000000000000000000000000..71d7a6c2d35a3b50531e401b55fbbdba24516e0a GIT binary patch literal 10417 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 literal 0 HcmV?d00001 diff --git a/discord-icons/brands/warcraftlogs.png b/discord-icons/brands/warcraftlogs.png new file mode 100644 index 0000000000000000000000000000000000000000..ecefa2c5978988d0954d3d78deb0b41cbecb6d91 GIT binary patch literal 27061 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 literal 0 HcmV?d00001 diff --git a/discord-icons/brands/wowhead.png b/discord-icons/brands/wowhead.png new file mode 100644 index 0000000000000000000000000000000000000000..369d2ee05bbd8b1a589327ad39d7e998f5a62868 GIT binary patch literal 3473 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 literal 0 HcmV?d00001 diff --git a/discord-icons/classes/class_deathknight.jpg b/discord-icons/classes/class_deathknight.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8a33bbbfff27ee72153baaba0b371e3e166e43cb GIT binary patch literal 1117 zcmex=`Y zX(Zy$l75S=dZqi{>#i^F+AjYxZBp3GE0=Y@a|S-q^i-27e)(M4Lb~(g+2mVWzT`?? zj+kCulQwIj5i`r4=BZB;gglk^+dtZn6mw>#5qDRFPn%GjW_9MNsSP4EDa@1aO`f+P zh?_Mc;f!9G-R`SVPA9~Am6z)}z1bAy{dPmhk`+HWZFmaLS=z7l7hU$mY3rG*QtO;M zXDU`Jy9THppBr#8y5$=~%EbFBWoJvK?q60mTUzid@1dLdnMDHL96pm?27Q~#q9G?f z&r<%|()xC}MWwDgCWURi`Sv|qU-0&-D{dhUZ#dt7U~=!8p}l*#fJNT3fBx@6RhJ*q zKWQh@a`czmZJ*^biFpbZQ&M_V{=NSy^LL}G)z?i|bYs1DJ62w}zU%>qbn#ne=HoeB znmRn+BEE_y7Y7}mdSR}X9-qjsZA-R2WY^-#t?(0mUUu=QQl_la_4R^9Z_n*!(9DR) z$enhpc8N@%$buygSkoC@>JqDNn#G>FnUU%IGIzsm?;OR$ll$ITtloX14ho zoS;`8<9tm7mW=_yf{1j~KrHG-YX-#n=4_bJkRSdv$!-pN`kv zSzQahROH#UPrG^Q(h`$3iJI2uJiiMu{LcIG@^|f|uZ0tCg)P~!gzfIl4HII#w%406 zp0D32YIaFLwe3=hqPBAklj8x)lLwFa)oJc8xlw2@Juz>(mg+{1?vrI(4EBdEn)HmTBjTUXBtuul zui25SBVVt)zI~QvuB)!Q(|L_df!${E)6Df|8@M`CuTL*= z^zLV?NXdZk!l~(!e^xA-Tat6RT6wE% cSm4U`lBshT&nMmpbQL|j|4I<=!}|X>0nRn4RsaA1 literal 0 HcmV?d00001 diff --git a/discord-icons/classes/class_demonhunter.jpg b/discord-icons/classes/class_demonhunter.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f19600c8bd7443c9748d8408f1df0e108cf4c040 GIT binary patch literal 1153 zcmex=!w1td0N!6C*P- z6Dtc$2_q9T3#%Xln~EHnJuPPy8UFq-?Zs zN?CbQUit2ur8&pu(@z70DC*}ZZX z=Iwt`ciiiw%&Ey5e?B` zH_2rMk8*&c&Kk}q2DX3Ce_ic#^x;!e)&BPz!_G%6@^@*RDV4M&SwotkZc|lnVzH9- z*Hd4=-B`Ti2-ntlsd%`XYgZx?cL~C>z?QD48NWGip8Yl!l~dEFF)?&-7=H> z&)IItT2ij_w9``E$~0Ca=$Pio26^rR=eMcr^L`{lW6ABdczx^RCij+{%v6R{o>-9bVa)x4L6s}i?;~N z-x<9xG7B=;Gd#`hPhNTV_Nk_G>Jw~pgH$#ZofDn?zWyAW z-!7wz8*B|XEOnKQGEMnX6SDT`B&kk|Q>!%Xw*}Q#sB;-us(bzG3e0(Jc6#Z3af@ev z1GAR)&2YTp9>n@jx%H_4n_}nVZOeb1%Umb)_U}QN%z&w4d)O@!&a^JhpU3F)_(Ah? z$8FzI9+}49T+DSvQuXxit<4FymoIbMc41a`i+!l7PpcSPLS>u%OD=2vXIEGk-zfPl z^>F92+a{$!osz>^woEZKH6HW$hgJ9G(nte;@=&z z%ExBDEw|9CmVEJ9M{?AMWOc7A&hTyg8{);=E5nXKc4)Es=Q9Wtxy!$|{o=o8ntIQYdta`+u5j&iVq|JE z{%QZ&ZNr^F%k^P1XSrn@e8t@Nd|R(V@lEdgs`HnNN9|adUtO*7?RBfjq_e_3UruvP z?{l@25WN53!OO6hC2Mw6XNJ7`cdy_egUY<3!aM&;GA^f;34C%mdCYXe#49DM1?-F$ dyDh6$b9nbrGgIdAwul!O7l*O>ZL9x(69D!xf3^Ss literal 0 HcmV?d00001 diff --git a/discord-icons/classes/class_hunter.jpg b/discord-icons/classes/class_hunter.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9598a132fff4afb56c0d768c1d0d77aaf406602e GIT binary patch literal 1018 zcmex=c95ij00Sd4GZQl_ zJ1bP4k%^gwfmM)AkzL48SjjOkkwe5NsIYOOsIrsuMW7BTMh2j1$i}g-F)*<*G6Utb z1Q{5aSeaOvVTJ*@f(*9_(mN`fr?EY^v|oF=ZI+cwP{6NCvhHu&6DQOh z$@(g`+vllO$F}SckJph;6FV}TgbaJ9xEtCRMy<#_yxTSEjLEhof@h*7G|xMKSvqI( zUi*T&+eK5gUKeEUII;Cu%R)Ps#ybwyOErJaQ7I3ydjCMPBgk{2{-U!xfA*BVntUy0 ziFO);dG+S*a=8nu-Y$D_d6l!_lRXV((Yl(R_JywYiyjvBg#I#pSh#3cwL@F#rzJw{ z4fbAIdwxEC(eD~`S>vNp1;Yd3!YytOZKfD!@80slU(Y)C*yHKaf6G_Y#CepxS;=vb zi+5LuRrv+`Qyb0a$-Z2;RC3e0Gw)_yHBe+dI$72+=Z^BH&!W$NxA}!`D716oS~u&T z&Wx}RYAdy(PUjdcC=1B7eai29V4-TTa7;SCj-A5JU2~SaY??7|HRIlU_x?WAx-a^3 zvt+yIR;%BydAGHE4eC4~a(iW|=C(+wi?ga6^X|%~7SGRlaDH-+X3C$=9|1O-{EtRd z?<(n=l^1-H>2G=ZEQ50&l{Dn#5}04Iilanqm#g#wmpGTNDwRkyue(e*}L;M4Aizl&3*sHRLlWmGt4PL3x7*ONoa;_pnkWiQ%& z%-g!^u`FfuW-Ft7@;2`L(~3oAJWCUS@rii#<#7&!$cO$6$YU}RuMHI12tjTK~(h9CnY z6Dt!dE8H$dCP4;f7DYqWKq2A8#)XcB6E`0G@c$MA4>KdseawOk_6#RhSN@z7GgvBwM&f_TfF<$ z6@6<@Zsbe%SL~Oz&VR7#V99prsh{g!Cnf95coCpodcX18W83euPOM+4A)|S+ODd8n zWV1;RzukO;!wddI)^A?oH|0yjw%e1Ov;7zf@7~Gv(7ZEoa??8dw^euEOQkxrcwMMv@o3ZDqbIBG{b%^Sec8gjM#bmexEw!sy_WgYr*_HLckfv|+jwTv@@MJ# z+xI_-%6PRbWUJpwhQ^oI-dO+HdV}YNo#mCV-)-|l553XlUFXs+a>z&I!=-}826kr6 zaFNj1bqVVZR^}ZRdo8oin%8(37)5WZ08=H@1Z~M4LcBfwr;9X z-1)LQrn_q&soX2wn;q+!6S~*%?X+yc0B2vx*>ib$WJF3rkNK-FV86R@+1fg*i$?3h zuEnHs=KoY*l3;5T)h6)LUXfvCqVlade4fu{to&Wwf4L^fe%T~XqRqrV`QMk5+t->1zH3>LvGOn51glQviI;Q){J)*^ zRM%oNsN~vI!WA#cIC;kl|YNd=Zm~8p@NQJUp?Z#hy#>>~<-R|3*c}wjMchv316;sof z?>JS%ahv|r44PWi%Ioj!tT|?;x=mm8^FQ-n7kbqX@5-CMY})pSbulxd z%^opMzB6a~E5-C4b;0_r?_%$V^1eG>J5AzAWAchFtLv>osV5Rv34AHwtJ`IAIPHFQ z+Ci^twdX_Amh8N=voB)B<3tGy*@xkh>gxCRN|`d4wa+gp{;_7)`@mOW%MzDesx|Pt z%BZ+~Lf@U1f*P&$({5RDKQWudlAlUe+z{1rPS>htNnbd5Wp>%ODrKFJl1&!MLKah<=9Eb=?L2=* ze%oH>66vNVU9LV;FHM-gzxjx~#PJEXZ3`Q$8<<6TUv?gHN>KV;UmA74>YZ4`waAyx z3>P?j4sz9gP{NoVr)u9V`Z+ioEfkLH%$c_xz8qEx!Ne)u>uO$#}8bG6x3R)`;DfUPVSa zn|*itSKZh7bkJG&V4$Cat5?g@gSAtdIOKi4e!4R6)gRY8`RDF?UD?9%;>4$5m$0xP qgYcOu4UWodWTi|GO1#UO%*@P8tjtX8 z5NSpxW)=okK{g>pc0*w$BgaG$(ZIq+4l!jFW2YdHVT|a80X48PvH_(u1i^+eGqb{M zVgx#ZnMF~^Fp<^qpm5^{S2yMH8$FBv*UiwQqL|R5BF8TC{6=A1`MSG1%r7P0 zQa|viqJP)LO$*c`zx`Xq?w|Xs_U87MUh`bR*q%d+O#XyjiOSrXtEIpnwLRs}#2@Q^ zY|p%=w_>Z(-K3a9&W)`Gx60Lbp5hC=-DiAOJH!0)pM!$BCp^3!TV05hp2TGI9$s%YCC1cr<$X4nrfz2q z?VJR8>-G(gZJvK$GROjfYlTgoJB|L{eDm5fPX6+aP>;QW$$% zJUb_+$!hBrOvK76}rcqbBmhP><^b^@&a$PEJ#pE@4wb{b@3J1z{ZEWKLpLq zIW|MpXGy7e@Ubi(2_xl0h1Xm%g_VzcsoGs~V+wikgoknN4t1GlJIZxEORMB>H9uUD zSbgmh`_DPw3l9~At)Jv)yU|rNTjTO2zKPaL;)jEf`L_#ja^7l*f3B;$x)QU$k-{duyNu>pn3_Qw?RHf0A?lzR**?5f((o- zjLa;|a7jj>t%8ayhK{U4B1+1EjfwwnG4KGTnFN^y8SEJ@FTWGrxAu5g*jA0Hn(iu- z-%S1-6J*@inxl3n$5=dfOX&0P6Ruq@+nqnkMK9FbbX@rO@K@m-A3~L4U%umC$UBuq?6K*spgr@hEb^*4z9+1=Z?dkK-u{5BsF85`udt-=DY86g*pR)seB1fF z5}%b}FRa=FV%M!T2up68<(;F^vv~IWGyHp0s{TA%@q1@!+u1(d$9{48+je&bC2y2{ z88f?dpGBdHI;ZEu??wL^_sB-gsc za@Od6(mXx!PrC9ion}|r)=L}ae^ZX%^6!z$HfbA6t=WQwlXmY}=kfXD%SeS59;OKl z=lG2Mcy6d2?KL}_J+oxKZOi18q8pb4c?;)QgsW<=<5bwTW>Rp=#Jk?#nEkixG>;7} z%2I!MA$jGNbv}*?l~W2@7IN8yEN*^pA!+w9@@(i1E$80dW`_KZr~Q@*{n4?Nt(*Li zy*rzW*``Y2$@g%Mj(wer_nYm!^`Aknvvb=etqvBUN=vrZFuUWNpZI3p4$o;y+k5Rq zyJDV**6qBYdD9MET6ZvvkI#LBL7m4MyXI@#zL|4G-`jWJcal`d-DOdW7oR&dWr3yc zmM`-hrm(7S@UT}}uzhZH;cUgHt{N?u`!pSO`FAk?&{|VE?Pu}kySH{7oU+6-H}X`! z!p08^YMVb~yz?*np0GZ>pHpz>*>CwDk|kG#* zZs#+KD>0k+$KC51ch}EAPLCf4UU2o?omb>?UAENKOXWYqEsd2u)jO6{{x}e)rLkzL NkjA2})B68!0su_9oRk0n literal 0 HcmV?d00001 diff --git a/discord-icons/classes/class_rogue.jpg b/discord-icons/classes/class_rogue.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7e967fff1ddc516d9ea93d485d2427d74e594e7f GIT binary patch literal 1136 zcmex=dVx|Jf((qz z%#7@;aI1i71({h46n=A=Os-n;a7yuv*X-Xd_ze3VRK1+loELKG z&0?dRW3yYhWM^9}w#{3?G~*55>j2pkk1gLW-7lCLlvj1)+D4slv182gIZvutM0RT~ znf!FEmLykz=Rua{16QRUywUQgh^+8sbNiBA`gYTj6WcensUFgsAo6C~94_S*-?TjA zzm;s=`t8ha*#omq=IlA#`d;~T`~%y{BZGjdbRh%9laMk zWmLbf9JIZwdRml?-G2tlP9_uUokmAfXN8>5)jf2xaA$7wZy7~(yP3}e-oD|>%4)Z4 zF*q2b-KEdJO=qLyj%SKx98R$jsoW7B;R&_0EbB%Jgr=Fhhq?2D`?Qxm#pec)A zdA?s9Q)_8i7`pIis@k^2Ckv$Jcz#%;`qc8S*w>4p%8Mp-tc^kMuY{)53;$;*)vYzl$@pOABYWAF(XXSy(Q5~< z%92vcPoeYv9Z23cM>N#vQgoSFPNz{wA)D6ZDF(K31!d#F%#hZb4gdzt#-6i2jO(mCd(mX;P=3g51mzbdc1b|XLX z%fy?pN2-oZ7SwiLVs?%F*$TlwSDsb=IJWxAmJRiua*7GM@iSt=gW8YhnS5&gzRb0<;Rja31&}Ws+nd88`a}XUf;-Ez+?s za}9b9Xli82YT5XN_qsjPM0xiRjpK{hT+TK)Z|CH~yMl5^UpYwMQk9-im) y*0!)cQ+_Vp_$>MN#l>zp;k%Y@DDIi*xsAKmi(${nDSIj{txPg5UtJOZ|0Vz=<*ai6 literal 0 HcmV?d00001 diff --git a/discord-icons/classes/class_shaman.jpg b/discord-icons/classes/class_shaman.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2d386ffe01cea1f0f5d946cd48a0d6df20869a8d GIT binary patch literal 1261 zcmex=Rb!`(K-CgJKZCrD0Bp>REKDGC1Q|ePFf*}2 zjbQ+qBgmj=$Rgy(8kne5C@f+$abr;9!h;w8-(uilW&}D9C~wbjbZxbDmZPlB)cndj z2!f`&1p{jz5lx3)>zhd(?K; z!`wR}S9JqycNDUGwXvQ#bAL?)`{W}<>#rFYnK(Y5Q*-W7?){k?8XTCS~Tbj^eAV(c=J)v}czm#hyc ziz%D2KX!w!YT5mH!BV?5g#%Cb%utX2Quv|9;7v`#SNDSI&_3_#dk;6q+AXr07?8Ux ztF0^Ir$Ot+7Mp)JK0jex(Yf>4qB~ndMJ}9=b+wgpFKc?;|IYcirfBie^D!POD<#hr zuQK`l)_U(cBYiF=`-J=?wQu3eMXr5$@>(n^b?%ZPLv#Cnn=mugX@*B-r_{5%%`HE7 zWr6ph(6`&C>V|IU>QG#7cjrRtOrMk=1#6bD%L?{Ccbm9%P2v&OGyd$#2N(7!Y}+*N z%G;N$$9BD~%3A&O<+P*QUxq$hvT|+(6IP8_cI)F`+hX^y>?Pr?RW=q)68}7 z*c4Z*KdZUuv{qpBss}qyOk|K-tabWL^L2rr2lE@}iodE#US5zT+_a>FndwvRq>u%* zKerlP$`ZP%&83>eDaOz$WcK~>{H;C<7q3X)mG6D+o~YTZ+odkkUaV5lT7Eky*w#m-ue6Cq2i}|uKheXMQfr+YGB1mjvX@vyb5?Z^UFKbtM*uA&Q zRO+`%T`!*3^;|cm@SyS@BR7|g?J-7=E$rjZBBgg{IC4rCyY+_cc>Vt-045Rjpa1{> literal 0 HcmV?d00001 diff --git a/discord-icons/classes/class_warlock.jpg b/discord-icons/classes/class_warlock.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fb620988f67299d9ff4666e91e3e5d664010a500 GIT binary patch literal 1165 zcmex=_KcvI1pv1c9b70X@$S zlVk+i&#cHI1T-RX;|C?9i3gnmlL{LbUi^QHfd}XqpsXN+J%ih(lDTuUm&Hy_pPFBm zQ<6WC^()&w%@2>WZ7ldIEm`Eg^cTL^`*!!_iGdrJJ8h5(?zH$Jc`p0fSMHz)fs$YG z9j|VN1)Z8AbMtu0#FOWzT%PaJ`|03{(DIonzMr%r!uM_2G9f0DrSX-*>Xsez`0h71 zH=iw8Gh@l1>wZzPBJ9Hwm#hg!x%o{t(q( zyY*M@uf(_Pm%FuYMW3mzZaKTut3c*mF1N+4=7aWc);w;!cXINIk}D^Def!yidQFRR zR(|PNI&F!7gV)sE8WuL%GC$Aiy?$XEcDeQbfsAUN)e!-OGkLd6UnaIgLA3dpU66I9 z(wtv8*@?S!K0IkqetSRkTww{{hSIfXqwXH7&#_`R2~J!8YJO;H{QQ_htFxOq1tYgF z-C{DIfnolh=jSq3cxUo(o`;Nv!fI7z zmCtwnhJ5Rtn{zpUb=qyosn&`S6V^W1;newDeFG=^r0U6$J93_G(GuO{dMk_JdtcSU zX}?nx6?!JIGZcQFJS$>8Z;pGJ#W#cHcTFgoQX;aqylq>!olGx5MjqT~L-e;EO zxziqc2>YJZ-9F=>p7kW2-E$vL5Lzu!_33%aE8~7wCb8M`OB^R=-17;z7{Jo7PH0bR zberYlS(jhAyiL5^TU;mF%j|^}M&< zi(9OTp75YF;h4jh33L84u&$ZPzwSRnXk1oj_~Gol3r~)CZB;V6!97`Cug$pWo_`X@ ze};w&md`z}J$`yY?W2m2xsbw%uL^1s^-uV=Ot`+Xc%MP1aqy&(fL^qwaJ? z=-C;WT-&1}>#Pq&9K9me_`<$>waL_9kIN?9J@(-Jx+gbI1)n(S<@KK-aDNlu!w1j0 zw|rl4EMuY0?sq{>&1+k84}F~S_w$`+U0Usv=WNapa}4lPx%{KX?6#}^^2IKbYvwbB zn8_!&I5k9AvY%v0=(%*^^0(D(6Vq~5+`c!VJ;*cgufgJ`Ip1vfG8WA^eSM|PE)k1# g@#O5L9HTEkxNJx%C&@K~)&V>NytEI>H}0R|>UW+oO^ zW+rxsG$Ru;3#%Xl8@rIAp|Fx;U?PV|W8p$$r=+5d2QLD3NHQ`oF(aGBz`_dD!v>U6 z69gK@!pOu9w+kr2z#^z<$XY0*WE8mZ;0IyH|F;-;fclvPnFSf_8IFf;4HYd7x^m^L z%4M&oPbS{hIr3dSHsHYJQz9u(UcczO^NHcq&c7x%H=DiL9I`UwocPL@YZtf9-ROL_ zVB$i{;d@T2Svi(++jjr>v@W5vt(^qeQQ1>J|H|+G*HDcRCx8HuS`DW&x=Wi$W zi6k>G^L*JqsnqDf(w4WYIi_j+)cfud7t{aXfK|_L`DgYvi!Xb|2i!iJsgS$X-Qa`f z3{!8m^PTzy%YWCOymq!Tg<}u@&0h*GW@VExt_QUv;@`WLey`CEJe6o_erIt76Z?h{_p#H|1`A`FiDb%lE3= zF5ZRP&n2(vvx_LY!RKewQl{{`es6^C^;fosixx0Vn{_zm#M^+lI*0Q&X59F$l78Yw z;=JcEf3N;M?vc!?_&8^S%FpT5!S8l|nz+HlovnA{rtTFUDYYWc?It%azW?XAmAMibT z>8G37O?{W6zmITdO-#gZYNc^!l7`F$JbeeCTGe(Irop+|7JS-HUZ4AsWN={NrT zF1yNZkhc574h4PLvsxZc?`*ud-mBD>^DkR(s!wZVMJ7vWz=|2gS{978)^hu|%~}`g z8(A~WYQ@4SPL@}uNUD^b{CaV*ms4letJQCKl9m2AG|6(y7y-3-Raj>?^2aA@lbYMwmhQE_MFwmpDHgdF5gu0J9I{j yPJ$)73IpfkImwSEm;8KMQNwej!BzFpL>9|diAjE*_TSxlr5NU3e!!;v|0V!N%a+#w literal 0 HcmV?d00001 diff --git a/discord-icons/mushroom.png b/discord-icons/mushroom.png new file mode 100644 index 0000000000000000000000000000000000000000..cf543ba2c18aebf4bdb91948d9158ccd5ecc2c2f GIT binary patch literal 716 zcmV;-0yF)IP)v6&`43>P|q0mW6nWDg$P^M_wNq8&~^#`#l3Hgw6&d{ouu#uag}YtMCn6v^4Xr+(0!GAu-(C&@J15T0q7^{F0sn*t_&w-@ z2g&Fu^pF_iCk4>arES|ln~om5U5q=*p|;_ic=KkouoiSIjV8S~7f-ku<5j!?SbI?F6QtmVrM26IS-sVZIghCcAOQX2kQQ$;AO3FZTCs=tSryzXnL?xxrBz}r_ks(5dAJBI=gQ~DuPNw zY)qC*bvnFXeG3w%JV?IO8#w(^p9#m7j?TE5=f`)V7B4#^rzH&ikOyM=ddLIq0X{=S zr(7*Wxeo#nom9;O@<2^K-P|SS5_VtW?n{U+yG)(Ld@I346Iowen8*PBHHAdyh3Qlh yd9s~`csfPP=>a$u?|C5bm;@P_1sVSz zVVD4PA1lz22*AR~#LUXZ$iU3N%!m+W017fNvaks-Ffuc;GIMalq?j3*SXdbZ4ULQy z6NMdxl!8S}L`^>&Oj>lP*(GF3D4QTKsF>K;IhbJ@7=e}>esByd6k=9PoVakKQ&ZzX zqo7H`#v&IV7X81)zyq|FNsw8P!JZ-h3BPBf&$3IZhDSRT+_P5-#$A&A>c03)rTT+s z!TJuF$6j&@z3p0=k?3*N#%crxvy@q{0xltS}O9C>C{4(EXl4Oi)BvLCqx)y>rKyQ z@7x}HV#Vy-{)|qg<#S)1bH3%q9_g@N-B*S=XzJk%xz>jp*M?NOEn|!blC(TmEc0#Y zJJ;x|d7I)cIZEviXtq7NfJyga2|w%9H-~;3Joz|B*gm{1_M3d+wV4m%g725^xglVG z@ztT@FRPD9a!$VSW9`l9k8ER4{rJhVb9u$QEk{19C*MoX&U$&`>iyT-e!8A}=X5f6 d-^vyL8H`W=wR4^N^5f-|u3!F4c^&`%CIE;(>?HsI literal 0 HcmV?d00001 diff --git a/discord-icons/races/race_bloodelf_female.jpg b/discord-icons/races/race_bloodelf_female.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aeeb54362afc1b48372ad72cefa17e2c03fd34b3 GIT binary patch literal 695 zcmex=C5bm;@P_1sVSz zVd!RHU}gk55&>9P+1MF@f{e(*Of0O-jBElxZ!@#7vGT%HGXYIuVP!BBGD;FQ4i+&{ zOjI&u`{2~1>=GgxI#tY!-CPi8J{vO|J4^>KIG8>NDjEhhI$mT>+;~uFl5ye0piQ4x zME>7m-~l>?Nsw8P!JZ-U*S!U|E~jcv?(s3!)e(AoB_?yB+p^{J6Zb~=?Bib3#IPVy z@X(Tp1;1Ry#8wJT``mp_O!SoJ>OFI_se50f5uC!j}v&saXDSwiJCGX#udcP*yUUKff=x5<67fz?`56URnzl2A+V#$Zz zxaI2lR%a%=y$Cb)_f$|2nyHa>Ur;>6zkl`uwcJy`^@UpR&zz}u@m_SOzoBbUT7mkD`~5$w#N5~Kvbi5#y2k$h FO#m~^*_8kQ literal 0 HcmV?d00001 diff --git a/discord-icons/races/race_draenei.jpg b/discord-icons/races/race_draenei.jpg new file mode 100644 index 0000000000000000000000000000000000000000..33cd606cf5ede813ab33961d50e10d9def91a160 GIT binary patch literal 666 zcmex=C5bm;@P_1sVSz zVd!RHU}gk55&>9P+1VI@f+(WQEUb)70t}4Ij7(f?+%UyVjLa;846KGiMoGfPCZeWn z9~L?lDT^pN79I?0S~S^ZN~j=63o{ox+%QH4K_sp8&CgS$_k&*-_a^YNSu;xjVkO)gaSq$n+oIvVU4ADS5* zaJcol*t)rns(&RK*eBF`t>Qg-{>)ackeO$^Qs3L9>b>c?Hh1gA2Fr>yC8ol;%lSnv zocZXq<%?=)!7<0fmP>E1GAf}Kk_7kVu%2_$NYxaXA{gm#=w`*C5bm;@P_1sVSz zVQ6DuU}gk55&>A**qIqY03pP{z{14LD!{zii9v}^4$j|<-{84eu0_F<T^=c}Ub?J<0p^(CsjpXEQpviXz07DNZ8IA+gMG}-7CB5_GV z{LyKLy-$VRmh>K&u6E+|%9pPe-OB0eoTsnz`$%^|tbFJ6T(_Vk$ zTlB1xdrn-eoU%4wE`EO1?De}p#;0EFyejj+#AnaX=lQSSul$ks$NtLuvfbC>SKm=s T`DdR;s@?a8d0H>l|GxC5bm;@P_1sVSz zVQ6JwU}6S35&_uQnORsF85x)v5n>DstW3;oECLLS%#5t8EZi^|CPtuI20%WMpM$L730T@Ig?~kjXJHu~3MarE%gzqlE`ADzW~* z#lQo!jY*JMkinio>|f3ukHV+kJ-0XcxJ0)!7wk5QZsT3BEoBMstQ`*+X5DWnywl>f zP5hTtr^vnJhTjdU*QQ4--MTH?;>MO;D`)k*n_K&9ujJL*PM>3HC$}UtJ`W6FvskI! za#1V6xa_m{d!N&#Hi?VYUs_RKS1@CTMVU|N;adt;vpP2(E9#1>+cf=rd9e7SPye28 zx+QLA-y(h3NUfE7={|^776Bgal+H>moBVj+&)_@&-f{T81nrZ6&`Ol!W zfp2@3LWqHW316JBjO-%s^Q(4W?K>g%ENDfMme7kgeO5PZP1rkr37r%byCb8pXwkY= z+w7E7T;Fc3@x8S?kYRq{(hpN=PG$1m^6cb4vGa`HoTaMkwBi-t=0r8#-F!FgYv_m0 zi>}u;eCpc8eeTTlTmN!v?wh~*6J|d5m1C5bm;@P_1sVSz zVd!OGU}gk55&>A**jX6S1({h`*#sCEnHiZmnR#JqnHYh>41z|AhK@o?!p0_SO~E1` z0uzIhk~fQ*hE5e@7i3^$1p1np6Q+aFkU>z9iPb2YVc<4bVcu7} zBR_9-jazehQpdU;1_`(9OT0@L>dduFVURiaRGwo}=gv2E)n6p<%4)4;@>*P?+%LFb zx?k$KUu4kVxVz?N`OhyuIiCCC z-EpIq^=>swxbFC__ET!qSa+#OC`m?ZXYtK>uL3?imfia&!nQYOvqiUa(5}lX)k88n zI3DW-nKGdxThY6GN3w&i0y8oVNAFge=jQmlzJktgihLbMgF* zsCVqI;_NrxO*@?R)53DW^Ig|B+xQq-{G2@LnZY0X_?w%iZV@?ZSG_(pAmUMD|`?Ec}%`WF|pSf9n-n9QW0hdDfPyhe` literal 0 HcmV?d00001 diff --git a/discord-icons/races/race_gnome.jpg b/discord-icons/races/race_gnome.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c76e9a2ea60820996abff7498fbb1ea270a90a71 GIT binary patch literal 711 zcmex=C5bm;@P_1sVSz zVdw%no0$>lN;qI+VrFG$WMD!SWnpDtWM&co`kR@Rg_ReknwgPF2q-0JXv7vMY;5u& zF-g=^(NW2%DOe;VrDcklxFARe8!HPlOb5{94}#2!hK_-WjfDq|gjpskIZb+aNaX)5 z1|Fc5OoGgU4E7A-OG=K~O*mTFDr+I?V)nbYCA>NHzEF7v~>)pKIsmUBE;t^eBVx@CvsY41Y2WSP5)8)J{V zT#!Gz;*^f_mb+d%m#;jY8y4`$&>_<@Y1TIz4RfV;*O~a3bOP3%TFpOG=tc;yor&B&FKO&lUcZOiovd)DsBag&U?W_noIe7|79MXyU$e68EH5))r; zn4H_9H|M~C)Y9kiM?}y4zO-{=P5hpp>L33;liY1ldUJZ}&YINTljSAPKhNX5^zZ67 zqkX!^KV0}MAG>{HY17K>?r+;w_v)>wT2%AZ>FAM_ABwxDoP3@7>UOSXoZ!@5vV!Zn V?5Cgn@=e$7;z|CmecAtS0sso)=sExZ literal 0 HcmV?d00001 diff --git a/discord-icons/races/race_gnome_female.jpg b/discord-icons/races/race_gnome_female.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6a0a7878cd81ab23aa1a1b26f214af535ec59788 GIT binary patch literal 694 zcmex=C5bm;@P_1sVSz zVQ6PyWMl+75&_uQSs59aQ3aV;SQ(iG7#NuunK{_FVQQHenORsF1lbe~g^ZGfjZGW_ zm4Zb?gPe<1TvAL!&DhNafx*PW#0fMH3V;R+8YVI+3VjGHY&`hzqY;baLM372p#QfR zc$gW1u3{EsuxAi#W$fDh;T4}l)v{L{2l5ZEc2};OyQbH6k%kr5%>2E2N-sk&CB{1k> z+=LC!SQ3~L?^|vx;Y$|uF=sr={5kRWoq6xC6< z=2hlWJDd$WqXlb#$LC$ylrwGiB>S|R$Gz6xzq)@~4Zo`OD;v4c zJGW!Qj#qmft3H(6Z9h%i`pnihrQyw={yw|+?u7BLUxlyFT77?3?iFjQDZ5H@_5Ygy Dc@NfT literal 0 HcmV?d00001 diff --git a/discord-icons/races/race_goblin.jpg b/discord-icons/races/race_goblin.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9604c648e8cae9e08078a904da73b1e6ccc9ea30 GIT binary patch literal 3817 zcmbW32UJtp7C`TNFTD^_=nz70(pvzLKm|ic*vjE8t+K zjTLdQFd!;ePzPmDv0}l7%6}Q>tMk{I`Tx(!S|>ZF-Sf`9Z{<#3n;rr3zMejw0D@qk zhkn5HT}p%xpT8h5IKb1#-vf03K=Jk$OVVI@08%Ac(qJz)PDErB2j2%^Km<5o2|%nM zGktc5XDC3$$AizwM1y4fhoCiH4*^sIaM{#5ki+@I{=a_F1?kc(0H8oL!CENF6rfy; za!PJiy39U-GAk}w#xO?4QnW#om1UgpnP>bS^O<=v7N$ysXpF4qbYZGc#@#5d%E=a? zjQFEmk|P%7qI?Bq-IVN9G0JaIW~GW^GXcO*WcDnPAQ5E?lqu5CU_Qz-0U%HkzTvoU zI7_q;?GpfgT6&&ToRFBsF%%eaEFB!U9B)x>iYP0~G%!|>94i%a_-U!>v64IhK0mW8 z3ovA}<)A~hvvjbtGqo~9$NxqC*7+ss??JY=pCeud{k~_AV((Ym*W9nRv<3jUljv;L zeznC_1JJet0OcEBZMr`IKr05Iwf~#vQIwsR#H_4zM|1Ps+*~uUNMI%#=ok5~0be5j z8opW2Ot#*a*>T)O@v+${Ssd9=1!*a1*-}nsdaOXiG5ya&{ErjAY3rLlW(14kMN*Lj zT`CMcWnxJJy4@0?I7^%+;fN)FwZs1~?VBEC`1xF;z})c(uojpB`F<8ap7a6?lMImP zt*8h3vTy#xFd%#L!Zq)IKKCf2{@?YV6kLJ+gfqnn9GRIP9Lf=7OLJt5z7sNq1tdTN zET96|KnEBCQ(y(`ffL{X58w*|Kq!a=^ML>)f>a;{xu5_Pff7&#)`E?o2GoNcpb@ly zgP;u@1*gEz-~zY^2Ei~G0b}41m;kTA6a+zdhzca~q zpae()WkUtfa;OZdgleE|P$P5z>VQr`=b!=TI&=pbhh9MMVFaeYELa29hs|Lw>&z;7J4^WJD3sLQD}Z!bbv-C?p<{B85mP zQiU`iEl4NQgIq>NkjKb73=YG@a4@DACyX~{E=GXKz!YN2F*TSym{v?T<}&6EW&-mG zOU0^VO|XtwA8Z6R0h^00!B$~+VUJ+XU-<5ln`cxQY7J{F&aFTq#i_u^0BFX6}VZwX|ACc%o}Nr)my2+IgngeJmq z!X?6e!W2=Ss7G`p1`vhBJYofL2eFgbPaGpok?14?k~1lkltd~bZ6>vl&X8`BUXsaV zZL$M7h%6>AC2uD0C!ZzXA-|(AD8>{%C7O~=Swq=PIZ3%rc}b;G^{G5+6g7*whT2Fy zO}$NhE60>Glk<@i$}N$rm1~u|B=?j?r0LOIY4d6Mv?|&mT0iZvJW*a>o-ZFOUnpNI z-ywfhev;0lThasQsq}Js6a5_h0Rzv_XLvA#jAF)i#%abV6JhEw`Ah+GIdcc|40DWy zV;Qh~SV^oh){m?{)`S8>!A2oWVWC2;!ZC#rMMP0w(MK^wu|n~n;*jEdB@HE4C6Ur< zr52@2N^g|alzGY`Rky01QGKk&Qgc!h zsFkW6RJ)-Ls~f8at1nXDuHLIYslnFp(n!~+);O*4n61d>v6I*v*vHx9noP}Enqtij znkO_LauhhOoD|MxPB&*lOI^!bD_d)uR-e|Cwt@Cs?Pc2gv~THGkNn(KpZ!*I%jMrvJb|*}%sj-=NvxrXkhP#W2IL!SIR^ z&WLN2Y_!GbqA_f2Yn*6YYus-Fo7kC%O}3Z}%)riYm?4?bFypEz#nja_$F$k>j+vsF zzu7XgHnXSZy5>>l>&$!1KUvsXq*&~*7`9|s`dTit?6iDgWo#v|s};e+d0;GoAbyl&a9YOKg=3&(Q=7(X>hsA z)8PquyLk6qja-vl_qslHvv8BT9dUcZcjPbTpL9puz1&OP`#cyPb3JN2ZhLBbCU`b` zPI%dRE%G|)jrI2PUgv$)N5e{i2Gs`L3$_d{2<{1ChAaqa3V9vs7FrQHJlAk; z_S~*8T3B>gW7wN;_wdT_kqGmM#Ss@GRU^fb?NRusu&7;8lizuKxAD8NXxr$L=%INA z^A^rKH(zyr%KT#sXbWN&9E!olgvT_+e25K*ZHS$W^NFjAn-K5?n*@)9JmCi6xX4*l zDY_r;9A6p#Ai+6deZqL6OJY^xV=-S`BYvLbom8LnCOIH^ck*;fc*?$1LTXHEhlC+X zmUO4F(-x);q?@Fdq>p4cW^Bxukork?WkQ+rGTXCQ=w+%m+c0}Y_MMzrIkh=&bHj2E zEu=4$EbPrQ&Rd;#Ki@Nd=OWA^!J@7Lt%9P0JBwWxZ!3ff;|jZ$=qxE-GPcxf>7F7| zQF75Q%Pf{vE_<~+e0gWFM)A_((G^}RnoHzLq$O8ZI<2f$Y*{C@NI(`(|_^i|kZY+Z|6D_J|V&Sl-6N_u5}<>>m^>svQ)Hk597 zwQ<45b5%A~^_xhWvNw%v_TSuIty{ge`a?}(&0wut?Y=toy47`Wwg|Ue+REG7Qm;{8 zR{#D7@ekLwd2MTL&~K>Pj@zEI{oanS9X&g_I~#YY?kd~$akpgm$e!Rm-HrB*jZNxJ z70qyScJuh&=)D(zbpNrv#k6JHKE-`y`@#O~{SObs92h$2cd+Xa_fX4Wy~A}!m`6%m zq1L?CiMGVHk@m>;fezn}u1=@UBR`q_wEL*m(b{7Q$10AKju#)FK9PT7@?`qS$EOlb zjdm^Q8a^Fy`bu|Dci$PmGiQJH{P}c`YtMSN;e!JmUqhI%p*o_>!<9?_2Zphu?QNie=-!gyuFjjnzdavrf z=KaP8Ru7JjdyZdx_}#;?N9m8I9+y0!KdF0a`1J5I-m~6`h>5Z1(&y7J%3rFy-2KYt zRo7(TDMGK}*mPI&cBIU+sF)t%3jbwX>SA$k;79y196&EOpb+ zwZIJT@OVG*oRF%^D@^h;+P4f+a|%Zp4<_&3X zBS228gGOD(n|405Q@L!C*W+(~Rt z>Rgl3x{%7cHGZY37dNt5<$8KX!(Hjzb8M}M@l6GcRHpW-@_D!V=kO{M2jf)&W6qX$ z1JazCKRQrL?#?+BMQLTI6>RMu6Dx=JVwcD-_R2kB)707N+{p4RU)3@5T{Y=r#kQSJ zJ#pNZYI_bBwuYIlcPlww^J{&y_ru&{7jM6~W<1<>xn2^WnSa&hRm6UM$D7K%XLw0b zZjn45XjD-z#7_io3|f+x{f;nHP?eBbYZ1K@GUGvGBY0ZJP9y*Gk5{@|&z-*hFHL^D A-T(jq literal 0 HcmV?d00001 diff --git a/discord-icons/races/race_goblin_female.jpg b/discord-icons/races/race_goblin_female.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0e2049d2b06b79f85272b3aeb0b73f99428ad3ae GIT binary patch literal 675 zcmex=fBNH1V zGb>b@5hTMP$i^-ttZ3*cBBms&9GFxHR4T#9$bf1JD=W00Q}1$k zm#LbuK;RFv-;$DhnFP5fn4FJTd3cV!-!UZ}-D%rC`A?p;%`ES3Hfk#|?B%-(0yPEC!-jb9a0xSS5F?B;u|AE3j(w;}gm<%?zh=L?Ll7kpWv ze&fbn7vWhx26K7Nd=pF3JH7VOX=}rUHY{_0=TC4r`PV~W154Eh|6jE)S9QPRSoZg| z>84Ho>QA-1jTp|NpHPlm@n|7S@0)qNtt)#&ktUrXmq@6xF7@7*-v*u?v5 zR!oR=Wr~=xlSR8C5bm;@P_1sVSz zVW?wZU}6S35&>A)nONBvK>#7fz`)GJ!YIJN$jr#b!om)dVPa%vVPz0BOcXK-GB#mT zbQBJ5Ja|z_Bt+Cy5U7@clLcWkBZDB*2Sr22z(ylxmc+t|8y6nD`2Q9I4>KdsG0cJt z_6$dY(p(oG&??n;zI^3^Xsv0*lasqI%Wr#n#ct;!hMzC}xu@nIJl>^3yghGr$R2cF8{DDXGt*sRuBDMfZ@l{rbE)7ECL_lH?>}pz6DD0v zZBJE8)v;gmoZHs?>8HbM{?6TVX2Yr5GPO#nT-m*DRnjY7_vnNld^+h=+~YjH<&IbO zH?-6gZS)Z054o7W)}VU(?yRf3sM{e%o)}+td5+9OhZ`pJA2g`@H`Q3(oyZsh#mor>-(S`Of91 kCZ-B$pO?NpdT#R6rsU~jVHxRZ8LGM07TQf~z54$q02F_~NdN!< literal 0 HcmV?d00001 diff --git a/discord-icons/races/race_human_female.jpg b/discord-icons/races/race_human_female.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f47247f833b0a2be4f35954a8cc301b5370b216b GIT binary patch literal 663 zcmex=C5bm;@P_1sVSz zVQ6MxU}gk55&>A)*jX7t03pP{z{1MRCIIv_3o|npJ4}L!k=am)g_S{&O;K3HF;U6L zsmM6k#55?W_;N^zm>^I&Gb;zebVdfj4@}I8hK_+kiG_^|4_-8KnyADg{QnjM4^R=4 zAhRHYJwyD3-h9T@0+-qTGnBoUsmbhCX>7c9%jYEu{TA+eSt}=ro1IJl5_mnp&-2pX zoZ4x6O%sKJjkYdO%Z*Ln!!||w=zYK5ZJ+a3NmUy~3r?w#h`AH8+N&_kZ;nW6M(W%$ z$I#GBPFMfcO;R^{Lf*eq(c=uNT=SoSJ8pN!hwJNq%=hNJXjZqj-uA_Ly|@d)ZZr0L zXyZ`OI^1#j$s%J*zu%lXk43|tMz%~Wmh3c;)q8NyviUk|bl{|1r$@RyT}jt}-FTgO zdu`gIgGRT#{Y;end41k3bKWR>*YeU!P3cUHWuDum{&}T^7nC2}&r$kp!Ul;MJy&l3 ztkSo!snef++veW)lQPy}_u~qWa-IvWG`e(A?nV8oz!o71))@2EMin0%v-AVK`8Mx; Vccfrr(d;hyx5;|1>rVf_2>=UB#Tftq literal 0 HcmV?d00001 diff --git a/discord-icons/races/race_nightelf.jpg b/discord-icons/races/race_nightelf.jpg new file mode 100644 index 0000000000000000000000000000000000000000..85bd6820af52256caedb786342909912ff25ccda GIT binary patch literal 672 zcmex=C5bm;@P_1sVSz zVQ6PyWMl+75&_s)Sr{3ZQ3aV`H)z+@!-XWLP}1Tg#X`S z;9&;IG7B=;GYC#}Z}}kZ&v)sRM>WZ*>{bo4m}Y^(a^{< zi8~%WmlJL{W%|0k&Uo_s{3C`9t~a0ahi+bJr6(5}=;nI*b;nJwr?Se)?_|^}%T7M$ zye{z4B_w#++9e^bfnvE$AG~KPH_ThjyEsFpU`pyj4zuTKe`i|#ZTs+};$zvv&HK+z zy}v9&;&Q%eVf&nkbJF-vxzvUId9kx3Mq~G?ybHP=3JVsgUa#B|sja}B%M@@w;%wm= z%R>))%fhPq?d}~q^|;H+QsBl7aivYS6Mi%W`0i>8l3DXwX?;r2L&sfbqYH#irkj_p zV`29A@%l!`yM!O!M|WR+v3X*u-HEvG;jgwmoqy|nLG<-^-*@LKUFTaWJ?GH{ZCU?g g$#HBuDz=JWO}aH{UP@s9?9Y4lXC5bm;@P_1sVSz zVd!LF1OlKd;ed^ug_V(k8C8&pg_W66fPs;j0VvH4Q_IB2%)%gOC?w44m}nGaY{C|( zlqB*&v2mi)qu^vwF?K;T?tq8@YMC;{HD;q?CUpcUJ$Y|d&1}S zSU0xd;(VPqQ-uzPbxI#urW^L_X?D$!(+6N!6QWu6tQ%PW`cWKmX%5m%nQC zYXoY4iv9BZ{>^9pGar5s?|pFp!(|)$r@L%|E7k`ud%C5bm;@P_1sVSz zVd!UI1OlKd;ed&ig^iJciHR950%S0=0Da8LCcwbR%*f2a$_tZYVq|6!WH4k+6jCyB zGB#mT3`!Ca{ooi_)FiANoIKgom0b{M0nqClaN`&m1Qi1lnG79;jF>+Zesp4KoVf9z zQc_XVBVptJw-|VsftCw03o_UqZk3iR+INvKOD;^RY>6UY}K~!k!;-<=o-gkKTV( zDU5xdUwrjzwfU26hrdX~oLx2}-Tz(t^L<|P)hyY08?Kkv3s$Ofx0~t7@NIf!E6V7n zbLNU+#Fxb#4|GF9114%Fd@Y%^N;2`)+(+fAw+c38iyJ>mIB)1N)92H4+5Uo)!t2+# zI{w(md40>2hDoznR{Gn1OI~)F*>{3b&E01!!dn+<*?0Q?>|Q&6bN!;%yUiopTK%2$ ze(tmG%5U7C9sK&MQB+py(^I*(wM0G7{nC5bm;@P_1sVSz zVd!9BU}6S35&@W4m|58vK>#7fz`)GP!X&`J0F+~4<%LNwGBL9V3b8U68VMUK2AZ%r zCOM0Uen>1ls1#JxG%2_^gk6wgpBIM^|kTueliGxNBXsiI38S4mF4Q21!h=W=D=&`bxA+ zG+{{py**EeVRb4$<7|_rd;HzLsWBT9W>3%K>Mv1Bn`xGm7{(g%{IrIK0#nWg24>DC z<;&Zy<;Z?vwtU%SwbEp|sC@B~y2EodO)ft&Pk#94`VF(Y5B;a-S+0v)zk+{;u7A$S z+o>|!eNCRRh-$G1Eay4s5h7zWhfR>VNND=S}oo%Ggz z%2f3>{qNN^s}H;1`*N%QdU$z8>x-Y+y|Q&8x8eojuYSGdzWIUTlUr-c7S)I4X{@$g nw)E|P207t`SMN6esxz8bI7@qiRgK8{>+PqXZM(N(`v02%FG9*b literal 0 HcmV?d00001 diff --git a/discord-icons/races/race_pandaren.jpg b/discord-icons/races/race_pandaren.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b6ebb1845b20c71fd92545e0f8c9cabc7df09919 GIT binary patch literal 8256 zcmeHMc~BEq7=IxNNjQ`s9yloJBI3~`yUP)>5-0|uSfj{Ms90@CR*0BvOcoOyk4o!N zr&E$>W?4g4l(k~DzB;efZ{2e|6}_9i-vGXc7)oH#5-fs1aROC>7mdL) zi~B&Fkgv}xfJYR}K}9lijNwh?(zJz;%gr{K&Ol|8GCgIIJ9HK~CPU>QCeC5e>GMch zl1=6q%_`*KS4R+u(V#*yBDJX2q9${V+2QcARH!(iKKNB zhiSIiMmSW6J30Y%W>}6$+$MCM3W;Z?m1Js@C2Gn_N+M;bRF6iXk|<1ug-0k9idQ8N z5GqG;IfhFy1rZKGqLL0l;B=xGt6?UQlA!6B4fa$>2QItaF0+TrC~J-!Q!15A6dadA z3#qNZOzRv{vn|9OqdiChY13Pc7TQReB}`CVHkD7S5SVT|4wI!T@(USz&QPoUdsCB% zVZj~NMyHV7DZenVEv>*p%2P-im2cIP&^&~3wh(G7siP@t8b!_Sq%t{|qA6Q0Ws#^; zBPAI|vw^bP+}2txkz}^fICxtUuHBK2n9AaIueb*HA=M_!xB-YCPJyf6w2^u zRD)|2>Q3JTN}q2c&2*=)q1!jSM_*=rM4}it7o0tTv>NA<291?6N!*|bW6$}ZJ;v06hoz0bXwfSt)W`ios9u^ntx&hR{ zgTrC24&m~-jCk^RT)x0lAYhtM$Xw+|G7s83&CpFWJv1Yz76FL?O~ z1wzK6cjBrBVj=Jc{#*_MJj5KXnB%Ge!SMYhAHL;eUUYT{$Ain`d%~2wyrDt4A55Ri z^?=FpdGKEZX94^j@Wg!oSFm``ep7S;WKICScy*~TWbB@!{Zs0k!@{$zg(9y30|x~T z4jmpgV&tfZ$S6g$l29ikYQ~LEnvj~7{zgXTn^W}$a%N7hah8qFpKEs%%zO8}B}BKww7(%zGLU!ef!J5JaDk$(6Qq+Cr+L^U3=!j#cwZNzH;^2 z_4+#v-`~C0*wozesP(6xAOG^C?bqKJTpYk{ht-AbFSx`Imj_$}o`Au{@vy_j74!J7 zV4nW*Qv|v>{SbVyFktNJ(mh8-A>k>`{@K<#uK~j%>O&tf(A>!W8L+~Cg{%u$H?Hfz zhs%MB#}$J(@U+DR3bUT#Z8J>HkUKdw!9(WbkEj#1m7{qI|IEzhb*arn`aV%zV`a&p zt64io72~xP$td|+?cs%cEB`2s@%}wyVf7-v`F))(aQn!TsvyV8>JgtHmqMMpmP)5K zyuQD9V8M{L)@w%{yngpqI=^&o;F!^ZXQE&i;B%Y@?tkGdiSucx8u@7HmiqJy4U5{; z&uUg~^G)1+CFOMSH-U{de7DAKX#F_D=S-kV7JMVGeq8m}%cjQ`2QQl*FG1s0n&WW*j!R)OY3!;NQWT|k__-2X>as93gU;?CA$(g){^$qL)_FnGrg ziLsO8YNpq%&G((uc&sX{EvsPbcazI*mTf7|DPMIQSz2;4({tL;v{eh@k*ck2sbyJ? zQ>T(!1|O~*ysNa&ReeR}2a_X=d-_yAC>j_ReSXB|jYrNBo2E4#O8m6$0VqEJ#%^jo Rx9E^+`{osQqvBlG{sc0^v}XVS literal 0 HcmV?d00001 diff --git a/discord-icons/races/race_pandaren_female.jpg b/discord-icons/races/race_pandaren_female.jpg new file mode 100644 index 0000000000000000000000000000000000000000..354172922fec5a37641c61ff54be8eee0f5bf1b9 GIT binary patch literal 585 zcmex=#!&$Mb?owqTH;SHY{&MnyK`P71g{ng3(>+#bzYO*Lem(Zexu400aw{@eT3n+`Su$ zOoBSJe3{mrJa+lX?zq!ldv@RZ9`|`)z`^{PExV`r*UX-JEBDi^i3wZptaNywZGj| zl)YxQP5riQyA2<=oqwI`8^ZoaR#mezKsPck?ad|$HG37QocKI}52dUE?Qyr_ORl>8 r*=m+@CR(Z}W&0DU#kC5bm;@P_1sVSz zVdw+8j}_=h1Yl!iW?^M#WMp7wLFSnx%^K(38-CQAd-G-6o$5bhwRi8n zC$+o0qphTlE;?Ga!0>6-!4*p~{AT?=apr7JO!k{Or`)F2bFZ)9zQ+FYj2z=c zaW?g%d#p_!Z1!9Be*2U2m!57B+rLUMvclL}xBJJp_2#dC70?baKtcM|<2V-;pI_0IMGHvtpu(J=r3 literal 0 HcmV?d00001 diff --git a/discord-icons/races/race_scourge_female.jpg b/discord-icons/races/race_scourge_female.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b7eba5a52cc0aa407890455a82cf6d458427b00a GIT binary patch literal 668 zcmex=C5bm;@P_1sVSz zVd!OGWCXeq39zv;GB5%$5@2RvVqs-t6ae~~nVFr9A11{FG=znf!N^!KQAk9Tjs1h6 zQ?f}&VBtZfNy5s(&4*n|Ohe5C!MeCvVVZ#9#PmVXu&~i6@ZiOuCT3yhU=~)#i9$)n z|8FtyFau=;nFSf_8QKpsEEaWI=st7dscTv9PVNaQD0Ms%p1O2v!_?BrCv^9$^73<4 zDik`+!Cm%q!NyI(fh#|K_OWBp=)ID{BKuXVMRSU1tSq|=7mpRo>4ufh*0@_u>^GgV z*funLVgj#jnYjC|?VESx-#zs0>WfEp`}x^dKRcTloaS+1vrN9?nyT>jjV=l0H5ICF>9SMY9G?>qL7(LtZS&3pg& zY|4r{={tMw$(`H8uUO>#F8au`eba5W6C5bm;@P_1sVSz zVVDMVA1fo!m2kiU^cyo9P>hKgMVyhDfr*7xfPs;j5hyJRlVf6JW?^M86cSWSR5E5W z3KBLk{ookbxbUD;Qqd&k;O5UFE+L|>VrJrkK%GpCoSZO?!0-}e`d}#J7??QG$f@a& zuwr53!i@(nPGT1Me~W#!|I~P`Poxmh9128JeI3N{!Vs!VCv#JDUMZU zmxZDWw_Tm+>*^$Ua#iGIbGr(UqMYqVCPWyWxuPDTBwZT1^!VcDC3kLFYb;i{^P~7w z-l-$Y+SVmM**H&7XV#*QnbU=3Vq0&0eKyaf$3t;dQ~WFIhhG++EBst?^VfX!ow@ov zul4<^N;P#>9duUDEERt)ptPOMBrIjio|*iM@}k*#j`ZmEM{ZIL4mtQxbYh2x$)cNg zJ06}YvG3Y(Tx}?DCn8x$i=c|Cyd^ jw%fk^-saY(l{@$L*KSh(ocHRRn7zi|ZQ8B%|8D{SfOpcm literal 0 HcmV?d00001 diff --git a/discord-icons/races/race_tauren_female.jpg b/discord-icons/races/race_tauren_female.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d89e50f8e5c0fb69612445dfcc3a0f0a85c2a32b GIT binary patch literal 722 zcmex=C5bm;@P_1sVSz zVVJ{Vx9CTV0;xnP=v-3n*w}k5xc@meb zc|0oo2fZbZd8PIe+usY_`k>L9XK~n`1Jro$(W!WaY_slwo-at3=y% z)uS0FzE7DQxMJhcr@9~Ww+pyg%=_pwW9yHTZB^Vgo8K=#s#`ea-O4-b)aQP-zV_z* z^tK!S-URHOo_YA~+Lv#B-B8}$5qsqIzuBugrCQAv32s|x({Xk06K00~mj2db)q8*6 zt=b#aweIzY$eC>h53^=YQP4M2vwF7YPp_HRWJA+0lbSP5n_cNxnlPJLAa`$6OLd@N zXqfc3w|5h20?#?jJGgG)-ryz;ma_@^CU4eUH}I@+*xmJ6Fe#?Lb+>$e*XhKguDeP- zSF82d{HiQ?z3vFxyuTX^o^^}K9DDrLR`0a7-ODLmGrz76-sE>_Mt1zo&`p&m*Uag; mUNmh!`^U!b&iCG>IxBwq6H>b^-aqT+S6l6cmu~IC5bm;@P_1sVSz zVQ6Jw1OlKd;eeHenGGa{BFMtb$|S(R$jrpb#KI1fVPa%v5n^Q!G&C|+WJ?T65^-F3 zaFTM0D7zpqc$nB(I9XwaG6F4R{-9{+C}hM^xbfh}z{ZIeA1XNoi3l4zvx@$|#lXW1 zRwBq?&+x4N6qC2E&wROaNAKM@({|-XNwl%1$fSlt-pv{{eJ&$tY1Vh^ z>Cv&~cHLt?PzK1LxE%$rbB7dli=*ILI7YowdE{ zz?@6>EnCw#_#VA0U)tc-bI37qyI9OAS#>U-OS#HZ+C?_`tPowG>6N87x4?M0n(DbD zWlqd{wZfKeI-$$D?6dcT_)F!_=O2$Z+wu5i%l#?8^24IO-`;6vefZ?U!XH2P7`&W0 zGk1FKlED4)iw@7%x6>BecH-utXS?3|>BnCdnm&E2aO8LX&}l{PfA>T*dHuf$0G>qM AegFUf literal 0 HcmV?d00001 diff --git a/discord-icons/races/race_troll_female.jpg b/discord-icons/races/race_troll_female.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2a70366475717e0575d49829845f67df12b35f80 GIT binary patch literal 705 zcmex=C5bm;@P_1sVSz zVd!CC1OlKd;eeHefek3a3>N?~SQwaD1sE8a8Ch64IbkwPjLa;o41z*NiiU|wY>rMz zlZ;JF#n=NEZVVC*771+?1ey)*qg<_Plx+{}1 zxG2>yS>&0*{VLV=sJ>k(0`o6?P3uiRRrXBW@aa2)zd7rEmTfbw`St1Tn{PMv&HVIi z?z<(Q?RZyfPxTEuE0M)LDXQm$$pyneHJ2z8vD=Df?{ZETIz3@Lyu4a$_qI|Yj+uuN zxeqUJdtq>D-VD}{GNE%EkE$NwX5%?Eala3{gL+8Hq6ZQ$R{2fj&ft2uUWxbmDutJq z6T??zp72>5azSE_k;DuQ)hm(P6lyMe|5lv+p?>m}x3+hsLtmf$)V<^3W|RK>`9*BA zA8a;ymi}nhwwon3#((#&J?b@oMeb9vy&83l=gwFbJ>$7+pV}UObm!c&k(Zrcwf_Ax S(KhaH@;~nIU(!YYZvp_7Zsn8! literal 0 HcmV?d00001 diff --git a/discord-icons/races/race_worgen.jpg b/discord-icons/races/race_worgen.jpg new file mode 100644 index 0000000000000000000000000000000000000000..41b85d13b8cd06bc0a3c5b68b8fe0f7186f7daa8 GIT binary patch literal 3761 zcmbW42UHX37J&bmNiU=lI)vUqP`XG7y+{#hq7ah+p#%s`iUmbfP*GGwP*Fq_P_V3^ zSSgByMNqNp0~G<=;=0(CH(B>6`_9>Y@9oVwf4q2vVgP06>9gz;vM~U4U{S z%1PN7sWSaI%It-SGKMiSmZAxwtSIBSZ*20r&o_3Ku`pR8M15pArwWsWGVVfobylVb zWyBBVqAal}8|51)>m+3+i&1`$GCNtsPX_=)k?Au;f_Rjtp-hp61oKdy2>^i-H-#5Y z;SA9tG*19{DXBS9aa?=`*Fa#%wXn0Z<$8&-lSCOArh$AxB3~-x@=}sh`H~y}zFo5{ z3NU50<)THlwy?9dHnlWE%l}>e*7)7)??KkvZys-ge(xE?>G`4i5&J`zQUieP1X`O7 zKXePX0noY<0L8mMbUM2LpcMkpa&^k}aAflmpOKMjZ*HEQooyx-3Cv^#{VxC2;k)Nw z!<6&PWaoXa9oJ11%g;>8;L3_BNJ&b`lycKk`2rEw^goCA9|ulJYf2s_!J=4^R3t%< z3Pq<(EQv$gEfI<{#3>T4Sn^jL{)b^xa**M-xkiCi`xUUG%>ex>8z3)x0ER^dNYqZ$ z0)6kBA2Afj?z}LKk#BR4GHU;Q{nG-MqCequaU55s<^_jv1)0(;8Kd`vY{3E&paC{e z0_s2;7ywgX32cA^a0c$c2Lyl+5CIkd0f-05Knk)!J}3Z1pag6HTR> z`EVSZ2Is$OjA#!@_VerWgl|7iKO-fJwtF!K}qpV)kQNFkP7Im?6wK<|~$p zRmB=(?Xlk2aBLhl8(V}e$JSwwVb5a+u*2B5I2?|H)5qE1yl@e?1Y90&Ep7*{8FvoX zk9&-pz~k{scw@XHJ^;_hXW)zQ+wceQXYtqY!}#|EGC_l2N$?;<5+sD>gmOXy;SAv# zVTACBNGIwN?TGqMxAO zqE9eb3=2j8Bbl+5(ZIOG7-iy_dQ5kwkXgvw!|Y@}W+5zX7LO%htzgx%&a;NuIJQ39 zo1MTeVIO4ovd86_@-yT^B(sB_ev)f3b=tDjLH(_m@L(hzHG);O#2 zj4RJ|;U;k_xLw?FO;t@V%}mYRn!TEzwDh&+YAx4l)_R~#(zex()!wY#p*^mnq2sTU zuhXb=SC^=3s~fMoRkvIBou0m4nBFSAR=rVuMSXAmT>VD<`vz14CxbMD8iN~#I73^* zM8h41eMYd6l~KG=mC;pW*x1@wY`nv`-vn!7XCg7FF}Y<*F?BJ`GHo;+GUJ%}nJqVK zHG5^QV;*U~(Y)LI>olurNz-bl-Lqg?_*g8rXtVg$(#TR^S!H=+I(53o^rh2}Pk%kb zc!p@k&Kb9@SXTa4tE@V#zF6B>ORbx%$82a29t~%&c9r2AwpW_)axWkDRrg zh0b-(BQAz62`&d*Ub#+lmAW2teaExsE#{qbL)<*wirsqMneKDlE8QP@XnDkWGdHCY+D-p^O;)vss_{h-6y2y!n?(??H8;-JyDvG)}Uw{6h z`Ii}Z^0+@`p(c&GUC_!nZHxKjK&!7HIU;ay@t;=aVmq_CvsWI}RG@(Br3k|^m) zQBPTv(w}OaT9i7NW}mhtZCvUrtxJc}=cgafV55JgdNK_%S7r`n&C06EdY>JdeRL6H zkz`R%j#18}yNCk-n zKQEuQylnYzE5cT^6{;03D}21tb7fZs)+&cp)vGb9#jAVQOkcBY&DUaK@#T_f zCFLcb*9z8NUT3kcV%_BW*!8`o)}=c);5JA$+}!B2aeo=3EVu0OCjU(>o4K2dH~+RJ zddsEq8RgYmNn10w4p#V89N(t1ZNs+DmGPAWRjyUd+f}!(+5T>aaL2Ws&O4i`)v8OX zKkgFmy1m_F6kzJqQDk2je%?QZ5YmmC6zG7mjF9CP^Q5#J*nM{SQb{iOTT_G7GL#Vt@v zPRn>}eCy!xh~xbyd`@(XQAX6PIl-w_dTn($ZtqbL?lUpO5ug z_qJTMxq7_MuCJ|sX8)OMPS@J6yIsFH{eG3?{Wr|i%8&lO(`zqEbz{d#{gd2({{9^e5ig27-A zEV^K^SR9^0K%Y@~8ktO_FlbCBgT`R6II0RPwz52fp{S{-tfr=+p}|tn($P}aQB~Ja zmu&)}p?Dl#jzEx8XEWI9|F=w@0}KLS0ww}!0hj?H3}~_oD4_2;vbUWng2xh2gB~5g zFoc0HF!F~Df)NZBFqoP+JWI<$+l3Ismu&z6ucp+^Cpn^GH)-kf-ZPPSV6tqGCV6r`u?R!d*9Us2UUhFawsM35w8{`^iNM+ zx1DR!c??+%o%IYoD|gzXyU4ftD6w<+kSmg#cSC=xk|phec23Nk7pDr!-1X1!i@LmK z3?xMM&9!^7>PB~DWv%7vrk!bxlC5tSbdM(YT@OETp*(6}EbXvARpF?1=sG*2T2Uz- z(piRkz^Yrbe(zU#hg+}D2F5nMq?F_q`iw5xP+k3q@MURrWW~ql+U?K$Bl{fOvHRN( wE31_+tlDgb_wOq6m;|2B{jID{OpN-G0z1SVenDk|`Imyei0dkM(I)Tw8**Z+t^fc4 literal 0 HcmV?d00001 diff --git a/discord-icons/races/race_worgen_female.jpg b/discord-icons/races/race_worgen_female.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e74e25313d10a5c8fcd42505a4dc70f61ecd6dac GIT binary patch literal 612 zcmex=AafX* z1Ra@KghUh#jTV0Re~WVU?R-{fcR}k74y8UG=qnyW)Dt05w zys5(XPCw6Bxo7gyTMzOX)b9%S{*u|I@SkD-yp78;v?cXcohW9UpEm#a-l#R7yuPT< z+oE-GlC4w2CjI+*Hq(!iW)vh_IRhVRxXUBicM)L9g$4}Ot-097~T=D*P2e(so$6xapc2C)VU2acz Z)CPyENoj3HUQC{W_ahS9N~b literal 0 HcmV?d00001 diff --git a/discord-icons/raidmarks/mark_blue.png b/discord-icons/raidmarks/mark_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..966d459d15782585b156b89353de63092fcdffd5 GIT binary patch literal 1279 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 literal 0 HcmV?d00001 diff --git a/discord-icons/raidmarks/mark_green.png b/discord-icons/raidmarks/mark_green.png new file mode 100644 index 0000000000000000000000000000000000000000..1e1f25b079bfed83a49ceebb37137866ea3b8de2 GIT binary patch literal 1128 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 To9NyQ00000NkvXXu0mjfR5%ma literal 0 HcmV?d00001 diff --git a/discord-icons/roles/rol_dps.png b/discord-icons/roles/rol_dps.png new file mode 100644 index 0000000000000000000000000000000000000000..6022b2413e72504f478fef709946a3768c910fdd GIT binary patch literal 568 zcmV-80>}M{P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+vO?rB2+00F2;L_t(IPsNkJO9EjW#t#&=2of9$S`Jdw zAQB=tXc1COlyC_ImxBr%B8`@sYOE=VAR&TiaPm{-(qPDQKrBD17NOg*Za$Oh8! z?P$4q)lGpVX&^;qZ&^wR*BzqT7ZC+uWVGutd)kov&+Bgp_cN=hlYo5hDK}qAk18 zRw`hC4G?5PaQLHyCwQF-M!lvI6;>1s;*b3=DjSL74G){)!Z!pk#?_L`iUdT1k0gQ7S_~VrE{6o}X)oLYc9i zsh-jGcbU#WMTb0H978PplM@!0au^6EFedStoN?K-S9Yo3|BZ>8cz%6+e6&7=$Ee}~ z&#VcLKm0%5&aNS$;&#DRR#WVMqQnx$>5dA8DO)AjnpGY?Y3H~52IXPFrL)l90xT}wYv&97i?vrd2 bS1~fwoSw#_-@LyH=o}M{P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+vO?rB2+00F2;L_t(IPp#CyO9EjS2k^7$Mn{*TQK&$u z!NJI(A1=Xx%RvYS5(yF}4HXpyHJqnLaWq5-ErClQ{eb?05JhOT|DYjgOeB1IzURGi zb!UZj@a28=UOs%ElT(uZ`%=cG2q(!gVnHeA41bsVk^+BT=FGTy0MWDYCWmg!bjJ?% zba}WW(&2qa&nm=u0_Fu7K#=F^#iu-0bV3AZL&Q+wM+i*>D3EP+f)EDK$Qx3Fl2Obk zgp~FYv=$rfB^H#)87<-`b0l82uS_zoLVnUE6sb|%BDJLfq#O^dSWmLUm(KO-lUPfZg7 z1RxLu$Zw%G8UaBofjQe?Z#R1F*Jz%RYm6sG6V1d(qLn>XgP{e_SC!wdlY>mWUfNY@ zJszTJdEd(F;ut?{t+(=-2A?%KzSeuo=fe2LFfc|Q1cntzK0PO}nvIMA@q{3EG5OTS z-T>K1o14{?kpGO&^pL(#7n6s82~Yq)II?K+ZKFZ|=RN=GI^t&C=)$tFb`5hKb78zEb(v{7P|GK!5N+sfLo7*>YaFhR+XHYA3W zAvS~n+K`48no&)5j(wuF(wem;MxM#)hDV7@*M!EO1~jv>{FQM7A1f#CU{@!AR_f zv51)L$6%3(tD=K~InJeQ$VZgneEiAti$m~(GQog6>F+MeOo&tvkl`dD}2>AC5alsjX+ z!_DuWUK|~%NGd#8T{3jHW9hAlx<9k`PrSZ;b?8*p<<6Hgfwu!~Unie@9SI~&G=BJY z@Me7A`oQs=U2Fd3Wl!a{{Fr`o#?@3^&^WblW!bBv`ySMFCAa;}jp^|>ehJo(b_aU$ bpL@nHd9(WN1)E}B15K_#%g6SR5Gwc&$l=g4 literal 0 HcmV?d00001 diff --git a/discord-icons/roles/role_healer.gif b/discord-icons/roles/role_healer.gif new file mode 100644 index 0000000000000000000000000000000000000000..cca3436b002e70941573393042236dfd94c986d0 GIT binary patch literal 995 zcmW+#O-Phs5T3HKBHgI1J!rB)rHQ!ONV=^SdeD?0!^(q}C_06uWkvXR$Rvo0=!Xt3 zX4Ihw4|b^tNmDuq@{-gc10hQ`5+lPbv8w~M#)&v#C#0)v9UI5um>m<499c)kkvL*U zD1Z%UU||{4q&)hJwPGz>OG=B%7;D5DwuV#%nqsVo6}Cbu3bSl1i)FS<(1=w_#*$cK zOJId+fI&1=LKb=;1~#C9g=JDhTH}c^Yz(PC(4rDC!bV8#LIs*EhS@N|Jw##FkQib^ zu!lS#6WfRb{viSmp&DQi4V4&$4iEzy(7+;1PTQ#QScEi4_ya8}W?@3EunQGv3b7D! zMA8TVx-gEQ;TBOM56Hwe;(#U?hC`?Z7(`twiF6um)Odu8AxQWGEh;Ac zI5b!9-rDp|s4;t2(OEBOP2I~*SG_p&2%bYl@IDUuh@ zS(KAQS(y~hTF;^S*5>7D+t%cVW5c1i+#SVrNAEuAi5w~G8+t{7_=ZdE!QG)idcwlu zLS{imWN$DdCsAqt z+F5~5fAgPZOJJ1JRD=E#v~rN#Du2r3`@z=P6{*p&{SyOiYv8!N5Y*%TeQvo5>0YggOC)bA6q@rixs=-q>ubGVfs37Ghz7qRNlks!$gCP->zIM`nHJy(dKaLFjjP_R)wRA^@{j<+*9SfbQZTH8%e;x2u L_4mcZETzbQPTA4l literal 0 HcmV?d00001 diff --git a/discord-icons/roles/role_tank.gif b/discord-icons/roles/role_tank.gif new file mode 100644 index 0000000000000000000000000000000000000000..18133fde53b19fec4a4441d302c91066afac7922 GIT binary patch literal 1000 zcmW+#TS$~q5FWRPEJH23ZdP`oaKpl>-14$zsHrGv5R!_QXpG8h8F-1Xpg@U8P&gs> z6jG8&SPyCug@kmVmo#lqt;niCQ`lyY@7xm|$Jy=Od6m_dZrvzpuIudY zX}o_Yrzk%u$2U6uc3aGr5=qZKosg8YyS&tQD1K8@z3*OYO5ZC-LdWEG-X#QQB`c*nfgnj*tnB@`g{pxxKI=cA(-w#Bf8z%*dJG^X}x@ znO9~0g1+LRmSEq2|443EX6?7Zk?i1~RVg*I1^qQWb6bb&etd6eyL(|O;o7h9$-iGd z6?v=XgJZoPeisg2opViip00V4-#pQkTAwgBmC(C1U+=%(_xYIT=fvaQhXapN>iq9! zLmI1!y_H|v|9#w8U09TScD&=gJ2&w1=KR8_zw?=UsA}>>$N9yo9j}`f0u60pbMd~` XK-{!Dc`!b$B@lQ}_&cZUI3@lEv@Y7W literal 0 HcmV?d00001 diff --git a/guild.py b/guild.py new file mode 100755 index 0000000..dcdee85 --- /dev/null +++ b/guild.py @@ -0,0 +1,64 @@ +#! /usr/bin/python3 + +import redis +import time +import requests +import sys +import webhook +import conf + +now = time.time() + +wh = webhook.Webhook(conf.url_discord_webhook) + +r = redis.StrictRedis(host='localhost', charset="utf-8", decode_responses=True) + +bnet_guild = conf.battle_net_url("https://{0}.api.battle.net/wow/guild/dun%20modr/vagrant%20story?fields=news,members,achievements&locale=es_ES&apikey={1}") + +g = requests.get(url=bnet_guild).json() + + +if "members" not in g: + print("'members' not in g") + sys.exit() + +members = r.smembers("bot:members") # members database, used by other scripts +chars = set() + +# how join the guild, how leaves + +for member in g["members"]: + chars.add(member["character"]["name"]) + +for new in chars.difference(members): + r.sadd("bot:members", new) + members.add(new) + wh.send(":inbox_tray: **{0}** ha entrado a la guild! 🎉".format(new)) + +for kick in members.difference(chars): + r.srem("bot:members", kick) + wh.send(":outbox_tray: **{0}** ha salido a la guild :confused:".format(kick)) + + +if "news" not in g: + print("'news' not in g") + sys.exit() + +g["news"].reverse() +r.zremrangebyscore("bot:guild", "-inf", now-(60*60*24*2)) + +for news in g["news"]: + fid = None + push = None + + if news["timestamp"]/1000 < now-(60*60*24): # oooold, check 1 day only + continue + + if news["type"] in ["playerAchievement", "guildAchievement"]: + fid = "{} {} {}".format(news["type"], news["character"], news["achievement"]["title"]) + push = ":medal: **{0}** gana el logro **{1}**!".format(news["character"], news["achievement"]["title"]) + + if fid is None or r.zadd("bot:guild", now, fid) == 0 or push is None: + continue + + wh.send(push) diff --git a/items_legend.json b/items_legend.json new file mode 100644 index 0000000..ee46da7 --- /dev/null +++ b/items_legend.json @@ -0,0 +1,246 @@ +[ +{"item_id": 132357, "name_eses":"Pilares del Portal Oscuro","quality":5,"icon":"inv_pants_cloth_raidwarlock_i_01","screenshot":577124,"jsonequip":{"appearances":{"0":[81958,"inv_pants_robe_raidmage_i_01"]},"armor":282,"classes":256,"critstrkrtng":980,"displayid":81958,"dura":145,"hastertng":588,"int":2382,"mastrtng":735,"reqlevel":101,"sellprice":875743,"slotbak":7,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 132365, "name_eses":"Grilletes de Bryndaor","quality":5,"icon":"inv_bracer_plate_pvpdeathknight_o_01","screenshot":0,"jsonequip":{"appearances":{"0":[52637,"inv_bracer_07"]},"armor":341,"classes":32,"critstrkrtng":551,"displayid":52637,"dura":70,"mastrtng":413,"reqlevel":101,"sellprice":466099,"slotbak":9,"sta":2010,"str":1340},"attainable":0,"flags2":12352}, +{"item_id": 132366, "name_eses":"Nueva voluntad de Koltira","quality":5,"icon":"inv_belt_14","screenshot":0,"jsonequip":{"appearances":{"0":[38137,""]},"armor":438,"classes":32,"critstrkrtng":459,"displayid":38137,"dura":70,"hastertng":827,"reqlevel":101,"sellprice":467756,"slotbak":6,"sta":2680,"str":1786},"attainable":0,"flags2":12352}, +{"item_id": 132367, "name_eses":"Servicio de Sanguino","quality":5,"icon":"inv_belt_plate_deathknight_m_01","screenshot":564977,"jsonequip":{"appearances":{"0":[120805,""]},"armor":438,"classes":32,"displayid":120805,"dura":70,"lifesteal":1103,"mastrtng":827,"reqlevel":101,"sellprice":469459,"slotbak":6,"sta":2680,"str":1786,"versatility":459},"attainable":0,"flags2":12352}, +{"item_id": 132369, "name_eses":"Sigilo de invocaci\u00f3n superior de Wilfred","quality":5,"icon":"inv_jewelry_ring_78","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":256,"hastertng":1781,"mastrtng":1336,"nsockets":1,"reqlevel":101,"sellprice":591081,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 132374, "name_eses":"\u00daltima maldici\u00f3n de Kazzak","quality":5,"icon":"inv_belt_cloth_raidwarlock_i_01","screenshot":603569,"jsonequip":{"appearances":{"0":[82055,""]},"armor":181,"classes":256,"displayid":82055,"dura":70,"hastertng":551,"int":1786,"mastrtng":735,"reqlevel":101,"sellprice":481286,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 132375, "name_eses":"Odr, chal de los Ymirjar","quality":5,"icon":"inv_misc_cape_cataclysm_tank_b_01","screenshot":0,"jsonequip":{"appearances":{"0":[138737,"inv_cape_draenordungeon_c_04leather_base"]},"armor":161,"classes":256,"critstrkrtng":620,"displayid":138737,"hastertng":344,"int":1340,"reqlevel":101,"sellprice":668573,"slotbak":16,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 132376, "name_eses":"Mant\u00f3n de Acherus","quality":5,"icon":"inv_cape_pandaria_d_01","screenshot":619380,"jsonequip":{"appearances":{"0":[111653,""]},"armor":161,"classes":32,"critstrkrtng":551,"displayid":111653,"hastertng":413,"mastrtng":689,"reqlevel":101,"sellprice":671108,"slotbak":16,"sta":2010,"str":1340},"attainable":0,"flags2":12352}, +{"item_id": 132378, "name_eses":"Golpe oscuro de Sacrolash","quality":5,"icon":"inv_jewelry_ring_66","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":256,"critstrkrtng":1514,"mastrtng":1603,"nsockets":1,"reqlevel":101,"sellprice":567725,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 132379, "name_eses":"Maldad sin'dorei","quality":5,"icon":"inv_bracer_44","screenshot":0,"jsonequip":{"appearances":{"0":[63795,""]},"armor":141,"classes":256,"critstrkrtng":620,"displayid":63795,"dura":70,"hastertng":344,"int":1340,"reqlevel":101,"sellprice":455883,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 132381, "name_eses":"Grilletes insomnes de Streten","quality":5,"icon":"inv_bracer_cloth_raidwarlock_p_01","screenshot":0,"jsonequip":{"appearances":{"0":[142600,""]},"armor":141,"classes":256,"displayid":142600,"dura":70,"hastertng":551,"int":1340,"mastrtng":413,"reqlevel":101,"sellprice":459242,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 132393, "name_eses":"Ritual recurrente","quality":5,"icon":"inv_shoulder_cloth_raidwarlock_l_01","screenshot":566509,"jsonequip":{"appearances":{"0":[109557,""]},"armor":242,"classes":256,"critstrkrtng":827,"displayid":109557,"dura":120,"int":1786,"mastrtng":459,"reqlevel":101,"sellprice":663435,"slotbak":3,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 132394, "name_eses":"Caperuza de desd\u00e9n eterno","quality":5,"icon":"inv_helmet_152","screenshot":612754,"jsonequip":{"appearances":{"0":[64302,""]},"armor":262,"classes":256,"critstrkrtng":735,"displayid":64302,"dura":120,"int":2382,"mastrtng":980,"reqlevel":101,"sellprice":665970,"slotbak":1,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 132406, "name_eses":"Ataduras preeminentes del Rey del Sol","quality":5,"icon":"inv_bracer_robe_raidwarlock_j_01","screenshot":577016,"jsonequip":{"appearances":{"0":[99986,""]},"armor":141,"classes":128,"critstrkrtng":620,"displayid":99986,"dura":70,"hastertng":344,"int":1340,"reqlevel":101,"sellprice":467664,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 132407, "name_eses":"Ataduras de magigolpe","quality":5,"icon":"inv_bracer_31b","screenshot":0,"jsonequip":{"appearances":{"0":[4302,"inv_bracer_07"]},"armor":141,"classes":256,"critstrkrtng":620,"displayid":4302,"dura":70,"int":1340,"mastrtng":344,"reqlevel":101,"sellprice":469367,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 132409, "name_eses":"Grilletes chamuscados de Anund","quality":5,"icon":"inv_bracer_leather_firelandsdruid_d_01","screenshot":584422,"jsonequip":{"appearances":{"0":[132797,"inv_bracer_47"]},"armor":141,"classes":16,"critstrkrtng":551,"displayid":132797,"dura":70,"int":1340,"mastrtng":413,"reqlevel":101,"sellprice":438855,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 132410, "name_eses":"Fragmento de El Exodar","quality":5,"icon":"inv_6_2raid_ring_2a","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":128,"critstrkrtng":2004,"hastertng":1114,"nsockets":1,"reqlevel":101,"sellprice":550697,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 132411, "name_eses":"Agarre de lady Vashj","quality":5,"icon":"inv_cloth_raidpriest_q_01_glove","screenshot":0,"jsonequip":{"appearances":{"0":[53312,"inv_gauntlets_52"]},"armor":201,"classes":128,"critstrkrtng":735,"displayid":53312,"dura":70,"int":1786,"mastrtng":551,"reqlevel":101,"sellprice":442260,"slotbak":10,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 132413, "name_eses":"Brazaletes de asalto de Rhonin","quality":5,"icon":"inv_bracer_cloth_pvpmage_c_02","screenshot":0,"jsonequip":{"appearances":{"0":[43188,"inv_jewelry_ring_35"]},"armor":141,"classes":128,"critstrkrtng":413,"displayid":43188,"dura":70,"hastertng":551,"int":1340,"reqlevel":101,"sellprice":445620,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 132436, "name_eses":"Skjoldr, Santuario de Ivagont","quality":5,"icon":"inv_bracer_56","screenshot":0,"jsonequip":{"appearances":{"0":[52731,"inv_bracer_13"]},"armor":141,"classes":16,"displayid":52731,"dura":70,"hastertng":620,"int":1340,"mastrtng":344,"reqlevel":101,"sellprice":450636,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 132437, "name_eses":"Seducci\u00f3n de madre Shahraz","quality":5,"icon":"inv_shoulder_53","screenshot":573040,"jsonequip":{"appearances":{"0":[135257,"inv_shoulder_cloth_raidmage_o_01"]},"armor":242,"classes":16,"critstrkrtng":827,"displayid":135257,"dura":120,"int":1786,"mastrtng":459,"reqlevel":101,"sellprice":673368,"slotbak":3,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 132441, "name_eses":"Draugr, faja del rey eterno","quality":5,"icon":"inv_belt_plate_raiddeathknight_k_01","screenshot":0,"jsonequip":{"appearances":{"0":[106561,""]},"armor":438,"classes":32,"displayid":106561,"dura":70,"hastertng":827,"mastrtng":459,"reqlevel":101,"sellprice":471300,"slotbak":6,"sta":2680,"str":1786},"attainable":0,"flags2":12352}, +{"item_id": 132442, "name_eses":"Cord\u00f3n de infinidad","quality":5,"icon":"inv_belt_44c","screenshot":0,"jsonequip":{"appearances":{"0":[5788,"inv_belt_31"]},"armor":181,"classes":128,"critstrkrtng":735,"displayid":5788,"dura":70,"int":1786,"mastrtng":551,"reqlevel":101,"sellprice":472956,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 132443, "name_eses":"Zancada de Aggramar","quality":5,"icon":"inv_boots_plate_raidpaladin_i_01","screenshot":566338,"jsonequip":{"appearances":{"0":[79838,""]},"armor":536,"classes":35,"critstrkrtng":551,"displayid":79838,"dura":95,"hastertng":459,"int":1786,"mastrtng":827,"reqlevel":101,"sellprice":706595,"slotbak":8,"sta":2680,"str":1786,"strint":1786},"attainable":0,"flags2":12352}, +{"item_id": 132444, "name_eses":"Prydaz, obra maestra de Xavaric","quality":5,"icon":"inv_misc_necklace15","screenshot":592253,"jsonequip":{"appearances":{"0":[0,""]},"critstrkrtng":1247,"hastertng":1247,"mastrtng":1247,"nsockets":1,"reqlevel":101,"sellprice":405990,"slotbak":2,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 132445, "name_eses":"Al'maiesh, la Cuerda de la Esperanza","quality":5,"icon":"inv_belt_51","screenshot":0,"jsonequip":{"appearances":{"0":[34628,"inv_belt_10"]},"armor":181,"classes":16,"displayid":34628,"dura":70,"hastertng":459,"int":1786,"mastrtng":827,"reqlevel":101,"sellprice":478019,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 132447, "name_eses":"Calzas fascinantes de An'juna","quality":5,"icon":"inv_pants_robe_raidwarlock_j_01","screenshot":0,"jsonequip":{"appearances":{"0":[118369,"inv_pant_cloth_pvppriest_f_01"]},"armor":282,"classes":16,"displayid":118369,"dura":145,"hastertng":980,"int":2382,"mastrtng":735,"reqlevel":101,"sellprice":957378,"slotbak":7,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 132448, "name_eses":"Cuarta lecci\u00f3n del instructor","quality":5,"icon":"inv_bracer_26b","screenshot":0,"jsonequip":{"appearances":{"0":[53916,""]},"armor":341,"classes":32,"critstrkrtng":620,"displayid":53916,"dura":70,"hastertng":344,"reqlevel":101,"sellprice":483127,"slotbak":9,"sta":2010,"str":1340},"attainable":0,"flags2":12352}, +{"item_id": 132449, "name_eses":"Abrazo de Phyrix","quality":5,"icon":"inv_jewelry_ring_94","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":16,"hastertng":2004,"mastrtng":1114,"nsockets":1,"reqlevel":101,"sellprice":548396,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 132450, "name_eses":"Voluntad inquebrantable de Muze","quality":5,"icon":"inv_bracer_cloth_panda_b_01","screenshot":0,"jsonequip":{"appearances":{"0":[30693,"inv_bracer_09"]},"armor":141,"classes":16,"critstrkrtng":413,"displayid":30693,"dura":70,"hastertng":551,"int":1340,"reqlevel":101,"sellprice":440420,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 132451, "name_eses":"Falda m\u00edstica del maestro de runas","quality":5,"icon":"inv_kilt_cloth_02","screenshot":0,"jsonequip":{"appearances":{"0":[63793,""]},"armor":282,"classes":128,"displayid":63793,"dura":145,"hastertng":1103,"int":2382,"mastrtng":612,"reqlevel":101,"sellprice":879221,"slotbak":7,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 132452, "name_eses":"Secreto de Sephuz","quality":5,"icon":"inv_jewelry_ring_149","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"critstrkrtng":2227,"hastertng":890,"mlehastepct":2,"nsockets":1,"reqlevel":101,"rgdhastepct":2,"sellprice":554782,"slotbak":11,"socket1":7,"splhastepct":2,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 132453, "name_eses":"Quijotes de hueso de Traquesangre","quality":5,"icon":"inv_pants_plate_raidwarrior_i_01","screenshot":0,"jsonequip":{"appearances":{"0":[82101,""]},"armor":682,"classes":32,"displayid":82101,"dura":145,"hastertng":735,"mastrtng":980,"reqlevel":101,"sellprice":885902,"slotbak":7,"sta":3573,"str":2382},"attainable":0,"flags2":12352}, +{"item_id": 132454, "name_eses":"Toque ardiente de Koralon","quality":5,"icon":"inv_belt_cloth_pvppriest_f_01","screenshot":569637,"jsonequip":{"appearances":{"0":[126108,"inv_belt_cloth_raidmage_m_01"]},"armor":181,"classes":128,"critstrkrtng":735,"displayid":126108,"dura":70,"hastertng":551,"int":1786,"reqlevel":101,"sellprice":447185,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 132455, "name_eses":"Previsi\u00f3n de Norgannon","quality":5,"icon":"inv_boots_cloth_31","screenshot":617487,"jsonequip":{"appearances":{"0":[45601,"inv_boots_fabric_01"]},"armor":222,"classes":400,"critstrkrtng":551,"displayid":45601,"dura":95,"hastertng":735,"int":1786,"mastrtng":551,"reqlevel":101,"sellprice":668230,"slotbak":8,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 132456, "name_eses":"Relicario de almas","quality":5,"icon":"inv_belt_cloth_raidwarlock_n_01","screenshot":0,"jsonequip":{"appearances":{"0":[126023,""]},"armor":181,"classes":256,"displayid":126023,"dura":70,"hastertng":735,"int":1786,"mastrtng":551,"reqlevel":101,"sellprice":462786,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 132457, "name_eses":"Cord\u00f3n de energ\u00eda de Lethtendris","quality":5,"icon":"inv_belt_30","screenshot":583588,"jsonequip":{"appearances":{"0":[25306,"inv_belt_04"]},"armor":181,"classes":256,"critstrkrtng":459,"displayid":25306,"dura":70,"hastertng":827,"int":1786,"reqlevel":101,"sellprice":464442,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 132458, "name_eses":"Ataduras de nieve de Toravon","quality":5,"icon":"inv_bracer_plate_raidpaladin_l_01","screenshot":0,"jsonequip":{"appearances":{"0":[109526,""]},"armor":341,"classes":32,"displayid":109526,"dura":70,"hastertng":551,"mastrtng":413,"reqlevel":101,"sellprice":466145,"slotbak":9,"sta":2010,"str":1340},"attainable":0,"flags2":12352}, +{"item_id": 132459, "name_eses":"Perseverancia del m\u00e1rtir de \u00c9bano","quality":5,"icon":"inv_helm_plate_raiddeathknight_k_01","screenshot":575819,"jsonequip":{"appearances":{"0":[106557,""]},"armor":633,"classes":32,"displayid":106557,"dura":120,"hastertng":980,"mastrtng":735,"reqlevel":101,"sellprice":696456,"slotbak":1,"sta":3573,"str":2382},"attainable":0,"flags2":12352}, +{"item_id": 132460, "name_eses":"Pirog\u00e9nica de Alythess","quality":5,"icon":"inv_jewelry_ring_65","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":256,"critstrkrtng":1781,"hastertng":1336,"nsockets":1,"reqlevel":101,"sellprice":586881,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 132461, "name_eses":"Captura de Xalan el Temible","quality":5,"icon":"inv_gauntlets_14","screenshot":0,"jsonequip":{"appearances":{"0":[96396,"inv_gauntlets_robe_pvppriest_c_02"]},"armor":201,"classes":16,"critstrkrtng":827,"displayid":96396,"dura":70,"int":1786,"mastrtng":459,"reqlevel":101,"sellprice":471208,"slotbak":10,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 132466, "name_eses":"Ra\u00edces de Shaladrassil","quality":5,"icon":"inv_robe_pants_pvpwarlock_c_02","screenshot":0,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[97193,"inv_pants_mail_17"]},"armor":437,"classes":68,"critstrkrtng":588,"displayid":97193,"dura":145,"hastertng":1103,"int":2382,"mastrtng":612,"reqlevel":101,"sellprice":953900,"slotbak":7,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 132861, "name_eses":"Estel, Inspiraci\u00f3n de Dejahna","quality":5,"icon":"inv_chest_cloth_43","screenshot":563160,"jsonequip":{"appearances":{"0":[55075,""]},"armor":322,"classes":16,"critstrkrtng":980,"displayid":55075,"dura":200,"int":2382,"mastrtng":735,"reqlevel":101,"sellprice":872723,"slotbak":20,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 132863, "name_eses":"Diadema de fuego de drag\u00f3n de Darckli","quality":5,"icon":"spell_fire_fire","screenshot":0,"jsonequip":{"appearances":{"0":[22029,""]},"armor":262,"classes":128,"critstrkrtng":1103,"displayid":22029,"dura":120,"hastertng":612,"int":2382,"reqlevel":101,"sellprice":658297,"slotbak":1,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 132864, "name_eses":"Locura de Mangaza","quality":5,"icon":"inv_belt_92v4","screenshot":576851,"jsonequip":{"appearances":{"0":[44402,"inv_belt_01"]},"armor":181,"classes":16,"critstrkrtng":827,"displayid":44402,"dura":70,"hastertng":459,"int":1786,"reqlevel":101,"sellprice":443917,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 133800, "name_eses":"Cord\u00f3n de Maiev, sacerdotisa de la luna","quality":5,"icon":"inv_belt_leather_panda_b_02_crimson","screenshot":577827,"jsonequip":{"appearances":{"0":[109330,"inv_belt_03"]},"armor":181,"classes":16,"critstrkrtng":735,"displayid":109330,"dura":70,"int":1786,"mastrtng":551,"reqlevel":101,"sellprice":476362,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 133970, "name_eses":"Viaje de Zann'esu","quality":5,"icon":"inv_belt_71","screenshot":0,"jsonequip":{"appearances":{"0":[102015,"inv_belt_robe_pvpmage_d_01"]},"armor":181,"classes":128,"critstrkrtng":551,"displayid":102015,"dura":70,"hastertng":735,"int":1786,"reqlevel":101,"sellprice":437198,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 133971, "name_eses":"Zenk'aram, guirnalda de Iridi","quality":5,"icon":"inv_helm_robe_raidwarlock_j_01","screenshot":580930,"jsonequip":{"appearances":{"0":[100224,""]},"armor":262,"classes":16,"critstrkrtng":980,"displayid":100224,"dura":120,"hastertng":735,"int":2382,"reqlevel":101,"sellprice":653364,"slotbak":1,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 133973, "name_eses":"Toque doloroso de las gemelas","quality":5,"icon":"inv_ringwod_d4_2","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":16,"critstrkrtng":1781,"hastertng":1336,"nsockets":1,"reqlevel":101,"sellprice":552883,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 133974, "name_eses":"Lamento de Lana'thel","quality":5,"icon":"inv_jewelry_ring_118","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":32,"hastertng":2004,"nsockets":1,"reqlevel":101,"sellprice":554954,"slotbak":11,"socket1":7,"sta":2010,"versatility":1114},"attainable":0,"flags2":12352}, +{"item_id": 133976, "name_eses":"Cinidaria, la Simbionte","quality":5,"icon":"inv_leather_raiddruid_m_01belt","screenshot":562943,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[118745,""]},"armor":226,"classes":3592,"critstrkrtng":827,"displayid":118745,"dura":70,"int":1786,"mastrtng":459,"reqlevel":101,"sellprice":447369,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 133977, "name_eses":"Batalla final de Belo'vir","quality":5,"icon":"inv_chest_cloth_80","screenshot":0,"jsonequip":{"appearances":{"0":[64162,""]},"armor":322,"classes":128,"critstrkrtng":980,"displayid":64162,"dura":200,"hastertng":735,"int":2382,"mastrtng":588,"reqlevel":101,"sellprice":893040,"slotbak":20,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 137014, "name_eses":"Achor, el hambre eterna","quality":5,"icon":"inv_chest_mail_raidhuntermythic_p_01","screenshot":595607,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[55355,"inv_chest_leather_05"]},"armor":402,"classes":2048,"critstrkrtng":735,"displayid":55355,"dura":200,"hastertng":980,"int":2382,"mastrtng":588,"reqlevel":101,"sellprice":937519,"slotbak":5,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 137015, "name_eses":"Ekowraith, Creador de Mundos","quality":5,"icon":"inv_chest_leather_13","screenshot":601489,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[142390,"inv_chest_plate_raiddeathknightmythic_p_01"]},"armor":402,"classes":1024,"critstrkrtng":612,"displayid":142390,"dura":200,"hastertng":588,"int":2382,"mastrtng":1103,"reqlevel":101,"sellprice":940905,"slotbak":5,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 137016, "name_eses":"Guerrera perdida de Sal'salabim","quality":5,"icon":"inv_chest_leather_raidrogue_j_01","screenshot":572610,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[137077,"inv_chest_leather_pvpmonk_o_01"]},"armor":402,"classes":512,"displayid":137077,"dura":200,"hastertng":980,"int":2382,"mastrtng":735,"reqlevel":101,"sellprice":944291,"slotbak":5,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 137017, "name_eses":"Coraza de la Val'kyr dorada","quality":5,"icon":"inv_chest_plate_panda_b_01gold","screenshot":0,"jsonequip":{"appearances":{"0":[46080,"inv_chest_plate05"]},"armor":779,"classes":2,"displayid":46080,"dura":200,"hastertng":1103,"int":2382,"reqlevel":101,"sellprice":947586,"slotbak":5,"sta":3573,"str":2382,"strint":2382,"versatility":612},"attainable":0,"flags2":12352}, +{"item_id": 137018, "name_eses":"Impulsor del destino","quality":5,"icon":"inv_chest_plate_pvpwarrior_c_01","screenshot":0,"jsonequip":{"appearances":{"0":[52643,"inv_chest_plate07"]},"armor":779,"classes":1,"displayid":52643,"dura":200,"hastertng":1103,"mastrtng":612,"reqlevel":101,"sellprice":950972,"slotbak":5,"sta":3573,"str":2382},"attainable":0,"flags2":12352}, +{"item_id": 137019, "name_eses":"Cenedril, Reflejo de odio","quality":5,"icon":"inv_cape_pandaria_b_02","screenshot":0,"jsonequip":{"agi":1340,"agiint":1340,"appearances":{"0":[113025,""]},"armor":161,"classes":512,"displayid":113025,"hastertng":620,"int":1340,"mastrtng":344,"reqlevel":101,"sellprice":714405,"slotbak":16,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137020, "name_eses":"Susurro de los Nathrezim","quality":5,"icon":"inv_cape_pandaria_d_04","screenshot":592518,"jsonequip":{"appearances":{"0":[111849,""]},"armor":161,"classes":2,"critstrkrtng":620,"displayid":111849,"hastertng":344,"int":1340,"reqlevel":101,"sellprice":666449,"slotbak":16,"sta":2010,"str":1340,"strint":1340},"attainable":0,"flags2":12352}, +{"item_id": 137021, "name_eses":"Enga\u00f1o del Se\u00f1or del Terror","quality":5,"icon":"inv_cape_pandaria_d_03","screenshot":0,"jsonequip":{"agi":1340,"appearances":{"0":[117009,""]},"armor":161,"classes":8,"critstrkrtng":551,"displayid":117009,"mastrtng":413,"reqlevel":101,"sellprice":668984,"slotbak":16,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137022, "name_eses":"Sacrificio de Loramus Thalimedes","quality":5,"icon":"inv_boot_leather_raiddruid_k_01","screenshot":594209,"jsonequip":{"agi":1786,"appearances":{"0":[103226,""]},"armor":276,"classes":2048,"critstrkrtng":459,"displayid":103226,"dura":95,"hastertng":827,"reqlevel":101,"sellprice":671519,"slotbak":8,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137023, "name_eses":"Promesa de Elune, diosa de la luna","quality":5,"icon":"inv_boots_leather_raiddruid_j_01","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[99921,""]},"armor":276,"classes":1024,"displayid":99921,"dura":95,"hastertng":735,"int":1786,"mastrtng":551,"reqlevel":101,"sellprice":674053,"slotbak":8,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137024, "name_eses":"Abalanzadores Ailuro","quality":5,"icon":"inv_boots_leather_05red","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[65681,"inv_boots_leather_8"]},"armor":276,"classes":1024,"critstrkrtng":827,"displayid":65681,"dura":95,"hastertng":459,"int":1786,"reqlevel":101,"sellprice":676520,"slotbak":8,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137025, "name_eses":"Resistencia de Skysec","quality":5,"icon":"inv_boots_mail_02","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[96766,"inv_boots_cloth_07"]},"armor":276,"classes":1024,"displayid":96766,"dura":95,"int":1786,"mastrtng":827,"reqlevel":101,"sellprice":679055,"slotbak":8,"sta":2680,"versatility":459},"attainable":0,"flags2":12352}, +{"item_id": 137026, "name_eses":"Esencia de infusi\u00f3n","quality":5,"icon":"inv_boots_leather_10v3","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[141429,"inv_boot_leather_raiddruid_p_01"]},"armor":276,"classes":1024,"displayid":141429,"dura":95,"hastertng":827,"int":1786,"mastrtng":459,"reqlevel":101,"sellprice":681589,"slotbak":8,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137027, "name_eses":"Botas de piedra \u00edgnea","quality":5,"icon":"inv_boots_leather_13v1","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[120284,"inv_boot_leather_raidmonk_m_01"]},"armor":276,"classes":512,"critstrkrtng":827,"displayid":120284,"dura":95,"hastertng":459,"int":1786,"reqlevel":101,"sellprice":684124,"slotbak":8,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137028, "name_eses":"Ei'thas, deslizadores lunares de Eramas","quality":5,"icon":"inv_boots_mail_04black","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[107658,"inv_boots_leather_panda_b_01dark"]},"armor":276,"classes":512,"critstrkrtng":735,"displayid":107658,"dura":95,"int":1786,"mastrtng":551,"reqlevel":101,"sellprice":686591,"slotbak":8,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137029, "name_eses":"Eclipse de Katsuo","quality":5,"icon":"inv_boots_cloth_33v4","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[42961,"inv_boots_05"]},"armor":276,"classes":512,"displayid":42961,"dura":95,"hastertng":735,"int":1786,"mastrtng":551,"reqlevel":101,"sellprice":689125,"slotbak":8,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137030, "name_eses":"Escarpines de caminocaso","quality":5,"icon":"inv_boots_leather_8","screenshot":0,"jsonequip":{"agi":1786,"appearances":{"0":[98421,""]},"armor":276,"classes":8,"displayid":98421,"dura":95,"hastertng":735,"mastrtng":551,"reqlevel":101,"sellprice":691660,"slotbak":8,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137031, "name_eses":"Botines astutos de Thraxi","quality":5,"icon":"inv_boots_leather_03a","screenshot":0,"jsonequip":{"agi":1786,"appearances":{"0":[2990,"inv_boots_cloth_05"]},"armor":276,"classes":8,"critstrkrtng":827,"displayid":2990,"dura":95,"mastrtng":459,"reqlevel":101,"sellprice":694195,"slotbak":8,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137032, "name_eses":"Andar del s\u00e1tiro de las Sombras","quality":5,"icon":"inv_boots_mail_dungeonmail_c_04","screenshot":0,"jsonequip":{"agi":1786,"appearances":{"0":[97910,"inv_boots_leather01"]},"armor":276,"classes":8,"displayid":97910,"dura":95,"hastertng":827,"mastrtng":459,"reqlevel":101,"sellprice":696661,"slotbak":8,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137033, "name_eses":"Zapatos para la nieve con plumas de Ullr","quality":5,"icon":"inv_boots_mail_08","screenshot":589809,"jsonequip":{"agi":1786,"appearances":{"0":[65461,""]},"armor":343,"classes":4,"critstrkrtng":735,"displayid":65461,"dura":95,"mastrtng":551,"reqlevel":101,"sellprice":699196,"slotbak":8,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137034, "name_eses":"Botines atrapadores de Nesingwary","quality":5,"icon":"inv_boots_mail_panda_b_02","screenshot":592315,"jsonequip":{"agi":1786,"appearances":{"0":[45098,"inv_boots_chain_12"]},"armor":343,"classes":4,"displayid":45098,"dura":95,"hastertng":459,"mastrtng":827,"reqlevel":101,"sellprice":701731,"slotbak":8,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137035, "name_eses":"Pacto de sangre del Impostor","quality":5,"icon":"inv_boots_chain_07","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[104107,""]},"armor":343,"classes":64,"critstrkrtng":827,"displayid":104107,"dura":95,"hastertng":459,"int":1786,"reqlevel":101,"sellprice":704197,"slotbak":8,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137036, "name_eses":"Restabilizadores elementales","quality":5,"icon":"inv_boots_mail_raidshaman_j_01","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[100183,""]},"armor":343,"classes":64,"displayid":100183,"dura":95,"hastertng":459,"int":1786,"mastrtng":827,"reqlevel":101,"sellprice":656310,"slotbak":8,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137037, "name_eses":"Uvanimor, el Horripilante","quality":5,"icon":"inv_jewelry_ring_121","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":32,"hastertng":1781,"mastrtng":1336,"nsockets":1,"reqlevel":101,"sellprice":553228,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137038, "name_eses":"Inquina de los semigigantes","quality":5,"icon":"inv_60pvp_ring1a","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":2048,"critstrkrtng":2004,"hastertng":1114,"nsockets":1,"reqlevel":101,"sellprice":555357,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137039, "name_eses":"Esencia vil impecable","quality":5,"icon":"inv_misc_ring_mop13","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":1024,"hastertng":2004,"mastrtng":1114,"nsockets":1,"reqlevel":101,"sellprice":557428,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137040, "name_eses":"Sello titilador","quality":5,"icon":"inv_misc_ring_firelands_2","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":1024,"critstrkrtng":1781,"hastertng":1336,"nsockets":1,"reqlevel":101,"sellprice":559556,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137041, "name_eses":"Determinaci\u00f3n dual","quality":5,"icon":"inv_6_2raid_ring_4b","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":1024,"critstrkrtng":2004,"mastrtng":1114,"nsockets":1,"reqlevel":101,"sellprice":561685,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137042, "name_eses":"Piedra lacrimal de Elune","quality":5,"icon":"inv_misc_pearlring2","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":1024,"hastertng":2004,"mastrtng":1114,"nsockets":1,"reqlevel":101,"sellprice":563813,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137043, "name_eses":"Trampa para dedos de Frizzo","quality":5,"icon":"inv_archaeology_ogres_sorcerer_king_toe_ring","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":4,"hastertng":2004,"mastrtng":1114,"nsockets":1,"reqlevel":101,"sellprice":565884,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137044, "name_eses":"Joya de la Abad\u00eda Perdida","quality":5,"icon":"inv_jewelry_ring_138","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":512,"critstrkrtng":1781,"mastrtng":1336,"nsockets":1,"reqlevel":101,"sellprice":568013,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137045, "name_eses":"Ojo de Collidus el Vig\u00eda","quality":5,"icon":"inv_jewelry_ring_45","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":512,"hastertng":1781,"mastrtng":1336,"nsockets":1,"reqlevel":101,"sellprice":570141,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137046, "name_eses":"Ilterendi, joya de la corona de Lunargenta","quality":5,"icon":"inv_jewelry_ring_firelandsraid_03a","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":2,"critstrkrtng":1781,"mastrtng":1336,"nsockets":1,"reqlevel":101,"sellprice":572269,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137047, "name_eses":"Inmortalidad de Riscop\u00e1ramo","quality":5,"icon":"inv_jewelry_ring_72","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":2,"hastertng":1781,"mastrtng":1336,"nsockets":1,"reqlevel":101,"sellprice":574340,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137048, "name_eses":"Furia desatada de Liadrin","quality":5,"icon":"inv_jewelry_ring_61","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":2,"critstrkrtng":1781,"hastertng":1336,"nsockets":1,"reqlevel":101,"sellprice":576469,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137049, "name_eses":"Insignia de Ravenholdt","quality":5,"icon":"inv_misc_epicring_a2","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":8,"critstrkrtng":2004,"hastertng":1114,"nsockets":1,"reqlevel":101,"sellprice":578597,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137050, "name_eses":"Ojo del Vac\u00edo Abisal","quality":5,"icon":"inv_jewelry_ring_ahnqiraj_02","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":64,"hastertng":2004,"mastrtng":1114,"nsockets":1,"reqlevel":101,"sellprice":580668,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137051, "name_eses":"Enfocador de Jonat, el Ancestro","quality":5,"icon":"inv_jewelry_ring_96","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":64,"critstrkrtng":2004,"hastertng":1114,"nsockets":1,"reqlevel":101,"sellprice":582797,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137052, "name_eses":"Coraz\u00f3n de piedra de Ayala","quality":5,"icon":"inv_misc_ring_firelands_1","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":1,"critstrkrtng":1781,"mastrtng":1336,"nsockets":1,"reqlevel":101,"sellprice":584925,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137053, "name_eses":"Kazzalax, Furia de Fujieda","quality":5,"icon":"inv_cape_pandaria_c_04","screenshot":0,"jsonequip":{"appearances":{"0":[117035,""]},"armor":161,"classes":1,"critstrkrtng":551,"displayid":117035,"mastrtng":413,"reqlevel":101,"sellprice":717282,"slotbak":16,"sta":2010,"str":1340},"attainable":0,"flags2":12352}, +{"item_id": 137054, "name_eses":"Ca\u00edda de los muros","quality":5,"icon":"inv_jewelry_ring_142","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":1,"critstrkrtng":1781,"hastertng":1336,"nsockets":1,"reqlevel":101,"sellprice":546785,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137055, "name_eses":"Hambre de Zevrim","quality":5,"icon":"inv_jewelry_ring_36","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":4,"critstrkrtng":2004,"mastrtng":1114,"nsockets":1,"reqlevel":101,"sellprice":548914,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137056, "name_eses":"Envolturas de lufa","quality":5,"icon":"inv_bracer_cloth_raidpriest_o_01","screenshot":0,"jsonequip":{"agi":1340,"agiint":1340,"appearances":{"0":[141438,"inv_bracer_leather_raiddruid_p_01"]},"armor":176,"classes":1024,"critstrkrtng":413,"displayid":141438,"dura":70,"hastertng":551,"int":1340,"reqlevel":101,"sellprice":440834,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137057, "name_eses":"Toque prohibido del maestro oculto","quality":5,"icon":"inv_gauntlet_leather_raidrogue_j_01","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[99233,""]},"armor":251,"classes":512,"displayid":99233,"dura":70,"hastertng":551,"int":1786,"mastrtng":735,"reqlevel":101,"sellprice":442537,"slotbak":10,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137058, "name_eses":"Clamamareas del pretoriano","quality":5,"icon":"inv_gauntlets_plate_raidpaladin_i_01","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[51584,"inv_gauntlets_26"]},"armor":312,"classes":64,"displayid":51584,"dura":70,"hastertng":735,"int":1786,"mastrtng":551,"reqlevel":101,"sellprice":444193,"slotbak":10,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137059, "name_eses":"Mano de fe de Tyr","quality":5,"icon":"inv_glove_plate_panda_b_01blue","screenshot":563942,"jsonequip":{"appearances":{"0":[23404,"inv_gauntlets_28"]},"armor":487,"classes":2,"critstrkrtng":827,"displayid":23404,"dura":70,"hastertng":459,"int":1786,"reqlevel":101,"sellprice":445896,"slotbak":10,"sta":2680,"str":1786,"strint":1786},"attainable":0,"flags2":12352}, +{"item_id": 137060, "name_eses":"Mano dura de Archavon","quality":5,"icon":"inv_gloves_plate_raidwarrior_m_01","screenshot":570642,"jsonequip":{"appearances":{"0":[119967,""]},"armor":487,"classes":1,"critstrkrtng":551,"displayid":119967,"dura":70,"hastertng":735,"reqlevel":101,"sellprice":447599,"slotbak":10,"sta":2680,"str":1786},"attainable":0,"flags2":12352}, +{"item_id": 137061, "name_eses":"Ojos torrenciales de Raddon","quality":5,"icon":"inv_misc_bandana_01","screenshot":563387,"jsonequip":{"agi":2382,"appearances":{"0":[97270,"inv_misc_bandana_03"]},"armor":326,"classes":2048,"critstrkrtng":980,"displayid":97270,"dura":120,"hastertng":735,"reqlevel":101,"sellprice":668847,"slotbak":1,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 137062, "name_eses":"El atrapasue\u00f1os esmeralda","quality":5,"icon":"inv_helmet_81","screenshot":635916,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[97037,""]},"armor":326,"classes":1024,"critstrkrtng":612,"displayid":97037,"dura":120,"int":2382,"mastrtng":1103,"reqlevel":101,"sellprice":671313,"slotbak":1,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 137063, "name_eses":"Observaci\u00f3n fundamental","quality":5,"icon":"inv_helmet_cloth_pvpmage_c_02","screenshot":0,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[115132,"inv_helm_leather_challengemonk_d_01"]},"armor":326,"classes":512,"critstrkrtng":612,"displayid":115132,"dura":120,"int":2382,"mastrtng":1103,"reqlevel":101,"sellprice":673848,"slotbak":1,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 137064, "name_eses":"M\u00e1scara vud\u00fa de cazador de las Sombras","quality":5,"icon":"inv_helmet_116","screenshot":605356,"jsonequip":{"agi":2382,"appearances":{"0":[47037,""]},"armor":405,"classes":4,"critstrkrtng":588,"displayid":47037,"dura":120,"hastertng":612,"mastrtng":1103,"reqlevel":101,"sellprice":676383,"slotbak":1,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 137065, "name_eses":"Mirada de la justicia","quality":5,"icon":"inv_helmet_134","screenshot":0,"jsonequip":{"appearances":{"0":[52642,""]},"armor":633,"classes":2,"displayid":52642,"dura":120,"hastertng":980,"int":2382,"mastrtng":735,"reqlevel":101,"sellprice":678918,"slotbak":1,"sta":3573,"str":2382,"strint":2382},"attainable":0,"flags2":12352}, +{"item_id": 137066, "name_eses":"Capa de llamas viles","quality":5,"icon":"inv_misc_cape_09","screenshot":562203,"jsonequip":{"agi":1340,"appearances":{"0":[45339,"inv_misc_cape_15"]},"armor":161,"classes":2048,"displayid":45339,"hastertng":551,"reqlevel":101,"sellprice":681384,"slotbak":16,"sta":2010,"versatility":413},"attainable":0,"flags2":12352}, +{"item_id": 137067, "name_eses":"Encierro eterno de Elize","quality":5,"icon":"inv_pants_leather_panda_b_02","screenshot":568781,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[107403,""]},"armor":352,"classes":1024,"critstrkrtng":980,"displayid":107403,"dura":145,"int":2382,"mastrtng":735,"reqlevel":101,"sellprice":913632,"slotbak":7,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 137068, "name_eses":"Leotardos de la Llama Negra","quality":5,"icon":"inv_pants_leather_27","screenshot":0,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[54184,""]},"armor":352,"classes":512,"critstrkrtng":1103,"displayid":54184,"dura":145,"hastertng":612,"int":2382,"reqlevel":101,"sellprice":917018,"slotbak":7,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 137069, "name_eses":"Voluntad de Valeera","quality":5,"icon":"inv_pants_cloth_02","screenshot":629732,"jsonequip":{"agi":2382,"appearances":{"0":[9266,"inv_pants_06"]},"armor":352,"classes":8,"critstrkrtng":980,"displayid":9266,"dura":145,"hastertng":735,"mastrtng":588,"reqlevel":101,"sellprice":944565,"slotbak":7,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 137070, "name_eses":"Tyelca, talla de Ferren Marcus","quality":5,"icon":"inv_pants_plate_raidwarrior_n_01","screenshot":0,"jsonequip":{"appearances":{"0":[126322,""]},"armor":682,"classes":2,"critstrkrtng":735,"displayid":126322,"dura":145,"int":2382,"mastrtng":980,"reqlevel":101,"sellprice":947952,"slotbak":7,"sta":3573,"str":2382,"strint":2382},"attainable":0,"flags2":12352}, +{"item_id": 137071, "name_eses":"Espaldares de maestro de runas","quality":5,"icon":"inv_shoulder_105","screenshot":0,"jsonequip":{"agi":1786,"appearances":{"0":[66091,""]},"armor":301,"classes":2048,"critstrkrtng":827,"displayid":66091,"dura":120,"hastertng":459,"reqlevel":101,"sellprice":712144,"slotbak":3,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137072, "name_eses":"Sabidur\u00eda de Aman'thul","quality":5,"icon":"inv_shoulder_leather_raidmonk_n_01","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[126807,""]},"armor":301,"classes":1024,"critstrkrtng":551,"displayid":126807,"dura":120,"int":1786,"mastrtng":735,"reqlevel":101,"sellprice":714679,"slotbak":3,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137073, "name_eses":"Bufas simult\u00e1neas","quality":5,"icon":"inv_shoulder_leather_legionquest100_b_01","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[143674,""]},"armor":301,"classes":512,"displayid":143674,"dura":120,"hastertng":827,"int":1786,"mastrtng":459,"reqlevel":101,"sellprice":717145,"slotbak":3,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137074, "name_eses":"Ecos del Gran Cataclismo","quality":5,"icon":"inv_shoulder_plate_raidwarrior_j_01","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[42910,"inv_shoulder_23"]},"armor":374,"classes":64,"displayid":42910,"dura":120,"hastertng":551,"int":1786,"mastrtng":735,"reqlevel":101,"sellprice":651103,"slotbak":3,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137075, "name_eses":"Hombreras de Tak'theritrix","quality":5,"icon":"inv_shoulder_plate_deathknight_m_01","screenshot":0,"jsonequip":{"appearances":{"0":[120812,""]},"armor":585,"classes":32,"displayid":120812,"dura":120,"hastertng":551,"mastrtng":735,"reqlevel":101,"sellprice":653638,"slotbak":3,"sta":2680,"str":1786},"attainable":0,"flags2":12352}, +{"item_id": 137076, "name_eses":"Bufas de piedra de obsidiana","quality":5,"icon":"inv_shoulder_plate_pvppaladin_o_01","screenshot":574883,"jsonequip":{"appearances":{"0":[136471,""]},"armor":585,"classes":2,"critstrkrtng":827,"displayid":136471,"dura":120,"hastertng":459,"int":1786,"reqlevel":101,"sellprice":656173,"slotbak":3,"sta":2680,"str":1786,"strint":1786},"attainable":0,"flags2":12352}, +{"item_id": 137077, "name_eses":"Peso de la tierra","quality":5,"icon":"inv_pants_plate_pvpdeathknight_f_01","screenshot":0,"jsonequip":{"appearances":{"0":[59697,"inv_pants_plate_25"]},"armor":682,"classes":1,"critstrkrtng":1103,"displayid":59697,"dura":145,"mastrtng":612,"reqlevel":101,"sellprice":879862,"slotbak":7,"sta":3573,"str":2382},"attainable":0,"flags2":12352}, +{"item_id": 137078, "name_eses":"Consejo del tit\u00e1n oscuro","quality":5,"icon":"inv_belt_leather_raidrogue_l_01","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[112762,""]},"armor":226,"classes":1024,"critstrkrtng":735,"displayid":112762,"dura":70,"hastertng":551,"int":1786,"reqlevel":101,"sellprice":444147,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137079, "name_eses":"Faj\u00edn reconfortante de Gai Plin","quality":5,"icon":"inv_belt_49","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[54792,"inv_belt_15"]},"armor":226,"classes":512,"displayid":54792,"dura":70,"int":1786,"mastrtng":827,"reqlevel":101,"sellprice":445850,"slotbak":6,"sta":2680,"versatility":459},"attainable":0,"flags2":12352}, +{"item_id": 137080, "name_eses":"Rugido de los siete leones","quality":5,"icon":"inv_belt_plate_pvpdeathknight_c_02","screenshot":592313,"jsonequip":{"agi":1786,"appearances":{"0":[101744,"inv_belt_48c"]},"armor":281,"classes":4,"displayid":101744,"dura":70,"hastertng":735,"mastrtng":551,"reqlevel":101,"sellprice":447553,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137081, "name_eses":"Cintur\u00f3n de guerra del ej\u00e9rcito de los centinelas","quality":5,"icon":"inv_belt_66green","screenshot":592311,"jsonequip":{"agi":1786,"appearances":{"0":[63494,"inv_belt_60"]},"armor":281,"classes":4,"displayid":63494,"dura":70,"hastertng":735,"mastrtng":551,"reqlevel":101,"sellprice":449210,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137082, "name_eses":"Salinfierno, cuerda del merodeador de la bruma","quality":5,"icon":"inv_belt_mail_draenordungeon_c_01","screenshot":592317,"jsonequip":{"agi":1786,"appearances":{"0":[30054,"inv_belt_18"]},"armor":281,"classes":4,"critstrkrtng":735,"displayid":30054,"dura":70,"hastertng":551,"reqlevel":101,"sellprice":450912,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137083, "name_eses":"Faja de protoescama pr\u00edstina","quality":5,"icon":"inv_belt_mail_panda_b_01white","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[113740,""]},"armor":281,"classes":64,"critstrkrtng":735,"displayid":113740,"dura":70,"int":1786,"mastrtng":551,"reqlevel":101,"sellprice":452615,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137084, "name_eses":"Justicia absoluta de Akainu","quality":5,"icon":"inv_bracer_mail_pvphunter_c_02","screenshot":0,"jsonequip":{"agi":1340,"agiint":1340,"appearances":{"0":[100189,""]},"armor":218,"classes":64,"critstrkrtng":620,"displayid":100189,"dura":70,"int":1340,"mastrtng":344,"reqlevel":101,"sellprice":454272,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137085, "name_eses":"Muda intacta de Nazjatar","quality":5,"icon":"inv_leather_raiddruid_m_01belt","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[7807,"inv_belt_24"]},"armor":281,"classes":64,"critstrkrtng":827,"displayid":7807,"dura":70,"hastertng":459,"int":1786,"reqlevel":101,"sellprice":468170,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137086, "name_eses":"Cadena de Thrayn","quality":5,"icon":"inv_belt_leather_firelandsdruid_d_01","screenshot":0,"jsonequip":{"appearances":{"0":[46048,"inv_belt_20"]},"armor":438,"classes":2,"critstrkrtng":459,"displayid":46048,"dura":70,"hastertng":827,"int":1786,"reqlevel":101,"sellprice":469873,"slotbak":6,"sta":2680,"str":1786,"strint":1786},"attainable":0,"flags2":12352}, +{"item_id": 137087, "name_eses":"V\u00e9rtebras de Naj'entus","quality":5,"icon":"inv_misc_bone_03","screenshot":610643,"jsonequip":{"appearances":{"0":[144706,"inv_belt_plate_legionquest100_b_01"]},"armor":438,"classes":1,"critstrkrtng":459,"displayid":144706,"dura":70,"mastrtng":827,"reqlevel":101,"sellprice":471576,"slotbak":6,"sta":2680,"str":1786},"attainable":0,"flags2":12352}, +{"item_id": 137088, "name_eses":"Destrero Ceann-Ar","quality":5,"icon":"inv_helm_leather_pvpdruid_g_01","screenshot":0,"jsonequip":{"appearances":{"0":[97088,"inv_helmet_03"]},"armor":633,"classes":1,"displayid":97088,"dura":120,"hastertng":1103,"mastrtng":612,"reqlevel":101,"sellprice":704471,"slotbak":1,"sta":3573,"str":2382},"attainable":0,"flags2":12352}, +{"item_id": 137089, "name_eses":"Vigor del dios del Trueno","quality":5,"icon":"inv_belt_plate_raiddeathknight_j_01","screenshot":0,"jsonequip":{"appearances":{"0":[99614,""]},"armor":438,"classes":1,"displayid":99614,"dura":70,"hastertng":827,"reqlevel":101,"sellprice":474935,"slotbak":6,"sta":2680,"str":1786,"versatility":459},"attainable":0,"flags2":12352}, +{"item_id": 137090, "name_eses":"Estabilizadores bi\u00f3nicos Mo'arg","quality":5,"icon":"inv_plate_raiddeathknightmythic_o_01bracer","screenshot":604275,"jsonequip":{"agi":1340,"appearances":{"0":[125796,"inv_bracer_leather_raidrogue_n_01"]},"armor":176,"classes":2048,"critstrkrtng":620,"displayid":125796,"dura":70,"mastrtng":344,"reqlevel":101,"sellprice":476638,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137091, "name_eses":"Avambrazos perdidos del Rapi\u00f1ador","quality":5,"icon":"inv_bracer_plate_pvpdeathknight_c_02","screenshot":0,"jsonequip":{"agi":1340,"appearances":{"0":[143742,"inv_bracer_leather_legionquest100_b_01"]},"armor":176,"avoidance":482,"classes":2048,"displayid":143742,"dura":70,"hastertng":413,"mastrtng":551,"reqlevel":101,"sellprice":478341,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137092, "name_eses":"Intuici\u00f3n de Oneth","quality":5,"icon":"inv_bracer_40","screenshot":587912,"jsonequip":{"agi":1340,"agiint":1340,"appearances":{"0":[63486,""]},"armor":176,"classes":1024,"critstrkrtng":551,"displayid":63486,"dura":70,"hastertng":413,"int":1340,"reqlevel":101,"sellprice":479998,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137094, "name_eses":"Nidada del Formaferal","quality":5,"icon":"inv_leather_raiddruid_o_01glove","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[15839,"inv_gauntlets_20"]},"armor":251,"classes":1024,"critstrkrtng":735,"displayid":15839,"dura":70,"hastertng":551,"int":1786,"reqlevel":101,"sellprice":437336,"slotbak":10,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137095, "name_eses":"Edraith, ataduras de Aglaya","quality":5,"icon":"inv_bracer_57","screenshot":596351,"jsonequip":{"agi":1340,"agiint":1340,"appearances":{"0":[145310,"inv_bracer_leather_legionendgame_c_01"]},"armor":176,"classes":1024,"critstrkrtng":551,"displayid":145310,"dura":70,"hastertng":413,"int":1340,"reqlevel":101,"sellprice":439039,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137096, "name_eses":"Detalle de petricor","quality":5,"icon":"inv_bracer_41","screenshot":568215,"jsonequip":{"agi":1340,"agiint":1340,"appearances":{"0":[63542,""]},"armor":176,"classes":512,"displayid":63542,"dura":70,"hastertng":620,"int":1340,"mastrtng":344,"reqlevel":101,"sellprice":440696,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137097, "name_eses":"Tapa de cuerno para beber","quality":5,"icon":"inv_bracer_26","screenshot":0,"jsonequip":{"agi":1340,"agiint":1340,"appearances":{"0":[49179,"inv_bracer_08"]},"armor":176,"classes":512,"critstrkrtng":344,"displayid":49179,"dura":70,"hastertng":620,"int":1340,"reqlevel":101,"sellprice":442398,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137098, "name_eses":"Grilletes de entrenamiento de la familia Zoldyck","quality":5,"icon":"inv_bracer_leather_raiddruid_i_01","screenshot":632223,"jsonequip":{"agi":1340,"appearances":{"0":[143742,"inv_bracer_leather_legionquest100_b_01"]},"armor":176,"classes":8,"displayid":143742,"dura":70,"hastertng":276,"mastrtng":689,"reqlevel":101,"sellprice":444101,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137099, "name_eses":"Manillas encharcadas de piel verde","quality":5,"icon":"inv_bracer_leather_raidrogue_k_01","screenshot":0,"jsonequip":{"agi":1340,"appearances":{"0":[103145,""]},"armor":176,"classes":8,"critstrkrtng":551,"displayid":103145,"dura":70,"hastertng":413,"reqlevel":101,"sellprice":445758,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137100, "name_eses":"Negaci\u00f3n de los semigigantes","quality":5,"icon":"inv_bracer_leather_panda_b_02_crimson","screenshot":0,"jsonequip":{"agi":1340,"appearances":{"0":[107480,""]},"armor":176,"classes":8,"critstrkrtng":276,"displayid":107480,"dura":70,"mastrtng":689,"reqlevel":101,"sellprice":447461,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137101, "name_eses":"Llamada de lo salvaje","quality":5,"icon":"inv_bracer_36b","screenshot":597560,"jsonequip":{"agi":1340,"appearances":{"0":[101746,"inv_bracer_28b"]},"armor":218,"classes":4,"critstrkrtng":551,"displayid":101746,"dura":70,"hastertng":413,"reqlevel":101,"sellprice":461359,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137102, "name_eses":"Acrimonia de Al'Akir","quality":5,"icon":"inv_bracer_plate_pvpdeathknight_e_01","screenshot":0,"jsonequip":{"agi":1340,"agiint":1340,"appearances":{"0":[57072,"inv_bracer_07"]},"armor":218,"classes":64,"displayid":57072,"dura":70,"hastertng":551,"int":1340,"mastrtng":413,"reqlevel":101,"sellprice":463062,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137103, "name_eses":"Tempestades tormentosas","quality":5,"icon":"inv_belt_plate_pvpdeathknight_e_01","screenshot":564769,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[82037,"inv_belt_mail_raidshaman_i_01"]},"armor":281,"classes":64,"critstrkrtng":735,"displayid":82037,"dura":70,"hastertng":551,"int":1786,"reqlevel":101,"sellprice":464719,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137104, "name_eses":"Redenci\u00f3n de Nobundo","quality":5,"icon":"inv_bracer_leather_cataclysm_b_01","screenshot":0,"jsonequip":{"agi":1340,"agiint":1340,"appearances":{"0":[97310,"inv_bracer_02"]},"armor":218,"classes":64,"critstrkrtng":551,"displayid":97310,"dura":70,"int":1340,"mastrtng":413,"reqlevel":101,"sellprice":466421,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137105, "name_eses":"Guardia de Uther","quality":5,"icon":"inv_bracer_17","screenshot":0,"jsonequip":{"appearances":{"0":[57437,""]},"armor":341,"classes":2,"critstrkrtng":551,"displayid":57437,"dura":70,"hastertng":551,"int":1340,"mastrtng":413,"reqlevel":101,"sellprice":468124,"slotbak":9,"sta":2010,"str":1340,"strint":1340},"attainable":0,"flags2":12352}, +{"item_id": 137107, "name_eses":"Esposas sanguinarias de Mannoroth","quality":5,"icon":"inv_bracer_plate_pvpwarrior_d_01","screenshot":0,"jsonequip":{"appearances":{"0":[99659,"inv_bracer_plate_raiddeathknight_j_01"]},"armor":341,"classes":1,"displayid":99659,"dura":70,"hastertng":413,"mastrtng":551,"reqlevel":101,"sellprice":471484,"slotbak":9,"sta":2010,"str":1340,"versatility":689},"attainable":0,"flags2":12352}, +{"item_id": 137108, "name_eses":"Guanteletes de escama tormentosa de Kakushan","quality":5,"icon":"inv_gloves_plate_deathknight_m_01","screenshot":0,"jsonequip":{"appearances":{"0":[3085,"inv_gauntlets_05"]},"armor":487,"classes":1,"displayid":3085,"dura":70,"mastrtng":735,"reqlevel":101,"sellprice":473186,"slotbak":10,"sta":2680,"str":1786,"versatility":551},"attainable":0,"flags2":12352}, +{"item_id": 137109, "name_eses":"X'anshi, embozo del arzobispo Benedictus","quality":5,"icon":"inv_misc_cape_20","screenshot":0,"jsonequip":{"appearances":{"0":[13963,""]},"armor":161,"classes":16,"critstrkrtng":620,"displayid":13963,"int":1340,"mastrtng":344,"reqlevel":101,"sellprice":706938,"slotbak":16,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137220, "name_eses":"Marcha de la Legi\u00f3n","quality":5,"icon":"inv_ringwod_d4_3","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":512,"critstrkrtng":1781,"hastertng":1069,"mastrtng":890,"nsockets":1,"reqlevel":101,"sellprice":589355,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137223, "name_eses":"Sello de necrofantas\u00eda","quality":5,"icon":"inv_jewelry_ring_86","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":32,"critstrkrtng":2004,"mastrtng":1114,"nsockets":1,"reqlevel":101,"sellprice":595740,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137227, "name_eses":"Qa'pla, orden de guerra en eredun","quality":5,"icon":"inv_boot_mail_raidhunter_n_01","screenshot":573419,"jsonequip":{"agi":1786,"appearances":{"0":[124368,""]},"armor":343,"classes":4,"critstrkrtng":551,"displayid":124368,"dura":95,"mastrtng":735,"reqlevel":101,"sellprice":650898,"slotbak":8,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 137276, "name_eses":"N'ero, sortija de promesas","quality":5,"icon":"inv_jewelry_ring_54","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":16,"critstrkrtng":1781,"mastrtng":1336,"nsockets":1,"reqlevel":101,"sellprice":580668,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137382, "name_eses":"Garra del superdepredador","quality":5,"icon":"inv_jewelry_ring_100","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":4,"critstrkrtng":2004,"mastrtng":1114,"nsockets":1,"reqlevel":101,"sellprice":565884,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 137616, "name_eses":"N\u00facleo cargado de Emalon","quality":5,"icon":"inv_chest_mail_dungeonmail_c_04","screenshot":605717,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[112171,"inv_chest_mail_raidshaman_l_01"]},"armor":499,"classes":64,"critstrkrtng":612,"displayid":112171,"dura":200,"int":2382,"mastrtng":1103,"reqlevel":101,"sellprice":951429,"slotbak":5,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 138117, "name_eses":"Viaje espiritual","quality":5,"icon":"inv_boot_mail_raidhunter_m_01","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[118733,""]},"armor":343,"classes":64,"critstrkrtng":735,"displayid":118733,"dura":95,"hastertng":551,"int":1786,"mastrtng":551,"reqlevel":101,"sellprice":684261,"slotbak":8,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 138140, "name_eses":"Brazales desterrados de Magtheridon","quality":5,"icon":"inv_bracer_64v1","screenshot":0,"jsonequip":{"appearances":{"0":[41265,"inv_bracer_07"]},"armor":141,"classes":128,"displayid":41265,"dura":70,"hastertng":344,"int":1340,"mastrtng":620,"reqlevel":101,"sellprice":464673,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 138854, "name_eses":"Fragmento de la Prisi\u00f3n del Traidor","quality":5,"icon":"inv_jewelry_ring_134","screenshot":0,"jsonequip":{"classes":2048,"critstrkrtng":1781,"mastrtng":1336,"nsockets":1,"reqlevel":101,"sellprice":587456,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 138879, "name_eses":"Envoltura de invierno de Ovyd","quality":5,"icon":"inv_belt_leather_raiddruid_i_01","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[112762,"inv_belt_leather_raidrogue_l_01"]},"armor":226,"classes":512,"displayid":112762,"dura":70,"hastertng":551,"int":1786,"mastrtng":735,"reqlevel":101,"sellprice":478387,"slotbak":6,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 138949, "name_eses":"Kirel narak","quality":5,"icon":"inv_boots_leather_dungeonleather_c_06","screenshot":0,"jsonequip":{"agi":1786,"appearances":{"0":[109540,""]},"armor":276,"classes":2048,"displayid":109540,"dura":95,"mastrtng":827,"reqlevel":101,"sellprice":704745,"slotbak":8,"sta":2680,"versatility":459},"attainable":0,"flags2":12352}, +{"item_id": 140846, "name_eses":"Aegisjalmur, los guardabrazos del sobrecogimiento","quality":5,"icon":"inv_bracer_plate_raidpaladin_m_01","screenshot":0,"jsonequip":{"appearances":{"0":[118773,""]},"armor":341,"classes":2,"critstrkrtng":551,"displayid":118773,"dura":70,"hastertng":551,"int":1340,"mastrtng":413,"reqlevel":101,"sellprice":466698,"slotbak":9,"sta":2010,"str":1340,"strint":1340},"attainable":0,"flags2":12352}, +{"item_id": 141321, "name_eses":"Simetr\u00eda de shivarra","quality":5,"icon":"inv_gauntlets_83","screenshot":0,"jsonequip":{"agi":1786,"appearances":{"0":[64494,""]},"armor":251,"classes":8,"displayid":64494,"dura":70,"hastertng":551,"mastrtng":735,"reqlevel":101,"sellprice":471714,"slotbak":10,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 141353, "name_eses":"Lanzacartuchos explosivos magnetizados","quality":5,"icon":"inv_bracer_mail_raidhunter_j_01","screenshot":0,"jsonequip":{"agi":1340,"appearances":{"0":[99390,""]},"armor":218,"classes":4,"critstrkrtng":551,"displayid":99390,"dura":70,"hastertng":413,"reqlevel":101,"sellprice":458092,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 143728, "name_eses":"Estratagema intemporal","quality":5,"icon":"inv_shoulder_plate_dungeonplate_c_06","screenshot":604224,"jsonequip":{"appearances":{"0":[103205,""]},"armor":585,"classes":1,"displayid":103205,"dura":120,"hastertng":643,"mastrtng":643,"reqlevel":101,"sellprice":705088,"slotbak":3,"sta":2680,"str":1786,"versatility":643},"attainable":0,"flags2":12352}, +{"item_id": 143732, "name_eses":"Recordatorio incierto","quality":5,"icon":"inv_helm_mail_korkronshaman_d_01","screenshot":612795,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[124870,""]},"armor":405,"classes":64,"critstrkrtng":612,"displayid":124870,"dura":120,"int":2382,"mastrtng":1103,"reqlevel":101,"sellprice":715159,"slotbak":1,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 144236, "name_eses":"Manto del maestro asesino","quality":5,"icon":"inv_shoulder_leather_raidrogue_k_01","screenshot":600203,"jsonequip":{"agi":1786,"appearances":{"0":[103663,""]},"armor":301,"classes":8,"displayid":103663,"dura":120,"hastertng":367,"mastrtng":919,"reqlevel":101,"sellprice":694743,"slotbak":3,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 144239, "name_eses":"Condensador del Emperador","quality":5,"icon":"inv_chest_leather_raidrogue_l_01","screenshot":0,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[112571,""]},"armor":402,"classes":512,"critstrkrtng":980,"displayid":112571,"dura":200,"int":2382,"mastrtng":735,"reqlevel":101,"sellprice":870801,"slotbak":5,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 144242, "name_eses":"Caricia de X'oni","quality":5,"icon":"inv_glove_leather_raidrogue_m_01","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[119914,""]},"armor":251,"classes":1024,"displayid":119914,"dura":70,"hastertng":735,"int":1786,"mastrtng":551,"reqlevel":101,"sellprice":442951,"slotbak":10,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 144244, "name_eses":"Kam Xi'raff","quality":5,"icon":"inv_helmet_robe_raidpriest_j_01","screenshot":0,"jsonequip":{"appearances":{"0":[99515,""]},"armor":262,"classes":16,"critstrkrtng":612,"displayid":99515,"dura":120,"hastertng":1103,"int":2382,"reqlevel":101,"sellprice":664462,"slotbak":1,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 144247, "name_eses":"Motivo oculto de Rammal","quality":5,"icon":"inv_cloth_draenorcrafted_d_01gloves_horde","screenshot":0,"jsonequip":{"appearances":{"0":[131914,""]},"armor":201,"classes":16,"critstrkrtng":459,"displayid":131914,"dura":70,"int":1786,"mastrtng":827,"reqlevel":101,"sellprice":451419,"slotbak":10,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 144249, "name_eses":"Odio renacido de Archimonde","quality":5,"icon":"spell_nature_elementalshields","screenshot":0,"jsonequip":{"agi":2264,"agistrint":2264,"appearances":{"0":[0,""]},"cooldown":75000,"int":2264,"mastrtng":612,"reqlevel":101,"sellprice":775269,"slotbak":12,"str":2264,"versatility":612},"attainable":0,"flags2":12352}, +{"item_id": 144258, "name_eses":"Visi\u00f3n futura de Velen","quality":5,"icon":"spell_holy_healingfocus","screenshot":0,"jsonequip":{"agi":2264,"agistrint":2264,"appearances":{"0":[0,""]},"cooldown":75000,"critstrkrtng":408,"hastertng":408,"int":2264,"mastrtng":408,"reqlevel":101,"sellprice":821943,"slotbak":12,"str":2264},"attainable":0,"flags2":12352}, +{"item_id": 144259, "name_eses":"Voluntad ardiente de Kil'jaeden","quality":5,"icon":"sha_spell_fire_bluepyroblast_nightmare","screenshot":0,"jsonequip":{"agi":2264,"agistrint":2264,"appearances":{"0":[0,""]},"cooldown":75000,"critstrkrtng":408,"hastertng":408,"int":2264,"mastrtng":408,"reqlevel":101,"sellprice":746323,"slotbak":12,"str":2264},"attainable":0,"flags2":12352}, +{"item_id": 144260, "name_eses":"T\u00e9mpanos","quality":5,"icon":"inv_shoulder_110","screenshot":0,"jsonequip":{"appearances":{"0":[61121,""]},"armor":242,"classes":128,"critstrkrtng":827,"displayid":61121,"dura":120,"hastertng":459,"int":1786,"reqlevel":101,"sellprice":654323,"slotbak":3,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 144273, "name_eses":"\u00daltimo aliento de Maraad","quality":5,"icon":"item_icecrowncape","screenshot":599786,"jsonequip":{"appearances":{"0":[18131,"inv_chest_cloth_41"]},"armor":161,"classes":2,"critstrkrtng":620,"displayid":18131,"int":1340,"mastrtng":344,"reqlevel":101,"sellprice":705156,"slotbak":16,"sta":2010,"str":1340,"strint":1340},"attainable":0,"flags2":12352}, +{"item_id": 144274, "name_eses":"Espiral de gravedad","quality":5,"icon":"inv_helm_cloth_witchhat_b_01","screenshot":600912,"jsonequip":{"appearances":{"0":[15924,"inv_helmet_14"]},"armor":262,"classes":128,"critstrkrtng":612,"displayid":15924,"dura":120,"int":2382,"mastrtng":1103,"reqlevel":101,"sellprice":707691,"slotbak":1,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 144275, "name_eses":"Resoluci\u00f3n de Saruan","quality":5,"icon":"inv_plate_draenorcrafted_d_01helm","screenshot":611554,"jsonequip":{"appearances":{"0":[154304,""]},"armor":633,"classes":2,"displayid":154304,"dura":120,"hastertng":612,"int":2382,"reqlevel":101,"sellprice":710226,"slotbak":1,"sta":3573,"str":2382,"strint":2382,"versatility":1103},"attainable":0,"flags2":12352}, +{"item_id": 144277, "name_eses":"Cubremu\u00f1ecas endurecidos en yunque","quality":5,"icon":"inv_bracer_leather_panda_b_01","screenshot":0,"jsonequip":{"agi":1340,"agiint":1340,"appearances":{"0":[141426,"inv_bracer_leather_raiddruid_p_01"]},"armor":176,"classes":512,"displayid":141426,"dura":70,"hastertng":344,"int":1340,"mastrtng":620,"reqlevel":101,"sellprice":480458,"slotbak":9,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 144279, "name_eses":"Delirios de grandeza","quality":5,"icon":"inv_shoulder_51","screenshot":0,"jsonequip":{"agi":1786,"appearances":{"0":[63989,""]},"armor":301,"classes":2048,"critstrkrtng":735,"displayid":63989,"dura":120,"mastrtng":551,"reqlevel":101,"sellprice":651720,"slotbak":3,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 144280, "name_eses":"Marcha f\u00fanebre","quality":5,"icon":"inv_helm_plate_pvpdeathknight_c_01","screenshot":620427,"jsonequip":{"appearances":{"0":[76807,""]},"armor":633,"classes":32,"critstrkrtng":1103,"displayid":76807,"dura":120,"mastrtng":612,"reqlevel":101,"sellprice":654186,"slotbak":1,"sta":3573,"str":2382},"attainable":0,"flags2":12352}, +{"item_id": 144281, "name_eses":"Hemostasia de Huesoflor","quality":5,"icon":"inv_shoulder_plate_raiddeathknight_l_01","screenshot":0,"jsonequip":{"appearances":{"0":[117481,""]},"armor":585,"classes":32,"displayid":117481,"dura":120,"hastertng":735,"reqlevel":101,"sellprice":656721,"slotbak":3,"sta":2680,"str":1786,"versatility":551},"attainable":0,"flags2":12352}, +{"item_id": 144292, "name_eses":"Esp\u00edritu de la Llama Oscura","quality":5,"icon":"inv_glove_leather_legionendgame_c_01","screenshot":0,"jsonequip":{"agi":1786,"appearances":{"0":[145297,""]},"armor":251,"classes":2048,"displayid":145297,"dura":70,"mastrtng":551,"reqlevel":101,"sellprice":471944,"slotbak":10,"sta":2680,"versatility":735},"attainable":0,"flags2":12352}, +{"item_id": 144293, "name_eses":"N\u00facleo fr\u00edo de la consorte","quality":5,"icon":"inv_pants_plate_03","screenshot":0,"jsonequip":{"appearances":{"0":[97253,"inv_pants_plate_10"]},"armor":682,"classes":32,"displayid":97253,"dura":145,"hastertng":735,"mastrtng":980,"reqlevel":101,"sellprice":941911,"slotbak":7,"sta":3573,"str":2382},"attainable":0,"flags2":12352}, +{"item_id": 144295, "name_eses":"La Dama y el Ni\u00f1o","quality":5,"icon":"inv_shoulder_leather_draenorcrafted_d_01_alliance","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[131990,""]},"armor":301,"classes":1024,"critstrkrtng":551,"displayid":131990,"dura":120,"hastertng":735,"int":1786,"reqlevel":101,"sellprice":710089,"slotbak":3,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 144303, "name_eses":"Estabilizador girosc\u00f3pico Mk. II","quality":5,"icon":"inv_glove_mail_raidshamanmythic_o_01","screenshot":636030,"jsonequip":{"agi":1786,"appearances":{"0":[136365,""]},"armor":312,"classes":4,"critstrkrtng":735,"displayid":136365,"dura":70,"mastrtng":551,"reqlevel":101,"sellprice":456665,"slotbak":10,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 144326, "name_eses":"Manto de mando","quality":5,"icon":"inv_shoulder_mail_raidshaman_m_01","screenshot":626049,"jsonequip":{"agi":1786,"appearances":{"0":[120874,""]},"armor":374,"classes":4,"critstrkrtng":551,"displayid":120874,"dura":120,"mastrtng":735,"reqlevel":101,"sellprice":687276,"slotbak":3,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 144340, "name_eses":"Refugio de Rin","quality":5,"icon":"inv_chest_plate27v2","screenshot":0,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[138793,"inv_leather_pvpdruid_o_01robe"]},"armor":402,"classes":512,"critstrkrtng":919,"displayid":138793,"dura":200,"int":2382,"reqlevel":101,"sellprice":897799,"slotbak":5,"sta":3573,"versatility":796},"attainable":0,"flags2":12352}, +{"item_id": 144354, "name_eses":"Amputadoras rojas \u00edgneas","quality":5,"icon":"inv_pants_leather_40v1","screenshot":604937,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[37006,"inv_pants_leather_03"]},"armor":352,"classes":1024,"critstrkrtng":980,"displayid":37006,"dura":145,"int":2382,"mastrtng":735,"reqlevel":101,"sellprice":877574,"slotbak":7,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 144355, "name_eses":"Tela de ignici\u00f3n pirotex","quality":5,"icon":"inv_gauntlets_16","screenshot":0,"jsonequip":{"appearances":{"0":[142173,"inv_glove_cloth_raidpriest_p_01"]},"armor":201,"classes":128,"critstrkrtng":735,"displayid":142173,"dura":70,"hastertng":551,"int":1786,"reqlevel":101,"sellprice":442951,"slotbak":10,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 144358, "name_eses":"Cenizas polvorientas","quality":5,"icon":"inv_plate_firelands_d_01","screenshot":601718,"jsonequip":{"appearances":{"0":[100049,""]},"armor":585,"classes":2,"critstrkrtng":735,"displayid":100049,"dura":120,"hastertng":551,"int":1786,"reqlevel":101,"sellprice":666997,"slotbak":3,"sta":2680,"str":1786,"strint":1786},"attainable":0,"flags2":12352}, +{"item_id": 144361, "name_eses":"Delantal de huesos del carnicero","quality":5,"icon":"inv_chest_chain_15","screenshot":0,"jsonequip":{"agi":2382,"appearances":{"0":[27004,"inv_chest_chain_07"]},"armor":499,"classes":4,"critstrkrtng":980,"displayid":27004,"dura":200,"mastrtng":735,"reqlevel":101,"sellprice":901094,"slotbak":5,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 144364, "name_eses":"La Siembra","quality":5,"icon":"inv_cape_pandaria_c_02","screenshot":612631,"jsonequip":{"appearances":{"0":[111203,"inv_misc_cape_18"]},"armor":161,"classes":256,"displayid":111203,"hastertng":344,"int":1340,"mastrtng":620,"reqlevel":101,"sellprice":682069,"slotbak":16,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 144369, "name_eses":"Lecciones del espacio-tiempo","quality":5,"icon":"inv_shoulder_robe_pvpwarlock_d_01","screenshot":0,"jsonequip":{"appearances":{"0":[101393,""]},"armor":242,"classes":256,"displayid":101393,"dura":120,"hastertng":735,"int":1786,"mastrtng":551,"reqlevel":101,"sellprice":712829,"slotbak":3,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 144385, "name_eses":"Lealtad del Heraldo","quality":5,"icon":"inv_helm_cloth_raidwarlock_p_01","screenshot":0,"jsonequip":{"appearances":{"0":[144444,""]},"armor":262,"classes":256,"critstrkrtng":735,"displayid":144444,"dura":120,"hastertng":980,"int":2382,"reqlevel":101,"sellprice":702621,"slotbak":1,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 144432, "name_eses":"Cabeza de Coraz\u00f3n de Roble","quality":5,"icon":"inv_helm_leather_raiddruid_m_01","screenshot":0,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[120448,""]},"armor":326,"classes":1024,"displayid":120448,"dura":120,"int":2382,"mastrtng":1103,"reqlevel":101,"sellprice":669669,"slotbak":1,"sta":3573,"versatility":612},"attainable":0,"flags2":12352}, +{"item_id": 144438, "name_eses":"Exterminatus de Zek","quality":5,"icon":"inv_cape_pandariapvp_d_01","screenshot":620171,"jsonequip":{"appearances":{"0":[111851,""]},"armor":161,"classes":16,"critstrkrtng":551,"displayid":111851,"hastertng":413,"int":1340,"reqlevel":101,"sellprice":684741,"slotbak":16,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 146666, "name_eses":"Celumbra, la dicotom\u00eda de la noche","quality":5,"icon":"inv_cloth_raidmage_p_01shoulder","screenshot":619974,"jsonequip":{"appearances":{"0":[160483,"inv_shoulder_cloth_raidwarlock_l_01"]},"armor":242,"avgbuyout":100000,"classes":400,"critstrkrtng":551,"displayid":160483,"dura":120,"hastertng":735,"int":1786,"nsockets":3,"reqlevel":101,"sellprice":654666,"slotbak":3,"socket1":7,"socket2":7,"socket3":7,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 146667, "name_eses":"Coraje incesante de Rethu","quality":5,"icon":"inv_plate_draenorcrafted_d_01buckle","screenshot":0,"jsonequip":{"appearances":{"0":[138594,""]},"armor":438,"avgbuyout":820000,"classes":35,"displayid":138594,"dura":70,"hastertng":735,"int":1786,"mastrtng":551,"nsockets":3,"reqlevel":101,"sellprice":441432,"slotbak":6,"socket1":7,"socket2":7,"socket3":7,"sta":2680,"str":1786,"strint":1786},"attainable":0,"flags2":12352}, +{"item_id": 146668, "name_eses":"Percha de vigilancia","quality":5,"icon":"inv_glove_mail_vrykuldragonrider_b_01","screenshot":620074,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[147833,""]},"armor":312,"classes":68,"displayid":147833,"dura":70,"hastertng":551,"int":1786,"mastrtng":735,"nsockets":3,"reqlevel":101,"sellprice":443135,"slotbak":10,"socket1":7,"socket2":7,"socket3":7,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 146669, "name_eses":"Refugio eterno de la Centinela","quality":5,"icon":"inv_leather_raiddemonhuntermythic_q_02boots","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[155941,""]},"armor":276,"avgbuyout":1039999,"classes":3592,"critstrkrtng":551,"displayid":155941,"dura":95,"int":1786,"mastrtng":735,"nsockets":3,"reqlevel":101,"sellprice":662202,"slotbak":8,"socket1":7,"socket2":7,"socket3":7,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 150936, "name_eses":"Alma de Hoja de las Sombras","quality":5,"icon":"inv_jewelry_ring_56","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":8,"critstrkrtng":712,"hastertng":534,"mastrtng":890,"nsockets":1,"reqlevel":101,"sellprice":598904,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151636, "name_eses":"Alma del Archidruida","quality":5,"icon":"inv_70_raid_ring6a","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":1024,"critstrkrtng":534,"hastertng":890,"mastrtng":712,"nsockets":1,"reqlevel":101,"sellprice":560707,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151639, "name_eses":"Alma del Asesino","quality":5,"icon":"inv_70_dungeon_ring6a","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":2048,"critstrkrtng":712,"hastertng":534,"mastrtng":890,"nsockets":1,"reqlevel":101,"sellprice":567035,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151640, "name_eses":"Alma del Se\u00f1or de la Muerte","quality":5,"icon":"inv_70_pvp_ring2b","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":32,"critstrkrtng":712,"hastertng":534,"mastrtng":890,"nsockets":1,"reqlevel":101,"sellprice":569163,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151641, "name_eses":"Alma del Maestro de caza","quality":5,"icon":"inv_70_quest_ring8a","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":4,"critstrkrtng":534,"hastertng":712,"mastrtng":890,"nsockets":1,"reqlevel":101,"sellprice":571234,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151642, "name_eses":"Alma del Archimago","quality":5,"icon":"inv_70_raid_ring2d","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":128,"critstrkrtng":802,"hastertng":1158,"mastrtng":979,"nsockets":1,"reqlevel":101,"sellprice":573362,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151643, "name_eses":"Alma del Gran maestro","quality":5,"icon":"inv_jewelry_ring_119","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":512,"critstrkrtng":802,"hastertng":979,"mastrtng":1158,"nsockets":1,"reqlevel":101,"sellprice":575491,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151644, "name_eses":"Alma del Alto Se\u00f1or","quality":5,"icon":"inv_jewelry_ring_68","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":2,"critstrkrtng":712,"hastertng":534,"mastrtng":890,"nsockets":1,"reqlevel":101,"sellprice":577619,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151646, "name_eses":"Alma del Sumo sacerdote","quality":5,"icon":"inv_jewelry_ring_67","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":16,"critstrkrtng":712,"hastertng":890,"mastrtng":534,"nsockets":1,"reqlevel":101,"sellprice":581819,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151647, "name_eses":"Alma del Clarividente","quality":5,"icon":"inv_70_quest_ring2b","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":64,"critstrkrtng":855,"hastertng":676,"mastrtng":1033,"nsockets":1,"reqlevel":101,"sellprice":599192,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151649, "name_eses":"Alma del Se\u00f1or abisal","quality":5,"icon":"inv_70_quest_ring7c","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":256,"critstrkrtng":534,"hastertng":890,"mastrtng":712,"nsockets":1,"reqlevel":101,"sellprice":603391,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151650, "name_eses":"Alma del Se\u00f1or de la batalla","quality":5,"icon":"inv_misc_ring_4","screenshot":0,"jsonequip":{"appearances":{"0":[0,""]},"classes":1,"critstrkrtng":534,"hastertng":712,"mastrtng":890,"nsockets":1,"reqlevel":101,"sellprice":547936,"slotbak":11,"socket1":7,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151782, "name_eses":"Torre sin l\u00edmites","quality":5,"icon":"inv_helm_plate_raidpaladin_n_01","screenshot":0,"jsonequip":{"appearances":{"0":[141857,""]},"armor":633,"classes":2,"critstrkrtng":919,"displayid":141857,"int":2382,"mastrtng":796,"reqlevel":101,"sellprice":718515,"slotbak":1,"sta":3573,"str":2382,"strint":2382},"attainable":0,"flags2":12352}, +{"item_id": 151783, "name_eses":"Canci\u00f3n camale\u00f3nica","quality":5,"icon":"inv_helmet_153","screenshot":0,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[64949,""]},"armor":326,"classes":1024,"displayid":64949,"dura":120,"hastertng":919,"int":2382,"mastrtng":796,"reqlevel":101,"sellprice":652473,"slotbak":1,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 151784, "name_eses":"Puerta a ninguna parte","quality":5,"icon":"inv_misc_cape_cataclysm_healer_b_01","screenshot":0,"jsonequip":{"agi":1340,"agiint":1340,"appearances":{"0":[83951,""]},"armor":161,"classes":512,"displayid":83951,"hastertng":517,"int":1340,"mastrtng":448,"reqlevel":101,"sellprice":654940,"slotbak":16,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151785, "name_eses":"Fuego en las profundidades","quality":5,"icon":"inv_chest_mail_raidshaman_m_01","screenshot":0,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[120651,""]},"armor":499,"classes":64,"critstrkrtng":919,"displayid":120651,"dura":200,"int":2382,"mastrtng":796,"reqlevel":101,"sellprice":878306,"slotbak":5,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 151786, "name_eses":"Halo interno","quality":5,"icon":"inv_shoulder_robe_raidpriest_k_01","screenshot":0,"jsonequip":{"appearances":{"0":[104443,""]},"armor":242,"classes":16,"displayid":104443,"hastertng":689,"int":1786,"mastrtng":597,"reqlevel":101,"sellprice":660009,"slotbak":3,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 151787, "name_eses":"Gu\u00eda de alabastro","quality":5,"icon":"inv_helmet_136","screenshot":0,"jsonequip":{"appearances":{"0":[157945,""]},"armor":262,"classes":16,"critstrkrtng":796,"displayid":157945,"dura":120,"int":2382,"mastrtng":919,"reqlevel":101,"sellprice":662544,"slotbak":1,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 151788, "name_eses":"\u00daltimo aliento de Cerveza de Trueno","quality":5,"icon":"inv_shoulder_leather_pvpmonk_g_01","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[123584,""]},"armor":301,"classes":512,"displayid":123584,"dura":120,"hastertng":597,"int":1786,"reqlevel":101,"sellprice":665010,"slotbak":3,"sta":2680,"versatility":689},"attainable":0,"flags2":12352}, +{"item_id": 151795, "name_eses":"Corrupci\u00f3n del Cazador de Almas","quality":5,"icon":"inv_plate_raidwarrior_o_01chest","screenshot":0,"jsonequip":{"appearances":{"0":[132724,""]},"armor":779,"classes":32,"critstrkrtng":796,"displayid":132724,"dura":200,"mastrtng":919,"reqlevel":101,"sellprice":936237,"slotbak":5,"sta":3573,"str":2382},"attainable":0,"flags2":12352}, +{"item_id": 151796, "name_eses":"Coraz\u00f3n fr\u00edo","quality":5,"icon":"inv_chest_plate_raiddeathknight_p_01","screenshot":0,"jsonequip":{"appearances":{"0":[143412,""]},"armor":779,"classes":32,"critstrkrtng":919,"displayid":143412,"dura":200,"mastrtng":796,"reqlevel":101,"sellprice":939532,"slotbak":5,"sta":3573,"str":2382},"attainable":0,"flags2":12352}, +{"item_id": 151797, "name_eses":"[Death Screamers]","quality":5,"icon":"","screenshot":0,"jsonequip":{"classes":32,"hastertng":689,"mastrtng":597,"reqlevel":101,"sellprice":474153,"slotbak":10,"sta":2680,"str":1786},"attainable":0,"flags2":12352}, +{"item_id": 151798, "name_eses":"Teor\u00eda del caos","quality":5,"icon":"inv_cape_draenorraid_d_01plate_dk","screenshot":0,"jsonequip":{"agi":1340,"appearances":{"0":[141339,""]},"armor":161,"classes":2048,"critstrkrtng":448,"displayid":141339,"hastertng":517,"reqlevel":101,"sellprice":708376,"slotbak":16,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151799, "name_eses":"Abrazo del olvido","quality":5,"icon":"inv_leather_raiddruid_m_01pant","screenshot":0,"jsonequip":{"agi":2382,"appearances":{"0":[118311,""]},"armor":352,"classes":2048,"displayid":118311,"dura":145,"mastrtng":919,"reqlevel":101,"sellprice":949599,"slotbak":7,"sta":3573,"versatility":796},"attainable":0,"flags2":12352}, +{"item_id": 151800, "name_eses":"Luz de luna radiante","quality":5,"icon":"inv_cape_felfire_raid_d_01","screenshot":0,"jsonequip":{"agi":1340,"agiint":1340,"appearances":{"0":[144305,""]},"armor":161,"classes":1024,"displayid":144305,"hastertng":517,"int":1340,"mastrtng":448,"reqlevel":101,"sellprice":713377,"slotbak":16,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151801, "name_eses":"Ornato de behemoth","quality":5,"icon":"inv_helmet_leather_draenorhonors2_c_01","screenshot":0,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[142284,""]},"armor":326,"classes":1024,"critstrkrtng":919,"displayid":142284,"dura":120,"int":2382,"mastrtng":796,"reqlevel":101,"sellprice":715912,"slotbak":1,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 151802, "name_eses":"Furia de la Naturaleza","quality":5,"icon":"inv_cape_draenorquest90_b_03_mail","screenshot":0,"jsonequip":{"agi":1340,"agiint":1340,"appearances":{"0":[137908,""]},"armor":161,"classes":1024,"critstrkrtng":448,"displayid":137908,"int":1340,"mastrtng":517,"reqlevel":101,"sellprice":718447,"slotbak":16,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151803, "name_eses":"Celeridad de los Brisaveloz","quality":5,"icon":"inv_cape_430dungeon_c_04","screenshot":0,"jsonequip":{"agi":1340,"appearances":{"0":[101364,""]},"armor":161,"classes":4,"displayid":101364,"hastertng":517,"mastrtng":448,"reqlevel":101,"sellprice":652336,"slotbak":16,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151805, "name_eses":"P\u00e1rsel","quality":5,"icon":"inv_chest_mail_dungeonmail_c_03","screenshot":0,"jsonequip":{"agi":2382,"appearances":{"0":[76418,""]},"armor":499,"classes":4,"displayid":76418,"dura":200,"hastertng":919,"mastrtng":796,"reqlevel":101,"sellprice":878214,"slotbak":5,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 151807, "name_eses":"Capa de depredador oculto","quality":5,"icon":"inv_cape_leather_raiddemonhunter_r_01_long","screenshot":0,"jsonequip":{"agi":1340,"appearances":{"0":[70727,"inv_misc_cape_05"]},"armor":161,"classes":4,"displayid":70727,"hastertng":448,"mastrtng":517,"reqlevel":101,"sellprice":680562,"slotbak":16,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151808, "name_eses":"Manto del Kirin Tor inicial","quality":5,"icon":"inv_shoulder_97","screenshot":0,"jsonequip":{"appearances":{"0":[97754,"inv_shoulder_94"]},"armor":242,"classes":128,"critstrkrtng":689,"displayid":97754,"dura":120,"hastertng":597,"int":1786,"reqlevel":101,"sellprice":683097,"slotbak":3,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 151809, "name_eses":"N\u00facleo infernal contenido","quality":5,"icon":"inv_shoulder_robe_raidpriest_j_01","screenshot":0,"jsonequip":{"appearances":{"0":[149573,"inv_shoulder_cloth_raidwarlock_q_01"]},"armor":242,"classes":128,"critstrkrtng":689,"displayid":149573,"dura":120,"hastertng":597,"int":1786,"reqlevel":101,"sellprice":685631,"slotbak":3,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 151810, "name_eses":"Fragmentos rotos de Sindragosa","quality":5,"icon":"inv_helmet_133","screenshot":0,"jsonequip":{"appearances":{"0":[97601,""]},"armor":262,"classes":128,"critstrkrtng":919,"displayid":97601,"dura":120,"hastertng":796,"int":2382,"reqlevel":101,"sellprice":688166,"slotbak":1,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 151811, "name_eses":"Sopla el viento","quality":5,"icon":"inv_helmet_leather_raidmonk_l_01","screenshot":0,"jsonequip":{"agi":2382,"agiint":2382,"appearances":{"0":[111375,""]},"armor":326,"classes":512,"critstrkrtng":796,"displayid":111375,"dura":120,"int":2382,"mastrtng":919,"reqlevel":101,"sellprice":690633,"slotbak":1,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 151812, "name_eses":"Pilares de luz rec\u00f3ndita","quality":5,"icon":"inv_shoulder_126","screenshot":0,"jsonequip":{"appearances":{"0":[65268,""]},"armor":585,"classes":2,"critstrkrtng":689,"displayid":65268,"dura":120,"hastertng":597,"int":1786,"reqlevel":101,"sellprice":693167,"slotbak":3,"sta":2680,"str":1786,"strint":1786},"attainable":0,"flags2":12352}, +{"item_id": 151813, "name_eses":"Expurgaci\u00f3n de inquisidor Escarlata","quality":5,"icon":"inv_chest_plate_raidpaladin_j_01","screenshot":0,"jsonequip":{"appearances":{"0":[100664,""]},"armor":779,"classes":2,"displayid":100664,"dura":200,"hastertng":796,"int":2382,"mastrtng":919,"reqlevel":101,"sellprice":929373,"slotbak":5,"sta":3573,"str":2382,"strint":2382},"attainable":0,"flags2":12352}, +{"item_id": 151814, "name_eses":"Coraz\u00f3n del Vac\u00edo","quality":5,"icon":"inv_chest_cloth_raidpriestmythic_o_01","screenshot":0,"jsonequip":{"appearances":{"0":[119514,"inv_cloth_raidpriest_m_01robe"]},"armor":322,"classes":16,"critstrkrtng":919,"displayid":119514,"dura":200,"hastertng":796,"int":2382,"reqlevel":101,"sellprice":932668,"slotbak":20,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 151815, "name_eses":"Corona vac\u00eda","quality":5,"icon":"inv_crown_02","screenshot":634917,"jsonequip":{"agi":2382,"appearances":{"0":[39275,""]},"armor":326,"classes":8,"critstrkrtng":796,"displayid":39275,"dura":120,"mastrtng":919,"reqlevel":101,"sellprice":700703,"slotbak":1,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 151817, "name_eses":"Maldici\u00f3n de inquietud","quality":5,"icon":"inv_qiraj_draperegal","screenshot":0,"jsonequip":{"agi":1340,"appearances":{"0":[48558,"inv_misc_cape_21"]},"armor":161,"classes":8,"critstrkrtng":517,"displayid":48558,"mastrtng":448,"reqlevel":101,"sellprice":705773,"slotbak":16,"sta":2010},"attainable":0,"flags2":12352}, +{"item_id": 151818, "name_eses":"Primeros muertos","quality":5,"icon":"inv_glove_cloth_raidwarlockmythic_q_01","screenshot":0,"jsonequip":{"agi":1786,"appearances":{"0":[45593,"inv_gauntlets_65"]},"armor":251,"classes":8,"critstrkrtng":597,"displayid":45593,"dura":70,"mastrtng":689,"reqlevel":101,"sellprice":475764,"slotbak":10,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 151819, "name_eses":"Coraz\u00f3n en llamas","quality":5,"icon":"inv_gauntlets_85","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"appearances":{"0":[62253,"inv_gauntlets_25"]},"armor":312,"classes":64,"displayid":62253,"dura":70,"hastertng":689,"int":1786,"mastrtng":597,"reqlevel":101,"sellprice":477466,"slotbak":10,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 151820, "name_eses":"[Primal Ascendant's Stormcallers]","quality":5,"icon":"","screenshot":0,"jsonequip":{"agi":1786,"agiint":1786,"classes":64,"hastertng":597,"int":1786,"mastrtng":689,"reqlevel":101,"sellprice":713309,"slotbak":3,"sta":2680},"attainable":0,"flags2":12352}, +{"item_id": 151821, "name_eses":"Maestro cosechador","quality":5,"icon":"inv_chest_cloth_raidmage_q_01","screenshot":0,"jsonequip":{"appearances":{"0":[61420,"inv_chest_cloth_74"]},"armor":322,"classes":256,"displayid":61420,"dura":200,"hastertng":919,"int":2382,"mastrtng":796,"reqlevel":101,"sellprice":956280,"slotbak":20,"sta":3573},"attainable":0,"flags2":12352}, +{"item_id": 151822, "name_eses":"Espejo de sangre de Ararat","quality":5,"icon":"inv_pants_plate_39v1","screenshot":0,"jsonequip":{"appearances":{"0":[38134,"inv_pants_plate_15"]},"armor":682,"classes":1,"displayid":38134,"dura":145,"mastrtng":919,"reqlevel":101,"sellprice":959575,"slotbak":7,"sta":3573,"str":2382,"versatility":796},"attainable":0,"flags2":12352}, +{"item_id": 151823, "name_eses":"Gran ojo de la tormenta","quality":5,"icon":"inv_plate_raiddeathknight_o_01helm","screenshot":0,"jsonequip":{"appearances":{"0":[136966,""]},"armor":633,"classes":1,"displayid":136966,"dura":120,"hastertng":919,"mastrtng":796,"reqlevel":101,"sellprice":670423,"slotbak":1,"sta":3573,"str":2382},"attainable":0,"flags2":12352}, +{"item_id": 151824, "name_eses":"Rabiosos Valarjar","quality":5,"icon":"inv_pants_plate_raiddeathknight_i_01","screenshot":0,"jsonequip":{"appearances":{"0":[78788,""]},"armor":682,"classes":1,"critstrkrtng":673,"displayid":78788,"dura":145,"hastertng":1041,"reqlevel":101,"sellprice":898989,"slotbak":7,"sta":3573,"str":2382},"attainable":0,"flags2":12352}, +{"item_id": 138489, "name_eses":"[Kargath's Sacrificed Hands]","quality":5,"icon":"","screenshot":0,"jsonequip":{"classes":1,"critstrkrtng":782,"mastrtng":434,"reqlevel":110,"sellprice":431597,"slotbak":10,"sta":2329,"str":1553},"attainable":0,"flags2":12288} +] \ No newline at end of file diff --git a/loot.py b/loot.py new file mode 100755 index 0000000..b8ddec1 --- /dev/null +++ b/loot.py @@ -0,0 +1,59 @@ +#! /usr/bin/python3 + +import redis +import time +import json +import requests +import traceback +import os +import webhook +import conf + +now = time.time() + +wh = webhook.Webhook(conf.url_discord_webhook) + +r = redis.StrictRedis(host='localhost', charset="utf-8", decode_responses=True) + +bnet_member = "https://{1}.api.battle.net/wow/character/dun%20modr/{0}?fields=feed,items&locale=es_ES&apikey={2}" + +# legends database +items = {} +with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), "items_legend.json"), 'r') as f: + js = json.load(f) + + for item in js: + items[item["item_id"]] = item + + +members = r.smembers("bot:members") # i need all guild members +request = requests.Session() + +for m in members: + try: + member = request.get(url=bnet_member.format(m, conf.battle_net_region, conf.battle_net_apikey)).json() + + if "feed" not in member: + continue + + for feed in member["feed"]: + if feed["type"] != "LOOT": + continue + + fid = "{}-{}".format(m, feed["itemId"]) + + if feed["itemId"] in items and r.sadd("bot:legends", fid): + #r.rpush("bot:rss:new", ":unicorn: **{0}** pilla legendario! **{1}**! ".format(member["name"], items[feed["itemId"]]["name_eses"], feed["itemId"]) ) + wh.send(":unicorn: **{0}** pilla legendario! **[{1}]()**".format(member["name"], items[feed["itemId"]]["name_eses"], feed["itemId"])) + + except: + traceback.print_exc() + +""" +Vamos a generar el archivo items_legend.json +Sacar la lista de legends de aquí: view-source:http://es.wowhead.com/items/quality:5/slot:16:5:8:11:10:1:7:2:3:12:6:9?filter=166;7;0 +Buscar: 'var _ = {};' y copiar toda la línea siguiente +Reemplazar: '_\[(\d+)\]=\{' por '\n{"item_id": \1, ' +Reemplazar: ';$' por ',' +Añadir los [ ... ] +""" diff --git a/mythics.py b/mythics.py new file mode 100755 index 0000000..d696732 --- /dev/null +++ b/mythics.py @@ -0,0 +1,94 @@ +#! /usr/bin/python3 + +import redis +import time +import requests +import traceback +import datetime +from lxml import html +from lxml import etree +import webhook +import conf + +now = time.time() + +wh = webhook.Webhook(conf.url_discord_webhook) + +r = redis.StrictRedis(host='localhost', charset="utf-8", decode_responses=True) + +warcraft_api = "https://worldofwarcraft.com/es-es/game/pve/leaderboards/dun-modr/{}" + +members = r.smembers("bot:members") +r.zremrangebyscore("bot:m+", "-inf", now-(60*60*24*7*2)) # 2 semanas + +for zone, instance in conf.zones.items(): + try: + page = requests.get(warcraft_api.format(zone)) + hp = etree.HTMLParser(encoding=page.encoding) + tree = html.fromstring(page.content, parser=hp) # .decode(page.encoding) + + top = tree.xpath('//div[@class="Media-text"]/div[@class="font-semp-medium-white"]/text()') + if len(top) < 3: + print("no affix?") + continue + + affix = "" if top[0] not in conf.affixes else conf.affixes[top[0]] + affix += "" if top[1] not in conf.affixes else conf.affixes[top[1]] + affix += "" if top[2] not in conf.affixes else conf.affixes[top[2]] + + rows = tree.xpath('//div[@class="SortTable-body"]/div[@class="SortTable-row"]') + #print("rows", len(rows)) + + for row in rows: + #print("tiempo", row.xpath('./div[5]/text()')) + #print("row", html.tostring(row)) + pos = row.xpath('./div[1]/text()')[0] + lvl = int(row.xpath('./div[2]/text()')[0]) + record = row.xpath('./div[3]/text()')[0] + datee = row.xpath('./div[5]/text()')[0] #row.xpath('./div[5]/@data-value')[0] + team = row.xpath('./div[4]/div/div[@class="List-item gutter-tiny"]') + #print("row", pos, lvl, time, datee, len(team)) + + k = "{0}.{1}.{2}.{3}".format(zone, lvl, record, datee) + inguild = False + party = [] + + if lvl < 15 or r.zadd("bot:m+", now, k) == 0: + continue + + for player in team: + #print("player", html.tostring(player)) + name = player.xpath('.//div[@class="Character-name"]/text()')[0] + url = str(player.xpath('./a/@href')[0]) + clss = str(player.xpath('./a/@class')[0]) + spec = "" + for key in conf.class_icons.keys(): + if key in clss: + spec = conf.class_icons[key] + #party.append("{2}{0}{1}".format(name, "" if "dun-modr" in url else " *({})*".format(url.split("/")[6]), roles[len(party)])) + party.append("{1}{0}".format(name if "dun-modr" in url else "*{}*".format(name), spec)) + + for member in members: + if "/{}".format(member).lower() in url and "dun-modr" in url: + inguild = True + + if inguild: + chests = 0 + for timer in conf.timers[zone]: + delta = datetime.datetime.strptime(record, '%H:%M:%S') - datetime.datetime.strptime(timer, '%M:%S') + if delta.total_seconds() > 0: + break + chests += 1 + if chests == 3: + delta = datetime.datetime.strptime(timer, '%M:%S') - datetime.datetime.strptime(record, '%H:%M:%S') + + #tip = "(piedra +{0} por {1})".format(chests, delta) + tip = "(piedra +{0})".format(chests, delta) + msg = "{6} **[{0}](<{7}>) +{1}** hecha en **{2}** {3} por {4} / **rank {5}** de Dun Modr".format(instance, lvl, record, tip, " ".join(party), pos, affix, warcraft_api.format(zone)) + #r.rpush("bot:rss:new", msg) + #print(msg) + wh.send(msg) + + except: + traceback.print_exc() + time.sleep(1) diff --git a/rss.py b/rss.py new file mode 100755 index 0000000..cdce32a --- /dev/null +++ b/rss.py @@ -0,0 +1,47 @@ +#! /usr/bin/python3 + +import feedparser +import redis +import time +import traceback +import webhook +import conf + +now = time.time() + +wh = webhook.Webhook(conf.url_discord_webhook) + +r = redis.StrictRedis(host='localhost', charset="utf-8", decode_responses=True) +r.zremrangebyscore("bot:rss", "-inf", now-(60*60*24*30*3)) # 3 meses de caché + +url_feeds = [ + "http://www.wowhead.com/news&rss", + "http://www.mmo-champion.com/external.php?do=rss&type=newcontent§ionid=1&days=120&count=5" +] + +for url in url_feeds: + try: + feed = feedparser.parse(url) + + if "items" not in feed or len(feed["items"]) < 3: + continue + + for i in [0, 1, 2]: # 3 últimas noticias + entry = feed["items"][i] + fid = "{} {}".format(feed["feed"]["title"][0:20], entry["published"]) + if r.zadd("bot:rss", now, fid) == 0: + continue + + if "wowhead.com/" in entry["link"]: + icon = conf.icon_wowhead + elif "mmo-champion.com/" in entry["link"]: + icon = conf.icon_mmoc + else: + icon = ":newspaper2:" + + #r.rpush("bot:rss:new", "{2} {0}\n<{1}>".format(entry["title"], entry["link"], icon)) + wh.send("{2} [{0}](<{1}>)".format(entry["title"], entry["link"], icon)) + + except: + print(url) + traceback.print_exc() diff --git a/streams.py b/streams.py new file mode 100755 index 0000000..4b31b20 --- /dev/null +++ b/streams.py @@ -0,0 +1,31 @@ +#! /usr/bin/python3 + +import redis +import time +import requests +import sys +import webhook +import conf + +now = time.time() + +wh = webhook.Webhook(conf.url_discord_webhook) + +r = redis.StrictRedis(host='localhost', charset="utf-8", decode_responses=True) + +twitch_api = "https://api.twitch.tv/kraken/streams/followed?oauth_token={0}".format(conf.twitch_token) + +r.zremrangebyscore("bot:twitch", "-inf", now-(60*15)) + +t = requests.get(url=twitch_api).json() + +if "streams" not in t: + print(t) + sys.exit() + +for stream in t["streams"]: + if r.zadd("bot:twitch", now, stream["channel"]["name"]) == 0: + continue + + #r.rpush("bot:rss:new", ":projector: **{0}** está stremeando <{1}>".format(stream["channel"]["name"], stream["channel"]["url"])) + wh.send("{3} **{0}** está stremeando! **[{2}](<{1}>)**".format(stream["channel"]["name"], stream["channel"]["url"], stream["channel"]["status"], conf.icon_twitch)) diff --git a/warcraftlogs.py b/warcraftlogs.py new file mode 100755 index 0000000..7a7d257 --- /dev/null +++ b/warcraftlogs.py @@ -0,0 +1,29 @@ +#! /usr/bin/python3 + +import redis +import time +import requests +import webhook +import conf + +now = time.time() + +wh = webhook.Webhook(conf.url_discord_webhook) + +r = redis.StrictRedis(host='localhost', charset="utf-8", decode_responses=True) +r.zremrangebyscore("bot:warcraftlogs", "-inf", now-(60*60*24*30*12)) # 12 meses + +wl_api = "https://www.warcraftlogs.com/v1/reports/guild/vagrant%20story/dun-modr/eu?api_key={0}".format(conf.warcraftlogs_token) + +wl = requests.get(url=wl_api).json() + +for report in wl: + if report["start"]/1000 < now-(60*60*24*7): # oooold, 7 day only + continue + + if not r.zadd("bot:warcraftlogs", now, report["id"]): + continue + + url = "https://www.warcraftlogs.com/reports/{0}".format(report["id"]) + #r.rpush("bot:rss:new", "<:Warcraftlogs:283906655484379138> Log en vivo! **{2}** por **{0}** en <{1}>".format(report["owner"], url, report["title"])) + wh.send("{3} Log en vivo! **[{2}](<{1}>)** por **{0}**".format(report["owner"], url, report["title"], conf.icon_warcraftlogs)) diff --git a/webhook.py b/webhook.py new file mode 100644 index 0000000..ec95c6e --- /dev/null +++ b/webhook.py @@ -0,0 +1,64 @@ + +# https://github.com/Derpolino/discord-webhooks-python/blob/master/discordWebhooks.py + +import requests +import json + +# https://discordapp.com/developers/docs/resources/webhook#execute-webhook +class Webhook(): + + def __init__(self, url, **kwargs): + self.url = url + self.wh = { + "username": kwargs.get("username", None), + "avatar_url": kwargs.get("avatar_url", None), + "content": None, + "embeds": [] + } + + def add_embed(self, embed): + self.wh["embeds"].append(embed) + + def clear_embeds(self): + self.wh["embeds"] = [] + + def send(self, content=None, tts=False): + self.wh["content"] = content + self.wh["tts"] = tts + #print(self.wh) + + r = requests.post(self.url, json=self.wh) + + if r.text != "": + raise Exception("Webhook error: {0}".format(r.text)) + return True + + +# https://discordapp.com/developers/docs/resources/channel#embed-object +def embed(**kwargs): + return { + "title": kwargs.get("title", None), + "description": kwargs.get("description", None), + "url": kwargs.get("url", None), + "color": kwargs.get("color", None), + "footer": kwargs.get("footer", None), + "fields": kwargs.get("fields", []) + } + + +def field(name, value, inline=False): + return { + "name": name, + "value": value, + "inline": inline + } + + +def footer(text, icon_url): + return { + "text": text, + "icon_url": icon_url + } + + +__all__ = ["Webhook", "embed", "field", "footer"] diff --git a/wowprogress.py b/wowprogress.py new file mode 100755 index 0000000..3de64bc --- /dev/null +++ b/wowprogress.py @@ -0,0 +1,36 @@ +#! /usr/bin/python3 + +import redis +import time +import requests +import webhook +import conf + +now = time.time() + +wh = webhook.Webhook(conf.url_discord_webhook) + +r = redis.StrictRedis(host='localhost', charset="utf-8", decode_responses=True) + +wp_api = "http://www.wowprogress.com/guild/eu/dun-modr/VaGRaNT+SToRY/json_rank" + +rank = requests.get(url=wp_api).json() + +if rank is not None and "realm_rank" in rank: + last = r.get("bot:wowprogress") + realm = rank["realm_rank"] + msg = None + + if last is None: + msg = ":arrow_right: Vagrant entra en el ranking de Dun Modr: **{0}**".format(realm) + + elif int(last) > int(rank["realm_rank"]): + msg = ":arrow_up: Vagrant sube en el ranking de Dun Modr: **{0}** (+{1})".format(realm, int(last)-int(realm)) + + elif int(last) < int(realm): + msg = ":arrow_down: Vagrant baja en el ranking de Dun Modr: **{0}** (-{1})".format(realm, int(realm)-int(last)) + + r.set("bot:wowprogress", realm) + + if msg: + wh.send(msg)