unite-lib 1.3.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/i18n/index.ts","../../src/constants.ts","../../src/pokemons.ts","../../src/maps.ts","../../src/neutrals.ts","../../src/i18n/en.ts","../../src/i18n/pt-BR.ts","../../src/i18n/ja-JP.ts","../../src/i18n/fr.ts","../../src/i18n/es.ts"],"sourcesContent":["import en from \"./en\";\nimport ptBR from \"./pt-BR\";\nimport jaJP from \"./ja-JP\";\nimport fr from \"./fr\";\nimport es from \"./es\";\n\nexport type Locale = \"en\" | \"pt-BR\" | \"ja-JP\" | \"fr\" | \"es\";\n\nconst locales: Record<Locale, Record<string, string>> = {\n en,\n \"pt-BR\": ptBR,\n \"ja-JP\": jaJP,\n fr,\n es,\n};\n\n/**\n * Returns the display name for a Pokémon by slug/id and locale.\n * Falls back to English if the locale is missing the key, then to the id.\n */\nexport function getPokemonName(id: string, locale: Locale = \"en\"): string {\n const map = locales[locale] ?? en;\n return map[id] ?? en[id] ?? id;\n}\n\n/**\n * Returns the localized name for a map by id and locale.\n * Falls back to English, then to the id.\n */\nexport function getMapName(mapId: string, locale: Locale = \"en\"): string {\n const map = locales[locale] ?? en;\n return map[mapId] ?? en[mapId] ?? mapId;\n}\n\n/**\n * Returns the localized description for a map by id and locale.\n * Falls back to English, then to empty string.\n */\nexport function getMapDescription(\n mapId: string,\n locale: Locale = \"en\"\n): string {\n const key = `${mapId}.description`;\n const map = locales[locale] ?? en;\n return map[key] ?? en[key] ?? \"\";\n}\n\n/**\n * Returns the localized name for a neutral (wild Pokémon/item) by id and locale.\n * Falls back to English, then to the id.\n */\nexport function getNeutralName(\n neutralId: string,\n locale: Locale = \"en\"\n): string {\n const map = locales[locale] ?? en;\n return map[neutralId] ?? en[neutralId] ?? neutralId;\n}\n\n/**\n * Returns the localized spawn info HTML by key and locale.\n * Key format: \"spawn.info.<infoKey>\". Falls back to English, then to empty string.\n */\nexport function getSpawnInfo(\n infoKey: string,\n locale: Locale = \"en\"\n): string {\n const key = `spawn.info.${infoKey}`;\n const map = locales[locale] ?? en;\n return map[key] ?? en[key] ?? \"\";\n}\n\n/** MapSpawn with optional infoKey (from types). */\ntype SpawnLike = { infoKey?: string; info?: string };\n\n/**\n * Returns the localized spawn info HTML for a spawn. Uses infoKey when set, else spawn.info.\n */\nexport function getSpawnInfoForSpawn(\n spawn: SpawnLike,\n locale: Locale = \"en\"\n): string {\n if (spawn.infoKey) {\n const out = getSpawnInfo(spawn.infoKey, locale);\n if (out) return out;\n }\n return spawn.info ?? \"\";\n}\n\nexport { en, ptBR, jaJP, fr, es };\n","/**\n * Battle role in Pokémon Unite (Attacker, Defender, etc.).\n * Use as const object for framework-agnostic usage.\n */\nexport const BattleType = {\n ATTACKER: \"attacker\",\n DEFENDER: \"defender\",\n ALLROUNDER: \"allrounder\",\n SPEEDSTER: \"speedster\",\n SUPPORTER: \"supporter\",\n} as const;\n\nexport type BattleType = (typeof BattleType)[keyof typeof BattleType];\n\n/**\n * Tags for filtering (role + attack style).\n */\nexport const Tag = {\n ATTACKER: \"attacker\",\n DEFENDER: \"defender\",\n ALLROUNDER: \"allrounder\",\n SPEEDSTER: \"speedster\",\n SUPPORTER: \"supporter\",\n MELEE: \"melee\",\n RANGED: \"ranged\",\n} as const;\n\nexport type Tag = (typeof Tag)[keyof typeof Tag];\n","import { BattleType, Tag } from \"./constants\";\nimport type { Pokemon } from \"./types\";\n\nconst pokemons: Array<Pokemon> = [{\n \"name\": \"Venusaur\",\n \"dex\": 3,\n \"images\": {\n \"main\": \"pokemons/roster-venusaur.png\",\n \"big\": \"pokemons/roster-venusaur-2x.png\",\n \"complete\": \"pokemons/stat-venusaur.png\",\n \"move_s11\": \"moves/venusaur_s11.png\",\n \"move_s12\": \"moves/venusaur_s12.png\",\n \"move_s21\": \"moves/venusaur_s21.png\",\n \"move_s22\": \"moves/venusaur_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 2,\n \"mobility\": 2,\n \"scoring\": 2.5,\n \"support\": 1\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Charizard\",\n \"dex\": 6,\n \"images\": {\n \"main\": \"pokemons/roster-charizard.png\",\n \"big\": \"pokemons/roster-charizard-2x.png\",\n \"complete\": \"pokemons/stat-charizard.png\",\n \"move_s11\": \"moves/charizard_s11.png\",\n \"move_s12\": \"moves/charizard_s12.png\",\n \"move_s21\": \"moves/charizard_s21.png\",\n \"move_s22\": \"moves/charizard_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 3,\n \"mobility\": 2.5,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"difficulty\": 1,\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ]\n},\n{\n \"name\": \"Mega Charizard X\",\n \"dex\": 6.1,\n \"images\": {\n \"main\": \"pokemons/roster-mega-charizard-x.png\",\n \"big\": \"pokemons/roster-mega-charizard-x-2x.png\",\n \"complete\": \"pokemons/stat-mega-charizard-x.png\",\n \"move_s11\": \"moves/mega-charizard_s11.png\",\n \"move_s21\": \"moves/mega-charizard_s21.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 3.5,\n \"mobility\": 2.5,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"difficulty\": 1,\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ]\n},\n{\n \"name\": \"Mega Charizard Y\",\n \"dex\": 6.2,\n \"images\": {\n \"main\": \"pokemons/roster-mega-charizard-y.png\",\n \"big\": \"pokemons/roster-mega-charizard-y-2x.png\",\n \"complete\": \"pokemons/stat-mega-charizard-y.png\",\n \"move_s11\": \"moves/mega-charizard_s12.png\",\n \"move_s21\": \"moves/mega-charizard_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 3,\n \"mobility\": 4,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Blastoise\",\n \"dex\": 9,\n \"images\": {\n \"main\": \"pokemons/roster-blastoise.png\",\n \"big\": \"pokemons/roster-blastoise-2x.png\",\n \"complete\": \"pokemons/stat-blastoise.png\",\n \"move_s11\": \"moves/blastoise_s11.png\",\n \"move_s12\": \"moves/blastoise_s12.png\",\n \"move_s21\": \"moves/blastoise_s21.png\",\n \"move_s22\": \"moves/blastoise_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"tags\": [\n Tag.DEFENDER,\n Tag.RANGED\n ],\n \"difficulty\": 2,\n \"stats\": {\n \"offense\": 2,\n \"endurance\": 3.5,\n \"mobility\": 2,\n \"scoring\": 2,\n \"support\": 3\n }\n},\n{\n \"name\": \"Pikachu\",\n \"dex\": 25,\n \"images\": {\n \"main\": \"pokemons/roster-pikachu.png\",\n \"big\": \"pokemons/roster-pikachu-2x.png\",\n \"complete\": \"pokemons/stat-pikachu.png\",\n \"move_s11\": \"moves/pikachu_s11.png\",\n \"move_s12\": \"moves/pikachu_s12.png\",\n \"move_s21\": \"moves/pikachu_s21.png\",\n \"move_s22\": \"moves/pikachu_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 1.5,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 1.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Alolan Raichu\",\n \"dex\": 26,\n \"images\": {\n \"main\": \"pokemons/roster-alolan-raichu.png\",\n \"big\": \"pokemons/roster-alolan-raichu-2x.png\",\n \"complete\": \"pokemons/stat-alolan-raichu.png\",\n \"move_s11\": \"moves/alolan-raichu_s11.png\",\n \"move_s12\": \"moves/alolan-raichu_s12.png\",\n \"move_s21\": \"moves/alolan-raichu_s21.png\",\n \"move_s22\": \"moves/alolan-raichu_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 1.5,\n \"mobility\": 3.5,\n \"scoring\": 3,\n \"support\": 1\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Clefable\",\n \"dex\": 36,\n \"images\": {\n \"main\": \"pokemons/roster-clefable.png\",\n \"big\": \"pokemons/roster-clefable-2x.png\",\n \"complete\": \"pokemons/stat-clefable.png\",\n \"move_s11\": \"moves/clefable_s11.png\",\n \"move_s12\": \"moves/clefable_s12.png\",\n \"move_s21\": \"moves/clefable_s21.png\",\n \"move_s22\": \"moves/clefable_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 2,\n \"endurance\": 3,\n \"mobility\": 1.5,\n \"scoring\": 1.5,\n \"support\": 4.5\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Alolan Ninetales\",\n \"dex\": 38,\n \"images\": {\n \"main\": \"pokemons/roster-alolan-ninetales.png\",\n \"big\": \"pokemons/roster-alolan-ninetales-2x.png\",\n \"complete\": \"pokemons/stat-alolan-ninetales.png\",\n \"move_s11\": \"moves/alolan-ninetales_s11.png\",\n \"move_s12\": \"moves/alolan-ninetales_s12.png\",\n \"move_s21\": \"moves/alolan-ninetales_s21.png\",\n \"move_s22\": \"moves/alolan-ninetales_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 1.5,\n \"mobility\": 1.5,\n \"scoring\": 2.5,\n \"support\": 3\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Wigglytuff\",\n \"dex\": 40,\n \"images\": {\n \"main\": \"pokemons/roster-wigglytuff.png\",\n \"big\": \"pokemons/roster-wigglytuff-2x.png\",\n \"complete\": \"pokemons/stat-wigglytuff.png\",\n \"move_s11\": \"moves/wigglytuff_s11.png\",\n \"move_s12\": \"moves/wigglytuff_s12.png\",\n \"move_s21\": \"moves/wigglytuff_s21.png\",\n \"move_s22\": \"moves/wigglytuff_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 1,\n \"endurance\": 2.5,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 4.5\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Meowth\",\n \"dex\": 52,\n \"images\": {\n \"main\": \"pokemons/roster-meowth.png\",\n \"big\": \"pokemons/roster-meowth-2x.png\",\n \"complete\": \"pokemons/stat-meowth.png\",\n \"move_s11\": \"moves/meowth_s11.png\",\n \"move_s12\": \"moves/meowth_s12.png\",\n \"move_s21\": \"moves/meowth_s21.png\",\n \"move_s22\": \"moves/meowth_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 2,\n \"endurance\": 2,\n \"mobility\": 4,\n \"scoring\": 3,\n \"support\": 2\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Psyduck\",\n \"dex\": 54,\n \"images\": {\n \"main\": \"pokemons/roster-psyduck.png\",\n \"big\": \"pokemons/roster-psyduck-2x.png\",\n \"complete\": \"pokemons/stat-psyduck.png\",\n \"move_s11\": \"moves/psyduck_s11.png\",\n \"move_s12\": \"moves/psyduck_s12.png\",\n \"move_s21\": \"moves/psyduck_s21.png\",\n \"move_s22\": \"moves/psyduck_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 1,\n \"mobility\": 2,\n \"scoring\": 1,\n \"support\": 3\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Machamp\",\n \"dex\": 68,\n \"images\": {\n \"main\": \"pokemons/roster-machamp.png\",\n \"big\": \"pokemons/roster-machamp-2x.png\",\n \"complete\": \"pokemons/stat-machamp.png\",\n \"move_s11\": \"moves/machamp_s11.png\",\n \"move_s12\": \"moves/machamp_s12.png\",\n \"move_s21\": \"moves/machamp_s21.png\",\n \"move_s22\": \"moves/machamp_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2.5,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 1\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Galarian Rapidash\",\n \"dex\": 78,\n \"images\": {\n \"main\": \"pokemons/roster-galarian-rapidash.png\",\n \"big\": \"pokemons/roster-galarian-rapidash-2x.png\",\n \"complete\": \"pokemons/stat-galarian-rapidash.png\",\n \"move_s11\": \"moves/galarian-rapidash_s11.png\",\n \"move_s12\": \"moves/galarian-rapidash_s12.png\",\n \"move_s21\": \"moves/galarian-rapidash_s21.png\",\n \"move_s22\": \"moves/galarian-rapidash_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 4,\n \"mobility\": 4,\n \"scoring\": 2,\n \"support\": 1\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Slowbro\",\n \"dex\": 80,\n \"images\": {\n \"main\": \"pokemons/roster-slowbro.png\",\n \"big\": \"pokemons/roster-slowbro-2x.png\",\n \"complete\": \"pokemons/stat-slowbro.png\",\n \"move_s11\": \"moves/slowbro_s11.png\",\n \"move_s12\": \"moves/slowbro_s12.png\",\n \"move_s21\": \"moves/slowbro_s21.png\",\n \"move_s22\": \"moves/slowbro_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 1.5,\n \"endurance\": 4,\n \"mobility\": 1.5,\n \"scoring\": 1.5,\n \"support\": 4\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Dodrio\",\n \"dex\": 85,\n \"images\": {\n \"main\": \"pokemons/roster-dodrio.png\",\n \"big\": \"pokemons/roster-dodrio-2x.png\",\n \"complete\": \"pokemons/stat-dodrio.png\",\n \"move_s11\": \"moves/dodrio_s11.png\",\n \"move_s12\": \"moves/dodrio_s12.png\",\n \"move_s21\": \"moves/dodrio_s21.png\",\n \"move_s22\": \"moves/dodrio_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 3,\n \"endurance\": 2,\n \"mobility\": 4,\n \"scoring\": 4,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Gengar\",\n \"dex\": 94,\n \"images\": {\n \"main\": \"pokemons/roster-gengar.png\",\n \"big\": \"pokemons/roster-gengar-2x.png\",\n \"complete\": \"pokemons/stat-gengar.png\",\n \"move_s11\": \"moves/gengar_s11.png\",\n \"move_s12\": \"moves/gengar_s12.png\",\n \"move_s21\": \"moves/gengar_s21.png\",\n \"move_s22\": \"moves/gengar_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 2,\n \"mobility\": 4,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Blissey\",\n \"dex\": 242,\n \"images\": {\n \"main\": \"pokemons/roster-blissey.png\",\n \"big\": \"pokemons/roster-blissey-2x.png\",\n \"complete\": \"pokemons/stat-blissey.png\",\n \"move_s11\": \"moves/blissey_s11.png\",\n \"move_s12\": \"moves/blissey_s12.png\",\n \"move_s21\": \"moves/blissey_s21.png\",\n \"move_s22\": \"moves/blissey_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 1,\n \"endurance\": 3.5,\n \"mobility\": 1.5,\n \"scoring\": 1.5,\n \"support\": 4.5\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Mr. Mime\",\n \"dex\": 122,\n \"images\": {\n \"main\": \"pokemons/roster-mr-mime.png\",\n \"big\": \"pokemons/roster-mr-mime-2x.png\",\n \"complete\": \"pokemons/stat-mr-mime.png\",\n \"move_s11\": \"moves/mr-mime_s11.png\",\n \"move_s12\": \"moves/mr-mime_s12.png\",\n \"move_s21\": \"moves/mr-mime_s21.png\",\n \"move_s22\": \"moves/mr-mime_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"tags\": [Tag.SUPPORTER, Tag.RANGED]\n},\n{\n \"name\": \"Scizor\",\n \"dex\": 212,\n \"images\": {\n \"main\": \"pokemons/roster-scizor.png\",\n \"big\": \"pokemons/roster-scizor-2x.png\",\n \"complete\": \"pokemons/stat-scizor.png\",\n \"move_s11\": \"moves/scizor_s11.png\",\n \"move_s12\": \"moves/scizor_s12.png\",\n \"move_s21\": \"moves/scizor_s21.png\",\n \"move_s22\": \"moves/scizor_s22.png\",\n \"move_s23\": \"moves/scizor_s23.png\",\n \"move_s24\": \"moves/scizor_s24.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 2.5,\n \"mobility\": 4.5,\n \"scoring\": 2.5,\n \"support\": 1\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Gyarados\",\n \"dex\": 130,\n \"images\": {\n \"main\": \"pokemons/roster-gyarados.png\",\n \"big\": \"pokemons/roster-gyarados-2x.png\",\n \"complete\": \"pokemons/stat-gyarados.png\",\n \"move_s11\": \"moves/gyarados_s11.png\",\n \"move_s12\": \"moves/gyarados_s12.png\",\n \"move_s21\": \"moves/gyarados_s21.png\",\n \"move_s22\": \"moves/gyarados_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 2.5,\n \"mobility\": 4.5,\n \"scoring\": 2.5,\n \"support\": 1\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Mega Gyarados\",\n \"dex\": 130.1,\n \"images\": {\n \"main\": \"pokemons/roster-mega-gyarados.png\",\n \"big\": \"pokemons/roster-mega-gyarados-2x.png\",\n \"complete\": \"pokemons/stat-mega-gyarados.png\",\n \"move_s11\": \"moves/mega-gyarados_s11.png\",\n \"move_s21\": \"moves/mega-gyarados_s21.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 3.5,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 1.5\n },\n \"difficulty\": 1,\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ]\n},\n{\n \"name\": \"Lapras\",\n \"dex\": 131,\n \"images\": {\n \"main\": \"pokemons/roster-lapras.png\",\n \"big\": \"pokemons/roster-lapras-2x.png\",\n \"complete\": \"pokemons/stat-lapras.png\",\n \"move_s11\": \"moves/lapras_s11.png\",\n \"move_s12\": \"moves/lapras_s12.png\",\n \"move_s21\": \"moves/lapras_s21.png\",\n \"move_s22\": \"moves/lapras_s22.png\",\n },\n \"active\": true,\n \"tags\": [\n Tag.DEFENDER,\n Tag.RANGED\n ],\n \"difficulty\": 2,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 3,\n \"endurance\": 3.5,\n \"mobility\": 2,\n \"scoring\": 2,\n \"support\": 3\n }\n},\n{\n \"name\": \"Vaporeon\",\n \"dex\": 134,\n \"images\": {\n \"main\": \"pokemons/roster-vaporeon.png\",\n \"big\": \"pokemons/roster-vaporeon-2x.png\",\n \"complete\": \"pokemons/stat-vaporeon.png\",\n \"move_s11\": \"moves/vaporeon_s11.png\",\n \"move_s12\": \"moves/vaporeon_s12.png\",\n \"move_s21\": \"moves/vaporeon_s21.png\",\n \"move_s22\": \"moves/vaporeon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 2,\n \"endurance\": 4,\n \"mobility\": 3,\n \"scoring\": 2,\n \"support\": 4\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Snorlax\",\n \"dex\": 143,\n \"images\": {\n \"main\": \"pokemons/roster-snorlax.png\",\n \"big\": \"pokemons/roster-snorlax-2x.png\",\n \"complete\": \"pokemons/stat-snorlax.png\",\n \"move_s11\": \"moves/snorlax_s11.png\",\n \"move_s12\": \"moves/snorlax_s12.png\",\n \"move_s21\": \"moves/snorlax_s21.png\",\n \"move_s22\": \"moves/snorlax_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 1.5,\n \"endurance\": 5,\n \"mobility\": 2,\n \"scoring\": 1.5,\n \"support\": 2.5\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Zapdos\",\n \"dex\": 145,\n \"images\": {\n \"main\": \"pokemons/roster-zapdos.png\",\n \"big\": \"pokemons/roster-zapdos-2x.png\",\n \"complete\": \"pokemons/stat-zapdos.png\",\n \"move_s11\": \"moves/zapdos_s11.png\",\n \"move_s21\": \"moves/zapdos_s21.png\"\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 5,\n \"endurance\": 2,\n \"mobility\": 1,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Moltres\",\n \"dex\": 146,\n \"images\": {\n \"main\": \"pokemons/roster-moltres.png\",\n \"big\": \"pokemons/roster-moltres-2x.png\",\n \"complete\": \"pokemons/stat-moltres.png\",\n \"move_s11\": \"moves/moltres_s11.png\",\n \"move_s21\": \"moves/moltres_s21.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2.5,\n \"mobility\": 2,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Dragonite\",\n \"dex\": 149,\n \"images\": {\n \"main\": \"pokemons/roster-dragonite.png\",\n \"big\": \"pokemons/roster-dragonite-2x.png\",\n \"complete\": \"pokemons/stat-dragonite.png\",\n \"move_s11\": \"moves/dragonite_s11.png\",\n \"move_s12\": \"moves/dragonite_s12.png\",\n \"move_s21\": \"moves/dragonite_s21.png\",\n \"move_s22\": \"moves/dragonite_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2.5,\n \"mobility\": 2.5,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Mega Mewtwo X\",\n \"dex\": 150,\n \"images\": {\n \"main\": \"pokemons/roster-mewtwox.png\",\n \"big\": \"pokemons/roster-mewtwox-2x.png\",\n \"complete\": \"pokemons/stat-mewtwox.png\",\n \"move_s11\": \"moves/mewtwox_s11.png\",\n \"move_s12\": \"moves/mewtwox_s12.png\",\n \"move_s21\": \"moves/mewtwox_s21.png\",\n \"move_s22\": \"moves/mewtwox_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 4,\n \"mobility\": 3,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Mega Mewtwo Y\",\n \"dex\": 150,\n \"images\": {\n \"main\": \"pokemons/roster-mewtwoy.png\",\n \"big\": \"pokemons/roster-mewtwoy-2x.png\",\n \"complete\": \"pokemons/stat-mewtwoy.png\",\n \"move_s11\": \"moves/mewtwoy_s11.png\",\n \"move_s12\": \"moves/mewtwoy_s12.png\",\n \"move_s21\": \"moves/mewtwoy_s21.png\",\n \"move_s22\": \"moves/mewtwoy_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 5,\n \"endurance\": 3,\n \"mobility\": 3.5,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Mew\",\n \"dex\": 151,\n \"images\": {\n \"main\": \"pokemons/roster-mew.png\",\n \"big\": \"pokemons/roster-mew-2x.png\",\n \"complete\": \"pokemons/stat-mew.png\",\n \"move_s11\": \"moves/mew_s11.png\",\n \"move_s12\": \"moves/mew_s12.png\",\n \"move_s13\": \"moves/mew_s13.png\",\n \"move_s21\": \"moves/mew_s21.png\",\n \"move_s22\": \"moves/mew_s22.png\",\n \"move_s23\": \"moves/mew_s23.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2,\n \"mobility\": 3,\n \"scoring\": 2,\n \"support\": 3,\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Azumarill\",\n \"dex\": 184,\n \"images\": {\n \"main\": \"pokemons/roster-azumarill.png\",\n \"big\": \"pokemons/roster-azumarill-2x.png\",\n \"complete\": \"pokemons/stat-azumarill.png\",\n \"move_s11\": \"moves/azumarill_s11.png\",\n \"move_s12\": \"moves/azumarill_s12.png\",\n \"move_s21\": \"moves/azumarill_s21.png\",\n \"move_s22\": \"moves/azumarill_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3,\n \"endurance\": 3,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Espeon\",\n \"dex\": 196,\n \"images\": {\n \"main\": \"pokemons/roster-espeon.png\",\n \"big\": \"pokemons/roster-espeon-2x.png\",\n \"complete\": \"pokemons/stat-espeon.png\",\n \"move_s11\": \"moves/espeon_s11.png\",\n \"move_s12\": \"moves/espeon_s12.png\",\n \"move_s21\": \"moves/espeon_s21.png\",\n \"move_s22\": \"moves/espeon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2,\n \"mobility\": 1.5,\n \"scoring\": 2,\n \"support\": 3\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Umbreon\",\n \"dex\": 197,\n \"images\": {\n \"main\": \"pokemons/roster-umbreon.png\",\n \"big\": \"pokemons/roster-umbreon-2x.png\",\n \"complete\": \"pokemons/stat-umbreon.png\",\n \"move_s11\": \"moves/umbreon_s11.png\",\n \"move_s12\": \"moves/umbreon_s12.png\",\n \"move_s21\": \"moves/umbreon_s21.png\",\n \"move_s22\": \"moves/umbreon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"tags\": [Tag.DEFENDER, Tag.MELEE]\n},\n{\n \"name\": \"Mamoswine\",\n \"dex\": 473,\n \"images\": {\n \"main\": \"pokemons/roster-mamoswine.png\",\n \"big\": \"pokemons/roster-mamoswine-2x.png\",\n \"complete\": \"pokemons/stat-mamoswine.png\",\n \"move_s11\": \"moves/mamoswine_s11.png\",\n \"move_s12\": \"moves/mamoswine_s12.png\",\n \"move_s21\": \"moves/mamoswine_s21.png\",\n \"move_s22\": \"moves/mamoswine_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 2.5,\n \"endurance\": 4,\n \"mobility\": 2,\n \"scoring\": 1.5,\n \"support\": 2.5\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Suicune\",\n \"dex\": 245,\n \"images\": {\n \"main\": \"pokemons/roster-suicune.png\",\n \"big\": \"pokemons/roster-suicune-2x.png\",\n \"complete\": \"pokemons/stat-suicune.png\",\n \"move_s11\": \"moves/suicune_s11.png\",\n \"move_s12\": \"moves/suicune_s12.png\",\n \"move_s21\": \"moves/suicune_s21.png\",\n \"move_s22\": \"moves/suicune_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 5,\n \"endurance\": 2.5,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Tyranitar\",\n \"dex\": 248,\n \"images\": {\n \"main\": \"pokemons/roster-tyranitar.png\",\n \"big\": \"pokemons/roster-tyranitar-2x.png\",\n \"complete\": \"pokemons/stat-tyranitar.png\",\n \"move_s11\": \"moves/tyranitar_s11.png\",\n \"move_s12\": \"moves/tyranitar_s12.png\",\n \"move_s21\": \"moves/tyranitar_s21.png\",\n \"move_s22\": \"moves/tyranitar_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 4,\n \"mobility\": 2,\n \"scoring\": 1.5,\n \"support\": 1\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Ho-Oh\",\n \"dex\": 250,\n \"images\": {\n \"main\": \"pokemons/roster-ho-oh.png\",\n \"big\": \"pokemons/roster-ho-oh-2x.png\",\n \"complete\": \"pokemons/stat-ho-oh.png\",\n \"move_s11\": \"moves/ho-oh_s11.png\",\n \"move_s12\": \"moves/ho-oh_s12.png\",\n \"move_s21\": \"moves/ho-oh_s21.png\",\n \"move_s22\": \"moves/ho-oh_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 3,\n \"endurance\": 4,\n \"mobility\": 2,\n \"scoring\": 1,\n \"support\": 3\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Blaziken\",\n \"dex\": 257,\n \"images\": {\n \"main\": \"pokemons/roster-blaziken.png\",\n \"big\": \"pokemons/roster-blaziken-2x.png\",\n \"complete\": \"pokemons/stat-blaziken.png\",\n \"move_s11\": \"moves/blaziken_s11.png\",\n \"move_s12\": \"moves/blaziken_s12.png\",\n \"move_s21\": \"moves/blaziken_s21.png\",\n \"move_s22\": \"moves/blaziken_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2.5,\n \"mobility\": 4,\n \"scoring\": 1,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.MELEE,\n Tag.ALLROUNDER\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Gardevoir\",\n \"dex\": 282,\n \"images\": {\n \"main\": \"pokemons/roster-gardevoir.png\",\n \"big\": \"pokemons/roster-gardevoir-2x.png\",\n \"complete\": \"pokemons/stat-gardevoir.png\",\n \"move_s11\": \"moves/gardevoir_s11.png\",\n \"move_s12\": \"moves/gardevoir_s12.png\",\n \"move_s21\": \"moves/gardevoir_s21.png\",\n \"move_s22\": \"moves/gardevoir_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 1.5,\n \"mobility\": 1.5,\n \"scoring\": 3,\n \"support\": 1.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Sableye\",\n \"dex\": 302,\n \"images\": {\n \"main\": \"pokemons/roster-sableye.png\",\n \"big\": \"pokemons/roster-sableye-2x.png\",\n \"complete\": \"pokemons/stat-sableye.png\",\n \"move_s11\": \"moves/sableye_s11.png\",\n \"move_s12\": \"moves/sableye_s12.png\",\n \"move_s21\": \"moves/sableye_s21.png\",\n \"move_s22\": \"moves/sableye_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 1,\n \"endurance\": 2.5,\n \"mobility\": 2.5,\n \"scoring\": 3.5,\n \"support\": 3.5\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Absol\",\n \"dex\": 359,\n \"images\": {\n \"main\": \"pokemons/roster-absol.png\",\n \"big\": \"pokemons/roster-absol-2x.png\",\n \"complete\": \"pokemons/stat-absol.png\",\n \"move_s11\": \"moves/absol_s11.png\",\n \"move_s12\": \"moves/absol_s12.png\",\n \"move_s21\": \"moves/absol_s21.png\",\n \"move_s22\": \"moves/absol_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 2,\n \"mobility\": 4,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Metagross\",\n \"dex\": 376,\n \"images\": {\n \"main\": \"pokemons/roster-metagross.png\",\n \"big\": \"pokemons/roster-metagross-2x.png\",\n \"complete\": \"pokemons/stat-metagross.png\",\n \"move_s11\": \"moves/metagross_s11.png\",\n \"move_s12\": \"moves/metagross_s12.png\",\n \"move_s21\": \"moves/metagross_s21.png\",\n \"move_s22\": \"moves/metagross_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 3,\n \"mobility\": 2.5,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"difficulty\": 2,\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ]\n},\n{\n \"name\": \"Latias\",\n \"dex\": 380,\n \"images\": {\n \"main\": \"pokemons/roster-latias.png\",\n \"big\": \"pokemons/roster-latias-2x.png\",\n \"complete\": \"pokemons/stat-latias.png\",\n \"move_s11\": \"moves/latias_s11.png\",\n \"move_s12\": \"moves/latias_s12.png\",\n \"move_s21\": \"moves/latias_s21.png\",\n \"move_s22\": \"moves/latias_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 1.5,\n \"mobility\": 4,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Latios\",\n \"dex\": 381,\n \"images\": {\n \"main\": \"pokemons/roster-latios.png\",\n \"big\": \"pokemons/roster-latios-2x.png\",\n \"complete\": \"pokemons/stat-latios.png\",\n \"move_s11\": \"moves/latios_s11.png\",\n \"move_s12\": \"moves/latios_s12.png\",\n \"move_s21\": \"moves/latios_s21.png\",\n \"move_s22\": \"moves/latios_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 1.5,\n \"mobility\": 4,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Empoleon\",\n \"dex\": 395,\n \"images\": {\n \"main\": \"pokemons/roster-empoleon.png\",\n \"big\": \"pokemons/roster-empoleon-2x.png\",\n \"complete\": \"pokemons/stat-empoleon.png\",\n \"move_s11\": \"moves/empoleon_s11.png\",\n \"move_s12\": \"moves/empoleon_s12.png\",\n \"move_s21\": \"moves/empoleon_s21.png\",\n \"move_s22\": \"moves/empoleon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 3.5,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 1.5\n },\n \"difficulty\": 2,\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ]\n},\n{\n \"name\": \"Garchomp\",\n \"dex\": 445,\n \"images\": {\n \"main\": \"pokemons/roster-garchomp.png\",\n \"big\": \"pokemons/roster-garchomp-2x.png\",\n \"complete\": \"pokemons/stat-garchomp.png\",\n \"move_s11\": \"moves/garchomp_s11.png\",\n \"move_s12\": \"moves/garchomp_s12.png\",\n \"move_s21\": \"moves/garchomp_s21.png\",\n \"move_s22\": \"moves/garchomp_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 3.5,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Lucario\",\n \"dex\": 448,\n \"images\": {\n \"main\": \"pokemons/roster-lucario.png\",\n \"big\": \"pokemons/roster-lucario-2x.png\",\n \"complete\": \"pokemons/stat-lucario.png\",\n \"move_s11\": \"moves/lucario_s11.png\",\n \"move_s12\": \"moves/lucario_s12.png\",\n \"move_s21\": \"moves/lucario_s21.png\",\n \"move_s22\": \"moves/lucario_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3,\n \"endurance\": 2.5,\n \"mobility\": 3.5,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Mega Lucario\",\n \"dex\": 448.1,\n \"images\": {\n \"main\": \"pokemons/roster-mega-lucario.png\",\n \"big\": \"pokemons/roster-mega-lucario-2x.png\",\n \"complete\": \"pokemons/stat-mega-lucario.png\",\n \"move_s11\": \"moves/mega-lucario_s11.png\",\n \"move_s21\": \"moves/mega-lucario_s21.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 2,\n \"mobility\": 3.5,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Leafeon\",\n \"dex\": 470,\n \"images\": {\n \"main\": \"pokemons/roster-leafeon.png\",\n \"big\": \"pokemons/roster-leafeon-2x.png\",\n \"complete\": \"pokemons/stat-leafeon.png\",\n \"move_s11\": \"moves/leafeon_s11.png\",\n \"move_s12\": \"moves/leafeon_s12.png\",\n \"move_s21\": \"moves/leafeon_s21.png\",\n \"move_s22\": \"moves/leafeon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 1.5,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 2.5\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Glaceon\",\n \"dex\": 471,\n \"images\": {\n \"main\": \"pokemons/roster-glaceon.png\",\n \"big\": \"pokemons/roster-glaceon-2x.png\",\n \"complete\": \"pokemons/stat-glaceon.png\",\n \"move_s11\": \"moves/glaceon_s11.png\",\n \"move_s12\": \"moves/glaceon_s12.png\",\n \"move_s21\": \"moves/glaceon_s21.png\",\n \"move_s22\": \"moves/glaceon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2,\n \"mobility\": 3,\n \"scoring\": 1,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Darkrai\",\n \"dex\": 491,\n \"images\": {\n \"main\": \"pokemons/roster-darkrai.png\",\n \"big\": \"pokemons/roster-darkrai-2x.png\",\n \"complete\": \"pokemons/stat-darkrai.png\",\n \"move_s11\": \"moves/darkrai_s11.png\",\n \"move_s12\": \"moves/darkrai_s12.png\",\n \"move_s21\": \"moves/darkrai_s21.png\",\n \"move_s22\": \"moves/darkrai_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 1.5,\n \"mobility\": 3,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Crustle\",\n \"dex\": 558,\n \"images\": {\n \"main\": \"pokemons/roster-crustle.png\",\n \"big\": \"pokemons/roster-crustle-2x.png\",\n \"complete\": \"pokemons/stat-crustle.png\",\n \"move_s11\": \"moves/crustle_s11.png\",\n \"move_s12\": \"moves/crustle_s12.png\",\n \"move_s21\": \"moves/crustle_s21.png\",\n \"move_s22\": \"moves/crustle_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 1.5,\n \"endurance\": 4,\n \"mobility\": 1.5,\n \"scoring\": 2,\n \"support\": 3\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Zoroark\",\n \"dex\": 571,\n \"images\": {\n \"main\": \"pokemons/roster-zoroark.png\",\n \"big\": \"pokemons/roster-zoroark-2x.png\",\n \"complete\": \"pokemons/stat-zoroark.png\",\n \"move_s11\": \"moves/zoroark_s11.png\",\n \"move_s12\": \"moves/zoroark_s12.png\",\n \"move_s21\": \"moves/zoroark_s21.png\",\n \"move_s22\": \"moves/zoroark_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 1.5,\n \"mobility\": 4,\n \"scoring\": 2,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Chandelure\",\n \"dex\": 609,\n \"images\": {\n \"main\": \"pokemons/roster-chandelure.png\",\n \"big\": \"pokemons/roster-chandelure-2x.png\",\n \"complete\": \"pokemons/stat-chandelure.png\",\n \"move_s11\": \"moves/chandelure_s11.png\",\n \"move_s12\": \"moves/chandelure_s12.png\",\n \"move_s21\": \"moves/chandelure_s21.png\",\n \"move_s22\": \"moves/chandelure_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 5,\n \"endurance\": 1,\n \"mobility\": 1,\n \"scoring\": 2,\n \"support\": 3\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Delphox\",\n \"dex\": 655,\n \"images\": {\n \"main\": \"pokemons/roster-delphox.png\",\n \"big\": \"pokemons/roster-delphox-2x.png\",\n \"complete\": \"pokemons/stat-delphox.png\",\n \"move_s11\": \"moves/delphox_s11.png\",\n \"move_s12\": \"moves/delphox_s12.png\",\n \"move_s21\": \"moves/delphox_s21.png\",\n \"move_s22\": \"moves/delphox_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 1.5,\n \"mobility\": 3,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Greninja\",\n \"dex\": 658,\n \"images\": {\n \"main\": \"pokemons/roster-greninja.png\",\n \"big\": \"pokemons/roster-greninja-2x.png\",\n \"complete\": \"pokemons/stat-greninja.png\",\n \"move_s11\": \"moves/greninja_s11.png\",\n \"move_s12\": \"moves/greninja_s12.png\",\n \"move_s21\": \"moves/greninja_s21.png\",\n \"move_s22\": \"moves/greninja_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2,\n \"mobility\": 3,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Talonflame\",\n \"dex\": 663,\n \"images\": {\n \"main\": \"pokemons/roster-talonflame.png\",\n \"big\": \"pokemons/roster-talonflame-2x.png\",\n \"complete\": \"pokemons/stat-talonflame.png\",\n \"move_s11\": \"moves/talonflame_s11.png\",\n \"move_s12\": \"moves/talonflame_s12.png\",\n \"move_s21\": \"moves/talonflame_s21.png\",\n \"move_s22\": \"moves/talonflame_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 2.5,\n \"endurance\": 1.5,\n \"mobility\": 5,\n \"scoring\": 3.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Aegislash\",\n \"dex\": 681,\n \"images\": {\n \"main\": \"pokemons/roster-aegislash.png\",\n \"big\": \"pokemons/roster-aegislash-2x.png\",\n \"complete\": \"pokemons/stat-aegislash.png\",\n \"move_s11\": \"moves/aegislash_s11.png\",\n \"move_s12\": \"moves/aegislash_s12.png\",\n \"move_s21\": \"moves/aegislash_s21.png\",\n \"move_s22\": \"moves/aegislash_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 2,\n \"mobility\": 4,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Sylveon\",\n \"dex\": 700,\n \"images\": {\n \"main\": \"pokemons/roster-sylveon.png\",\n \"big\": \"pokemons/roster-sylveon-2x.png\",\n \"complete\": \"pokemons/stat-sylveon.png\",\n \"move_s11\": \"moves/sylveon_s11.png\",\n \"move_s12\": \"moves/sylveon_s12.png\",\n \"move_s21\": \"moves/sylveon_s21.png\",\n \"move_s22\": \"moves/sylveon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 1.5,\n \"mobility\": 1.5,\n \"scoring\": 3.5,\n \"support\": 3.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Goodra\",\n \"dex\": 706,\n \"images\": {\n \"main\": \"pokemons/roster-goodra.png\",\n \"big\": \"pokemons/roster-goodra-2x.png\",\n \"complete\": \"pokemons/stat-goodra.png\",\n \"move_s11\": \"moves/goodra_s11.png\",\n \"move_s12\": \"moves/goodra_s12.png\",\n \"move_s21\": \"moves/goodra_s21.png\",\n \"move_s22\": \"moves/goodra_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 2.5,\n \"endurance\": 4,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 2\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Trevenant\",\n \"dex\": 709,\n \"images\": {\n \"main\": \"pokemons/roster-trevenant.png\",\n \"big\": \"pokemons/roster-trevenant-2x.png\",\n \"complete\": \"pokemons/stat-trevenant.png\",\n \"move_s11\": \"moves/trevenant_s11.png\",\n \"move_s12\": \"moves/trevenant_s12.png\",\n \"move_s21\": \"moves/trevenant_s21.png\",\n \"move_s22\": \"moves/trevenant_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 2,\n \"endurance\": 4,\n \"mobility\": 2,\n \"scoring\": 2.5,\n \"support\": 2.5\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Hoopa\",\n \"dex\": 720,\n \"images\": {\n \"main\": \"pokemons/roster-hoopa.png\",\n \"big\": \"pokemons/roster-hoopa-2x.png\",\n \"complete\": \"pokemons/stat-hoopa.png\",\n \"move_s11\": \"moves/hoopa_s11.png\",\n \"move_s12\": \"moves/hoopa_s12.png\",\n \"move_s21\": \"moves/hoopa_s21.png\",\n \"move_s22\": \"moves/hoopa_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 3,\n \"endurance\": 2,\n \"mobility\": 3,\n \"scoring\": 2,\n \"support\": 3.5\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.RANGED\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Decidueye\",\n \"dex\": 724,\n \"images\": {\n \"main\": \"pokemons/roster-decidueye.png\",\n \"big\": \"pokemons/roster-decidueye-2x.png\",\n \"complete\": \"pokemons/stat-decidueye.png\",\n \"move_s11\": \"moves/decidueye_s11.png\",\n \"move_s12\": \"moves/decidueye_s12.png\",\n \"move_s21\": \"moves/decidueye_s21.png\",\n \"move_s22\": \"moves/decidueye_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 1.5,\n \"mobility\": 1.5,\n \"scoring\": 3.5,\n \"support\": 3.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Tsareena\",\n \"dex\": 763,\n \"images\": {\n \"main\": \"pokemons/roster-tsareena.png\",\n \"big\": \"pokemons/roster-tsareena-2x.png\",\n \"complete\": \"pokemons/stat-tsareena.png\",\n \"move_s11\": \"moves/tsareena_s11.png\",\n \"move_s12\": \"moves/tsareena_s12.png\",\n \"move_s21\": \"moves/tsareena_s21.png\",\n \"move_s22\": \"moves/tsareena_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 1.5,\n \"mobility\": 1.5,\n \"scoring\": 3.5,\n \"support\": 3.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Comfey\",\n \"dex\": 764,\n \"images\": {\n \"main\": \"pokemons/roster-comfey.png\",\n \"big\": \"pokemons/roster-comfey-2x.png\",\n \"complete\": \"pokemons/stat-comfey.png\",\n \"move_s11\": \"moves/comfey_s11.png\",\n \"move_s12\": \"moves/comfey_s12.png\",\n \"move_s21\": \"moves/comfey_s21.png\",\n \"move_s22\": \"moves/comfey_s22.png\",\n },\n \"active\": true,\n \"stats\": {\n \"offense\": 2,\n \"endurance\": 3,\n \"mobility\": 1.5,\n \"scoring\": 1.5,\n \"support\": 4.5\n },\n \"difficulty\": 1,\n \"tags\": [\n Tag.SUPPORTER,\n Tag.RANGED\n ],\n \"battleType\": BattleType.SUPPORTER\n},\n{\n \"name\": \"Mimikyu\",\n \"dex\": 778,\n \"images\": {\n \"main\": \"pokemons/roster-mimikyu.png\",\n \"big\": \"pokemons/roster-mimikyu-2x.png\",\n \"complete\": \"pokemons/stat-mimikyu.png\",\n \"move_s11\": \"moves/mimikyu_s11.png\",\n \"move_s12\": \"moves/mimikyu_s12.png\",\n \"move_s21\": \"moves/mimikyu_s21.png\",\n \"move_s22\": \"moves/mimikyu_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 3,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Dhelmise\",\n \"dex\": 781,\n \"images\": {\n \"main\": \"pokemons/roster-dhelmise.png\",\n \"big\": \"pokemons/roster-dhelmise-2x.png\",\n \"complete\": \"pokemons/stat-dhelmise.png\",\n \"move_s11\": \"moves/dhelmise_s11.png\",\n \"move_s12\": \"moves/dhelmise_s12.png\",\n \"move_s21\": \"moves/dhelmise_s21.png\", },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 1.5,\n \"mobility\": 1,\n \"scoring\": 1,\n \"support\": 1,\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Buzzwole\",\n \"dex\": 794,\n \"images\": {\n \"main\": \"pokemons/roster-buzzwole.png\",\n \"big\": \"pokemons/roster-buzzwole-2x.png\",\n \"complete\": \"pokemons/stat-buzzwole.png\",\n \"move_s11\": \"moves/buzzwole_s11.png\",\n \"move_s12\": \"moves/buzzwole_s12.png\",\n \"move_s21\": \"moves/buzzwole_s21.png\",\n \"move_s22\": \"moves/buzzwole_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 3,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Zeraora\",\n \"dex\": 807,\n \"images\": {\n \"main\": \"pokemons/roster-zeraora.png\",\n \"big\": \"pokemons/roster-zeraora-2x.png\",\n \"complete\": \"pokemons/stat-zeraora.png\",\n \"move_s11\": \"moves/zeraora_s11.png\",\n \"move_s12\": \"moves/zeraora_s12.png\",\n \"move_s21\": \"moves/zeraora_s21.png\",\n \"move_s22\": \"moves/zeraora_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 1.5,\n \"mobility\": 4,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Cinderace\",\n \"dex\": 815,\n \"images\": {\n \"main\": \"pokemons/roster-cinderace.png\",\n \"big\": \"pokemons/roster-cinderace-2x.png\",\n \"complete\": \"pokemons/stat-cinderace.png\",\n \"move_s11\": \"moves/cinderace_s11.png\",\n \"move_s12\": \"moves/cinderace_s12.png\",\n \"move_s21\": \"moves/cinderace_s21.png\",\n \"move_s22\": \"moves/cinderace_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 1.5,\n \"mobility\": 3,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Inteleon\",\n \"dex\": 818,\n \"images\": {\n \"main\": \"pokemons/roster-inteleon.png\",\n \"big\": \"pokemons/roster-inteleon-2x.png\",\n \"complete\": \"pokemons/stat-inteleon.png\",\n \"move_s11\": \"moves/inteleon_s11.png\",\n \"move_s12\": \"moves/inteleon_s12.png\",\n \"move_s21\": \"moves/inteleon_s21.png\",\n \"move_s22\": \"moves/inteleon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 1.5,\n \"mobility\": 3.5,\n \"scoring\": 1.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Greedent\",\n \"dex\": 820,\n \"images\": {\n \"main\": \"pokemons/roster-greedent.png\",\n \"big\": \"pokemons/roster-greedent-2x.png\",\n \"complete\": \"pokemons/stat-greedent.png\",\n \"move_s11\": \"moves/greedent_s11.png\",\n \"move_s12\": \"moves/greedent_s12.png\",\n \"move_s21\": \"moves/greedent_s21.png\",\n \"move_s22\": \"moves/greedent_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 1.5,\n \"mobility\": 2,\n \"scoring\": 1,\n \"support\": 1\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Eldegoss\",\n \"dex\": 830,\n \"images\": {\n \"main\": \"pokemons/roster-eldegoss.png\",\n \"big\": \"pokemons/roster-eldegoss-2x.png\",\n \"complete\": \"pokemons/stat-eldegoss.png\",\n \"move_s11\": \"moves/eldegoss_s11.png\",\n \"move_s12\": \"moves/eldegoss_s12.png\",\n \"move_s21\": \"moves/eldegoss_s21.png\",\n \"move_s22\": \"moves/eldegoss_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 1.5,\n \"endurance\": 2,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 4\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Cramorant\",\n \"dex\": 845,\n \"images\": {\n \"main\": \"pokemons/roster-cramorant.png\",\n \"big\": \"pokemons/roster-cramorant-2x.png\",\n \"complete\": \"pokemons/stat-cramorant.png\",\n \"move_s11\": \"moves/cramorant_s11.png\",\n \"move_s12\": \"moves/cramorant_s12.png\",\n \"move_s21\": \"moves/cramorant_s21.png\",\n \"move_s22\": \"moves/cramorant_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 3,\n \"mobility\": 3,\n \"scoring\": 1.5,\n \"support\": 1\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Sirfetch'd\",\n \"dex\": 865,\n \"images\": {\n \"main\": \"pokemons/roster-sirfetchd.png\",\n \"big\": \"pokemons/roster-sirfetchd-2x.png\",\n \"complete\": \"pokemons/stat-sirfetchd.png\",\n \"move_s11\": \"moves/sirfetchd_s11.png\",\n \"move_s12\": \"moves/sirfetchd_s12.png\",\n \"move_s21\": \"moves/sirfetchd_s21.png\",\n \"move_s22\": \"moves/sirfetchd_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 2.5,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Alcremie\",\n \"dex\": 869,\n \"images\": {\n \"main\": \"pokemons/roster-alcremie.png\",\n \"big\": \"pokemons/roster-alcremie-2x.png\",\n \"complete\": \"pokemons/stat-alcremie.png\",\n \"move_s11\": \"moves/alcremie_s11.png\",\n \"move_s12\": \"moves/alcremie_s12.png\",\n \"move_s21\": \"moves/alcremie_s21.png\",\n \"move_s22\": \"moves/alcremie_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 1.5,\n \"endurance\": 2,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 4\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.RANGED\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Falinks\",\n \"dex\": 870,\n \"images\": {\n \"main\": \"pokemons/roster-falinks.png\",\n \"big\": \"pokemons/roster-falinks-2x.png\",\n \"complete\": \"pokemons/stat-falinks.png\",\n \"move_s11\": \"moves/falinks_s11.png\",\n \"move_s12\": \"moves/falinks_s12.png\",\n \"move_s21\": \"moves/falinks_s21.png\",\n \"move_s22\": \"moves/falinks_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 4.5,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 1\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Duraludon\",\n \"dex\": 884,\n \"images\": {\n \"main\": \"pokemons/roster-duraludon.png\",\n \"big\": \"pokemons/roster-duraludon-2x.png\",\n \"complete\": \"pokemons/stat-duraludon.png\",\n \"move_s11\": \"moves/duraludon_s11.png\",\n \"move_s12\": \"moves/duraludon_s12.png\",\n \"move_s21\": \"moves/duraludon_s21.png\",\n \"move_s22\": \"moves/duraludon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 3.5,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Dragapult\",\n \"dex\": 887,\n \"images\": {\n \"main\": \"pokemons/roster-dragapult.png\",\n \"big\": \"pokemons/roster-dragapult-2x.png\",\n \"complete\": \"pokemons/stat-dragapult.png\",\n \"move_s11\": \"moves/dragapult_s11.png\",\n \"move_s12\": \"moves/dragapult_s12.png\",\n \"move_s21\": \"moves/dragapult_s21.png\",\n \"move_s22\": \"moves/dragapult_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2.5,\n \"mobility\": 4,\n \"scoring\": 1.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Zacian\",\n \"dex\": 888,\n \"images\": {\n \"main\": \"pokemons/roster-zacian.png\",\n \"big\": \"pokemons/roster-zacian-2x.png\",\n \"complete\": \"pokemons/stat-zacian.png\",\n \"move_s11\": \"moves/zacian_s11.png\",\n \"move_s12\": \"moves/zacian_s12.png\",\n \"move_s21\": \"moves/zacian_s21.png\",\n \"move_s22\": \"moves/zacian_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 5,\n \"endurance\": 4,\n \"mobility\": 3,\n \"scoring\": 1,\n \"support\": 2\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Urshifu\",\n \"dex\": 892,\n \"images\": {\n \"main\": \"pokemons/roster-urshifu.png\",\n \"big\": \"pokemons/roster-urshifu-2x.png\",\n \"complete\": \"pokemons/stat-urshifu.png\",\n \"move_s11\": \"moves/urshifu_s11.png\",\n \"move_s12\": \"moves/urshifu_s12.png\",\n \"move_s21\": \"moves/urshifu_s21.png\",\n \"move_s22\": \"moves/urshifu_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 3,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 1\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n}, \n{\n \"name\": \"Meowscarada\",\n \"dex\": 908,\n \"images\": {\n \"main\": \"pokemons/roster-meowscarada.png\",\n \"big\": \"pokemons/roster-meowscarada-2x.png\",\n \"complete\": \"pokemons/stat-meowscarada.png\",\n \"move_s11\": \"moves/meowscarada_s11.png\",\n \"move_s12\": \"moves/meowscarada_s12.png\",\n \"move_s21\": \"moves/meowscarada_s21.png\",\n \"move_s22\": \"moves/meowscarada_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 3,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 1\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n}, \n{\n \"name\": \"Pawmot\",\n \"dex\": 923,\n \"images\": {\n \"main\": \"pokemons/roster-pawmot.png\",\n \"big\": \"pokemons/roster-pawmot-2x.png\",\n \"complete\": \"pokemons/stat-pawmot.png\",\n \"move_s11\": \"moves/pawmot_s11.png\",\n \"move_s12\": \"moves/pawmot_s12.png\",\n \"move_s21\": \"moves/pawmot_s21.png\",\n \"move_s22\": \"moves/pawmot_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 2,\n \"mobility\": 3,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.MELEE,\n Tag.ALLROUNDER\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Armarouge\",\n \"dex\": 936,\n \"images\": {\n \"main\": \"pokemons/roster-armarouge.png\",\n \"big\": \"pokemons/roster-armarouge-2x.png\",\n \"complete\": \"pokemons/stat-armarouge.png\",\n \"move_s11\": \"moves/armarouge_s11.png\",\n \"move_s12\": \"moves/armarouge_s12.png\",\n \"move_s21\": \"moves/armarouge_s21.png\",\n \"move_s22\": \"moves/armarouge_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.RANGED,\n Tag.ATTACKER\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Ceruledge\",\n \"dex\": 937,\n \"images\": {\n \"main\": \"pokemons/roster-ceruledge.png\",\n \"big\": \"pokemons/roster-ceruledge-2x.png\",\n \"complete\": \"pokemons/stat-ceruledge.png\",\n \"move_s11\": \"moves/ceruledge_s11.png\",\n \"move_s12\": \"moves/ceruledge_s12.png\",\n \"move_s21\": \"moves/ceruledge_s21.png\",\n \"move_s22\": \"moves/ceruledge_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2.5,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Tinkaton\",\n \"dex\": 959,\n \"images\": {\n \"main\": \"pokemons/roster-tinkaton.png\",\n \"big\": \"pokemons/roster-tinkaton-2x.png\",\n \"complete\": \"pokemons/stat-tinkaton.png\",\n \"move_s11\": \"moves/tinkaton_s11.png\",\n \"move_s12\": \"moves/tinkaton_s12.png\",\n \"move_s21\": \"moves/tinkaton_s21.png\",\n \"move_s22\": \"moves/tinkaton_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3,\n \"endurance\": 3.5,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 1\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Miraidon\",\n \"dex\": 1008,\n \"images\": {\n \"main\": \"pokemons/roster-miraidon.png\",\n \"big\": \"pokemons/roster-miraidon-2x.png\",\n \"complete\": \"pokemons/stat-miraidon.png\",\n \"move_s11\": \"moves/miraidon_s11.png\",\n \"move_s12\": \"moves/miraidon_s12.png\",\n \"move_s21\": \"moves/miraidon_s21.png\",\n \"move_s22\": \"moves/miraidon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2,\n \"mobility\": 2,\n \"scoring\": 2.5,\n \"support\": 4\n },\n \"tags\": [\n Tag.RANGED,\n Tag.ATTACKER\n ],\n \"difficulty\": 1\n}];\n\nexport default pokemons;\n","import type { Map } from \"./types\";\n\nconst maps: Map[] = [\n {\n id: \"map-groudon\",\n name: \"Theia Sky Ruins\",\n image: \"maps/map-groudon/map-groudon@4x.png\",\n images: {\n \"1\": \"maps/map-groudon/map-groudon@1x.png\",\n \"2\": \"maps/map-groudon/map-groudon@2x.png\",\n \"4\": \"maps/map-groudon/map-groudon@4x.png\",\n },\n description: \"Map with Groudon.\",\n },\n {\n id: \"map-kyogre\",\n name: \"Theia Sky Ruins\",\n image: \"maps/map-kyogre/map-kyogre@4x.png\",\n images: {\n \"1\": \"maps/map-kyogre/map-kyogre@1x.png\",\n \"2\": \"maps/map-kyogre/map-kyogre@2x.png\",\n \"4\": \"maps/map-kyogre/map-kyogre@4x.png\",\n },\n description: \"Map with Kyogre.\",\n },\n {\n id: \"map-rayquaza\",\n name: \"Theia Sky Ruins\",\n image: \"maps/map-rayquaza/map-rayquaza@4x.png\",\n images: {\n \"1\": \"maps/map-rayquaza/map-rayquaza@1x.png\",\n \"2\": \"maps/map-rayquaza/map-rayquaza@2x.png\",\n \"4\": \"maps/map-rayquaza/map-rayquaza@4x.png\",\n },\n description: \"Map with Rayquaza.\",\n },\n];\n\nexport default maps;\n","import type { Neutral } from \"./types\";\n\nconst neutrals: Neutral[] = [\n { id: \"accelgor\", image: \"neutrals/accelgor.png\", name: \"Accelgor\", dex: 617 },\n { id: \"altaria\", image: \"neutrals/altaria.png\", name: \"Altaria\", dex: 334 },\n { id: \"baltoy\", image: \"neutrals/baltoy.png\", name: \"Baltoy\", dex: 343 },\n { id: \"bunnelby\", image: \"neutrals/bunnelby.png\", name: \"Bunnelby\", dex: 659 },\n { id: \"escavalier\", image: \"neutrals/escavalier.png\", name: \"Escavalier\", dex: 589 },\n { id: \"groudon\", image: \"neutrals/groudon.png\", name: \"Groudon\", dex: 383 },\n { id: \"indeedee\", image: \"neutrals/indeedee.png\", name: \"Indeedee\", dex: 876 },\n { id: \"kyogre\", image: \"neutrals/kyogre.png\", name: \"Kyogre\", dex: 382 },\n { id: \"natu\", image: \"neutrals/natu.png\", name: \"Natu\", dex: 177 },\n { id: \"rayquaza\", image: \"neutrals/rayquaza.png\", name: \"Rayquaza\", dex: 384 },\n { id: \"regidrago\", image: \"neutrals/regidrago.png\", name: \"Regidrago\", dex: 895 },\n { id: \"regice\", image: \"neutrals/regice.png\", name: \"Regice\", dex: 378 },\n { id: \"regieleki\", image: \"neutrals/regieleki.png\", name: \"Regieleki\", dex: 894 },\n { id: \"regirock\", image: \"neutrals/regirock.png\", name: \"Regirock\", dex: 377 },\n { id: \"registeel\", image: \"neutrals/registeel.png\", name: \"Registeel\", dex: 379 },\n { id: \"salac\", image: \"neutrals/salac.png\", name: \"Salac Berry\" },\n { id: \"sitrus\", image: \"neutrals/sitrus.png\", name: \"Sitrus Berry\" },\n { id: \"xatu\", image: \"neutrals/xatu.png\", name: \"Xatu\", dex: 178 },\n];\n\nexport default neutrals;\n","import pokemons from \"../pokemons\";\nimport maps from \"../maps\";\nimport neutrals from \"../neutrals\";\n\n/** Slug from roster image path: \"pokemons/roster-venusaur.png\" -> \"venusaur\" */\nfunction slugFromMain(mainPath: string): string {\n return mainPath.replace(/^pokemons\\/roster-/, \"\").replace(/\\.png$/, \"\");\n}\n\nconst names: Record<string, string> = {};\nfor (const p of pokemons) {\n names[slugFromMain(p.images.main)] = p.name;\n}\nfor (const m of maps) {\n names[m.id] = m.name;\n if (m.description) names[`${m.id}.description`] = m.description;\n}\nfor (const n of neutrals) {\n names[n.id] = n.name;\n}\n\n// Aliases for slug variants (e.g. kebab-case \"mega-mewtwo-x\" from display name).\nnames[\"mega-mewtwo-x\"] = \"Mega Mewtwo X\";\nnames[\"mega-mewtwo-y\"] = \"Mega Mewtwo Y\";\n\n// Spawn info (HTML). Other locales override same keys for translations.\nObject.assign(names, {\n \"spawn.info.groudon.boss\":\n \"<p>When defeated, all team members alive receive a <strong>buff</strong> and <strong>15 aeos points</strong>.<br>This buff is <strong>permanent until the holder is KO'd</strong>. When the holder is <strong>KO'd</strong>, the buff <strong>transfers to the killer</strong>.<br>It provides a <strong>goal-scoring speed boost</strong>, a <strong>huge damage boost</strong>, and a <strong>small shield</strong>.<br>Always spawn at 2:00.</p>\",\n \"spawn.info.bunnelby.initial\":\n \"<p>They <strong>spawn at the beginning of the game</strong> and <strong>never respawn</strong> once killed.</p><p>Give 2 points.</p>\",\n \"spawn.info.bunnelby.lane_940\":\n \"<p>Starts spawning at <strong>9:40</strong>.</p><p>When defeated, grants <strong>2 points</strong> and respawn after <strong>60 seconds</strong>.</p><p>If either of the <strong>first towers</strong> in the lane is destroyed, it <strong>disappears</strong>.</p>\",\n \"spawn.info.bunnelby.lane_920\":\n \"<p>Starts spawning at <strong>9:20</strong>.</p><p>When defeated, grants <strong>2 points</strong> and respawn after <strong>60 seconds</strong>.</p><p>If either of the <strong>first towers</strong> in the lane is destroyed, it <strong>disappears</strong>.</p>\",\n \"spawn.info.bunnelby.lane_915\":\n \"<p>Starts spawning at <strong>9:15</strong>.</p><p>When defeated, grants <strong>2 points</strong> and respawn after <strong>60 seconds</strong>.</p><p>If either of the <strong>first towers</strong> in the lane is destroyed, it <strong>disappears</strong>.</p>\",\n \"spawn.info.accelgor\":\n \"<p>Starts spawning at <strong>9:45</strong>.</p><p>When defeated, grants <strong>4 / 7 points</strong> and a <strong>buff</strong>. <strong>Respawns after 60 seconds</strong>.</p><p>This buff lasts for <strong>70 seconds</strong> and provides a <strong>10% move cooldown reduction</strong>.</p>\",\n \"spawn.info.escavalier\":\n \"<p>Starts spawning at <strong>9:45</strong>.</p><p>When defeated, grants <strong>4 / 7 points</strong> and a <strong>buff</strong>. <strong>Respawns after 60 seconds</strong>.</p><p>This buff lasts for <strong>70 seconds</strong> and provides <strong>basic attacks extra damage and decreases opponent movement speed for a short time</strong>.</p>\",\n \"spawn.info.baltoy.generic\":\n \"<p>Starts spawning at <strong>9:45</strong>.</p><p>When defeated, grants <strong>2 points</strong>. <strong>Respawns after 60 seconds</strong>.</p>\",\n \"spawn.info.baltoy.lane_940\":\n \"<p>Starts spawning at <strong>9:40</strong>.</p><p>When defeated, grants <strong>2 points</strong>. <strong>Respawns after 60 seconds</strong>.</p><p>If either of the <strong>first towers</strong> in the lane is destroyed, it <strong>disappears</strong>.</p>\",\n \"spawn.info.baltoy.lane_920\":\n \"<p>Starts spawning at <strong>9:40</strong>.</p><p>When defeated, grants <strong>2 points</strong>. <strong>Respawns after 60 seconds</strong>.</p><p>If either of the <strong>first towers</strong> in the lane is destroyed, it <strong>disappears</strong>.</p>\",\n \"spawn.info.baltoy.lane_910\":\n \"<p>Starts spawning at <strong>9:10</strong>.</p><p>When defeated, grants <strong>2 points</strong>. <strong>Respawns after 60 seconds</strong>.</p><p>If either of the <strong>first towers</strong> in the lane is destroyed, it <strong>disappears</strong>.</p>\",\n \"spawn.info.baltoy.lane_910_only\":\n \"<p>Starts spawning at <strong>9:10</strong>.</p><p>When defeated, grants <strong>2 points</strong>. <strong>Respawns after 60 seconds</strong>.</p>\",\n \"spawn.info.baltoy.lane_840\":\n \"<p>Starts spawning at <strong>8:40</strong>.</p><p>When defeated, grants <strong>2 points</strong>. <strong>Respawns after 60 seconds</strong>.</p>\",\n \"spawn.info.baltoy.tower\":\n \"<p>Starts spawning when the corresponding <strong>first tower is destroyed</strong>.</p><p>When defeated, grants <strong>2 points</strong>. <strong>Respawns after 60 seconds</strong>.</p>\",\n \"spawn.info.regidrago\":\n \"<p>Spawns in the <strong>middle of the map at 8:00</strong>. When killed, <strong>Altaria spawn instead 1:30 minute after</strong>.<br>The team that defeats <strong>Regidrago</strong> gains <strong>experience for all teammates</strong>.<br>The player who lands the killing blow receives a <strong>scoring-speed buff</strong> and <strong>20 points</strong>.</p>\",\n \"spawn.info.regieleki\":\n \"<p>Spawns at <strong>7:00</strong> on a random lane between <strong>toplane and botlane</strong>.<br>When defeated, goes to the base of the opposing team and if it touches the base, scores <strong>20/16/12/8 points</strong> and if the base is still alive, makes <strong>any goal become instant during 20/15/10/5s</strong>.<br>The player who lands the killing blow receives <strong>20 points</strong>.<br>Respawns <strong>2 minutes</strong> after death.</p>\",\n \"spawn.info.regi.700\":\n \"<p>Spawns at <strong>7:00</strong>.</p>\",\n \"spawn.info.xatu\":\n \"<p>Spawns at <strong>9:59</strong>.</p><p>Grants <strong>a large amount of experience</strong> and <strong>2 points</strong> when defeated.</p><p><strong>Does not respawn</strong>.</p>\",\n \"spawn.info.natu.900\":\n \"<p>Spawns at <strong>9:00</strong>.</p>\",\n \"spawn.info.natu.920\":\n \"<p>Spawns at <strong>9:20</strong>.</p>\",\n \"spawn.info.indeedee.lane\":\n \"<p>Starts spawning at <strong>9:30</strong> / <strong>9:35</strong>.</p><p>When defeated, <strong>respawns after 60 seconds</strong> and grants <strong>5 points</strong>.</p><p>If either of the <strong>first towers</strong> in the lane is destroyed, it <strong>disappears</strong>.</p>\",\n \"spawn.info.indeedee.tower\":\n \"<p>Spawns when the corresponding <strong>first tower</strong> is destroyed.</p><p>When defeated, <strong>respawns after 60 seconds</strong> and grants <strong>5 points</strong>.</p>\",\n \"spawn.info.salac\":\n \"<p>When consumed, grants a <strong>movement speed bonus</strong> for <strong>3 seconds</strong>.</p><p>Starts spawning at <strong>8:30</strong> and respawns <strong>60 seconds</strong> after being consumed.</p>\",\n \"spawn.info.salac.short\":\n \"<p>Movement speed bonus for 3 seconds.</p>\",\n \"spawn.info.altaria.after_regidrago\":\n \"<p>Starts spawning <strong>mid 1:30 after Regidrago is killed</strong>.</p>\",\n \"spawn.info.altaria.rayquaza\":\n \"<p>Spawn at <strong>8:00</strong> and respawn every <strong>1:30</strong>.</p><p>Disappears at <strong>2:30</strong>.</p>\",\n \"spawn.info.kyogre.boss\":\n \"<p>When defeated, all team members alive receive a <strong>buff</strong>, <strong>15 aeos points</strong> and all opponents' towers still up are disabled for 1:30 (opponent can't receive shield and regen).<br>This buff is <strong>permanent until the holder is KO'd</strong>. When the holder is <strong>KO'd</strong>, the buff <strong>transfers to the killer</strong>.<br>It provides a <strong>goal-scoring speed boost</strong>, <strong>self regen (5% per second)</strong>, and a <strong>small shield</strong>.<br>Always spawn at 2:00.</p>\",\n \"spawn.info.rayquaza.boss\":\n \"<p>When defeated, grants the winning team <strong>15 aeos points</strong>, a <strong>shield</strong> that <strong>speeds up goal scoring</strong> and <strong>prevents goals from being blocked</strong>.<br>Always spawns at 2:00.</p>\",\n \"spawn.info.regidrago.kyogre\":\n \"<p>Spawns in the <strong>middle of the map at 8:00</strong>.</p>\",\n \"spawn.info.xatu.short\":\n \"<p>Spawns at <strong>9:59</strong>.</p>\",\n \"spawn.info.indeedee.tower_break\":\n \"<p>Tower break spawn.</p>\",\n \"spawn.info.baltoy.tower_break\":\n \"<p>Tower break spawn.</p>\",\n \"spawn.info.bunnelby.lane\":\n \"<p>Starts spawning at <strong>9:40</strong>.</p>\",\n \"spawn.info.bunnelby.lane_920_short\":\n \"<p>Starts spawning at <strong>9:20</strong>.</p>\",\n \"spawn.info.bunnelby.lane_915_short\":\n \"<p>Starts spawning at <strong>9:15</strong>.</p>\",\n \"spawn.info.baltoy.lane_940_short\":\n \"<p>Starts spawning at <strong>9:40</strong>.</p>\",\n \"spawn.info.baltoy.945_short\":\n \"<p>Starts spawning at <strong>9:45</strong>.</p>\",\n \"spawn.info.baltoy.lane_910_short\":\n \"<p>Starts spawning at <strong>9:10</strong>.</p>\",\n \"spawn.info.baltoy.lane_840_short\":\n \"<p>Starts spawning at <strong>8:40</strong>.</p>\",\n \"spawn.info.indeedee.lane_930\":\n \"<p>Starts spawning at <strong>9:30</strong>.</p>\",\n \"spawn.info.indeedee.lane_935\":\n \"<p>Starts spawning at <strong>9:35</strong>.</p>\",\n \"spawn.info.bunnelby.points\":\n \"<p>Give 2 points.</p>\",\n \"spawn.info.baltoy.tower_kyogre\":\n \"<p>Starts spawning when the corresponding <strong>first tower is destroyed</strong>.</p>\",\n \"spawn.info.indeedee.tower_short\":\n \"<p>Spawns when the corresponding <strong>first tower</strong> is destroyed.</p>\",\n});\n\nexport default names;\n","import en from \"./en\";\n\n/**\n * Portuguese (Brazil). Same as English for Pokémon names; override here only when pt-BR differs.\n */\nconst ptBR: Record<string, string> = {\n ...en,\n // Maps — names and descriptions\n \"map-groudon\": \"Ruínas Celestes de Theia\",\n \"map-groudon.description\": \"Mapa 5v5 com Groudon.\",\n \"map-kyogre\": \"Ruínas Celestes de Theia\",\n \"map-kyogre.description\": \"Mapa 5v5 com Kyogre.\",\n \"map-rayquaza\": \"Ruínas Celestes de Theia\",\n \"map-rayquaza.description\": \"Mapa 5v5 com Rayquaza.\",\n // Spawn info (HTML) — principais textos; demais usam fallback en\n \"spawn.info.groudon.boss\":\n \"<p>Ao ser derrotado, todos os membros vivos do time recebem <strong>buff</strong> e <strong>15 pontos aeos</strong>.<br>O buff é <strong>permanente até o portador ser nocauteado</strong>. Ao ser nocauteado, o buff <strong>transfere para quem aplicou o KO</strong>.<br>Concede <strong>aumento de velocidade de pontuação</strong>, <strong>grande aumento de dano</strong> e <strong>pequeno escudo</strong>.<br>Sempre aparece às 2:00.</p>\",\n \"spawn.info.kyogre.boss\":\n \"<p>Ao ser derrotado, todos os membros vivos do time recebem <strong>buff</strong>, <strong>15 pontos aeos</strong> e as torres adversárias ainda de pé ficam desativadas por 1:30 (adversário não recebe escudo e regeneração).<br>O buff é <strong>permanente até o portador ser nocauteado</strong>. Ao ser nocauteado, o buff <strong>transfere para quem aplicou o KO</strong>.<br>Concede <strong>aumento de velocidade de pontuação</strong>, <strong>autorregeneração (5% por segundo)</strong> e <strong>pequeno escudo</strong>.<br>Sempre aparece às 2:00.</p>\",\n \"spawn.info.rayquaza.boss\":\n \"<p>Ao ser derrotado, concede ao time vencedor <strong>15 pontos aeos</strong>, um <strong>escudo</strong> que <strong>acelera a pontuação</strong> e <strong>impede que gols sejam bloqueados</strong>.<br>Sempre aparece às 2:00.</p>\",\n \"spawn.info.bunnelby.initial\":\n \"<p><strong>Aparecem no início da partida</strong> e <strong>não ressurgem</strong> após derrotados.</p><p>Dão 2 pontos.</p>\",\n \"spawn.info.bunnelby.points\":\n \"<p>Dão 2 pontos.</p>\",\n \"spawn.info.regi.700\":\n \"<p>Aparece às <strong>7:00</strong>.</p>\",\n \"spawn.info.bunnelby.lane_940\":\n \"<p>Começa a aparecer às <strong>9:40</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong> e ressurgem após <strong>60 segundos</strong>.</p><p>Se alguma das <strong>primeiras torres</strong> da lane for destruída, <strong>desaparece</strong>.</p>\",\n \"spawn.info.bunnelby.lane_920\":\n \"<p>Começa a aparecer às <strong>9:20</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong> e ressurgem após <strong>60 segundos</strong>.</p><p>Se alguma das <strong>primeiras torres</strong> da lane for destruída, <strong>desaparece</strong>.</p>\",\n \"spawn.info.bunnelby.lane_915\":\n \"<p>Começa a aparecer às <strong>9:15</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong> e ressurgem após <strong>60 segundos</strong>.</p><p>Se alguma das <strong>primeiras torres</strong> da lane for destruída, <strong>desaparece</strong>.</p>\",\n \"spawn.info.accelgor\":\n \"<p>Começa a aparecer às <strong>9:45</strong>.</p><p>Quando derrotado, concede <strong>4 / 7 pontos</strong> e um <strong>buff</strong>. <strong>Ressurge após 60 segundos</strong>.</p><p>O buff dura <strong>70 segundos</strong> e concede <strong>10% de redução no tempo de recarga dos movimentos</strong>.</p>\",\n \"spawn.info.escavalier\":\n \"<p>Começa a aparecer às <strong>9:45</strong>.</p><p>Quando derrotado, concede <strong>4 / 7 pontos</strong> e um <strong>buff</strong>. <strong>Ressurge após 60 segundos</strong>.</p><p>O buff dura <strong>70 segundos</strong> e concede <strong>dano extra em ataques básicos e reduz a velocidade de movimento do oponente por um curto tempo</strong>.</p>\",\n \"spawn.info.baltoy.generic\":\n \"<p>Começa a aparecer às <strong>9:45</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong>. <strong>Ressurge após 60 segundos</strong>.</p>\",\n \"spawn.info.baltoy.lane_940\":\n \"<p>Começa a aparecer às <strong>9:40</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong>. <strong>Ressurge após 60 segundos</strong>.</p><p>Se alguma das <strong>primeiras torres</strong> da lane for destruída, <strong>desaparece</strong>.</p>\",\n \"spawn.info.baltoy.lane_920\":\n \"<p>Começa a aparecer às <strong>9:40</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong>. <strong>Ressurge após 60 segundos</strong>.</p><p>Se alguma das <strong>primeiras torres</strong> da lane for destruída, <strong>desaparece</strong>.</p>\",\n \"spawn.info.baltoy.lane_910\":\n \"<p>Começa a aparecer às <strong>9:10</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong>. <strong>Ressurge após 60 segundos</strong>.</p><p>Se alguma das <strong>primeiras torres</strong> da lane for destruída, <strong>desaparece</strong>.</p>\",\n \"spawn.info.baltoy.lane_910_only\":\n \"<p>Começa a aparecer às <strong>9:10</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong>. <strong>Ressurge após 60 segundos</strong>.</p>\",\n \"spawn.info.baltoy.lane_840\":\n \"<p>Começa a aparecer às <strong>8:40</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong>. <strong>Ressurge após 60 segundos</strong>.</p>\",\n \"spawn.info.baltoy.tower\":\n \"<p>Começa a aparecer quando a <strong>primeira torre correspondente</strong> for destruída.</p><p>Quando derrotado, concede <strong>2 pontos</strong>. <strong>Ressurge após 60 segundos</strong>.</p>\",\n \"spawn.info.regidrago\":\n \"<p>Aparece no <strong>centro do mapa às 8:00</strong>. Quando derrotado, <strong>Altaria aparece 1:30 minuto depois</strong>.<br>O time que derrotar o <strong>Regidrago</strong> ganha <strong>experiência para todos os aliados</strong>.<br>Quem aplicar o golpe final recebe <strong>buff de velocidade de pontuação</strong> e <strong>20 pontos</strong>.</p>\",\n \"spawn.info.regieleki\":\n \"<p>Aparece às <strong>7:00</strong> em uma lane aleatória entre <strong>topo e base</strong>.<br>Quando derrotado, vai até a base do time adversário e, se tocar a base, pontua <strong>20/16/12/8 pontos</strong>; se a base ainda estiver de pé, <strong>gols ficam instantâneos por 20/15/10/5s</strong>.<br>Quem aplicar o golpe final recebe <strong>20 pontos</strong>.<br>Ressurge <strong>2 minutos</strong> após a morte.</p>\",\n \"spawn.info.xatu\":\n \"<p>Aparece às <strong>9:59</strong>.</p><p>Concede <strong>muita experiência</strong> e <strong>2 pontos</strong> quando derrotado.</p><p><strong>Não ressurgem</strong>.</p>\",\n \"spawn.info.natu.900\":\n \"<p>Aparece às <strong>9:00</strong>.</p>\",\n \"spawn.info.natu.920\":\n \"<p>Aparece às <strong>9:20</strong>.</p>\",\n \"spawn.info.indeedee.lane\":\n \"<p>Começa a aparecer às <strong>9:30</strong> / <strong>9:35</strong>.</p><p>Quando derrotado, <strong>ressurge após 60 segundos</strong> e concede <strong>5 pontos</strong>.</p><p>Se alguma das <strong>primeiras torres</strong> da lane for destruída, <strong>desaparece</strong>.</p>\",\n \"spawn.info.indeedee.tower\":\n \"<p>Aparece quando a <strong>primeira torre correspondente</strong> for destruída.</p><p>Quando derrotado, <strong>ressurge após 60 segundos</strong> e concede <strong>5 pontos</strong>.</p>\",\n \"spawn.info.salac\":\n \"<p>Quando consumido, concede <strong>bônus de velocidade de movimento</strong> por <strong>3 segundos</strong>.</p><p>Começa a aparecer às <strong>8:30</strong> e ressurgem <strong>60 segundos</strong> após o consumo.</p>\",\n \"spawn.info.salac.short\":\n \"<p>Bônus de velocidade de movimento por 3 segundos.</p>\",\n \"spawn.info.altaria.after_regidrago\":\n \"<p>Começa a aparecer <strong>1:30 após o Regidrago ser derrotado</strong>.</p>\",\n \"spawn.info.altaria.rayquaza\":\n \"<p>Aparece às <strong>8:00</strong> e resurge a cada <strong>1:30</strong>.</p><p>Desaparece às <strong>2:30</strong>.</p>\",\n \"spawn.info.regidrago.kyogre\":\n \"<p>Aparece no <strong>centro do mapa às 8:00</strong>.</p>\",\n \"spawn.info.xatu.short\":\n \"<p>Aparece às <strong>9:59</strong>.</p>\",\n \"spawn.info.indeedee.tower_break\":\n \"<p>Aparece quando torre é destruída.</p>\",\n \"spawn.info.baltoy.tower_break\":\n \"<p>Aparece quando torre é destruída.</p>\",\n \"spawn.info.bunnelby.lane\":\n \"<p>Começa a aparecer às <strong>9:40</strong>.</p>\",\n \"spawn.info.bunnelby.lane_920_short\":\n \"<p>Começa a aparecer às <strong>9:20</strong>.</p>\",\n \"spawn.info.bunnelby.lane_915_short\":\n \"<p>Começa a aparecer às <strong>9:15</strong>.</p>\",\n \"spawn.info.baltoy.lane_940_short\":\n \"<p>Começa a aparecer às <strong>9:40</strong>.</p>\",\n \"spawn.info.baltoy.945_short\":\n \"<p>Começa a aparecer às <strong>9:45</strong>.</p>\",\n \"spawn.info.baltoy.lane_910_short\":\n \"<p>Começa a aparecer às <strong>9:10</strong>.</p>\",\n \"spawn.info.baltoy.lane_840_short\":\n \"<p>Começa a aparecer às <strong>8:40</strong>.</p>\",\n \"spawn.info.indeedee.lane_930\":\n \"<p>Começa a aparecer às <strong>9:30</strong>.</p>\",\n \"spawn.info.indeedee.lane_935\":\n \"<p>Começa a aparecer às <strong>9:35</strong>.</p>\",\n \"spawn.info.baltoy.tower_kyogre\":\n \"<p>Começa a aparecer quando a <strong>primeira torre correspondente</strong> for destruída.</p>\",\n \"spawn.info.indeedee.tower_short\":\n \"<p>Aparece quando a <strong>primeira torre correspondente</strong> for destruída.</p>\",\n};\n\nexport default ptBR;\n","/**\n * Japanese (Japan) Pokémon names — official localized names.\n */\nconst jaJP: Record<string, string> = {\n venusaur: \"フシギバナ\",\n charizard: \"リザードン\",\n \"mega-charizard-x\": \"メガリザードンX\",\n \"mega-charizard-y\": \"メガリザードンY\",\n blastoise: \"カメックス\",\n pikachu: \"ピカチュウ\",\n \"alolan-raichu\": \"アローラのライチュウ\",\n clefable: \"ピクシー\",\n \"alolan-ninetales\": \"アローラのキュウコン\",\n wigglytuff: \"プクリン\",\n meowth: \"ニャース\",\n psyduck: \"コダック\",\n machamp: \"カイリキー\",\n \"galarian-rapidash\": \"ガラルのギャロップ\",\n slowbro: \"ヤドラン\",\n dodrio: \"ドードリオ\",\n gengar: \"ゲンガー\",\n blissey: \"ハピナス\",\n \"mr-mime\": \"バリヤード\",\n scizor: \"ハッサム\",\n gyarados: \"ギャラドス\",\n \"mega-gyarados\": \"メガギャラドス\",\n lapras: \"ラプラス\",\n vaporeon: \"シャワーズ\",\n snorlax: \"カビゴン\",\n zapdos: \"サンダー\",\n moltres: \"ファイヤー\",\n dragonite: \"カイリュー\",\n mewtwox: \"メガミュウツーX\",\n mewtwoy: \"メガミュウツーY\",\n \"mega-mewtwo-x\": \"メガミュウツーX\",\n \"mega-mewtwo-y\": \"メガミュウツーY\",\n mew: \"ミュウ\",\n azumarill: \"マリルリ\",\n espeon: \"エーフィ\",\n umbreon: \"ブラッキー\",\n mamoswine: \"マンムー\",\n suicune: \"スイクン\",\n tyranitar: \"バンギラス\",\n \"ho-oh\": \"ホウオウ\",\n blaziken: \"バシャーモ\",\n gardevoir: \"サーナイト\",\n sableye: \"ヤミラミ\",\n absol: \"アブソル\",\n metagross: \"メタグロス\",\n latias: \"ラティアス\",\n latios: \"ラティオス\",\n empoleon: \"エンペルト\",\n garchomp: \"ガブリアス\",\n lucario: \"ルカリオ\",\n \"mega-lucario\": \"メガルカリオ\",\n leafeon: \"リーフィア\",\n glaceon: \"グレイシア\",\n darkrai: \"ダークライ\",\n crustle: \"イワパレス\",\n zoroark: \"ゾロアーク\",\n chandelure: \"シャンデラ\",\n delphox: \"マフォクシー\",\n greninja: \"ゲッコウガ\",\n talonflame: \"ファイアロー\",\n aegislash: \"ギルガルド\",\n sylveon: \"ニンフィア\",\n goodra: \"ヌメルゴン\",\n trevenant: \"オーロット\",\n hoopa: \"フーパ\",\n decidueye: \"ジュナイパー\",\n tsareena: \"アマージョ\",\n comfey: \"キュワワー\",\n mimikyu: \"ミミッキュ\",\n dhelmise: \"ダダリン\",\n buzzwole: \"マッシブーン\",\n zeraora: \"ゼラオラ\",\n cinderace: \"エースバーン\",\n inteleon: \"インテレオン\",\n greedent: \"ヨクバリス\",\n eldegoss: \"ワタシラガ\",\n cramorant: \"ウッウ\",\n sirfetchd: \"ネギガナイト\",\n alcremie: \"マホイップ\",\n falinks: \"タイレーツ\",\n duraludon: \"ジュラルドン\",\n dragapult: \"ドラパルト\",\n zacian: \"ザシアン\",\n urshifu: \"ウーラオス\",\n meowscarada: \"マスカーニャ\",\n pawmot: \"パーモット\",\n armarouge: \"グレンアルマ\",\n ceruledge: \"ソウブレイズ\",\n tinkaton: \"デカヌチャン\",\n miraidon: \"ミライドン\",\n // Maps — names and descriptions\n \"map-groudon\": \"テイアの天空遺跡\",\n \"map-groudon.description\": \"グラードンが登場する5v5マップ。\",\n \"map-kyogre\": \"テイアの天空遺跡\",\n \"map-kyogre.description\": \"カイオーガが登場する5v5マップ。\",\n \"map-rayquaza\": \"テイアの天空遺跡\",\n \"map-rayquaza.description\": \"レックウザが登場する5v5マップ。\",\n // Neutrals (wild Pokémon / items)\n accelgor: \"アッケラー\",\n altaria: \"チルタリス\",\n baltoy: \"ヤドン\",\n bunnelby: \"ホルビー\",\n escavalier: \"シュバルゴ\",\n groudon: \"グラードン\",\n indeedee: \"イエッサン\",\n kyogre: \"カイオーガ\",\n natu: \"ネイティ\",\n rayquaza: \"レックウザ\",\n regidrago: \"レジドラゴ\",\n regice: \"レジアイス\",\n regieleki: \"レジエレキ\",\n regirock: \"レジロック\",\n registeel: \"レジスチル\",\n salac: \"サラクのみ\",\n sitrus: \"オボンのみ\",\n xatu: \"ネイティオ\",\n // Spawn info (HTML)\n \"spawn.info.groudon.boss\":\n \"<p>撃破すると、生存している味方全員が<strong>バフ</strong>と<strong>15アエオスポイント</strong>を獲得。<br>このバフは<strong>所持者がノックアウトされるまで永続</strong>。ノックアウトされるとバフは<strong>与えた側に移る</strong>。<br><strong>ゴール速度上昇</strong>・<strong>大ダメージ上昇</strong>・<strong>小シールド</strong>。<br>2:00に出現。</p>\",\n \"spawn.info.bunnelby.initial\":\n \"<p><strong>試合開始時に出現</strong>し、<strong>撃破後は再出現しない</strong>。</p><p>2ポイント獲得。</p>\",\n \"spawn.info.bunnelby.lane_940\":\n \"<p><strong>9:40</strong>から出現。<br>撃破で<strong>2ポイント</strong>獲得、<strong>60秒</strong>後に再出現。<br>レーンの<strong>最初のタワー</strong>が破壊されると<strong>消滅</strong>。</p>\",\n \"spawn.info.bunnelby.lane_920\":\n \"<p><strong>9:20</strong>から出現。<br>撃破で<strong>2ポイント</strong>獲得、<strong>60秒</strong>後に再出現。<br>レーンの<strong>最初のタワー</strong>が破壊されると<strong>消滅</strong>。</p>\",\n \"spawn.info.bunnelby.lane_915\":\n \"<p><strong>9:15</strong>から出現。<br>撃破で<strong>2ポイント</strong>獲得、<strong>60秒</strong>後に再出現。<br>レーンの<strong>最初のタワー</strong>が破壊されると<strong>消滅</strong>。</p>\",\n \"spawn.info.accelgor\":\n \"<p><strong>9:45</strong>から出現。撃破で<strong>4/7ポイント</strong>と<strong>バフ</strong>。<strong>60秒</strong>後に再出現。<br>バフは<strong>70秒</strong>間、<strong>わざのクールダウン10%短縮</strong>。</p>\",\n \"spawn.info.escavalier\":\n \"<p><strong>9:45</strong>から出現。撃破で<strong>4/7ポイント</strong>と<strong>バフ</strong>。<strong>60秒</strong>後に再出現。<br>バフは<strong>70秒</strong>間、<strong>基本攻撃ダメージ上昇・相手の移動速度短時間低下</strong>。</p>\",\n \"spawn.info.baltoy.generic\":\n \"<p><strong>9:45</strong>から出現。撃破で<strong>2ポイント</strong>。<strong>60秒</strong>後に再出現。</p>\",\n \"spawn.info.baltoy.lane_940\":\n \"<p><strong>9:40</strong>から出現。撃破で<strong>2ポイント</strong>。<strong>60秒</strong>後に再出現。レーンの<strong>最初のタワー</strong>破壊で<strong>消滅</strong>。</p>\",\n \"spawn.info.baltoy.lane_920\":\n \"<p><strong>9:40</strong>から出現。撃破で<strong>2ポイント</strong>。<strong>60秒</strong>後に再出現。レーンの<strong>最初のタワー</strong>破壊で<strong>消滅</strong>。</p>\",\n \"spawn.info.baltoy.lane_910\":\n \"<p><strong>9:10</strong>から出現。撃破で<strong>2ポイント</strong>。<strong>60秒</strong>後に再出現。レーンの<strong>最初のタワー</strong>破壊で<strong>消滅</strong>。</p>\",\n \"spawn.info.baltoy.lane_910_only\":\n \"<p><strong>9:10</strong>から出現。撃破で<strong>2ポイント</strong>。<strong>60秒</strong>後に再出現。</p>\",\n \"spawn.info.baltoy.lane_840\":\n \"<p><strong>8:40</strong>から出現。撃破で<strong>2ポイント</strong>。<strong>60秒</strong>後に再出現。</p>\",\n \"spawn.info.baltoy.tower\":\n \"<p>対応する<strong>最初のタワー</strong>破壊後に出現。撃破で<strong>2ポイント</strong>。<strong>60秒</strong>後に再出現。</p>\",\n \"spawn.info.regidrago\":\n \"<p><strong>8:00</strong>にマップ中央に出現。撃破から<strong>1:30</strong>後にチルタリスが出現。<br>撃破したチームは<strong>味方全員に経験値</strong>。とどめを刺したプレイヤーは<strong>得点速度バフ</strong>と<strong>20ポイント</strong>。</p>\",\n \"spawn.info.regieleki\":\n \"<p><strong>7:00</strong>にトップ/ボトムのいずれかのレーンに出現。撃破すると相手陣地へ。陣地に到達で<strong>20/16/12/8ポイント</strong>、陣地が健在なら<strong>20/15/10/5秒間ゴール即時</strong>。<br>とどめで<strong>20ポイント</strong>。撃破から<strong>2分</strong>で再出現。</p>\",\n \"spawn.info.regi.700\":\n \"<p><strong>7:00</strong>に出現。</p>\",\n \"spawn.info.xatu\":\n \"<p><strong>9:59</strong>に出現。撃破で<strong>大量経験値</strong>と<strong>2ポイント</strong>。<strong>再出現なし</strong>。</p>\",\n \"spawn.info.natu.900\":\n \"<p><strong>9:00</strong>に出現。</p>\",\n \"spawn.info.natu.920\":\n \"<p><strong>9:20</strong>に出現。</p>\",\n \"spawn.info.indeedee.lane\":\n \"<p><strong>9:30</strong>/<strong>9:35</strong>から出現。撃破で<strong>60秒</strong>後に再出現、<strong>5ポイント</strong>。レーンの<strong>最初のタワー</strong>破壊で<strong>消滅</strong>。</p>\",\n \"spawn.info.indeedee.tower\":\n \"<p>対応する<strong>最初のタワー</strong>破壊後に出現。撃破で<strong>60秒</strong>後に再出現、<strong>5ポイント</strong>。</p>\",\n \"spawn.info.salac\":\n \"<p>使用で<strong>3秒間</strong><strong>移動速度アップ</strong>。<strong>8:30</strong>から出現、使用後<strong>60秒</strong>で再出現。</p>\",\n \"spawn.info.salac.short\":\n \"<p>3秒間移動速度アップ。</p>\",\n \"spawn.info.altaria.after_regidrago\":\n \"<p>レジドラゴ撃破から<strong>1:30</strong>後に出現。</p>\",\n \"spawn.info.altaria.rayquaza\":\n \"<p><strong>8:00</strong>に出現、<strong>1:30</strong>ごとに再出現。<strong>2:30</strong>に消滅。</p>\",\n \"spawn.info.kyogre.boss\":\n \"<p>撃破すると生存味方全員が<strong>バフ</strong>と<strong>15アエオスポイント</strong>を獲得。相手の残存タワーは1:30間無効(シールド・回復不可)。<br>バフは<strong>所持者がノックアウトされるまで永続</strong>。ノックアウトで<strong>与えた側に移る</strong>。<br><strong>ゴール速度上昇</strong>・<strong>自己回復(毎秒5%)</strong>・<strong>小シールド</strong>。<br>2:00に出現。</p>\",\n \"spawn.info.rayquaza.boss\":\n \"<p>撃破で勝利チームに<strong>15アエオスポイント</strong>と<strong>シールド</strong>(得点速度上昇・ゴール妨害無効)。<br>2:00に出現。</p>\",\n \"spawn.info.regidrago.kyogre\":\n \"<p><strong>8:00</strong>にマップ中央に出現。</p>\",\n \"spawn.info.xatu.short\":\n \"<p><strong>9:59</strong>に出現。</p>\",\n \"spawn.info.indeedee.tower_break\":\n \"<p>タワー破壊で出現。</p>\",\n \"spawn.info.baltoy.tower_break\":\n \"<p>タワー破壊で出現。</p>\",\n \"spawn.info.bunnelby.lane\":\n \"<p><strong>9:40</strong>から出現。</p>\",\n \"spawn.info.bunnelby.lane_920_short\":\n \"<p><strong>9:20</strong>から出現。</p>\",\n \"spawn.info.bunnelby.lane_915_short\":\n \"<p><strong>9:15</strong>から出現。</p>\",\n \"spawn.info.baltoy.lane_940_short\":\n \"<p><strong>9:40</strong>から出現。</p>\",\n \"spawn.info.baltoy.945_short\":\n \"<p><strong>9:45</strong>から出現。</p>\",\n \"spawn.info.baltoy.lane_910_short\":\n \"<p><strong>9:10</strong>から出現。</p>\",\n \"spawn.info.baltoy.lane_840_short\":\n \"<p><strong>8:40</strong>から出現。</p>\",\n \"spawn.info.indeedee.lane_930\":\n \"<p><strong>9:30</strong>から出現。</p>\",\n \"spawn.info.indeedee.lane_935\":\n \"<p><strong>9:35</strong>から出現。</p>\",\n \"spawn.info.bunnelby.points\":\n \"<p>2ポイント獲得。</p>\",\n \"spawn.info.baltoy.tower_kyogre\":\n \"<p>対応する<strong>最初のタワー</strong>破壊後に出現。</p>\",\n \"spawn.info.indeedee.tower_short\":\n \"<p>対応する<strong>最初のタワー</strong>破壊後に出現。</p>\",\n};\n\nexport default jaJP;\n","/**\n * French (France) Pokémon names — official localized names.\n */\nconst fr: Record<string, string> = {\n venusaur: \"Florizarre\",\n charizard: \"Dracaufeu\",\n \"mega-charizard-x\": \"Méga-Dracaufeu X\",\n \"mega-charizard-y\": \"Méga-Dracaufeu Y\",\n blastoise: \"Tortank\",\n pikachu: \"Pikachu\",\n \"alolan-raichu\": \"Raichu d'Alola\",\n clefable: \"Mélodelfe\",\n \"alolan-ninetales\": \"Feunard d'Alola\",\n wigglytuff: \"Grodoudou\",\n meowth: \"Miaouss\",\n psyduck: \"Psykokwak\",\n machamp: \"Mackogneur\",\n \"galarian-rapidash\": \"Galopa de Galar\",\n slowbro: \"Flagadoss\",\n dodrio: \"Dodrio\",\n gengar: \"Ectoplasma\",\n blissey: \"Leveinard\",\n \"mr-mime\": \"M. Mime\",\n scizor: \"Cizayox\",\n gyarados: \"Léviator\",\n \"mega-gyarados\": \"Méga-Léviator\",\n lapras: \"Lokhlass\",\n vaporeon: \"Aquali\",\n snorlax: \"Ronflex\",\n zapdos: \"Électhor\",\n moltres: \"Sulfura\",\n dragonite: \"Dracolosse\",\n mewtwox: \"Méga-Mewtwo X\",\n mewtwoy: \"Méga-Mewtwo Y\",\n \"mega-mewtwo-x\": \"Méga-Mewtwo X\",\n \"mega-mewtwo-y\": \"Méga-Mewtwo Y\",\n mew: \"Mew\",\n azumarill: \"Azumarill\",\n espeon: \"Mentali\",\n umbreon: \"Noctali\",\n mamoswine: \"Mammochon\",\n suicune: \"Suicune\",\n tyranitar: \"Tyranocif\",\n \"ho-oh\": \"Ho-Oh\",\n blaziken: \"Braségali\",\n gardevoir: \"Gardevoir\",\n sableye: \"Ténéfix\",\n absol: \"Absol\",\n metagross: \"Métalosse\",\n latias: \"Latias\",\n latios: \"Latios\",\n empoleon: \"Pingoléon\",\n garchomp: \"Carchacrok\",\n lucario: \"Lucario\",\n \"mega-lucario\": \"Méga-Lucario\",\n leafeon: \"Phyllali\",\n glaceon: \"Givrali\",\n darkrai: \"Darkrai\",\n crustle: \"Crabaraque\",\n zoroark: \"Zoroark\",\n chandelure: \"Lugulabre\",\n delphox: \"Goupelin\",\n greninja: \"Amphinobi\",\n talonflame: \"Flambusard\",\n aegislash: \"Exagide\",\n sylveon: \"Nymphali\",\n goodra: \"Muplodocus\",\n trevenant: \"Desséliande\",\n hoopa: \"Hoopa\",\n decidueye: \"Archéduc\",\n tsareena: \"Sucreine\",\n comfey: \"Guérilande\",\n mimikyu: \"Mimiqui\",\n dhelmise: \"Sinistrail\",\n buzzwole: \"Mouscoto\",\n zeraora: \"Zeraora\",\n cinderace: \"Pyrobut\",\n inteleon: \"Lézargus\",\n greedent: \"Rongrigou\",\n eldegoss: \"Blancoton\",\n cramorant: \"Nigosier\",\n sirfetchd: \"Palarticho\",\n alcremie: \"Charmilly\",\n falinks: \"Hexadron\",\n duraludon: \"Duralugon\",\n dragapult: \"Drakéfauche\",\n zacian: \"Zacian\",\n urshifu: \"Shifours\",\n meowscarada: \"Matourgeon\",\n pawmot: \"Parmot\",\n armarouge: \"Carmadura\",\n ceruledge: \"Malvalame\",\n tinkaton: \"Forgerette\",\n miraidon: \"Miraidon\",\n // Maps — names and descriptions\n \"map-groudon\": \"Ruines Célestes de Theia\",\n \"map-groudon.description\": \"Carte 5v5 avec Groudon.\",\n \"map-kyogre\": \"Ruines Célestes de Theia\",\n \"map-kyogre.description\": \"Carte 5v5 avec Kyogre.\",\n \"map-rayquaza\": \"Ruines Célestes de Theia\",\n \"map-rayquaza.description\": \"Carte 5v5 avec Rayquaza.\",\n // Neutrals (wild Pokémon / items)\n accelgor: \"Accelgor\",\n altaria: \"Altaria\",\n baltoy: \"Balbuto\",\n bunnelby: \"Sapereau\",\n escavalier: \"Lançargot\",\n groudon: \"Groudon\",\n indeedee: \"Wimessir\",\n kyogre: \"Kyogre\",\n natu: \"Natu\",\n rayquaza: \"Rayquaza\",\n regidrago: \"Regidrago\",\n regice: \"Regice\",\n regieleki: \"Regieleki\",\n regirock: \"Regirock\",\n registeel: \"Registeel\",\n salac: \"Baie Salac\",\n sitrus: \"Baie Sitrus\",\n xatu: \"Xatu\",\n // Spawn info (HTML)\n \"spawn.info.groudon.boss\":\n \"<p>Une fois vaincu, tous les coéquipiers vivants reçoivent un <strong>buff</strong> et <strong>15 points aeos</strong>.<br>Ce buff est <strong>permanent jusqu'à ce que le porteur soit K.O.</strong>. Au K.O., le buff <strong>passe au vainqueur</strong>.<br>Il donne un <strong>boost de vitesse de score</strong>, un <strong>gros boost de dégâts</strong> et un <strong>petit bouclier</strong>.<br>Apparaît toujours à 2:00.</p>\",\n \"spawn.info.bunnelby.initial\":\n \"<p>Ils <strong>apparaissent au début de la partie</strong> et <strong>ne réapparaissent jamais</strong> une fois vaincus.</p><p>Donnent 2 points.</p>\",\n \"spawn.info.bunnelby.lane_940\":\n \"<p>Commence à apparaître à <strong>9:40</strong>.</p><p>Vaincu : <strong>2 points</strong>, réapparition après <strong>60 secondes</strong>.</p><p>Si une des <strong>premières tours</strong> de la voie est détruite, <strong>disparaît</strong>.</p>\",\n \"spawn.info.bunnelby.lane_920\":\n \"<p>Commence à apparaître à <strong>9:20</strong>.</p><p>Vaincu : <strong>2 points</strong>, réapparition après <strong>60 secondes</strong>.</p><p>Si une des <strong>premières tours</strong> de la voie est détruite, <strong>disparaît</strong>.</p>\",\n \"spawn.info.bunnelby.lane_915\":\n \"<p>Commence à apparaître à <strong>9:15</strong>.</p><p>Vaincu : <strong>2 points</strong>, réapparition après <strong>60 secondes</strong>.</p><p>Si une des <strong>premières tours</strong> de la voie est détruite, <strong>disparaît</strong>.</p>\",\n \"spawn.info.accelgor\":\n \"<p>Commence à <strong>9:45</strong>. Vaincu : <strong>4 / 7 points</strong> et <strong>buff</strong>. Réapparition après <strong>60 s</strong>. Buff <strong>70 s</strong> : <strong>-10% temps de recharge des capacités</strong>.</p>\",\n \"spawn.info.escavalier\":\n \"<p>Commence à <strong>9:45</strong>. Vaincu : <strong>4 / 7 points</strong> et <strong>buff</strong>. Réapparition après <strong>60 s</strong>. Buff <strong>70 s</strong> : <strong>dégâts d’attaque basique + ralentissement adverse</strong>.</p>\",\n \"spawn.info.baltoy.generic\":\n \"<p>Commence à <strong>9:45</strong>. Vaincu : <strong>2 points</strong>. Réapparition après <strong>60 s</strong>.</p>\",\n \"spawn.info.baltoy.lane_940\":\n \"<p>Commence à <strong>9:40</strong>. Vaincu : <strong>2 points</strong>. Réapparition après <strong>60 s</strong>. <strong>Première tour</strong> détruite → <strong>disparaît</strong>.</p>\",\n \"spawn.info.baltoy.lane_920\":\n \"<p>Commence à <strong>9:40</strong>. Vaincu : <strong>2 points</strong>. Réapparition après <strong>60 s</strong>. <strong>Première tour</strong> détruite → <strong>disparaît</strong>.</p>\",\n \"spawn.info.baltoy.lane_910\":\n \"<p>Commence à <strong>9:10</strong>. Vaincu : <strong>2 points</strong>. Réapparition après <strong>60 s</strong>. <strong>Première tour</strong> détruite → <strong>disparaît</strong>.</p>\",\n \"spawn.info.baltoy.lane_910_only\":\n \"<p>Commence à <strong>9:10</strong>. Vaincu : <strong>2 points</strong>. Réapparition après <strong>60 s</strong>.</p>\",\n \"spawn.info.baltoy.lane_840\":\n \"<p>Commence à <strong>8:40</strong>. Vaincu : <strong>2 points</strong>. Réapparition après <strong>60 s</strong>.</p>\",\n \"spawn.info.baltoy.tower\":\n \"<p>Apparaît quand la <strong>première tour correspondante</strong> est détruite. Vaincu : <strong>2 points</strong>. Réapparition après <strong>60 s</strong>.</p>\",\n \"spawn.info.regidrago\":\n \"<p>Apparaît <strong>au centre à 8:00</strong>. Vaincu → <strong>Altaria 1:30 après</strong>.<br>L’équipe qui le vainc gagne <strong>de l’exp pour toute l’équipe</strong>. Dernier coup : <strong>buff score</strong> et <strong>20 points</strong>.</p>\",\n \"spawn.info.regieleki\":\n \"<p>Apparaît à <strong>7:00</strong> en haut ou en bas. Vaincu → va vers la base adverse ; touche la base : <strong>20/16/12/8 points</strong> ; base vivante : <strong>buts instantanés 20/15/10/5 s</strong>.<br>Dernier coup : <strong>20 points</strong>. Réapparition <strong>2 min</strong> après.</p>\",\n \"spawn.info.regi.700\":\n \"<p>Apparaît à <strong>7:00</strong>.</p>\",\n \"spawn.info.xatu\":\n \"<p>Apparaît à <strong>9:59</strong>. Vaincu : <strong>beaucoup d’exp</strong> et <strong>2 points</strong>. <strong>Ne réapparaît pas</strong>.</p>\",\n \"spawn.info.natu.900\":\n \"<p>Apparaît à <strong>9:00</strong>.</p>\",\n \"spawn.info.natu.920\":\n \"<p>Apparaît à <strong>9:20</strong>.</p>\",\n \"spawn.info.indeedee.lane\":\n \"<p>Commence à <strong>9:30</strong> / <strong>9:35</strong>. Vaincu : réapparition <strong>60 s</strong>, <strong>5 points</strong>. <strong>Première tour</strong> détruite → <strong>disparaît</strong>.</p>\",\n \"spawn.info.indeedee.tower\":\n \"<p>Apparaît quand la <strong>première tour correspondante</strong> est détruite. Vaincu : réapparition <strong>60 s</strong>, <strong>5 points</strong>.</p>\",\n \"spawn.info.salac\":\n \"<p>Consommé : <strong>bonus vitesse 3 s</strong>. Apparition à <strong>8:30</strong>, réapparition <strong>60 s</strong> après consommation.</p>\",\n \"spawn.info.salac.short\":\n \"<p>Bonus de vitesse pendant 3 secondes.</p>\",\n \"spawn.info.altaria.after_regidrago\":\n \"<p>Apparaît <strong>1:30 après la chute de Regidrago</strong>.</p>\",\n \"spawn.info.altaria.rayquaza\":\n \"<p>Apparaît à <strong>8:00</strong>, réapparition toutes les <strong>1:30</strong>. Disparaît à <strong>2:30</strong>.</p>\",\n \"spawn.info.kyogre.boss\":\n \"<p>Vaincu : coéquipiers vivants → <strong>buff</strong>, <strong>15 points aeos</strong>, tours adverses encore debout désactivées 1:30 (pas de bouclier/régén).<br>Buff <strong>permanent jusqu’au K.O. du porteur</strong>, puis <strong>passe au vainqueur</strong>.<br><strong>Vitesse de score</strong>, <strong>régén 5%/s</strong>, <strong>petit bouclier</strong>. Apparaît à 2:00.</p>\",\n \"spawn.info.rayquaza.boss\":\n \"<p>Vaincu : équipe gagnante reçoit <strong>15 points aeos</strong>, un <strong>bouclier</strong> qui <strong>accélère le score</strong> et <strong>empêche le blocage des buts</strong>. Apparaît à 2:00.</p>\",\n \"spawn.info.regidrago.kyogre\":\n \"<p>Apparaît <strong>au centre à 8:00</strong>.</p>\",\n \"spawn.info.xatu.short\":\n \"<p>Apparaît à <strong>9:59</strong>.</p>\",\n \"spawn.info.indeedee.tower_break\":\n \"<p>Apparition après destruction de tour.</p>\",\n \"spawn.info.baltoy.tower_break\":\n \"<p>Apparition après destruction de tour.</p>\",\n \"spawn.info.bunnelby.lane\":\n \"<p>Commence à apparaître à <strong>9:40</strong>.</p>\",\n \"spawn.info.bunnelby.lane_920_short\":\n \"<p>Commence à apparaître à <strong>9:20</strong>.</p>\",\n \"spawn.info.bunnelby.lane_915_short\":\n \"<p>Commence à apparaître à <strong>9:15</strong>.</p>\",\n \"spawn.info.baltoy.lane_940_short\":\n \"<p>Commence à apparaître à <strong>9:40</strong>.</p>\",\n \"spawn.info.baltoy.945_short\":\n \"<p>Commence à apparaître à <strong>9:45</strong>.</p>\",\n \"spawn.info.baltoy.lane_910_short\":\n \"<p>Commence à apparaître à <strong>9:10</strong>.</p>\",\n \"spawn.info.baltoy.lane_840_short\":\n \"<p>Commence à apparaître à <strong>8:40</strong>.</p>\",\n \"spawn.info.indeedee.lane_930\":\n \"<p>Commence à apparaître à <strong>9:30</strong>.</p>\",\n \"spawn.info.indeedee.lane_935\":\n \"<p>Commence à apparaître à <strong>9:35</strong>.</p>\",\n \"spawn.info.bunnelby.points\":\n \"<p>Donnent 2 points.</p>\",\n \"spawn.info.baltoy.tower_kyogre\":\n \"<p>Apparaît quand la <strong>première tour correspondante</strong> est détruite.</p>\",\n \"spawn.info.indeedee.tower_short\":\n \"<p>Apparaît quand la <strong>première tour correspondante</strong> est détruite.</p>\",\n};\n\nexport default fr;\n","/**\n * Spanish (Spain/LATAM) Pokémon names — official localized names.\n */\nconst es: Record<string, string> = {\n venusaur: \"Venusaur\",\n charizard: \"Charizard\",\n \"mega-charizard-x\": \"Mega-Charizard X\",\n \"mega-charizard-y\": \"Mega-Charizard Y\",\n blastoise: \"Blastoise\",\n pikachu: \"Pikachu\",\n \"alolan-raichu\": \"Raichu de Alola\",\n clefable: \"Clefable\",\n \"alolan-ninetales\": \"Ninetales de Alola\",\n wigglytuff: \"Wigglytuff\",\n meowth: \"Meowth\",\n psyduck: \"Psyduck\",\n machamp: \"Machamp\",\n \"galarian-rapidash\": \"Rapidash de Galar\",\n slowbro: \"Slowbro\",\n dodrio: \"Dodrio\",\n gengar: \"Gengar\",\n blissey: \"Blissey\",\n \"mr-mime\": \"Mr. Mime\",\n scizor: \"Scizor\",\n gyarados: \"Gyarados\",\n \"mega-gyarados\": \"Mega-Gyarados\",\n lapras: \"Lapras\",\n vaporeon: \"Vaporeon\",\n snorlax: \"Snorlax\",\n zapdos: \"Zapdos\",\n moltres: \"Moltres\",\n dragonite: \"Dragonite\",\n mewtwox: \"Mega-Mewtwo X\",\n mewtwoy: \"Mega-Mewtwo Y\",\n \"mega-mewtwo-x\": \"Mega-Mewtwo X\",\n \"mega-mewtwo-y\": \"Mega-Mewtwo Y\",\n mew: \"Mew\",\n azumarill: \"Azumarill\",\n espeon: \"Espeon\",\n umbreon: \"Umbreon\",\n mamoswine: \"Mamoswine\",\n suicune: \"Suicune\",\n tyranitar: \"Tyranitar\",\n \"ho-oh\": \"Ho-Oh\",\n blaziken: \"Blaziken\",\n gardevoir: \"Gardevoir\",\n sableye: \"Sableye\",\n absol: \"Absol\",\n metagross: \"Metagross\",\n latias: \"Latias\",\n latios: \"Latios\",\n empoleon: \"Empoleon\",\n garchomp: \"Garchomp\",\n lucario: \"Lucario\",\n \"mega-lucario\": \"Mega-Lucario\",\n leafeon: \"Leafeon\",\n glaceon: \"Glaceon\",\n darkrai: \"Darkrai\",\n crustle: \"Crustle\",\n zoroark: \"Zoroark\",\n chandelure: \"Chandelure\",\n delphox: \"Delphox\",\n greninja: \"Greninja\",\n talonflame: \"Talonflame\",\n aegislash: \"Aegislash\",\n sylveon: \"Sylveon\",\n goodra: \"Goodra\",\n trevenant: \"Trevenant\",\n hoopa: \"Hoopa\",\n decidueye: \"Decidueye\",\n tsareena: \"Tsareena\",\n comfey: \"Comfey\",\n mimikyu: \"Mimikyu\",\n dhelmise: \"Dhelmise\",\n buzzwole: \"Buzzwole\",\n zeraora: \"Zeraora\",\n cinderace: \"Cinderace\",\n inteleon: \"Inteleon\",\n greedent: \"Greedent\",\n eldegoss: \"Eldegoss\",\n cramorant: \"Cramorant\",\n sirfetchd: \"Sirfetch'd\",\n alcremie: \"Alcremie\",\n falinks: \"Falinks\",\n duraludon: \"Duraludon\",\n dragapult: \"Dragapult\",\n zacian: \"Zacian\",\n urshifu: \"Urshifu\",\n meowscarada: \"Meowscarada\",\n pawmot: \"Pawmot\",\n armarouge: \"Armarouge\",\n ceruledge: \"Ceruledge\",\n tinkaton: \"Tinkaton\",\n miraidon: \"Miraidon\",\n // Maps — names and descriptions\n \"map-groudon\": \"Ruinas Celestiales de Theia\",\n \"map-groudon.description\": \"Mapa 5v5 con Groudon.\",\n \"map-kyogre\": \"Ruinas Celestiales de Theia\",\n \"map-kyogre.description\": \"Mapa 5v5 con Kyogre.\",\n \"map-rayquaza\": \"Ruinas Celestiales de Theia\",\n \"map-rayquaza.description\": \"Mapa 5v5 con Rayquaza.\",\n // Neutrals (wild Pokémon / items)\n accelgor: \"Accelgor\",\n altaria: \"Altaria\",\n baltoy: \"Baltoy\",\n bunnelby: \"Bunnelby\",\n escavalier: \"Escavalier\",\n groudon: \"Groudon\",\n indeedee: \"Indeedee\",\n kyogre: \"Kyogre\",\n natu: \"Natu\",\n rayquaza: \"Rayquaza\",\n regidrago: \"Regidrago\",\n regice: \"Regice\",\n regieleki: \"Regieleki\",\n regirock: \"Regirock\",\n registeel: \"Registeel\",\n salac: \"Baya Salac\",\n sitrus: \"Baya Sitrus\",\n xatu: \"Xatu\",\n // Spawn info (HTML)\n \"spawn.info.groudon.boss\":\n \"<p>Al derrotarlo, todos los compañeros vivos reciben <strong>buff</strong> y <strong>15 puntos aeos</strong>.<br>El buff es <strong>permanente hasta que el portador sea K.O.</strong>. Al ser K.O., el buff <strong>pasa al que lo derrotó</strong>.<br>Da <strong>aumento de velocidad de anotación</strong>, <strong>gran aumento de daño</strong> y <strong>pequeño escudo</strong>.<br>Siempre aparece a las 2:00.</p>\",\n \"spawn.info.bunnelby.initial\":\n \"<p><strong>Aparecen al inicio de la partida</strong> y <strong>no reaparecen</strong> al ser derrotados.</p><p>Dan 2 puntos.</p>\",\n \"spawn.info.bunnelby.lane_940\":\n \"<p>Empieza a aparecer a las <strong>9:40</strong>.</p><p>Al derrotarlo: <strong>2 puntos</strong>, reaparece tras <strong>60 segundos</strong>.</p><p>Si alguna <strong>primera torre</strong> del carril cae, <strong>desaparece</strong>.</p>\",\n \"spawn.info.bunnelby.lane_920\":\n \"<p>Empieza a aparecer a las <strong>9:20</strong>.</p><p>Al derrotarlo: <strong>2 puntos</strong>, reaparece tras <strong>60 segundos</strong>.</p><p>Si alguna <strong>primera torre</strong> del carril cae, <strong>desaparece</strong>.</p>\",\n \"spawn.info.bunnelby.lane_915\":\n \"<p>Empieza a aparecer a las <strong>9:15</strong>.</p><p>Al derrotarlo: <strong>2 puntos</strong>, reaparece tras <strong>60 segundos</strong>.</p><p>Si alguna <strong>primera torre</strong> del carril cae, <strong>desaparece</strong>.</p>\",\n \"spawn.info.accelgor\":\n \"<p>Empieza a las <strong>9:45</strong>. Derrotado: <strong>4 / 7 puntos</strong> y <strong>buff</strong>. Reaparece en <strong>60 s</strong>. Buff <strong>70 s</strong>: <strong>-10% enfriamiento de movimientos</strong>.</p>\",\n \"spawn.info.escavalier\":\n \"<p>Empieza a las <strong>9:45</strong>. Derrotado: <strong>4 / 7 puntos</strong> y <strong>buff</strong>. Reaparece en <strong>60 s</strong>. Buff <strong>70 s</strong>: <strong>daño extra en ataques básicos y ralentiza al rival</strong>.</p>\",\n \"spawn.info.baltoy.generic\":\n \"<p>Empieza a las <strong>9:45</strong>. Derrotado: <strong>2 puntos</strong>. Reaparece en <strong>60 s</strong>.</p>\",\n \"spawn.info.baltoy.lane_940\":\n \"<p>Empieza a las <strong>9:40</strong>. Derrotado: <strong>2 puntos</strong>. Reaparece en <strong>60 s</strong>. <strong>Primera torre</strong> del carril destruida → <strong>desaparece</strong>.</p>\",\n \"spawn.info.baltoy.lane_920\":\n \"<p>Empieza a las <strong>9:40</strong>. Derrotado: <strong>2 puntos</strong>. Reaparece en <strong>60 s</strong>. <strong>Primera torre</strong> del carril destruida → <strong>desaparece</strong>.</p>\",\n \"spawn.info.baltoy.lane_910\":\n \"<p>Empieza a las <strong>9:10</strong>. Derrotado: <strong>2 puntos</strong>. Reaparece en <strong>60 s</strong>. <strong>Primera torre</strong> del carril destruida → <strong>desaparece</strong>.</p>\",\n \"spawn.info.baltoy.lane_910_only\":\n \"<p>Empieza a las <strong>9:10</strong>. Derrotado: <strong>2 puntos</strong>. Reaparece en <strong>60 s</strong>.</p>\",\n \"spawn.info.baltoy.lane_840\":\n \"<p>Empieza a las <strong>8:40</strong>. Derrotado: <strong>2 puntos</strong>. Reaparece en <strong>60 s</strong>.</p>\",\n \"spawn.info.baltoy.tower\":\n \"<p>Aparece cuando la <strong>primera torre correspondiente</strong> es destruida. Derrotado: <strong>2 puntos</strong>. Reaparece en <strong>60 s</strong>.</p>\",\n \"spawn.info.regidrago\":\n \"<p>Aparece en <strong>el centro del mapa a las 8:00</strong>. Derrotado → <strong>Altaria 1:30 después</strong>.<br>El equipo que lo derrote gana <strong>experiencia para todos</strong>. Golpe final: <strong>buff de anotación</strong> y <strong>20 puntos</strong>.</p>\",\n \"spawn.info.regieleki\":\n \"<p>Aparece a las <strong>7:00</strong> en carril superior o inferior. Derrotado → va a la base rival; toca base: <strong>20/16/12/8 puntos</strong>; base viva: <strong>goles instantáneos 20/15/10/5 s</strong>.<br>Golpe final: <strong>20 puntos</strong>. Reaparece <strong>2 min</strong> después.</p>\",\n \"spawn.info.regi.700\":\n \"<p>Aparece a las <strong>7:00</strong>.</p>\",\n \"spawn.info.xatu\":\n \"<p>Aparece a las <strong>9:59</strong>. Derrotado: <strong>mucha experiencia</strong> y <strong>2 puntos</strong>. <strong>No reaparece</strong>.</p>\",\n \"spawn.info.natu.900\":\n \"<p>Aparece a las <strong>9:00</strong>.</p>\",\n \"spawn.info.natu.920\":\n \"<p>Aparece a las <strong>9:20</strong>.</p>\",\n \"spawn.info.indeedee.lane\":\n \"<p>Empieza a las <strong>9:30</strong> / <strong>9:35</strong>. Derrotado: reaparece en <strong>60 s</strong>, <strong>5 puntos</strong>. <strong>Primera torre</strong> destruida → <strong>desaparece</strong>.</p>\",\n \"spawn.info.indeedee.tower\":\n \"<p>Aparece cuando la <strong>primera torre correspondiente</strong> es destruida. Derrotado: reaparece en <strong>60 s</strong>, <strong>5 puntos</strong>.</p>\",\n \"spawn.info.salac\":\n \"<p>Al consumir: <strong>bonus de velocidad 3 s</strong>. Aparece a las <strong>8:30</strong>, reaparece <strong>60 s</strong> después de consumir.</p>\",\n \"spawn.info.salac.short\":\n \"<p>Bonus de velocidad durante 3 segundos.</p>\",\n \"spawn.info.altaria.after_regidrago\":\n \"<p>Aparece <strong>1:30 después de derrotar a Regidrago</strong>.</p>\",\n \"spawn.info.altaria.rayquaza\":\n \"<p>Aparece a las <strong>8:00</strong>, reaparece cada <strong>1:30</strong>. Desaparece a las <strong>2:30</strong>.</p>\",\n \"spawn.info.kyogre.boss\":\n \"<p>Derrotado: compañeros vivos → <strong>buff</strong>, <strong>15 puntos aeos</strong>, torres rivales aún en pie desactivadas 1:30 (sin escudo/regen).<br>Buff <strong>permanente hasta K.O. del portador</strong>, luego <strong>pasa al que lo derrotó</strong>.<br><strong>Velocidad de anotación</strong>, <strong>regen 5%/s</strong>, <strong>pequeño escudo</strong>. Aparece a las 2:00.</p>\",\n \"spawn.info.rayquaza.boss\":\n \"<p>Derrotado: el equipo ganador recibe <strong>15 puntos aeos</strong>, un <strong>escudo</strong> que <strong>acelera el marcador</strong> y <strong>evita que bloqueen goles</strong>. Aparece a las 2:00.</p>\",\n \"spawn.info.regidrago.kyogre\":\n \"<p>Aparece en <strong>el centro del mapa a las 8:00</strong>.</p>\",\n \"spawn.info.xatu.short\":\n \"<p>Aparece a las <strong>9:59</strong>.</p>\",\n \"spawn.info.indeedee.tower_break\":\n \"<p>Aparece al destruir torre.</p>\",\n \"spawn.info.baltoy.tower_break\":\n \"<p>Aparece al destruir torre.</p>\",\n \"spawn.info.bunnelby.lane\":\n \"<p>Empieza a aparecer a las <strong>9:40</strong>.</p>\",\n \"spawn.info.bunnelby.lane_920_short\":\n \"<p>Empieza a aparecer a las <strong>9:20</strong>.</p>\",\n \"spawn.info.bunnelby.lane_915_short\":\n \"<p>Empieza a aparecer a las <strong>9:15</strong>.</p>\",\n \"spawn.info.baltoy.lane_940_short\":\n \"<p>Empieza a aparecer a las <strong>9:40</strong>.</p>\",\n \"spawn.info.baltoy.945_short\":\n \"<p>Empieza a aparecer a las <strong>9:45</strong>.</p>\",\n \"spawn.info.baltoy.lane_910_short\":\n \"<p>Empieza a aparecer a las <strong>9:10</strong>.</p>\",\n \"spawn.info.baltoy.lane_840_short\":\n \"<p>Empieza a aparecer a las <strong>8:40</strong>.</p>\",\n \"spawn.info.indeedee.lane_930\":\n \"<p>Empieza a aparecer a las <strong>9:30</strong>.</p>\",\n \"spawn.info.indeedee.lane_935\":\n \"<p>Empieza a aparecer a las <strong>9:35</strong>.</p>\",\n \"spawn.info.bunnelby.points\":\n \"<p>Dan 2 puntos.</p>\",\n \"spawn.info.baltoy.tower_kyogre\":\n \"<p>Aparece cuando la <strong>primera torre correspondiente</strong> es destruida.</p>\",\n \"spawn.info.indeedee.tower_short\":\n \"<p>Aparece cuando la <strong>primera torre correspondiente</strong> es destruida.</p>\",\n};\n\nexport default es;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACIO,IAAM,aAAa;AAAA,EACxB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,WAAW;AACb;AAOO,IAAM,MAAM;AAAA,EACjB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AAAA,EACP,QAAQ;AACV;;;ACtBA,IAAM,WAA2B;AAAA,EAAC;AAAA,IAChC,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,cAAc;AAAA,IACd,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,cAAc;AAAA,IACd,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,IACd,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,QAAQ,CAAC,IAAI,WAAW,IAAI,MAAM;AAAA,EACpC;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,cAAc;AAAA,IACd,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,IACd,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,QAAQ,CAAC,IAAI,UAAU,IAAI,KAAK;AAAA,EAClC;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,cAAc;AAAA,IACd,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,cAAc;AAAA,IACd,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,cAAc;AAAA,IACd,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc,WAAW;AAAA,EAC3B;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IAA2B;AAAA,IACzC,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,cAAc,WAAW;AAAA,IACzB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,cAAc;AAAA,EAChB;AAAC;AAED,IAAO,mBAAQ;;;AC1yEf,IAAM,OAAc;AAAA,EAClB;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,MACN,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,MACN,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,MACN,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,aAAa;AAAA,EACf;AACF;AAEA,IAAO,eAAQ;;;ACpCf,IAAM,WAAsB;AAAA,EAC1B,EAAE,IAAI,YAAY,OAAO,yBAAyB,MAAM,YAAY,KAAK,IAAI;AAAA,EAC7E,EAAE,IAAI,WAAW,OAAO,wBAAwB,MAAM,WAAW,KAAK,IAAI;AAAA,EAC1E,EAAE,IAAI,UAAU,OAAO,uBAAuB,MAAM,UAAU,KAAK,IAAI;AAAA,EACvE,EAAE,IAAI,YAAY,OAAO,yBAAyB,MAAM,YAAY,KAAK,IAAI;AAAA,EAC7E,EAAE,IAAI,cAAc,OAAO,2BAA2B,MAAM,cAAc,KAAK,IAAI;AAAA,EACnF,EAAE,IAAI,WAAW,OAAO,wBAAwB,MAAM,WAAW,KAAK,IAAI;AAAA,EAC1E,EAAE,IAAI,YAAY,OAAO,yBAAyB,MAAM,YAAY,KAAK,IAAI;AAAA,EAC7E,EAAE,IAAI,UAAU,OAAO,uBAAuB,MAAM,UAAU,KAAK,IAAI;AAAA,EACvE,EAAE,IAAI,QAAQ,OAAO,qBAAqB,MAAM,QAAQ,KAAK,IAAI;AAAA,EACjE,EAAE,IAAI,YAAY,OAAO,yBAAyB,MAAM,YAAY,KAAK,IAAI;AAAA,EAC7E,EAAE,IAAI,aAAa,OAAO,0BAA0B,MAAM,aAAa,KAAK,IAAI;AAAA,EAChF,EAAE,IAAI,UAAU,OAAO,uBAAuB,MAAM,UAAU,KAAK,IAAI;AAAA,EACvE,EAAE,IAAI,aAAa,OAAO,0BAA0B,MAAM,aAAa,KAAK,IAAI;AAAA,EAChF,EAAE,IAAI,YAAY,OAAO,yBAAyB,MAAM,YAAY,KAAK,IAAI;AAAA,EAC7E,EAAE,IAAI,aAAa,OAAO,0BAA0B,MAAM,aAAa,KAAK,IAAI;AAAA,EAChF,EAAE,IAAI,SAAS,OAAO,sBAAsB,MAAM,cAAc;AAAA,EAChE,EAAE,IAAI,UAAU,OAAO,uBAAuB,MAAM,eAAe;AAAA,EACnE,EAAE,IAAI,QAAQ,OAAO,qBAAqB,MAAM,QAAQ,KAAK,IAAI;AACnE;AAEA,IAAO,mBAAQ;;;AClBf,SAAS,aAAa,UAA0B;AAC9C,SAAO,SAAS,QAAQ,sBAAsB,EAAE,EAAE,QAAQ,UAAU,EAAE;AACxE;AAEA,IAAM,QAAgC,CAAC;AACvC,WAAW,KAAK,kBAAU;AACxB,QAAM,aAAa,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE;AACzC;AACA,WAAW,KAAK,cAAM;AACpB,QAAM,EAAE,EAAE,IAAI,EAAE;AAChB,MAAI,EAAE,YAAa,OAAM,GAAG,EAAE,EAAE,cAAc,IAAI,EAAE;AACtD;AACA,WAAW,KAAK,kBAAU;AACxB,QAAM,EAAE,EAAE,IAAI,EAAE;AAClB;AAGA,MAAM,eAAe,IAAI;AACzB,MAAM,eAAe,IAAI;AAGzB,OAAO,OAAO,OAAO;AAAA,EACnB,2BACE;AAAA,EACF,+BACE;AAAA,EACF,gCACE;AAAA,EACF,gCACE;AAAA,EACF,gCACE;AAAA,EACF,uBACE;AAAA,EACF,yBACE;AAAA,EACF,6BACE;AAAA,EACF,8BACE;AAAA,EACF,8BACE;AAAA,EACF,8BACE;AAAA,EACF,mCACE;AAAA,EACF,8BACE;AAAA,EACF,2BACE;AAAA,EACF,wBACE;AAAA,EACF,wBACE;AAAA,EACF,uBACE;AAAA,EACF,mBACE;AAAA,EACF,uBACE;AAAA,EACF,uBACE;AAAA,EACF,4BACE;AAAA,EACF,6BACE;AAAA,EACF,oBACE;AAAA,EACF,0BACE;AAAA,EACF,sCACE;AAAA,EACF,+BACE;AAAA,EACF,0BACE;AAAA,EACF,4BACE;AAAA,EACF,+BACE;AAAA,EACF,yBACE;AAAA,EACF,mCACE;AAAA,EACF,iCACE;AAAA,EACF,4BACE;AAAA,EACF,sCACE;AAAA,EACF,sCACE;AAAA,EACF,oCACE;AAAA,EACF,+BACE;AAAA,EACF,oCACE;AAAA,EACF,oCACE;AAAA,EACF,gCACE;AAAA,EACF,gCACE;AAAA,EACF,8BACE;AAAA,EACF,kCACE;AAAA,EACF,mCACE;AACJ,CAAC;AAED,IAAO,aAAQ;;;AChHf,IAAM,OAA+B;AAAA,EACnC,GAAG;AAAA;AAAA,EAEH,eAAe;AAAA,EACf,2BAA2B;AAAA,EAC3B,cAAc;AAAA,EACd,0BAA0B;AAAA,EAC1B,gBAAgB;AAAA,EAChB,4BAA4B;AAAA;AAAA,EAE5B,2BACE;AAAA,EACF,0BACE;AAAA,EACF,4BACE;AAAA,EACF,+BACE;AAAA,EACF,8BACE;AAAA,EACF,uBACE;AAAA,EACF,gCACE;AAAA,EACF,gCACE;AAAA,EACF,gCACE;AAAA,EACF,uBACE;AAAA,EACF,yBACE;AAAA,EACF,6BACE;AAAA,EACF,8BACE;AAAA,EACF,8BACE;AAAA,EACF,8BACE;AAAA,EACF,mCACE;AAAA,EACF,8BACE;AAAA,EACF,2BACE;AAAA,EACF,wBACE;AAAA,EACF,wBACE;AAAA,EACF,mBACE;AAAA,E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","names":[]}
1
+ {"version":3,"sources":["../../src/i18n/index.ts","../../src/constants.ts","../../src/pokemons.ts","../../src/maps.ts","../../src/neutrals.ts","../../src/i18n/en.ts","../../src/i18n/pt-BR.ts","../../src/i18n/ja-JP.ts","../../src/i18n/fr.ts","../../src/i18n/es.ts"],"sourcesContent":["import en from \"./en\";\nimport ptBR from \"./pt-BR\";\nimport jaJP from \"./ja-JP\";\nimport fr from \"./fr\";\nimport es from \"./es\";\n\nexport type Locale = \"en\" | \"pt-BR\" | \"ja-JP\" | \"fr\" | \"es\";\n\nconst locales: Record<Locale, Record<string, string>> = {\n en,\n \"pt-BR\": ptBR,\n \"ja-JP\": jaJP,\n fr,\n es,\n};\n\n/**\n * Returns the display name for a Pokémon by slug/id and locale.\n * Falls back to English if the locale is missing the key, then to the id.\n */\nexport function getPokemonName(id: string, locale: Locale = \"en\"): string {\n const map = locales[locale] ?? en;\n return map[id] ?? en[id] ?? id;\n}\n\n/**\n * Returns the localized name for a map by id and locale.\n * Falls back to English, then to the id.\n */\nexport function getMapName(mapId: string, locale: Locale = \"en\"): string {\n const map = locales[locale] ?? en;\n return map[mapId] ?? en[mapId] ?? mapId;\n}\n\n/**\n * Returns the localized description for a map by id and locale.\n * Falls back to English, then to empty string.\n */\nexport function getMapDescription(\n mapId: string,\n locale: Locale = \"en\"\n): string {\n const key = `${mapId}.description`;\n const map = locales[locale] ?? en;\n return map[key] ?? en[key] ?? \"\";\n}\n\n/**\n * Returns the localized name for a neutral (wild Pokémon/item) by id and locale.\n * Falls back to English, then to the id.\n */\nexport function getNeutralName(\n neutralId: string,\n locale: Locale = \"en\"\n): string {\n const map = locales[locale] ?? en;\n return map[neutralId] ?? en[neutralId] ?? neutralId;\n}\n\n/**\n * Returns the localized spawn info HTML by key and locale.\n * Key format: \"spawn.info.<infoKey>\". Falls back to English, then to empty string.\n */\nexport function getSpawnInfo(\n infoKey: string,\n locale: Locale = \"en\"\n): string {\n const key = `spawn.info.${infoKey}`;\n const map = locales[locale] ?? en;\n return map[key] ?? en[key] ?? \"\";\n}\n\n/** MapSpawn with optional infoKey (from types). */\ntype SpawnLike = { infoKey?: string; info?: string };\n\n/**\n * Returns the localized spawn info HTML for a spawn. Uses infoKey when set, else spawn.info.\n */\nexport function getSpawnInfoForSpawn(\n spawn: SpawnLike,\n locale: Locale = \"en\"\n): string {\n if (spawn.infoKey) {\n const out = getSpawnInfo(spawn.infoKey, locale);\n if (out) return out;\n }\n return spawn.info ?? \"\";\n}\n\nexport { en, ptBR, jaJP, fr, es };\n","/**\n * Battle role in Pokémon Unite (Attacker, Defender, etc.).\n * Use as const object for framework-agnostic usage.\n */\nexport const BattleType = {\n ATTACKER: \"attacker\",\n DEFENDER: \"defender\",\n ALLROUNDER: \"allrounder\",\n SPEEDSTER: \"speedster\",\n SUPPORTER: \"supporter\",\n} as const;\n\nexport type BattleType = (typeof BattleType)[keyof typeof BattleType];\n\n/**\n * Tags for filtering (role + attack style).\n */\nexport const Tag = {\n ATTACKER: \"attacker\",\n DEFENDER: \"defender\",\n ALLROUNDER: \"allrounder\",\n SPEEDSTER: \"speedster\",\n SUPPORTER: \"supporter\",\n MELEE: \"melee\",\n RANGED: \"ranged\",\n} as const;\n\nexport type Tag = (typeof Tag)[keyof typeof Tag];\n","import { BattleType, Tag } from \"./constants\";\nimport type { Pokemon } from \"./types\";\n\nconst pokemons: Array<Pokemon> = [{\n \"name\": \"Venusaur\",\n \"dex\": 3,\n \"images\": {\n \"main\": \"pokemons/roster-venusaur.png\",\n \"big\": \"pokemons/roster-venusaur-2x.png\",\n \"complete\": \"pokemons/stat-venusaur.png\",\n \"move_s11\": \"moves/venusaur_s11.png\",\n \"move_s12\": \"moves/venusaur_s12.png\",\n \"move_s21\": \"moves/venusaur_s21.png\",\n \"move_s22\": \"moves/venusaur_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 2,\n \"mobility\": 2,\n \"scoring\": 2.5,\n \"support\": 1\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Charizard\",\n \"dex\": 6,\n \"images\": {\n \"main\": \"pokemons/roster-charizard.png\",\n \"big\": \"pokemons/roster-charizard-2x.png\",\n \"complete\": \"pokemons/stat-charizard.png\",\n \"move_s11\": \"moves/charizard_s11.png\",\n \"move_s12\": \"moves/charizard_s12.png\",\n \"move_s21\": \"moves/charizard_s21.png\",\n \"move_s22\": \"moves/charizard_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 3,\n \"mobility\": 2.5,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"difficulty\": 1,\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ]\n},\n{\n \"name\": \"Mega Charizard X\",\n \"dex\": 6.1,\n \"images\": {\n \"main\": \"pokemons/roster-mega-charizard-x.png\",\n \"big\": \"pokemons/roster-mega-charizard-x-2x.png\",\n \"complete\": \"pokemons/stat-mega-charizard-x.png\",\n \"move_s11\": \"moves/mega-charizard_s11.png\",\n \"move_s21\": \"moves/mega-charizard_s21.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 3.5,\n \"mobility\": 2.5,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"difficulty\": 1,\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ]\n},\n{\n \"name\": \"Mega Charizard Y\",\n \"dex\": 6.2,\n \"images\": {\n \"main\": \"pokemons/roster-mega-charizard-y.png\",\n \"big\": \"pokemons/roster-mega-charizard-y-2x.png\",\n \"complete\": \"pokemons/stat-mega-charizard-y.png\",\n \"move_s11\": \"moves/mega-charizard_s12.png\",\n \"move_s21\": \"moves/mega-charizard_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 3,\n \"mobility\": 4,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Blastoise\",\n \"dex\": 9,\n \"images\": {\n \"main\": \"pokemons/roster-blastoise.png\",\n \"big\": \"pokemons/roster-blastoise-2x.png\",\n \"complete\": \"pokemons/stat-blastoise.png\",\n \"move_s11\": \"moves/blastoise_s11.png\",\n \"move_s12\": \"moves/blastoise_s12.png\",\n \"move_s21\": \"moves/blastoise_s21.png\",\n \"move_s22\": \"moves/blastoise_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"tags\": [\n Tag.DEFENDER,\n Tag.RANGED\n ],\n \"difficulty\": 2,\n \"stats\": {\n \"offense\": 2,\n \"endurance\": 3.5,\n \"mobility\": 2,\n \"scoring\": 2,\n \"support\": 3\n }\n},\n{\n \"name\": \"Pikachu\",\n \"dex\": 25,\n \"images\": {\n \"main\": \"pokemons/roster-pikachu.png\",\n \"big\": \"pokemons/roster-pikachu-2x.png\",\n \"complete\": \"pokemons/stat-pikachu.png\",\n \"move_s11\": \"moves/pikachu_s11.png\",\n \"move_s12\": \"moves/pikachu_s12.png\",\n \"move_s21\": \"moves/pikachu_s21.png\",\n \"move_s22\": \"moves/pikachu_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 1.5,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 1.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Alolan Raichu\",\n \"dex\": 26,\n \"images\": {\n \"main\": \"pokemons/roster-alolan-raichu.png\",\n \"big\": \"pokemons/roster-alolan-raichu-2x.png\",\n \"complete\": \"pokemons/stat-alolan-raichu.png\",\n \"move_s11\": \"moves/alolan-raichu_s11.png\",\n \"move_s12\": \"moves/alolan-raichu_s12.png\",\n \"move_s21\": \"moves/alolan-raichu_s21.png\",\n \"move_s22\": \"moves/alolan-raichu_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 1.5,\n \"mobility\": 3.5,\n \"scoring\": 3,\n \"support\": 1\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Clefable\",\n \"dex\": 36,\n \"images\": {\n \"main\": \"pokemons/roster-clefable.png\",\n \"big\": \"pokemons/roster-clefable-2x.png\",\n \"complete\": \"pokemons/stat-clefable.png\",\n \"move_s11\": \"moves/clefable_s11.png\",\n \"move_s12\": \"moves/clefable_s12.png\",\n \"move_s21\": \"moves/clefable_s21.png\",\n \"move_s22\": \"moves/clefable_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 2,\n \"endurance\": 3,\n \"mobility\": 1.5,\n \"scoring\": 1.5,\n \"support\": 4.5\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Alolan Ninetales\",\n \"dex\": 38,\n \"images\": {\n \"main\": \"pokemons/roster-alolan-ninetales.png\",\n \"big\": \"pokemons/roster-alolan-ninetales-2x.png\",\n \"complete\": \"pokemons/stat-alolan-ninetales.png\",\n \"move_s11\": \"moves/alolan-ninetales_s11.png\",\n \"move_s12\": \"moves/alolan-ninetales_s12.png\",\n \"move_s21\": \"moves/alolan-ninetales_s21.png\",\n \"move_s22\": \"moves/alolan-ninetales_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 1.5,\n \"mobility\": 1.5,\n \"scoring\": 2.5,\n \"support\": 3\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Wigglytuff\",\n \"dex\": 40,\n \"images\": {\n \"main\": \"pokemons/roster-wigglytuff.png\",\n \"big\": \"pokemons/roster-wigglytuff-2x.png\",\n \"complete\": \"pokemons/stat-wigglytuff.png\",\n \"move_s11\": \"moves/wigglytuff_s11.png\",\n \"move_s12\": \"moves/wigglytuff_s12.png\",\n \"move_s21\": \"moves/wigglytuff_s21.png\",\n \"move_s22\": \"moves/wigglytuff_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 1,\n \"endurance\": 2.5,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 4.5\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Meowth\",\n \"dex\": 52,\n \"images\": {\n \"main\": \"pokemons/roster-meowth.png\",\n \"big\": \"pokemons/roster-meowth-2x.png\",\n \"complete\": \"pokemons/stat-meowth.png\",\n \"move_s11\": \"moves/meowth_s11.png\",\n \"move_s12\": \"moves/meowth_s12.png\",\n \"move_s21\": \"moves/meowth_s21.png\",\n \"move_s22\": \"moves/meowth_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 2,\n \"endurance\": 2,\n \"mobility\": 4,\n \"scoring\": 3,\n \"support\": 2\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Psyduck\",\n \"dex\": 54,\n \"images\": {\n \"main\": \"pokemons/roster-psyduck.png\",\n \"big\": \"pokemons/roster-psyduck-2x.png\",\n \"complete\": \"pokemons/stat-psyduck.png\",\n \"move_s11\": \"moves/psyduck_s11.png\",\n \"move_s12\": \"moves/psyduck_s12.png\",\n \"move_s21\": \"moves/psyduck_s21.png\",\n \"move_s22\": \"moves/psyduck_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 1,\n \"mobility\": 2,\n \"scoring\": 1,\n \"support\": 3\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Machamp\",\n \"dex\": 68,\n \"images\": {\n \"main\": \"pokemons/roster-machamp.png\",\n \"big\": \"pokemons/roster-machamp-2x.png\",\n \"complete\": \"pokemons/stat-machamp.png\",\n \"move_s11\": \"moves/machamp_s11.png\",\n \"move_s12\": \"moves/machamp_s12.png\",\n \"move_s21\": \"moves/machamp_s21.png\",\n \"move_s22\": \"moves/machamp_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2.5,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 1\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Galarian Rapidash\",\n \"dex\": 78,\n \"images\": {\n \"main\": \"pokemons/roster-galarian-rapidash.png\",\n \"big\": \"pokemons/roster-galarian-rapidash-2x.png\",\n \"complete\": \"pokemons/stat-galarian-rapidash.png\",\n \"move_s11\": \"moves/galarian-rapidash_s11.png\",\n \"move_s12\": \"moves/galarian-rapidash_s12.png\",\n \"move_s21\": \"moves/galarian-rapidash_s21.png\",\n \"move_s22\": \"moves/galarian-rapidash_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 4,\n \"mobility\": 4,\n \"scoring\": 2,\n \"support\": 1\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Slowbro\",\n \"dex\": 80,\n \"images\": {\n \"main\": \"pokemons/roster-slowbro.png\",\n \"big\": \"pokemons/roster-slowbro-2x.png\",\n \"complete\": \"pokemons/stat-slowbro.png\",\n \"move_s11\": \"moves/slowbro_s11.png\",\n \"move_s12\": \"moves/slowbro_s12.png\",\n \"move_s21\": \"moves/slowbro_s21.png\",\n \"move_s22\": \"moves/slowbro_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 1.5,\n \"endurance\": 4,\n \"mobility\": 1.5,\n \"scoring\": 1.5,\n \"support\": 4\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Dodrio\",\n \"dex\": 85,\n \"images\": {\n \"main\": \"pokemons/roster-dodrio.png\",\n \"big\": \"pokemons/roster-dodrio-2x.png\",\n \"complete\": \"pokemons/stat-dodrio.png\",\n \"move_s11\": \"moves/dodrio_s11.png\",\n \"move_s12\": \"moves/dodrio_s12.png\",\n \"move_s21\": \"moves/dodrio_s21.png\",\n \"move_s22\": \"moves/dodrio_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 3,\n \"endurance\": 2,\n \"mobility\": 4,\n \"scoring\": 4,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Gengar\",\n \"dex\": 94,\n \"images\": {\n \"main\": \"pokemons/roster-gengar.png\",\n \"big\": \"pokemons/roster-gengar-2x.png\",\n \"complete\": \"pokemons/stat-gengar.png\",\n \"move_s11\": \"moves/gengar_s11.png\",\n \"move_s12\": \"moves/gengar_s12.png\",\n \"move_s21\": \"moves/gengar_s21.png\",\n \"move_s22\": \"moves/gengar_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 2,\n \"mobility\": 4,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Blissey\",\n \"dex\": 242,\n \"images\": {\n \"main\": \"pokemons/roster-blissey.png\",\n \"big\": \"pokemons/roster-blissey-2x.png\",\n \"complete\": \"pokemons/stat-blissey.png\",\n \"move_s11\": \"moves/blissey_s11.png\",\n \"move_s12\": \"moves/blissey_s12.png\",\n \"move_s21\": \"moves/blissey_s21.png\",\n \"move_s22\": \"moves/blissey_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 1,\n \"endurance\": 3.5,\n \"mobility\": 1.5,\n \"scoring\": 1.5,\n \"support\": 4.5\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Mr. Mime\",\n \"dex\": 122,\n \"images\": {\n \"main\": \"pokemons/roster-mr-mime.png\",\n \"big\": \"pokemons/roster-mr-mime-2x.png\",\n \"complete\": \"pokemons/stat-mr-mime.png\",\n \"move_s11\": \"moves/mr-mime_s11.png\",\n \"move_s12\": \"moves/mr-mime_s12.png\",\n \"move_s21\": \"moves/mr-mime_s21.png\",\n \"move_s22\": \"moves/mr-mime_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"tags\": [Tag.SUPPORTER, Tag.RANGED]\n},\n{\n \"name\": \"Scizor\",\n \"dex\": 212,\n \"images\": {\n \"main\": \"pokemons/roster-scizor.png\",\n \"big\": \"pokemons/roster-scizor-2x.png\",\n \"complete\": \"pokemons/stat-scizor.png\",\n \"move_s11\": \"moves/scizor_s11.png\",\n \"move_s12\": \"moves/scizor_s12.png\",\n \"move_s21\": \"moves/scizor_s21.png\",\n \"move_s22\": \"moves/scizor_s22.png\",\n \"move_s23\": \"moves/scizor_s23.png\",\n \"move_s24\": \"moves/scizor_s24.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 2.5,\n \"mobility\": 4.5,\n \"scoring\": 2.5,\n \"support\": 1\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Gyarados\",\n \"dex\": 130,\n \"images\": {\n \"main\": \"pokemons/roster-gyarados.png\",\n \"big\": \"pokemons/roster-gyarados-2x.png\",\n \"complete\": \"pokemons/stat-gyarados.png\",\n \"move_s11\": \"moves/gyarados_s11.png\",\n \"move_s12\": \"moves/gyarados_s12.png\",\n \"move_s21\": \"moves/gyarados_s21.png\",\n \"move_s22\": \"moves/gyarados_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 2.5,\n \"mobility\": 4.5,\n \"scoring\": 2.5,\n \"support\": 1\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Mega Gyarados\",\n \"dex\": 130.1,\n \"images\": {\n \"main\": \"pokemons/roster-mega-gyarados.png\",\n \"big\": \"pokemons/roster-mega-gyarados-2x.png\",\n \"complete\": \"pokemons/stat-mega-gyarados.png\",\n \"move_s11\": \"moves/mega-gyarados_s11.png\",\n \"move_s21\": \"moves/mega-gyarados_s21.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 3.5,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 1.5\n },\n \"difficulty\": 1,\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ]\n},\n{\n \"name\": \"Lapras\",\n \"dex\": 131,\n \"images\": {\n \"main\": \"pokemons/roster-lapras.png\",\n \"big\": \"pokemons/roster-lapras-2x.png\",\n \"complete\": \"pokemons/stat-lapras.png\",\n \"move_s11\": \"moves/lapras_s11.png\",\n \"move_s12\": \"moves/lapras_s12.png\",\n \"move_s21\": \"moves/lapras_s21.png\",\n \"move_s22\": \"moves/lapras_s22.png\",\n },\n \"active\": true,\n \"tags\": [\n Tag.DEFENDER,\n Tag.RANGED\n ],\n \"difficulty\": 2,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 3,\n \"endurance\": 3.5,\n \"mobility\": 2,\n \"scoring\": 2,\n \"support\": 3\n }\n},\n{\n \"name\": \"Vaporeon\",\n \"dex\": 134,\n \"images\": {\n \"main\": \"pokemons/roster-vaporeon.png\",\n \"big\": \"pokemons/roster-vaporeon-2x.png\",\n \"complete\": \"pokemons/stat-vaporeon.png\",\n \"move_s11\": \"moves/vaporeon_s11.png\",\n \"move_s12\": \"moves/vaporeon_s12.png\",\n \"move_s21\": \"moves/vaporeon_s21.png\",\n \"move_s22\": \"moves/vaporeon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 2,\n \"endurance\": 4,\n \"mobility\": 3,\n \"scoring\": 2,\n \"support\": 4\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Snorlax\",\n \"dex\": 143,\n \"images\": {\n \"main\": \"pokemons/roster-snorlax.png\",\n \"big\": \"pokemons/roster-snorlax-2x.png\",\n \"complete\": \"pokemons/stat-snorlax.png\",\n \"move_s11\": \"moves/snorlax_s11.png\",\n \"move_s12\": \"moves/snorlax_s12.png\",\n \"move_s21\": \"moves/snorlax_s21.png\",\n \"move_s22\": \"moves/snorlax_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 1.5,\n \"endurance\": 5,\n \"mobility\": 2,\n \"scoring\": 1.5,\n \"support\": 2.5\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Zapdos\",\n \"dex\": 145,\n \"images\": {\n \"main\": \"pokemons/roster-zapdos.png\",\n \"big\": \"pokemons/roster-zapdos-2x.png\",\n \"complete\": \"pokemons/stat-zapdos.png\",\n \"move_s11\": \"moves/zapdos_s11.png\",\n \"move_s21\": \"moves/zapdos_s21.png\"\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 5,\n \"endurance\": 2,\n \"mobility\": 1,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Moltres\",\n \"dex\": 146,\n \"images\": {\n \"main\": \"pokemons/roster-moltres.png\",\n \"big\": \"pokemons/roster-moltres-2x.png\",\n \"complete\": \"pokemons/stat-moltres.png\",\n \"move_s11\": \"moves/moltres_s11.png\",\n \"move_s21\": \"moves/moltres_s21.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2.5,\n \"mobility\": 2,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Dragonite\",\n \"dex\": 149,\n \"images\": {\n \"main\": \"pokemons/roster-dragonite.png\",\n \"big\": \"pokemons/roster-dragonite-2x.png\",\n \"complete\": \"pokemons/stat-dragonite.png\",\n \"move_s11\": \"moves/dragonite_s11.png\",\n \"move_s12\": \"moves/dragonite_s12.png\",\n \"move_s21\": \"moves/dragonite_s21.png\",\n \"move_s22\": \"moves/dragonite_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2.5,\n \"mobility\": 2.5,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Mega Mewtwo X\",\n \"dex\": 150,\n \"images\": {\n \"main\": \"pokemons/roster-mewtwox.png\",\n \"big\": \"pokemons/roster-mewtwox-2x.png\",\n \"complete\": \"pokemons/stat-mewtwox.png\",\n \"move_s11\": \"moves/mewtwox_s11.png\",\n \"move_s12\": \"moves/mewtwox_s12.png\",\n \"move_s21\": \"moves/mewtwox_s21.png\",\n \"move_s22\": \"moves/mewtwox_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 4,\n \"mobility\": 3,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Mega Mewtwo Y\",\n \"dex\": 150,\n \"images\": {\n \"main\": \"pokemons/roster-mewtwoy.png\",\n \"big\": \"pokemons/roster-mewtwoy-2x.png\",\n \"complete\": \"pokemons/stat-mewtwoy.png\",\n \"move_s11\": \"moves/mewtwoy_s11.png\",\n \"move_s12\": \"moves/mewtwoy_s12.png\",\n \"move_s21\": \"moves/mewtwoy_s21.png\",\n \"move_s22\": \"moves/mewtwoy_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 5,\n \"endurance\": 3,\n \"mobility\": 3.5,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Mew\",\n \"dex\": 151,\n \"images\": {\n \"main\": \"pokemons/roster-mew.png\",\n \"big\": \"pokemons/roster-mew-2x.png\",\n \"complete\": \"pokemons/stat-mew.png\",\n \"move_s11\": \"moves/mew_s11.png\",\n \"move_s12\": \"moves/mew_s12.png\",\n \"move_s13\": \"moves/mew_s13.png\",\n \"move_s21\": \"moves/mew_s21.png\",\n \"move_s22\": \"moves/mew_s22.png\",\n \"move_s23\": \"moves/mew_s23.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2,\n \"mobility\": 3,\n \"scoring\": 2,\n \"support\": 3,\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Azumarill\",\n \"dex\": 184,\n \"images\": {\n \"main\": \"pokemons/roster-azumarill.png\",\n \"big\": \"pokemons/roster-azumarill-2x.png\",\n \"complete\": \"pokemons/stat-azumarill.png\",\n \"move_s11\": \"moves/azumarill_s11.png\",\n \"move_s12\": \"moves/azumarill_s12.png\",\n \"move_s21\": \"moves/azumarill_s21.png\",\n \"move_s22\": \"moves/azumarill_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3,\n \"endurance\": 3,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Espeon\",\n \"dex\": 196,\n \"images\": {\n \"main\": \"pokemons/roster-espeon.png\",\n \"big\": \"pokemons/roster-espeon-2x.png\",\n \"complete\": \"pokemons/stat-espeon.png\",\n \"move_s11\": \"moves/espeon_s11.png\",\n \"move_s12\": \"moves/espeon_s12.png\",\n \"move_s21\": \"moves/espeon_s21.png\",\n \"move_s22\": \"moves/espeon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2,\n \"mobility\": 1.5,\n \"scoring\": 2,\n \"support\": 3\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Umbreon\",\n \"dex\": 197,\n \"images\": {\n \"main\": \"pokemons/roster-umbreon.png\",\n \"big\": \"pokemons/roster-umbreon-2x.png\",\n \"complete\": \"pokemons/stat-umbreon.png\",\n \"move_s11\": \"moves/umbreon_s11.png\",\n \"move_s12\": \"moves/umbreon_s12.png\",\n \"move_s21\": \"moves/umbreon_s21.png\",\n \"move_s22\": \"moves/umbreon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"tags\": [Tag.DEFENDER, Tag.MELEE]\n},\n{\n \"name\": \"Mamoswine\",\n \"dex\": 473,\n \"images\": {\n \"main\": \"pokemons/roster-mamoswine.png\",\n \"big\": \"pokemons/roster-mamoswine-2x.png\",\n \"complete\": \"pokemons/stat-mamoswine.png\",\n \"move_s11\": \"moves/mamoswine_s11.png\",\n \"move_s12\": \"moves/mamoswine_s12.png\",\n \"move_s21\": \"moves/mamoswine_s21.png\",\n \"move_s22\": \"moves/mamoswine_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 2.5,\n \"endurance\": 4,\n \"mobility\": 2,\n \"scoring\": 1.5,\n \"support\": 2.5\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Suicune\",\n \"dex\": 245,\n \"images\": {\n \"main\": \"pokemons/roster-suicune.png\",\n \"big\": \"pokemons/roster-suicune-2x.png\",\n \"complete\": \"pokemons/stat-suicune.png\",\n \"move_s11\": \"moves/suicune_s11.png\",\n \"move_s12\": \"moves/suicune_s12.png\",\n \"move_s21\": \"moves/suicune_s21.png\",\n \"move_s22\": \"moves/suicune_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 5,\n \"endurance\": 2.5,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Tyranitar\",\n \"dex\": 248,\n \"images\": {\n \"main\": \"pokemons/roster-tyranitar.png\",\n \"big\": \"pokemons/roster-tyranitar-2x.png\",\n \"complete\": \"pokemons/stat-tyranitar.png\",\n \"move_s11\": \"moves/tyranitar_s11.png\",\n \"move_s12\": \"moves/tyranitar_s12.png\",\n \"move_s21\": \"moves/tyranitar_s21.png\",\n \"move_s22\": \"moves/tyranitar_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 4,\n \"mobility\": 2,\n \"scoring\": 1.5,\n \"support\": 1\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Ho-Oh\",\n \"dex\": 250,\n \"images\": {\n \"main\": \"pokemons/roster-ho-oh.png\",\n \"big\": \"pokemons/roster-ho-oh-2x.png\",\n \"complete\": \"pokemons/stat-ho-oh.png\",\n \"move_s11\": \"moves/ho-oh_s11.png\",\n \"move_s12\": \"moves/ho-oh_s12.png\",\n \"move_s21\": \"moves/ho-oh_s21.png\",\n \"move_s22\": \"moves/ho-oh_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 3,\n \"endurance\": 4,\n \"mobility\": 2,\n \"scoring\": 1,\n \"support\": 3\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Blaziken\",\n \"dex\": 257,\n \"images\": {\n \"main\": \"pokemons/roster-blaziken.png\",\n \"big\": \"pokemons/roster-blaziken-2x.png\",\n \"complete\": \"pokemons/stat-blaziken.png\",\n \"move_s11\": \"moves/blaziken_s11.png\",\n \"move_s12\": \"moves/blaziken_s12.png\",\n \"move_s21\": \"moves/blaziken_s21.png\",\n \"move_s22\": \"moves/blaziken_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2.5,\n \"mobility\": 4,\n \"scoring\": 1,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.MELEE,\n Tag.ALLROUNDER\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Gardevoir\",\n \"dex\": 282,\n \"images\": {\n \"main\": \"pokemons/roster-gardevoir.png\",\n \"big\": \"pokemons/roster-gardevoir-2x.png\",\n \"complete\": \"pokemons/stat-gardevoir.png\",\n \"move_s11\": \"moves/gardevoir_s11.png\",\n \"move_s12\": \"moves/gardevoir_s12.png\",\n \"move_s21\": \"moves/gardevoir_s21.png\",\n \"move_s22\": \"moves/gardevoir_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 1.5,\n \"mobility\": 1.5,\n \"scoring\": 3,\n \"support\": 1.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Sableye\",\n \"dex\": 302,\n \"images\": {\n \"main\": \"pokemons/roster-sableye.png\",\n \"big\": \"pokemons/roster-sableye-2x.png\",\n \"complete\": \"pokemons/stat-sableye.png\",\n \"move_s11\": \"moves/sableye_s11.png\",\n \"move_s12\": \"moves/sableye_s12.png\",\n \"move_s21\": \"moves/sableye_s21.png\",\n \"move_s22\": \"moves/sableye_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 1,\n \"endurance\": 2.5,\n \"mobility\": 2.5,\n \"scoring\": 3.5,\n \"support\": 3.5\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Absol\",\n \"dex\": 359,\n \"images\": {\n \"main\": \"pokemons/roster-absol.png\",\n \"big\": \"pokemons/roster-absol-2x.png\",\n \"complete\": \"pokemons/stat-absol.png\",\n \"move_s11\": \"moves/absol_s11.png\",\n \"move_s12\": \"moves/absol_s12.png\",\n \"move_s21\": \"moves/absol_s21.png\",\n \"move_s22\": \"moves/absol_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 2,\n \"mobility\": 4,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Metagross\",\n \"dex\": 376,\n \"images\": {\n \"main\": \"pokemons/roster-metagross.png\",\n \"big\": \"pokemons/roster-metagross-2x.png\",\n \"complete\": \"pokemons/stat-metagross.png\",\n \"move_s11\": \"moves/metagross_s11.png\",\n \"move_s12\": \"moves/metagross_s12.png\",\n \"move_s21\": \"moves/metagross_s21.png\",\n \"move_s22\": \"moves/metagross_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 3,\n \"mobility\": 2.5,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"difficulty\": 2,\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ]\n},\n{\n \"name\": \"Latias\",\n \"dex\": 380,\n \"images\": {\n \"main\": \"pokemons/roster-latias.png\",\n \"big\": \"pokemons/roster-latias-2x.png\",\n \"complete\": \"pokemons/stat-latias.png\",\n \"move_s11\": \"moves/latias_s11.png\",\n \"move_s12\": \"moves/latias_s12.png\",\n \"move_s21\": \"moves/latias_s21.png\",\n \"move_s22\": \"moves/latias_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 1.5,\n \"mobility\": 4,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Latios\",\n \"dex\": 381,\n \"images\": {\n \"main\": \"pokemons/roster-latios.png\",\n \"big\": \"pokemons/roster-latios-2x.png\",\n \"complete\": \"pokemons/stat-latios.png\",\n \"move_s11\": \"moves/latios_s11.png\",\n \"move_s12\": \"moves/latios_s12.png\",\n \"move_s21\": \"moves/latios_s21.png\",\n \"move_s22\": \"moves/latios_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 1.5,\n \"mobility\": 4,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Empoleon\",\n \"dex\": 395,\n \"images\": {\n \"main\": \"pokemons/roster-empoleon.png\",\n \"big\": \"pokemons/roster-empoleon-2x.png\",\n \"complete\": \"pokemons/stat-empoleon.png\",\n \"move_s11\": \"moves/empoleon_s11.png\",\n \"move_s12\": \"moves/empoleon_s12.png\",\n \"move_s21\": \"moves/empoleon_s21.png\",\n \"move_s22\": \"moves/empoleon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 3.5,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 1.5\n },\n \"difficulty\": 2,\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ]\n},\n{\n \"name\": \"Garchomp\",\n \"dex\": 445,\n \"images\": {\n \"main\": \"pokemons/roster-garchomp.png\",\n \"big\": \"pokemons/roster-garchomp-2x.png\",\n \"complete\": \"pokemons/stat-garchomp.png\",\n \"move_s11\": \"moves/garchomp_s11.png\",\n \"move_s12\": \"moves/garchomp_s12.png\",\n \"move_s21\": \"moves/garchomp_s21.png\",\n \"move_s22\": \"moves/garchomp_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 3.5,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Lucario\",\n \"dex\": 448,\n \"images\": {\n \"main\": \"pokemons/roster-lucario.png\",\n \"big\": \"pokemons/roster-lucario-2x.png\",\n \"complete\": \"pokemons/stat-lucario.png\",\n \"move_s11\": \"moves/lucario_s11.png\",\n \"move_s12\": \"moves/lucario_s12.png\",\n \"move_s21\": \"moves/lucario_s21.png\",\n \"move_s22\": \"moves/lucario_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3,\n \"endurance\": 2.5,\n \"mobility\": 3.5,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Mega Lucario\",\n \"dex\": 448.1,\n \"images\": {\n \"main\": \"pokemons/roster-mega-lucario.png\",\n \"big\": \"pokemons/roster-mega-lucario-2x.png\",\n \"complete\": \"pokemons/stat-mega-lucario.png\",\n \"move_s11\": \"moves/mega-lucario_s11.png\",\n \"move_s21\": \"moves/mega-lucario_s21.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 2,\n \"mobility\": 3.5,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Leafeon\",\n \"dex\": 470,\n \"images\": {\n \"main\": \"pokemons/roster-leafeon.png\",\n \"big\": \"pokemons/roster-leafeon-2x.png\",\n \"complete\": \"pokemons/stat-leafeon.png\",\n \"move_s11\": \"moves/leafeon_s11.png\",\n \"move_s12\": \"moves/leafeon_s12.png\",\n \"move_s21\": \"moves/leafeon_s21.png\",\n \"move_s22\": \"moves/leafeon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 1.5,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 2.5\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Glaceon\",\n \"dex\": 471,\n \"images\": {\n \"main\": \"pokemons/roster-glaceon.png\",\n \"big\": \"pokemons/roster-glaceon-2x.png\",\n \"complete\": \"pokemons/stat-glaceon.png\",\n \"move_s11\": \"moves/glaceon_s11.png\",\n \"move_s12\": \"moves/glaceon_s12.png\",\n \"move_s21\": \"moves/glaceon_s21.png\",\n \"move_s22\": \"moves/glaceon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2,\n \"mobility\": 3,\n \"scoring\": 1,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Darkrai\",\n \"dex\": 491,\n \"images\": {\n \"main\": \"pokemons/roster-darkrai.png\",\n \"big\": \"pokemons/roster-darkrai-2x.png\",\n \"complete\": \"pokemons/stat-darkrai.png\",\n \"move_s11\": \"moves/darkrai_s11.png\",\n \"move_s12\": \"moves/darkrai_s12.png\",\n \"move_s21\": \"moves/darkrai_s21.png\",\n \"move_s22\": \"moves/darkrai_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 1.5,\n \"mobility\": 3,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Crustle\",\n \"dex\": 558,\n \"images\": {\n \"main\": \"pokemons/roster-crustle.png\",\n \"big\": \"pokemons/roster-crustle-2x.png\",\n \"complete\": \"pokemons/stat-crustle.png\",\n \"move_s11\": \"moves/crustle_s11.png\",\n \"move_s12\": \"moves/crustle_s12.png\",\n \"move_s21\": \"moves/crustle_s21.png\",\n \"move_s22\": \"moves/crustle_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 1.5,\n \"endurance\": 4,\n \"mobility\": 1.5,\n \"scoring\": 2,\n \"support\": 3\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Zoroark\",\n \"dex\": 571,\n \"images\": {\n \"main\": \"pokemons/roster-zoroark.png\",\n \"big\": \"pokemons/roster-zoroark-2x.png\",\n \"complete\": \"pokemons/stat-zoroark.png\",\n \"move_s11\": \"moves/zoroark_s11.png\",\n \"move_s12\": \"moves/zoroark_s12.png\",\n \"move_s21\": \"moves/zoroark_s21.png\",\n \"move_s22\": \"moves/zoroark_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 1.5,\n \"mobility\": 4,\n \"scoring\": 2,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Chandelure\",\n \"dex\": 609,\n \"images\": {\n \"main\": \"pokemons/roster-chandelure.png\",\n \"big\": \"pokemons/roster-chandelure-2x.png\",\n \"complete\": \"pokemons/stat-chandelure.png\",\n \"move_s11\": \"moves/chandelure_s11.png\",\n \"move_s12\": \"moves/chandelure_s12.png\",\n \"move_s21\": \"moves/chandelure_s21.png\",\n \"move_s22\": \"moves/chandelure_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 5,\n \"endurance\": 1,\n \"mobility\": 1,\n \"scoring\": 2,\n \"support\": 3\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Delphox\",\n \"dex\": 655,\n \"images\": {\n \"main\": \"pokemons/roster-delphox.png\",\n \"big\": \"pokemons/roster-delphox-2x.png\",\n \"complete\": \"pokemons/stat-delphox.png\",\n \"move_s11\": \"moves/delphox_s11.png\",\n \"move_s12\": \"moves/delphox_s12.png\",\n \"move_s21\": \"moves/delphox_s21.png\",\n \"move_s22\": \"moves/delphox_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 1.5,\n \"mobility\": 3,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Greninja\",\n \"dex\": 658,\n \"images\": {\n \"main\": \"pokemons/roster-greninja.png\",\n \"big\": \"pokemons/roster-greninja-2x.png\",\n \"complete\": \"pokemons/stat-greninja.png\",\n \"move_s11\": \"moves/greninja_s11.png\",\n \"move_s12\": \"moves/greninja_s12.png\",\n \"move_s21\": \"moves/greninja_s21.png\",\n \"move_s22\": \"moves/greninja_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2,\n \"mobility\": 3,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Talonflame\",\n \"dex\": 663,\n \"images\": {\n \"main\": \"pokemons/roster-talonflame.png\",\n \"big\": \"pokemons/roster-talonflame-2x.png\",\n \"complete\": \"pokemons/stat-talonflame.png\",\n \"move_s11\": \"moves/talonflame_s11.png\",\n \"move_s12\": \"moves/talonflame_s12.png\",\n \"move_s21\": \"moves/talonflame_s21.png\",\n \"move_s22\": \"moves/talonflame_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 2.5,\n \"endurance\": 1.5,\n \"mobility\": 5,\n \"scoring\": 3.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Aegislash\",\n \"dex\": 681,\n \"images\": {\n \"main\": \"pokemons/roster-aegislash.png\",\n \"big\": \"pokemons/roster-aegislash-2x.png\",\n \"complete\": \"pokemons/stat-aegislash.png\",\n \"move_s11\": \"moves/aegislash_s11.png\",\n \"move_s12\": \"moves/aegislash_s12.png\",\n \"move_s21\": \"moves/aegislash_s21.png\",\n \"move_s22\": \"moves/aegislash_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 2,\n \"mobility\": 4,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Sylveon\",\n \"dex\": 700,\n \"images\": {\n \"main\": \"pokemons/roster-sylveon.png\",\n \"big\": \"pokemons/roster-sylveon-2x.png\",\n \"complete\": \"pokemons/stat-sylveon.png\",\n \"move_s11\": \"moves/sylveon_s11.png\",\n \"move_s12\": \"moves/sylveon_s12.png\",\n \"move_s21\": \"moves/sylveon_s21.png\",\n \"move_s22\": \"moves/sylveon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 1.5,\n \"mobility\": 1.5,\n \"scoring\": 3.5,\n \"support\": 3.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Goodra\",\n \"dex\": 706,\n \"images\": {\n \"main\": \"pokemons/roster-goodra.png\",\n \"big\": \"pokemons/roster-goodra-2x.png\",\n \"complete\": \"pokemons/stat-goodra.png\",\n \"move_s11\": \"moves/goodra_s11.png\",\n \"move_s12\": \"moves/goodra_s12.png\",\n \"move_s21\": \"moves/goodra_s21.png\",\n \"move_s22\": \"moves/goodra_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 2.5,\n \"endurance\": 4,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 2\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Trevenant\",\n \"dex\": 709,\n \"images\": {\n \"main\": \"pokemons/roster-trevenant.png\",\n \"big\": \"pokemons/roster-trevenant-2x.png\",\n \"complete\": \"pokemons/stat-trevenant.png\",\n \"move_s11\": \"moves/trevenant_s11.png\",\n \"move_s12\": \"moves/trevenant_s12.png\",\n \"move_s21\": \"moves/trevenant_s21.png\",\n \"move_s22\": \"moves/trevenant_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 2,\n \"endurance\": 4,\n \"mobility\": 2,\n \"scoring\": 2.5,\n \"support\": 2.5\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Hoopa\",\n \"dex\": 720,\n \"images\": {\n \"main\": \"pokemons/roster-hoopa.png\",\n \"big\": \"pokemons/roster-hoopa-2x.png\",\n \"complete\": \"pokemons/stat-hoopa.png\",\n \"move_s11\": \"moves/hoopa_s11.png\",\n \"move_s12\": \"moves/hoopa_s12.png\",\n \"move_s21\": \"moves/hoopa_s21.png\",\n \"move_s22\": \"moves/hoopa_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 3,\n \"endurance\": 2,\n \"mobility\": 3,\n \"scoring\": 2,\n \"support\": 3.5\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.RANGED\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Decidueye\",\n \"dex\": 724,\n \"images\": {\n \"main\": \"pokemons/roster-decidueye.png\",\n \"big\": \"pokemons/roster-decidueye-2x.png\",\n \"complete\": \"pokemons/stat-decidueye.png\",\n \"move_s11\": \"moves/decidueye_s11.png\",\n \"move_s12\": \"moves/decidueye_s12.png\",\n \"move_s21\": \"moves/decidueye_s21.png\",\n \"move_s22\": \"moves/decidueye_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 1.5,\n \"mobility\": 1.5,\n \"scoring\": 3.5,\n \"support\": 3.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Tsareena\",\n \"dex\": 763,\n \"images\": {\n \"main\": \"pokemons/roster-tsareena.png\",\n \"big\": \"pokemons/roster-tsareena-2x.png\",\n \"complete\": \"pokemons/stat-tsareena.png\",\n \"move_s11\": \"moves/tsareena_s11.png\",\n \"move_s12\": \"moves/tsareena_s12.png\",\n \"move_s21\": \"moves/tsareena_s21.png\",\n \"move_s22\": \"moves/tsareena_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 1.5,\n \"mobility\": 1.5,\n \"scoring\": 3.5,\n \"support\": 3.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Comfey\",\n \"dex\": 764,\n \"images\": {\n \"main\": \"pokemons/roster-comfey.png\",\n \"big\": \"pokemons/roster-comfey-2x.png\",\n \"complete\": \"pokemons/stat-comfey.png\",\n \"move_s11\": \"moves/comfey_s11.png\",\n \"move_s12\": \"moves/comfey_s12.png\",\n \"move_s21\": \"moves/comfey_s21.png\",\n \"move_s22\": \"moves/comfey_s22.png\",\n },\n \"active\": true,\n \"stats\": {\n \"offense\": 2,\n \"endurance\": 3,\n \"mobility\": 1.5,\n \"scoring\": 1.5,\n \"support\": 4.5\n },\n \"difficulty\": 1,\n \"tags\": [\n Tag.SUPPORTER,\n Tag.RANGED\n ],\n \"battleType\": BattleType.SUPPORTER\n},\n{\n \"name\": \"Mimikyu\",\n \"dex\": 778,\n \"images\": {\n \"main\": \"pokemons/roster-mimikyu.png\",\n \"big\": \"pokemons/roster-mimikyu-2x.png\",\n \"complete\": \"pokemons/stat-mimikyu.png\",\n \"move_s11\": \"moves/mimikyu_s11.png\",\n \"move_s12\": \"moves/mimikyu_s12.png\",\n \"move_s21\": \"moves/mimikyu_s21.png\",\n \"move_s22\": \"moves/mimikyu_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 3,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Dhelmise\",\n \"dex\": 781,\n \"images\": {\n \"main\": \"pokemons/roster-dhelmise.png\",\n \"big\": \"pokemons/roster-dhelmise-2x.png\",\n \"complete\": \"pokemons/stat-dhelmise.png\",\n \"move_s11\": \"moves/dhelmise_s11.png\",\n \"move_s12\": \"moves/dhelmise_s12.png\",\n \"move_s21\": \"moves/dhelmise_s21.png\", },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 1.5,\n \"mobility\": 1,\n \"scoring\": 1,\n \"support\": 1,\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Buzzwole\",\n \"dex\": 794,\n \"images\": {\n \"main\": \"pokemons/roster-buzzwole.png\",\n \"big\": \"pokemons/roster-buzzwole-2x.png\",\n \"complete\": \"pokemons/stat-buzzwole.png\",\n \"move_s11\": \"moves/buzzwole_s11.png\",\n \"move_s12\": \"moves/buzzwole_s12.png\",\n \"move_s21\": \"moves/buzzwole_s21.png\",\n \"move_s22\": \"moves/buzzwole_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 3,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Zeraora\",\n \"dex\": 807,\n \"images\": {\n \"main\": \"pokemons/roster-zeraora.png\",\n \"big\": \"pokemons/roster-zeraora-2x.png\",\n \"complete\": \"pokemons/stat-zeraora.png\",\n \"move_s11\": \"moves/zeraora_s11.png\",\n \"move_s12\": \"moves/zeraora_s12.png\",\n \"move_s21\": \"moves/zeraora_s21.png\",\n \"move_s22\": \"moves/zeraora_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 1.5,\n \"mobility\": 4,\n \"scoring\": 3,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Cinderace\",\n \"dex\": 815,\n \"images\": {\n \"main\": \"pokemons/roster-cinderace.png\",\n \"big\": \"pokemons/roster-cinderace-2x.png\",\n \"complete\": \"pokemons/stat-cinderace.png\",\n \"move_s11\": \"moves/cinderace_s11.png\",\n \"move_s12\": \"moves/cinderace_s12.png\",\n \"move_s21\": \"moves/cinderace_s21.png\",\n \"move_s22\": \"moves/cinderace_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 1.5,\n \"mobility\": 3,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Inteleon\",\n \"dex\": 818,\n \"images\": {\n \"main\": \"pokemons/roster-inteleon.png\",\n \"big\": \"pokemons/roster-inteleon-2x.png\",\n \"complete\": \"pokemons/stat-inteleon.png\",\n \"move_s11\": \"moves/inteleon_s11.png\",\n \"move_s12\": \"moves/inteleon_s12.png\",\n \"move_s21\": \"moves/inteleon_s21.png\",\n \"move_s22\": \"moves/inteleon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 1.5,\n \"mobility\": 3.5,\n \"scoring\": 1.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Greedent\",\n \"dex\": 820,\n \"images\": {\n \"main\": \"pokemons/roster-greedent.png\",\n \"big\": \"pokemons/roster-greedent-2x.png\",\n \"complete\": \"pokemons/stat-greedent.png\",\n \"move_s11\": \"moves/greedent_s11.png\",\n \"move_s12\": \"moves/greedent_s12.png\",\n \"move_s21\": \"moves/greedent_s21.png\",\n \"move_s22\": \"moves/greedent_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.DEFENDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 1.5,\n \"mobility\": 2,\n \"scoring\": 1,\n \"support\": 1\n },\n \"tags\": [\n Tag.DEFENDER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Eldegoss\",\n \"dex\": 830,\n \"images\": {\n \"main\": \"pokemons/roster-eldegoss.png\",\n \"big\": \"pokemons/roster-eldegoss-2x.png\",\n \"complete\": \"pokemons/stat-eldegoss.png\",\n \"move_s11\": \"moves/eldegoss_s11.png\",\n \"move_s12\": \"moves/eldegoss_s12.png\",\n \"move_s21\": \"moves/eldegoss_s21.png\",\n \"move_s22\": \"moves/eldegoss_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 1.5,\n \"endurance\": 2,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 4\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.RANGED\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Cramorant\",\n \"dex\": 845,\n \"images\": {\n \"main\": \"pokemons/roster-cramorant.png\",\n \"big\": \"pokemons/roster-cramorant-2x.png\",\n \"complete\": \"pokemons/stat-cramorant.png\",\n \"move_s11\": \"moves/cramorant_s11.png\",\n \"move_s12\": \"moves/cramorant_s12.png\",\n \"move_s21\": \"moves/cramorant_s21.png\",\n \"move_s22\": \"moves/cramorant_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 3,\n \"mobility\": 3,\n \"scoring\": 1.5,\n \"support\": 1\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Sirfetch'd\",\n \"dex\": 865,\n \"images\": {\n \"main\": \"pokemons/roster-sirfetchd.png\",\n \"big\": \"pokemons/roster-sirfetchd-2x.png\",\n \"complete\": \"pokemons/stat-sirfetchd.png\",\n \"move_s11\": \"moves/sirfetchd_s11.png\",\n \"move_s12\": \"moves/sirfetchd_s12.png\",\n \"move_s21\": \"moves/sirfetchd_s21.png\",\n \"move_s22\": \"moves/sirfetchd_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 2.5,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Alcremie\",\n \"dex\": 869,\n \"images\": {\n \"main\": \"pokemons/roster-alcremie.png\",\n \"big\": \"pokemons/roster-alcremie-2x.png\",\n \"complete\": \"pokemons/stat-alcremie.png\",\n \"move_s11\": \"moves/alcremie_s11.png\",\n \"move_s12\": \"moves/alcremie_s12.png\",\n \"move_s21\": \"moves/alcremie_s21.png\",\n \"move_s22\": \"moves/alcremie_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SUPPORTER,\n \"stats\": {\n \"offense\": 1.5,\n \"endurance\": 2,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 4\n },\n \"tags\": [\n Tag.SUPPORTER,\n Tag.RANGED\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Falinks\",\n \"dex\": 870,\n \"images\": {\n \"main\": \"pokemons/roster-falinks.png\",\n \"big\": \"pokemons/roster-falinks-2x.png\",\n \"complete\": \"pokemons/stat-falinks.png\",\n \"move_s11\": \"moves/falinks_s11.png\",\n \"move_s12\": \"moves/falinks_s12.png\",\n \"move_s21\": \"moves/falinks_s21.png\",\n \"move_s22\": \"moves/falinks_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 4.5,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 1\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Duraludon\",\n \"dex\": 884,\n \"images\": {\n \"main\": \"pokemons/roster-duraludon.png\",\n \"big\": \"pokemons/roster-duraludon-2x.png\",\n \"complete\": \"pokemons/stat-duraludon.png\",\n \"move_s11\": \"moves/duraludon_s11.png\",\n \"move_s12\": \"moves/duraludon_s12.png\",\n \"move_s21\": \"moves/duraludon_s21.png\",\n \"move_s22\": \"moves/duraludon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 3.5,\n \"endurance\": 3.5,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Dragapult\",\n \"dex\": 887,\n \"images\": {\n \"main\": \"pokemons/roster-dragapult.png\",\n \"big\": \"pokemons/roster-dragapult-2x.png\",\n \"complete\": \"pokemons/stat-dragapult.png\",\n \"move_s11\": \"moves/dragapult_s11.png\",\n \"move_s12\": \"moves/dragapult_s12.png\",\n \"move_s21\": \"moves/dragapult_s21.png\",\n \"move_s22\": \"moves/dragapult_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2.5,\n \"mobility\": 4,\n \"scoring\": 1.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ATTACKER,\n Tag.RANGED\n ],\n \"difficulty\": 3\n},\n{\n \"name\": \"Zacian\",\n \"dex\": 888,\n \"images\": {\n \"main\": \"pokemons/roster-zacian.png\",\n \"big\": \"pokemons/roster-zacian-2x.png\",\n \"complete\": \"pokemons/stat-zacian.png\",\n \"move_s11\": \"moves/zacian_s11.png\",\n \"move_s12\": \"moves/zacian_s12.png\",\n \"move_s21\": \"moves/zacian_s21.png\",\n \"move_s22\": \"moves/zacian_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 5,\n \"endurance\": 4,\n \"mobility\": 3,\n \"scoring\": 1,\n \"support\": 2\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Urshifu\",\n \"dex\": 892,\n \"images\": {\n \"main\": \"pokemons/roster-urshifu.png\",\n \"big\": \"pokemons/roster-urshifu-2x.png\",\n \"complete\": \"pokemons/stat-urshifu.png\",\n \"move_s11\": \"moves/urshifu_s11.png\",\n \"move_s12\": \"moves/urshifu_s12.png\",\n \"move_s21\": \"moves/urshifu_s21.png\",\n \"move_s22\": \"moves/urshifu_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 3,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 1\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n}, \n{\n \"name\": \"Meowscarada\",\n \"dex\": 908,\n \"images\": {\n \"main\": \"pokemons/roster-meowscarada.png\",\n \"big\": \"pokemons/roster-meowscarada-2x.png\",\n \"complete\": \"pokemons/stat-meowscarada.png\",\n \"move_s11\": \"moves/meowscarada_s11.png\",\n \"move_s12\": \"moves/meowscarada_s12.png\",\n \"move_s21\": \"moves/meowscarada_s21.png\",\n \"move_s22\": \"moves/meowscarada_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.SPEEDSTER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 3,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 1\n },\n \"tags\": [\n Tag.SPEEDSTER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n}, \n{\n \"name\": \"Pawmot\",\n \"dex\": 923,\n \"images\": {\n \"main\": \"pokemons/roster-pawmot.png\",\n \"big\": \"pokemons/roster-pawmot-2x.png\",\n \"complete\": \"pokemons/stat-pawmot.png\",\n \"move_s11\": \"moves/pawmot_s11.png\",\n \"move_s12\": \"moves/pawmot_s12.png\",\n \"move_s21\": \"moves/pawmot_s21.png\",\n \"move_s22\": \"moves/pawmot_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4.5,\n \"endurance\": 2,\n \"mobility\": 3,\n \"scoring\": 2,\n \"support\": 2\n },\n \"tags\": [\n Tag.MELEE,\n Tag.ALLROUNDER\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Armarouge\",\n \"dex\": 936,\n \"images\": {\n \"main\": \"pokemons/roster-armarouge.png\",\n \"big\": \"pokemons/roster-armarouge-2x.png\",\n \"complete\": \"pokemons/stat-armarouge.png\",\n \"move_s11\": \"moves/armarouge_s11.png\",\n \"move_s12\": \"moves/armarouge_s12.png\",\n \"move_s21\": \"moves/armarouge_s21.png\",\n \"move_s22\": \"moves/armarouge_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.RANGED,\n Tag.ATTACKER\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Ceruledge\",\n \"dex\": 937,\n \"images\": {\n \"main\": \"pokemons/roster-ceruledge.png\",\n \"big\": \"pokemons/roster-ceruledge-2x.png\",\n \"complete\": \"pokemons/stat-ceruledge.png\",\n \"move_s11\": \"moves/ceruledge_s11.png\",\n \"move_s12\": \"moves/ceruledge_s12.png\",\n \"move_s21\": \"moves/ceruledge_s21.png\",\n \"move_s22\": \"moves/ceruledge_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2.5,\n \"mobility\": 2.5,\n \"scoring\": 2.5,\n \"support\": 0.5\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 2\n},\n{\n \"name\": \"Tinkaton\",\n \"dex\": 959,\n \"images\": {\n \"main\": \"pokemons/roster-tinkaton.png\",\n \"big\": \"pokemons/roster-tinkaton-2x.png\",\n \"complete\": \"pokemons/stat-tinkaton.png\",\n \"move_s11\": \"moves/tinkaton_s11.png\",\n \"move_s12\": \"moves/tinkaton_s12.png\",\n \"move_s21\": \"moves/tinkaton_s21.png\",\n \"move_s22\": \"moves/tinkaton_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ALLROUNDER,\n \"stats\": {\n \"offense\": 3,\n \"endurance\": 3.5,\n \"mobility\": 2.5,\n \"scoring\": 2,\n \"support\": 1\n },\n \"tags\": [\n Tag.ALLROUNDER,\n Tag.MELEE\n ],\n \"difficulty\": 1\n},\n{\n \"name\": \"Miraidon\",\n \"dex\": 1008,\n \"images\": {\n \"main\": \"pokemons/roster-miraidon.png\",\n \"big\": \"pokemons/roster-miraidon-2x.png\",\n \"complete\": \"pokemons/stat-miraidon.png\",\n \"move_s11\": \"moves/miraidon_s11.png\",\n \"move_s12\": \"moves/miraidon_s12.png\",\n \"move_s21\": \"moves/miraidon_s21.png\",\n \"move_s22\": \"moves/miraidon_s22.png\",\n },\n \"active\": true,\n \"battleType\": BattleType.ATTACKER,\n \"stats\": {\n \"offense\": 4,\n \"endurance\": 2,\n \"mobility\": 2,\n \"scoring\": 2.5,\n \"support\": 4\n },\n \"tags\": [\n Tag.RANGED,\n Tag.ATTACKER\n ],\n \"difficulty\": 1\n}];\n\nexport default pokemons;\n","import type { Map } from \"./types\";\n\nconst maps: Map[] = [\n {\n id: \"map-groudon\",\n name: \"Theia Sky Ruins\",\n image: \"maps/map-groudon/map-groudon@4x.png\",\n images: {\n \"1\": \"maps/map-groudon/map-groudon@1x.png\",\n \"2\": \"maps/map-groudon/map-groudon@2x.png\",\n \"4\": \"maps/map-groudon/map-groudon@4x.png\",\n },\n description: \"Map with Groudon\",\n },\n {\n id: \"map-kyogre\",\n name: \"Theia Sky Ruins\",\n image: \"maps/map-kyogre/map-kyogre@4x.png\",\n images: {\n \"1\": \"maps/map-kyogre/map-kyogre@1x.png\",\n \"2\": \"maps/map-kyogre/map-kyogre@2x.png\",\n \"4\": \"maps/map-kyogre/map-kyogre@4x.png\",\n },\n description: \"Map with Kyogre\",\n },\n {\n id: \"map-rayquaza\",\n name: \"Theia Sky Ruins\",\n image: \"maps/map-rayquaza/map-rayquaza@4x.png\",\n images: {\n \"1\": \"maps/map-rayquaza/map-rayquaza@1x.png\",\n \"2\": \"maps/map-rayquaza/map-rayquaza@2x.png\",\n \"4\": \"maps/map-rayquaza/map-rayquaza@4x.png\",\n },\n description: \"Map with Rayquaza\",\n },\n];\n\nexport default maps;\n","import type { Neutral } from \"./types\";\n\nconst neutrals: Neutral[] = [\n { id: \"accelgor\", image: \"neutrals/accelgor.png\", name: \"Accelgor\", dex: 617 },\n { id: \"altaria\", image: \"neutrals/altaria.png\", name: \"Altaria\", dex: 334 },\n { id: \"baltoy\", image: \"neutrals/baltoy.png\", name: \"Baltoy\", dex: 343 },\n { id: \"bunnelby\", image: \"neutrals/bunnelby.png\", name: \"Bunnelby\", dex: 659 },\n { id: \"escavalier\", image: \"neutrals/escavalier.png\", name: \"Escavalier\", dex: 589 },\n { id: \"groudon\", image: \"neutrals/groudon.png\", name: \"Groudon\", dex: 383 },\n { id: \"indeedee\", image: \"neutrals/indeedee.png\", name: \"Indeedee\", dex: 876 },\n { id: \"kyogre\", image: \"neutrals/kyogre.png\", name: \"Kyogre\", dex: 382 },\n { id: \"natu\", image: \"neutrals/natu.png\", name: \"Natu\", dex: 177 },\n { id: \"rayquaza\", image: \"neutrals/rayquaza.png\", name: \"Rayquaza\", dex: 384 },\n { id: \"regidrago\", image: \"neutrals/regidrago.png\", name: \"Regidrago\", dex: 895 },\n { id: \"regice\", image: \"neutrals/regice.png\", name: \"Regice\", dex: 378 },\n { id: \"regieleki\", image: \"neutrals/regieleki.png\", name: \"Regieleki\", dex: 894 },\n { id: \"regirock\", image: \"neutrals/regirock.png\", name: \"Regirock\", dex: 377 },\n { id: \"registeel\", image: \"neutrals/registeel.png\", name: \"Registeel\", dex: 379 },\n { id: \"salac\", image: \"neutrals/salac.png\", name: \"Salac Berry\" },\n { id: \"sitrus\", image: \"neutrals/sitrus.png\", name: \"Sitrus Berry\" },\n { id: \"xatu\", image: \"neutrals/xatu.png\", name: \"Xatu\", dex: 178 },\n];\n\nexport default neutrals;\n","import pokemons from \"../pokemons\";\nimport maps from \"../maps\";\nimport neutrals from \"../neutrals\";\n\n/** Slug from roster image path: \"pokemons/roster-venusaur.png\" -> \"venusaur\" */\nfunction slugFromMain(mainPath: string): string {\n return mainPath.replace(/^pokemons\\/roster-/, \"\").replace(/\\.png$/, \"\");\n}\n\nconst names: Record<string, string> = {};\nfor (const p of pokemons) {\n names[slugFromMain(p.images.main)] = p.name;\n}\nfor (const m of maps) {\n names[m.id] = m.name;\n if (m.description) names[`${m.id}.description`] = m.description;\n}\nfor (const n of neutrals) {\n names[n.id] = n.name;\n}\n\n// Aliases for slug variants (e.g. kebab-case \"mega-mewtwo-x\" from display name).\nnames[\"mega-mewtwo-x\"] = \"Mega Mewtwo X\";\nnames[\"mega-mewtwo-y\"] = \"Mega Mewtwo Y\";\n\n// Spawn info (HTML). Other locales override same keys for translations.\nObject.assign(names, {\n \"spawn.info.groudon.boss\":\n \"<p>When defeated, all team members alive receive a <strong>buff</strong> and <strong>15 aeos points</strong>.<br>This buff is <strong>permanent until the holder is KO'd</strong>. When the holder is <strong>KO'd</strong>, the buff <strong>transfers to the killer</strong>.<br>It provides a <strong>goal-scoring speed boost</strong>, a <strong>huge damage boost</strong>, and a <strong>small shield</strong>.<br>Always spawn at 2:00.</p>\",\n \"spawn.info.bunnelby.initial\":\n \"<p>They <strong>spawn at the beginning of the game</strong> and <strong>never respawn</strong> once killed.</p><p>Give 2 points.</p>\",\n \"spawn.info.bunnelby.lane_940\":\n \"<p>Starts spawning at <strong>9:40</strong>.</p><p>When defeated, grants <strong>2 points</strong> and respawn after <strong>60 seconds</strong>.</p><p>If either of the <strong>first towers</strong> in the lane is destroyed, it <strong>disappears</strong>.</p>\",\n \"spawn.info.bunnelby.lane_920\":\n \"<p>Starts spawning at <strong>9:20</strong>.</p><p>When defeated, grants <strong>2 points</strong> and respawn after <strong>60 seconds</strong>.</p><p>If either of the <strong>first towers</strong> in the lane is destroyed, it <strong>disappears</strong>.</p>\",\n \"spawn.info.bunnelby.lane_915\":\n \"<p>Starts spawning at <strong>9:15</strong>.</p><p>When defeated, grants <strong>2 points</strong> and respawn after <strong>60 seconds</strong>.</p><p>If either of the <strong>first towers</strong> in the lane is destroyed, it <strong>disappears</strong>.</p>\",\n \"spawn.info.accelgor\":\n \"<p>Starts spawning at <strong>9:45</strong>.</p><p>When defeated, grants <strong>4 / 7 points</strong> and a <strong>buff</strong>. <strong>Respawns after 60 seconds</strong>.</p><p>This buff lasts for <strong>70 seconds</strong> and provides a <strong>10% move cooldown reduction</strong>.</p>\",\n \"spawn.info.escavalier\":\n \"<p>Starts spawning at <strong>9:45</strong>.</p><p>When defeated, grants <strong>4 / 7 points</strong> and a <strong>buff</strong>. <strong>Respawns after 60 seconds</strong>.</p><p>This buff lasts for <strong>70 seconds</strong> and provides <strong>basic attacks extra damage and decreases opponent movement speed for a short time</strong>.</p>\",\n \"spawn.info.baltoy.generic\":\n \"<p>Starts spawning at <strong>9:45</strong>.</p><p>When defeated, grants <strong>2 points</strong>. <strong>Respawns after 60 seconds</strong>.</p>\",\n \"spawn.info.baltoy.lane_940\":\n \"<p>Starts spawning at <strong>9:40</strong>.</p><p>When defeated, grants <strong>2 points</strong>. <strong>Respawns after 60 seconds</strong>.</p><p>If either of the <strong>first towers</strong> in the lane is destroyed, it <strong>disappears</strong>.</p>\",\n \"spawn.info.baltoy.lane_920\":\n \"<p>Starts spawning at <strong>9:40</strong>.</p><p>When defeated, grants <strong>2 points</strong>. <strong>Respawns after 60 seconds</strong>.</p><p>If either of the <strong>first towers</strong> in the lane is destroyed, it <strong>disappears</strong>.</p>\",\n \"spawn.info.baltoy.lane_910\":\n \"<p>Starts spawning at <strong>9:10</strong>.</p><p>When defeated, grants <strong>2 points</strong>. <strong>Respawns after 60 seconds</strong>.</p><p>If either of the <strong>first towers</strong> in the lane is destroyed, it <strong>disappears</strong>.</p>\",\n \"spawn.info.baltoy.lane_910_only\":\n \"<p>Starts spawning at <strong>9:10</strong>.</p><p>When defeated, grants <strong>2 points</strong>. <strong>Respawns after 60 seconds</strong>.</p>\",\n \"spawn.info.baltoy.lane_840\":\n \"<p>Starts spawning at <strong>8:40</strong>.</p><p>When defeated, grants <strong>2 points</strong>. <strong>Respawns after 60 seconds</strong>.</p>\",\n \"spawn.info.baltoy.tower\":\n \"<p>Starts spawning when the corresponding <strong>first tower is destroyed</strong>.</p><p>When defeated, grants <strong>2 points</strong>. <strong>Respawns after 60 seconds</strong>.</p>\",\n \"spawn.info.regidrago\":\n \"<p>Spawns in the <strong>middle of the map at 8:00</strong>. When killed, <strong>Altaria spawn instead 1:30 minute after</strong>.<br>The team that defeats <strong>Regidrago</strong> gains <strong>experience for all teammates</strong>.<br>The player who lands the killing blow receives a <strong>scoring-speed buff</strong> and <strong>20 points</strong>.</p>\",\n \"spawn.info.regieleki\":\n \"<p>Spawns at <strong>7:00</strong> on a random lane between <strong>toplane and botlane</strong>.<br>When defeated, goes to the base of the opposing team and if it touches the base, scores <strong>20/16/12/8 points</strong> and if the base is still alive, makes <strong>any goal become instant during 20/15/10/5s</strong>.<br>The player who lands the killing blow receives <strong>20 points</strong>.<br>Respawns <strong>2 minutes</strong> after death.</p>\",\n \"spawn.info.regi.700\":\n \"<p>Spawns at <strong>7:00</strong>.</p>\",\n \"spawn.info.xatu\":\n \"<p>Spawns at <strong>9:59</strong>.</p><p>Grants <strong>a large amount of experience</strong> and <strong>2 points</strong> when defeated.</p><p><strong>Does not respawn</strong>.</p>\",\n \"spawn.info.natu.900\":\n \"<p>Spawns at <strong>9:00</strong>.</p>\",\n \"spawn.info.natu.920\":\n \"<p>Spawns at <strong>9:20</strong>.</p>\",\n \"spawn.info.indeedee.lane\":\n \"<p>Starts spawning at <strong>9:30</strong> / <strong>9:35</strong>.</p><p>When defeated, <strong>respawns after 60 seconds</strong> and grants <strong>5 points</strong>.</p><p>If either of the <strong>first towers</strong> in the lane is destroyed, it <strong>disappears</strong>.</p>\",\n \"spawn.info.indeedee.tower\":\n \"<p>Spawns when the corresponding <strong>first tower</strong> is destroyed.</p><p>When defeated, <strong>respawns after 60 seconds</strong> and grants <strong>5 points</strong>.</p>\",\n \"spawn.info.salac\":\n \"<p>When consumed, grants a <strong>movement speed bonus</strong> for <strong>3 seconds</strong>.</p><p>Starts spawning at <strong>8:30</strong> and respawns <strong>60 seconds</strong> after being consumed.</p>\",\n \"spawn.info.salac.short\":\n \"<p>Movement speed bonus for 3 seconds.</p>\",\n \"spawn.info.altaria.after_regidrago\":\n \"<p>Starts spawning <strong>mid 1:30 after Regidrago is killed</strong>.</p>\",\n \"spawn.info.altaria.rayquaza\":\n \"<p>Spawn at <strong>8:00</strong> and respawn every <strong>1:30</strong>.</p><p>Disappears at <strong>2:30</strong>.</p>\",\n \"spawn.info.kyogre.boss\":\n \"<p>When defeated, all team members alive receive a <strong>buff</strong>, <strong>15 aeos points</strong> and all opponents' towers still up are disabled for 1:30 (opponent can't receive shield and regen).<br>This buff is <strong>permanent until the holder is KO'd</strong>. When the holder is <strong>KO'd</strong>, the buff <strong>transfers to the killer</strong>.<br>It provides a <strong>goal-scoring speed boost</strong>, <strong>self regen (5% per second)</strong>, and a <strong>small shield</strong>.<br>Always spawn at 2:00.</p>\",\n \"spawn.info.rayquaza.boss\":\n \"<p>When defeated, grants the winning team <strong>15 aeos points</strong>, a <strong>shield</strong> that <strong>speeds up goal scoring</strong> and <strong>prevents goals from being blocked</strong>.<br>Always spawns at 2:00.</p>\",\n \"spawn.info.regidrago.kyogre\":\n \"<p>Spawns in the <strong>middle of the map at 8:00</strong>.</p>\",\n \"spawn.info.xatu.short\":\n \"<p>Spawns at <strong>9:59</strong>.</p>\",\n \"spawn.info.indeedee.tower_break\":\n \"<p>Tower break spawn.</p>\",\n \"spawn.info.baltoy.tower_break\":\n \"<p>Tower break spawn.</p>\",\n \"spawn.info.bunnelby.lane\":\n \"<p>Starts spawning at <strong>9:40</strong>.</p>\",\n \"spawn.info.bunnelby.lane_920_short\":\n \"<p>Starts spawning at <strong>9:20</strong>.</p>\",\n \"spawn.info.bunnelby.lane_915_short\":\n \"<p>Starts spawning at <strong>9:15</strong>.</p>\",\n \"spawn.info.baltoy.lane_940_short\":\n \"<p>Starts spawning at <strong>9:40</strong>.</p>\",\n \"spawn.info.baltoy.945_short\":\n \"<p>Starts spawning at <strong>9:45</strong>.</p>\",\n \"spawn.info.baltoy.lane_910_short\":\n \"<p>Starts spawning at <strong>9:10</strong>.</p>\",\n \"spawn.info.baltoy.lane_840_short\":\n \"<p>Starts spawning at <strong>8:40</strong>.</p>\",\n \"spawn.info.indeedee.lane_930\":\n \"<p>Starts spawning at <strong>9:30</strong>.</p>\",\n \"spawn.info.indeedee.lane_935\":\n \"<p>Starts spawning at <strong>9:35</strong>.</p>\",\n \"spawn.info.bunnelby.points\":\n \"<p>Give 2 points.</p>\",\n \"spawn.info.baltoy.tower_kyogre\":\n \"<p>Starts spawning when the corresponding <strong>first tower is destroyed</strong>.</p>\",\n \"spawn.info.indeedee.tower_short\":\n \"<p>Spawns when the corresponding <strong>first tower</strong> is destroyed.</p>\",\n});\n\nexport default names;\n","import en from \"./en\";\n\n/**\n * Portuguese (Brazil). Same as English for Pokémon names; override here only when pt-BR differs.\n */\nconst ptBR: Record<string, string> = {\n ...en,\n // Maps — names and descriptions\n \"map-groudon\": \"Ruínas Celestes de Theia\",\n \"map-groudon.description\": \"Mapa 5v5 com Groudon.\",\n \"map-kyogre\": \"Ruínas Celestes de Theia\",\n \"map-kyogre.description\": \"Mapa 5v5 com Kyogre.\",\n \"map-rayquaza\": \"Ruínas Celestes de Theia\",\n \"map-rayquaza.description\": \"Mapa 5v5 com Rayquaza.\",\n // Spawn info (HTML) — principais textos; demais usam fallback en\n \"spawn.info.groudon.boss\":\n \"<p>Ao ser derrotado, todos os membros vivos do time recebem <strong>buff</strong> e <strong>15 pontos aeos</strong>.<br>O buff é <strong>permanente até o portador ser nocauteado</strong>. Ao ser nocauteado, o buff <strong>transfere para quem aplicou o KO</strong>.<br>Concede <strong>aumento de velocidade de pontuação</strong>, <strong>grande aumento de dano</strong> e <strong>pequeno escudo</strong>.<br>Sempre aparece às 2:00.</p>\",\n \"spawn.info.kyogre.boss\":\n \"<p>Ao ser derrotado, todos os membros vivos do time recebem <strong>buff</strong>, <strong>15 pontos aeos</strong> e as torres adversárias ainda de pé ficam desativadas por 1:30 (adversário não recebe escudo e regeneração).<br>O buff é <strong>permanente até o portador ser nocauteado</strong>. Ao ser nocauteado, o buff <strong>transfere para quem aplicou o KO</strong>.<br>Concede <strong>aumento de velocidade de pontuação</strong>, <strong>autorregeneração (5% por segundo)</strong> e <strong>pequeno escudo</strong>.<br>Sempre aparece às 2:00.</p>\",\n \"spawn.info.rayquaza.boss\":\n \"<p>Ao ser derrotado, concede ao time vencedor <strong>15 pontos aeos</strong>, um <strong>escudo</strong> que <strong>acelera a pontuação</strong> e <strong>impede que gols sejam bloqueados</strong>.<br>Sempre aparece às 2:00.</p>\",\n \"spawn.info.bunnelby.initial\":\n \"<p><strong>Aparecem no início da partida</strong> e <strong>não ressurgem</strong> após derrotados.</p><p>Dão 2 pontos.</p>\",\n \"spawn.info.bunnelby.points\":\n \"<p>Dão 2 pontos.</p>\",\n \"spawn.info.regi.700\":\n \"<p>Aparece às <strong>7:00</strong>.</p>\",\n \"spawn.info.bunnelby.lane_940\":\n \"<p>Começa a aparecer às <strong>9:40</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong> e ressurgem após <strong>60 segundos</strong>.</p><p>Se alguma das <strong>primeiras torres</strong> da lane for destruída, <strong>desaparece</strong>.</p>\",\n \"spawn.info.bunnelby.lane_920\":\n \"<p>Começa a aparecer às <strong>9:20</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong> e ressurgem após <strong>60 segundos</strong>.</p><p>Se alguma das <strong>primeiras torres</strong> da lane for destruída, <strong>desaparece</strong>.</p>\",\n \"spawn.info.bunnelby.lane_915\":\n \"<p>Começa a aparecer às <strong>9:15</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong> e ressurgem após <strong>60 segundos</strong>.</p><p>Se alguma das <strong>primeiras torres</strong> da lane for destruída, <strong>desaparece</strong>.</p>\",\n \"spawn.info.accelgor\":\n \"<p>Começa a aparecer às <strong>9:45</strong>.</p><p>Quando derrotado, concede <strong>4 / 7 pontos</strong> e um <strong>buff</strong>. <strong>Ressurge após 60 segundos</strong>.</p><p>O buff dura <strong>70 segundos</strong> e concede <strong>10% de redução no tempo de recarga dos movimentos</strong>.</p>\",\n \"spawn.info.escavalier\":\n \"<p>Começa a aparecer às <strong>9:45</strong>.</p><p>Quando derrotado, concede <strong>4 / 7 pontos</strong> e um <strong>buff</strong>. <strong>Ressurge após 60 segundos</strong>.</p><p>O buff dura <strong>70 segundos</strong> e concede <strong>dano extra em ataques básicos e reduz a velocidade de movimento do oponente por um curto tempo</strong>.</p>\",\n \"spawn.info.baltoy.generic\":\n \"<p>Começa a aparecer às <strong>9:45</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong>. <strong>Ressurge após 60 segundos</strong>.</p>\",\n \"spawn.info.baltoy.lane_940\":\n \"<p>Começa a aparecer às <strong>9:40</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong>. <strong>Ressurge após 60 segundos</strong>.</p><p>Se alguma das <strong>primeiras torres</strong> da lane for destruída, <strong>desaparece</strong>.</p>\",\n \"spawn.info.baltoy.lane_920\":\n \"<p>Começa a aparecer às <strong>9:40</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong>. <strong>Ressurge após 60 segundos</strong>.</p><p>Se alguma das <strong>primeiras torres</strong> da lane for destruída, <strong>desaparece</strong>.</p>\",\n \"spawn.info.baltoy.lane_910\":\n \"<p>Começa a aparecer às <strong>9:10</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong>. <strong>Ressurge após 60 segundos</strong>.</p><p>Se alguma das <strong>primeiras torres</strong> da lane for destruída, <strong>desaparece</strong>.</p>\",\n \"spawn.info.baltoy.lane_910_only\":\n \"<p>Começa a aparecer às <strong>9:10</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong>. <strong>Ressurge após 60 segundos</strong>.</p>\",\n \"spawn.info.baltoy.lane_840\":\n \"<p>Começa a aparecer às <strong>8:40</strong>.</p><p>Quando derrotado, concede <strong>2 pontos</strong>. <strong>Ressurge após 60 segundos</strong>.</p>\",\n \"spawn.info.baltoy.tower\":\n \"<p>Começa a aparecer quando a <strong>primeira torre correspondente</strong> for destruída.</p><p>Quando derrotado, concede <strong>2 pontos</strong>. <strong>Ressurge após 60 segundos</strong>.</p>\",\n \"spawn.info.regidrago\":\n \"<p>Aparece no <strong>centro do mapa às 8:00</strong>. Quando derrotado, <strong>Altaria aparece 1:30 minuto depois</strong>.<br>O time que derrotar o <strong>Regidrago</strong> ganha <strong>experiência para todos os aliados</strong>.<br>Quem aplicar o golpe final recebe <strong>buff de velocidade de pontuação</strong> e <strong>20 pontos</strong>.</p>\",\n \"spawn.info.regieleki\":\n \"<p>Aparece às <strong>7:00</strong> em uma lane aleatória entre <strong>topo e base</strong>.<br>Quando derrotado, vai até a base do time adversário e, se tocar a base, pontua <strong>20/16/12/8 pontos</strong>; se a base ainda estiver de pé, <strong>gols ficam instantâneos por 20/15/10/5s</strong>.<br>Quem aplicar o golpe final recebe <strong>20 pontos</strong>.<br>Ressurge <strong>2 minutos</strong> após a morte.</p>\",\n \"spawn.info.xatu\":\n \"<p>Aparece às <strong>9:59</strong>.</p><p>Concede <strong>muita experiência</strong> e <strong>2 pontos</strong> quando derrotado.</p><p><strong>Não ressurgem</strong>.</p>\",\n \"spawn.info.natu.900\":\n \"<p>Aparece às <strong>9:00</strong>.</p>\",\n \"spawn.info.natu.920\":\n \"<p>Aparece às <strong>9:20</strong>.</p>\",\n \"spawn.info.indeedee.lane\":\n \"<p>Começa a aparecer às <strong>9:30</strong> / <strong>9:35</strong>.</p><p>Quando derrotado, <strong>ressurge após 60 segundos</strong> e concede <strong>5 pontos</strong>.</p><p>Se alguma das <strong>primeiras torres</strong> da lane for destruída, <strong>desaparece</strong>.</p>\",\n \"spawn.info.indeedee.tower\":\n \"<p>Aparece quando a <strong>primeira torre correspondente</strong> for destruída.</p><p>Quando derrotado, <strong>ressurge após 60 segundos</strong> e concede <strong>5 pontos</strong>.</p>\",\n \"spawn.info.salac\":\n \"<p>Quando consumido, concede <strong>bônus de velocidade de movimento</strong> por <strong>3 segundos</strong>.</p><p>Começa a aparecer às <strong>8:30</strong> e ressurgem <strong>60 segundos</strong> após o consumo.</p>\",\n \"spawn.info.salac.short\":\n \"<p>Bônus de velocidade de movimento por 3 segundos.</p>\",\n \"spawn.info.altaria.after_regidrago\":\n \"<p>Começa a aparecer <strong>1:30 após o Regidrago ser derrotado</strong>.</p>\",\n \"spawn.info.altaria.rayquaza\":\n \"<p>Aparece às <strong>8:00</strong> e resurge a cada <strong>1:30</strong>.</p><p>Desaparece às <strong>2:30</strong>.</p>\",\n \"spawn.info.regidrago.kyogre\":\n \"<p>Aparece no <strong>centro do mapa às 8:00</strong>.</p>\",\n \"spawn.info.xatu.short\":\n \"<p>Aparece às <strong>9:59</strong>.</p>\",\n \"spawn.info.indeedee.tower_break\":\n \"<p>Aparece quando torre é destruída.</p>\",\n \"spawn.info.baltoy.tower_break\":\n \"<p>Aparece quando torre é destruída.</p>\",\n \"spawn.info.bunnelby.lane\":\n \"<p>Começa a aparecer às <strong>9:40</strong>.</p>\",\n \"spawn.info.bunnelby.lane_920_short\":\n \"<p>Começa a aparecer às <strong>9:20</strong>.</p>\",\n \"spawn.info.bunnelby.lane_915_short\":\n \"<p>Começa a aparecer às <strong>9:15</strong>.</p>\",\n \"spawn.info.baltoy.lane_940_short\":\n \"<p>Começa a aparecer às <strong>9:40</strong>.</p>\",\n \"spawn.info.baltoy.945_short\":\n \"<p>Começa a aparecer às <strong>9:45</strong>.</p>\",\n \"spawn.info.baltoy.lane_910_short\":\n \"<p>Começa a aparecer às <strong>9:10</strong>.</p>\",\n \"spawn.info.baltoy.lane_840_short\":\n \"<p>Começa a aparecer às <strong>8:40</strong>.</p>\",\n \"spawn.info.indeedee.lane_930\":\n \"<p>Começa a aparecer às <strong>9:30</strong>.</p>\",\n \"spawn.info.indeedee.lane_935\":\n \"<p>Começa a aparecer às <strong>9:35</strong>.</p>\",\n \"spawn.info.baltoy.tower_kyogre\":\n \"<p>Começa a aparecer quando a <strong>primeira torre correspondente</strong> for destruída.</p>\",\n \"spawn.info.indeedee.tower_short\":\n \"<p>Aparece quando a <strong>primeira torre correspondente</strong> for destruída.</p>\",\n};\n\nexport default ptBR;\n","/**\n * Japanese (Japan) Pokémon names — official localized names.\n */\nconst jaJP: Record<string, string> = {\n venusaur: \"フシギバナ\",\n charizard: \"リザードン\",\n \"mega-charizard-x\": \"メガリザードンX\",\n \"mega-charizard-y\": \"メガリザードンY\",\n blastoise: \"カメックス\",\n pikachu: \"ピカチュウ\",\n \"alolan-raichu\": \"アローラのライチュウ\",\n clefable: \"ピクシー\",\n \"alolan-ninetales\": \"アローラのキュウコン\",\n wigglytuff: \"プクリン\",\n meowth: \"ニャース\",\n psyduck: \"コダック\",\n machamp: \"カイリキー\",\n \"galarian-rapidash\": \"ガラルのギャロップ\",\n slowbro: \"ヤドラン\",\n dodrio: \"ドードリオ\",\n gengar: \"ゲンガー\",\n blissey: \"ハピナス\",\n \"mr-mime\": \"バリヤード\",\n scizor: \"ハッサム\",\n gyarados: \"ギャラドス\",\n \"mega-gyarados\": \"メガギャラドス\",\n lapras: \"ラプラス\",\n vaporeon: \"シャワーズ\",\n snorlax: \"カビゴン\",\n zapdos: \"サンダー\",\n moltres: \"ファイヤー\",\n dragonite: \"カイリュー\",\n mewtwox: \"メガミュウツーX\",\n mewtwoy: \"メガミュウツーY\",\n \"mega-mewtwo-x\": \"メガミュウツーX\",\n \"mega-mewtwo-y\": \"メガミュウツーY\",\n mew: \"ミュウ\",\n azumarill: \"マリルリ\",\n espeon: \"エーフィ\",\n umbreon: \"ブラッキー\",\n mamoswine: \"マンムー\",\n suicune: \"スイクン\",\n tyranitar: \"バンギラス\",\n \"ho-oh\": \"ホウオウ\",\n blaziken: \"バシャーモ\",\n gardevoir: \"サーナイト\",\n sableye: \"ヤミラミ\",\n absol: \"アブソル\",\n metagross: \"メタグロス\",\n latias: \"ラティアス\",\n latios: \"ラティオス\",\n empoleon: \"エンペルト\",\n garchomp: \"ガブリアス\",\n lucario: \"ルカリオ\",\n \"mega-lucario\": \"メガルカリオ\",\n leafeon: \"リーフィア\",\n glaceon: \"グレイシア\",\n darkrai: \"ダークライ\",\n crustle: \"イワパレス\",\n zoroark: \"ゾロアーク\",\n chandelure: \"シャンデラ\",\n delphox: \"マフォクシー\",\n greninja: \"ゲッコウガ\",\n talonflame: \"ファイアロー\",\n aegislash: \"ギルガルド\",\n sylveon: \"ニンフィア\",\n goodra: \"ヌメルゴン\",\n trevenant: \"オーロット\",\n hoopa: \"フーパ\",\n decidueye: \"ジュナイパー\",\n tsareena: \"アマージョ\",\n comfey: \"キュワワー\",\n mimikyu: \"ミミッキュ\",\n dhelmise: \"ダダリン\",\n buzzwole: \"マッシブーン\",\n zeraora: \"ゼラオラ\",\n cinderace: \"エースバーン\",\n inteleon: \"インテレオン\",\n greedent: \"ヨクバリス\",\n eldegoss: \"ワタシラガ\",\n cramorant: \"ウッウ\",\n sirfetchd: \"ネギガナイト\",\n alcremie: \"マホイップ\",\n falinks: \"タイレーツ\",\n duraludon: \"ジュラルドン\",\n dragapult: \"ドラパルト\",\n zacian: \"ザシアン\",\n urshifu: \"ウーラオス\",\n meowscarada: \"マスカーニャ\",\n pawmot: \"パーモット\",\n armarouge: \"グレンアルマ\",\n ceruledge: \"ソウブレイズ\",\n tinkaton: \"デカヌチャン\",\n miraidon: \"ミライドン\",\n // Maps — names and descriptions\n \"map-groudon\": \"テイアの天空遺跡\",\n \"map-groudon.description\": \"グラードンが登場する5v5マップ。\",\n \"map-kyogre\": \"テイアの天空遺跡\",\n \"map-kyogre.description\": \"カイオーガが登場する5v5マップ。\",\n \"map-rayquaza\": \"テイアの天空遺跡\",\n \"map-rayquaza.description\": \"レックウザが登場する5v5マップ。\",\n // Neutrals (wild Pokémon / items)\n accelgor: \"アッケラー\",\n altaria: \"チルタリス\",\n baltoy: \"ヤドン\",\n bunnelby: \"ホルビー\",\n escavalier: \"シュバルゴ\",\n groudon: \"グラードン\",\n indeedee: \"イエッサン\",\n kyogre: \"カイオーガ\",\n natu: \"ネイティ\",\n rayquaza: \"レックウザ\",\n regidrago: \"レジドラゴ\",\n regice: \"レジアイス\",\n regieleki: \"レジエレキ\",\n regirock: \"レジロック\",\n registeel: \"レジスチル\",\n salac: \"サラクのみ\",\n sitrus: \"オボンのみ\",\n xatu: \"ネイティオ\",\n // Spawn info (HTML)\n \"spawn.info.groudon.boss\":\n \"<p>撃破すると、生存している味方全員が<strong>バフ</strong>と<strong>15アエオスポイント</strong>を獲得。<br>このバフは<strong>所持者がノックアウトされるまで永続</strong>。ノックアウトされるとバフは<strong>与えた側に移る</strong>。<br><strong>ゴール速度上昇</strong>・<strong>大ダメージ上昇</strong>・<strong>小シールド</strong>。<br>2:00に出現。</p>\",\n \"spawn.info.bunnelby.initial\":\n \"<p><strong>試合開始時に出現</strong>し、<strong>撃破後は再出現しない</strong>。</p><p>2ポイント獲得。</p>\",\n \"spawn.info.bunnelby.lane_940\":\n \"<p><strong>9:40</strong>から出現。<br>撃破で<strong>2ポイント</strong>獲得、<strong>60秒</strong>後に再出現。<br>レーンの<strong>最初のタワー</strong>が破壊されると<strong>消滅</strong>。</p>\",\n \"spawn.info.bunnelby.lane_920\":\n \"<p><strong>9:20</strong>から出現。<br>撃破で<strong>2ポイント</strong>獲得、<strong>60秒</strong>後に再出現。<br>レーンの<strong>最初のタワー</strong>が破壊されると<strong>消滅</strong>。</p>\",\n \"spawn.info.bunnelby.lane_915\":\n \"<p><strong>9:15</strong>から出現。<br>撃破で<strong>2ポイント</strong>獲得、<strong>60秒</strong>後に再出現。<br>レーンの<strong>最初のタワー</strong>が破壊されると<strong>消滅</strong>。</p>\",\n \"spawn.info.accelgor\":\n \"<p><strong>9:45</strong>から出現。撃破で<strong>4/7ポイント</strong>と<strong>バフ</strong>。<strong>60秒</strong>後に再出現。<br>バフは<strong>70秒</strong>間、<strong>わざのクールダウン10%短縮</strong>。</p>\",\n \"spawn.info.escavalier\":\n \"<p><strong>9:45</strong>から出現。撃破で<strong>4/7ポイント</strong>と<strong>バフ</strong>。<strong>60秒</strong>後に再出現。<br>バフは<strong>70秒</strong>間、<strong>基本攻撃ダメージ上昇・相手の移動速度短時間低下</strong>。</p>\",\n \"spawn.info.baltoy.generic\":\n \"<p><strong>9:45</strong>から出現。撃破で<strong>2ポイント</strong>。<strong>60秒</strong>後に再出現。</p>\",\n \"spawn.info.baltoy.lane_940\":\n \"<p><strong>9:40</strong>から出現。撃破で<strong>2ポイント</strong>。<strong>60秒</strong>後に再出現。レーンの<strong>最初のタワー</strong>破壊で<strong>消滅</strong>。</p>\",\n \"spawn.info.baltoy.lane_920\":\n \"<p><strong>9:40</strong>から出現。撃破で<strong>2ポイント</strong>。<strong>60秒</strong>後に再出現。レーンの<strong>最初のタワー</strong>破壊で<strong>消滅</strong>。</p>\",\n \"spawn.info.baltoy.lane_910\":\n \"<p><strong>9:10</strong>から出現。撃破で<strong>2ポイント</strong>。<strong>60秒</strong>後に再出現。レーンの<strong>最初のタワー</strong>破壊で<strong>消滅</strong>。</p>\",\n \"spawn.info.baltoy.lane_910_only\":\n \"<p><strong>9:10</strong>から出現。撃破で<strong>2ポイント</strong>。<strong>60秒</strong>後に再出現。</p>\",\n \"spawn.info.baltoy.lane_840\":\n \"<p><strong>8:40</strong>から出現。撃破で<strong>2ポイント</strong>。<strong>60秒</strong>後に再出現。</p>\",\n \"spawn.info.baltoy.tower\":\n \"<p>対応する<strong>最初のタワー</strong>破壊後に出現。撃破で<strong>2ポイント</strong>。<strong>60秒</strong>後に再出現。</p>\",\n \"spawn.info.regidrago\":\n \"<p><strong>8:00</strong>にマップ中央に出現。撃破から<strong>1:30</strong>後にチルタリスが出現。<br>撃破したチームは<strong>味方全員に経験値</strong>。とどめを刺したプレイヤーは<strong>得点速度バフ</strong>と<strong>20ポイント</strong>。</p>\",\n \"spawn.info.regieleki\":\n \"<p><strong>7:00</strong>にトップ/ボトムのいずれかのレーンに出現。撃破すると相手陣地へ。陣地に到達で<strong>20/16/12/8ポイント</strong>、陣地が健在なら<strong>20/15/10/5秒間ゴール即時</strong>。<br>とどめで<strong>20ポイント</strong>。撃破から<strong>2分</strong>で再出現。</p>\",\n \"spawn.info.regi.700\":\n \"<p><strong>7:00</strong>に出現。</p>\",\n \"spawn.info.xatu\":\n \"<p><strong>9:59</strong>に出現。撃破で<strong>大量経験値</strong>と<strong>2ポイント</strong>。<strong>再出現なし</strong>。</p>\",\n \"spawn.info.natu.900\":\n \"<p><strong>9:00</strong>に出現。</p>\",\n \"spawn.info.natu.920\":\n \"<p><strong>9:20</strong>に出現。</p>\",\n \"spawn.info.indeedee.lane\":\n \"<p><strong>9:30</strong>/<strong>9:35</strong>から出現。撃破で<strong>60秒</strong>後に再出現、<strong>5ポイント</strong>。レーンの<strong>最初のタワー</strong>破壊で<strong>消滅</strong>。</p>\",\n \"spawn.info.indeedee.tower\":\n \"<p>対応する<strong>最初のタワー</strong>破壊後に出現。撃破で<strong>60秒</strong>後に再出現、<strong>5ポイント</strong>。</p>\",\n \"spawn.info.salac\":\n \"<p>使用で<strong>3秒間</strong><strong>移動速度アップ</strong>。<strong>8:30</strong>から出現、使用後<strong>60秒</strong>で再出現。</p>\",\n \"spawn.info.salac.short\":\n \"<p>3秒間移動速度アップ。</p>\",\n \"spawn.info.altaria.after_regidrago\":\n \"<p>レジドラゴ撃破から<strong>1:30</strong>後に出現。</p>\",\n \"spawn.info.altaria.rayquaza\":\n \"<p><strong>8:00</strong>に出現、<strong>1:30</strong>ごとに再出現。<strong>2:30</strong>に消滅。</p>\",\n \"spawn.info.kyogre.boss\":\n \"<p>撃破すると生存味方全員が<strong>バフ</strong>と<strong>15アエオスポイント</strong>を獲得。相手の残存タワーは1:30間無効(シールド・回復不可)。<br>バフは<strong>所持者がノックアウトされるまで永続</strong>。ノックアウトで<strong>与えた側に移る</strong>。<br><strong>ゴール速度上昇</strong>・<strong>自己回復(毎秒5%)</strong>・<strong>小シールド</strong>。<br>2:00に出現。</p>\",\n \"spawn.info.rayquaza.boss\":\n \"<p>撃破で勝利チームに<strong>15アエオスポイント</strong>と<strong>シールド</strong>(得点速度上昇・ゴール妨害無効)。<br>2:00に出現。</p>\",\n \"spawn.info.regidrago.kyogre\":\n \"<p><strong>8:00</strong>にマップ中央に出現。</p>\",\n \"spawn.info.xatu.short\":\n \"<p><strong>9:59</strong>に出現。</p>\",\n \"spawn.info.indeedee.tower_break\":\n \"<p>タワー破壊で出現。</p>\",\n \"spawn.info.baltoy.tower_break\":\n \"<p>タワー破壊で出現。</p>\",\n \"spawn.info.bunnelby.lane\":\n \"<p><strong>9:40</strong>から出現。</p>\",\n \"spawn.info.bunnelby.lane_920_short\":\n \"<p><strong>9:20</strong>から出現。</p>\",\n \"spawn.info.bunnelby.lane_915_short\":\n \"<p><strong>9:15</strong>から出現。</p>\",\n \"spawn.info.baltoy.lane_940_short\":\n \"<p><strong>9:40</strong>から出現。</p>\",\n \"spawn.info.baltoy.945_short\":\n \"<p><strong>9:45</strong>から出現。</p>\",\n \"spawn.info.baltoy.lane_910_short\":\n \"<p><strong>9:10</strong>から出現。</p>\",\n \"spawn.info.baltoy.lane_840_short\":\n \"<p><strong>8:40</strong>から出現。</p>\",\n \"spawn.info.indeedee.lane_930\":\n \"<p><strong>9:30</strong>から出現。</p>\",\n \"spawn.info.indeedee.lane_935\":\n \"<p><strong>9:35</strong>から出現。</p>\",\n \"spawn.info.bunnelby.points\":\n \"<p>2ポイント獲得。</p>\",\n \"spawn.info.baltoy.tower_kyogre\":\n \"<p>対応する<strong>最初のタワー</strong>破壊後に出現。</p>\",\n \"spawn.info.indeedee.tower_short\":\n \"<p>対応する<strong>最初のタワー</strong>破壊後に出現。</p>\",\n};\n\nexport default jaJP;\n","/**\n * French (France) Pokémon names — official localized names.\n */\nconst fr: Record<string, string> = {\n venusaur: \"Florizarre\",\n charizard: \"Dracaufeu\",\n \"mega-charizard-x\": \"Méga-Dracaufeu X\",\n \"mega-charizard-y\": \"Méga-Dracaufeu Y\",\n blastoise: \"Tortank\",\n pikachu: \"Pikachu\",\n \"alolan-raichu\": \"Raichu d'Alola\",\n clefable: \"Mélodelfe\",\n \"alolan-ninetales\": \"Feunard d'Alola\",\n wigglytuff: \"Grodoudou\",\n meowth: \"Miaouss\",\n psyduck: \"Psykokwak\",\n machamp: \"Mackogneur\",\n \"galarian-rapidash\": \"Galopa de Galar\",\n slowbro: \"Flagadoss\",\n dodrio: \"Dodrio\",\n gengar: \"Ectoplasma\",\n blissey: \"Leveinard\",\n \"mr-mime\": \"M. Mime\",\n scizor: \"Cizayox\",\n gyarados: \"Léviator\",\n \"mega-gyarados\": \"Méga-Léviator\",\n lapras: \"Lokhlass\",\n vaporeon: \"Aquali\",\n snorlax: \"Ronflex\",\n zapdos: \"Électhor\",\n moltres: \"Sulfura\",\n dragonite: \"Dracolosse\",\n mewtwox: \"Méga-Mewtwo X\",\n mewtwoy: \"Méga-Mewtwo Y\",\n \"mega-mewtwo-x\": \"Méga-Mewtwo X\",\n \"mega-mewtwo-y\": \"Méga-Mewtwo Y\",\n mew: \"Mew\",\n azumarill: \"Azumarill\",\n espeon: \"Mentali\",\n umbreon: \"Noctali\",\n mamoswine: \"Mammochon\",\n suicune: \"Suicune\",\n tyranitar: \"Tyranocif\",\n \"ho-oh\": \"Ho-Oh\",\n blaziken: \"Braségali\",\n gardevoir: \"Gardevoir\",\n sableye: \"Ténéfix\",\n absol: \"Absol\",\n metagross: \"Métalosse\",\n latias: \"Latias\",\n latios: \"Latios\",\n empoleon: \"Pingoléon\",\n garchomp: \"Carchacrok\",\n lucario: \"Lucario\",\n \"mega-lucario\": \"Méga-Lucario\",\n leafeon: \"Phyllali\",\n glaceon: \"Givrali\",\n darkrai: \"Darkrai\",\n crustle: \"Crabaraque\",\n zoroark: \"Zoroark\",\n chandelure: \"Lugulabre\",\n delphox: \"Goupelin\",\n greninja: \"Amphinobi\",\n talonflame: \"Flambusard\",\n aegislash: \"Exagide\",\n sylveon: \"Nymphali\",\n goodra: \"Muplodocus\",\n trevenant: \"Desséliande\",\n hoopa: \"Hoopa\",\n decidueye: \"Archéduc\",\n tsareena: \"Sucreine\",\n comfey: \"Guérilande\",\n mimikyu: \"Mimiqui\",\n dhelmise: \"Sinistrail\",\n buzzwole: \"Mouscoto\",\n zeraora: \"Zeraora\",\n cinderace: \"Pyrobut\",\n inteleon: \"Lézargus\",\n greedent: \"Rongrigou\",\n eldegoss: \"Blancoton\",\n cramorant: \"Nigosier\",\n sirfetchd: \"Palarticho\",\n alcremie: \"Charmilly\",\n falinks: \"Hexadron\",\n duraludon: \"Duralugon\",\n dragapult: \"Drakéfauche\",\n zacian: \"Zacian\",\n urshifu: \"Shifours\",\n meowscarada: \"Matourgeon\",\n pawmot: \"Parmot\",\n armarouge: \"Carmadura\",\n ceruledge: \"Malvalame\",\n tinkaton: \"Forgerette\",\n miraidon: \"Miraidon\",\n // Maps — names and descriptions\n \"map-groudon\": \"Ruines Célestes de Theia\",\n \"map-groudon.description\": \"Carte 5v5 avec Groudon.\",\n \"map-kyogre\": \"Ruines Célestes de Theia\",\n \"map-kyogre.description\": \"Carte 5v5 avec Kyogre.\",\n \"map-rayquaza\": \"Ruines Célestes de Theia\",\n \"map-rayquaza.description\": \"Carte 5v5 avec Rayquaza.\",\n // Neutrals (wild Pokémon / items)\n accelgor: \"Accelgor\",\n altaria: \"Altaria\",\n baltoy: \"Balbuto\",\n bunnelby: \"Sapereau\",\n escavalier: \"Lançargot\",\n groudon: \"Groudon\",\n indeedee: \"Wimessir\",\n kyogre: \"Kyogre\",\n natu: \"Natu\",\n rayquaza: \"Rayquaza\",\n regidrago: \"Regidrago\",\n regice: \"Regice\",\n regieleki: \"Regieleki\",\n regirock: \"Regirock\",\n registeel: \"Registeel\",\n salac: \"Baie Salac\",\n sitrus: \"Baie Sitrus\",\n xatu: \"Xatu\",\n // Spawn info (HTML)\n \"spawn.info.groudon.boss\":\n \"<p>Une fois vaincu, tous les coéquipiers vivants reçoivent un <strong>buff</strong> et <strong>15 points aeos</strong>.<br>Ce buff est <strong>permanent jusqu'à ce que le porteur soit K.O.</strong>. Au K.O., le buff <strong>passe au vainqueur</strong>.<br>Il donne un <strong>boost de vitesse de score</strong>, un <strong>gros boost de dégâts</strong> et un <strong>petit bouclier</strong>.<br>Apparaît toujours à 2:00.</p>\",\n \"spawn.info.bunnelby.initial\":\n \"<p>Ils <strong>apparaissent au début de la partie</strong> et <strong>ne réapparaissent jamais</strong> une fois vaincus.</p><p>Donnent 2 points.</p>\",\n \"spawn.info.bunnelby.lane_940\":\n \"<p>Commence à apparaître à <strong>9:40</strong>.</p><p>Vaincu : <strong>2 points</strong>, réapparition après <strong>60 secondes</strong>.</p><p>Si une des <strong>premières tours</strong> de la voie est détruite, <strong>disparaît</strong>.</p>\",\n \"spawn.info.bunnelby.lane_920\":\n \"<p>Commence à apparaître à <strong>9:20</strong>.</p><p>Vaincu : <strong>2 points</strong>, réapparition après <strong>60 secondes</strong>.</p><p>Si une des <strong>premières tours</strong> de la voie est détruite, <strong>disparaît</strong>.</p>\",\n \"spawn.info.bunnelby.lane_915\":\n \"<p>Commence à apparaître à <strong>9:15</strong>.</p><p>Vaincu : <strong>2 points</strong>, réapparition après <strong>60 secondes</strong>.</p><p>Si une des <strong>premières tours</strong> de la voie est détruite, <strong>disparaît</strong>.</p>\",\n \"spawn.info.accelgor\":\n \"<p>Commence à <strong>9:45</strong>. Vaincu : <strong>4 / 7 points</strong> et <strong>buff</strong>. Réapparition après <strong>60 s</strong>. Buff <strong>70 s</strong> : <strong>-10% temps de recharge des capacités</strong>.</p>\",\n \"spawn.info.escavalier\":\n \"<p>Commence à <strong>9:45</strong>. Vaincu : <strong>4 / 7 points</strong> et <strong>buff</strong>. Réapparition après <strong>60 s</strong>. Buff <strong>70 s</strong> : <strong>dégâts d’attaque basique + ralentissement adverse</strong>.</p>\",\n \"spawn.info.baltoy.generic\":\n \"<p>Commence à <strong>9:45</strong>. Vaincu : <strong>2 points</strong>. Réapparition après <strong>60 s</strong>.</p>\",\n \"spawn.info.baltoy.lane_940\":\n \"<p>Commence à <strong>9:40</strong>. Vaincu : <strong>2 points</strong>. Réapparition après <strong>60 s</strong>. <strong>Première tour</strong> détruite → <strong>disparaît</strong>.</p>\",\n \"spawn.info.baltoy.lane_920\":\n \"<p>Commence à <strong>9:40</strong>. Vaincu : <strong>2 points</strong>. Réapparition après <strong>60 s</strong>. <strong>Première tour</strong> détruite → <strong>disparaît</strong>.</p>\",\n \"spawn.info.baltoy.lane_910\":\n \"<p>Commence à <strong>9:10</strong>. Vaincu : <strong>2 points</strong>. Réapparition après <strong>60 s</strong>. <strong>Première tour</strong> détruite → <strong>disparaît</strong>.</p>\",\n \"spawn.info.baltoy.lane_910_only\":\n \"<p>Commence à <strong>9:10</strong>. Vaincu : <strong>2 points</strong>. Réapparition après <strong>60 s</strong>.</p>\",\n \"spawn.info.baltoy.lane_840\":\n \"<p>Commence à <strong>8:40</strong>. Vaincu : <strong>2 points</strong>. Réapparition après <strong>60 s</strong>.</p>\",\n \"spawn.info.baltoy.tower\":\n \"<p>Apparaît quand la <strong>première tour correspondante</strong> est détruite. Vaincu : <strong>2 points</strong>. Réapparition après <strong>60 s</strong>.</p>\",\n \"spawn.info.regidrago\":\n \"<p>Apparaît <strong>au centre à 8:00</strong>. Vaincu → <strong>Altaria 1:30 après</strong>.<br>L’équipe qui le vainc gagne <strong>de l’exp pour toute l’équipe</strong>. Dernier coup : <strong>buff score</strong> et <strong>20 points</strong>.</p>\",\n \"spawn.info.regieleki\":\n \"<p>Apparaît à <strong>7:00</strong> en haut ou en bas. Vaincu → va vers la base adverse ; touche la base : <strong>20/16/12/8 points</strong> ; base vivante : <strong>buts instantanés 20/15/10/5 s</strong>.<br>Dernier coup : <strong>20 points</strong>. Réapparition <strong>2 min</strong> après.</p>\",\n \"spawn.info.regi.700\":\n \"<p>Apparaît à <strong>7:00</strong>.</p>\",\n \"spawn.info.xatu\":\n \"<p>Apparaît à <strong>9:59</strong>. Vaincu : <strong>beaucoup d’exp</strong> et <strong>2 points</strong>. <strong>Ne réapparaît pas</strong>.</p>\",\n \"spawn.info.natu.900\":\n \"<p>Apparaît à <strong>9:00</strong>.</p>\",\n \"spawn.info.natu.920\":\n \"<p>Apparaît à <strong>9:20</strong>.</p>\",\n \"spawn.info.indeedee.lane\":\n \"<p>Commence à <strong>9:30</strong> / <strong>9:35</strong>. Vaincu : réapparition <strong>60 s</strong>, <strong>5 points</strong>. <strong>Première tour</strong> détruite → <strong>disparaît</strong>.</p>\",\n \"spawn.info.indeedee.tower\":\n \"<p>Apparaît quand la <strong>première tour correspondante</strong> est détruite. Vaincu : réapparition <strong>60 s</strong>, <strong>5 points</strong>.</p>\",\n \"spawn.info.salac\":\n \"<p>Consommé : <strong>bonus vitesse 3 s</strong>. Apparition à <strong>8:30</strong>, réapparition <strong>60 s</strong> après consommation.</p>\",\n \"spawn.info.salac.short\":\n \"<p>Bonus de vitesse pendant 3 secondes.</p>\",\n \"spawn.info.altaria.after_regidrago\":\n \"<p>Apparaît <strong>1:30 après la chute de Regidrago</strong>.</p>\",\n \"spawn.info.altaria.rayquaza\":\n \"<p>Apparaît à <strong>8:00</strong>, réapparition toutes les <strong>1:30</strong>. Disparaît à <strong>2:30</strong>.</p>\",\n \"spawn.info.kyogre.boss\":\n \"<p>Vaincu : coéquipiers vivants → <strong>buff</strong>, <strong>15 points aeos</strong>, tours adverses encore debout désactivées 1:30 (pas de bouclier/régén).<br>Buff <strong>permanent jusqu’au K.O. du porteur</strong>, puis <strong>passe au vainqueur</strong>.<br><strong>Vitesse de score</strong>, <strong>régén 5%/s</strong>, <strong>petit bouclier</strong>. Apparaît à 2:00.</p>\",\n \"spawn.info.rayquaza.boss\":\n \"<p>Vaincu : équipe gagnante reçoit <strong>15 points aeos</strong>, un <strong>bouclier</strong> qui <strong>accélère le score</strong> et <strong>empêche le blocage des buts</strong>. Apparaît à 2:00.</p>\",\n \"spawn.info.regidrago.kyogre\":\n \"<p>Apparaît <strong>au centre à 8:00</strong>.</p>\",\n \"spawn.info.xatu.short\":\n \"<p>Apparaît à <strong>9:59</strong>.</p>\",\n \"spawn.info.indeedee.tower_break\":\n \"<p>Apparition après destruction de tour.</p>\",\n \"spawn.info.baltoy.tower_break\":\n \"<p>Apparition après destruction de tour.</p>\",\n \"spawn.info.bunnelby.lane\":\n \"<p>Commence à apparaître à <strong>9:40</strong>.</p>\",\n \"spawn.info.bunnelby.lane_920_short\":\n \"<p>Commence à apparaître à <strong>9:20</strong>.</p>\",\n \"spawn.info.bunnelby.lane_915_short\":\n \"<p>Commence à apparaître à <strong>9:15</strong>.</p>\",\n \"spawn.info.baltoy.lane_940_short\":\n \"<p>Commence à apparaître à <strong>9:40</strong>.</p>\",\n \"spawn.info.baltoy.945_short\":\n \"<p>Commence à apparaître à <strong>9:45</strong>.</p>\",\n \"spawn.info.baltoy.lane_910_short\":\n \"<p>Commence à apparaître à <strong>9:10</strong>.</p>\",\n \"spawn.info.baltoy.lane_840_short\":\n \"<p>Commence à apparaître à <strong>8:40</strong>.</p>\",\n \"spawn.info.indeedee.lane_930\":\n \"<p>Commence à apparaître à <strong>9:30</strong>.</p>\",\n \"spawn.info.indeedee.lane_935\":\n \"<p>Commence à apparaître à <strong>9:35</strong>.</p>\",\n \"spawn.info.bunnelby.points\":\n \"<p>Donnent 2 points.</p>\",\n \"spawn.info.baltoy.tower_kyogre\":\n \"<p>Apparaît quand la <strong>première tour correspondante</strong> est détruite.</p>\",\n \"spawn.info.indeedee.tower_short\":\n \"<p>Apparaît quand la <strong>première tour correspondante</strong> est détruite.</p>\",\n};\n\nexport default fr;\n","/**\n * Spanish (Spain/LATAM) Pokémon names — official localized names.\n */\nconst es: Record<string, string> = {\n venusaur: \"Venusaur\",\n charizard: \"Charizard\",\n \"mega-charizard-x\": \"Mega-Charizard X\",\n \"mega-charizard-y\": \"Mega-Charizard Y\",\n blastoise: \"Blastoise\",\n pikachu: \"Pikachu\",\n \"alolan-raichu\": \"Raichu de Alola\",\n clefable: \"Clefable\",\n \"alolan-ninetales\": \"Ninetales de Alola\",\n wigglytuff: \"Wigglytuff\",\n meowth: \"Meowth\",\n psyduck: \"Psyduck\",\n machamp: \"Machamp\",\n \"galarian-rapidash\": \"Rapidash de Galar\",\n slowbro: \"Slowbro\",\n dodrio: \"Dodrio\",\n gengar: \"Gengar\",\n blissey: \"Blissey\",\n \"mr-mime\": \"Mr. Mime\",\n scizor: \"Scizor\",\n gyarados: \"Gyarados\",\n \"mega-gyarados\": \"Mega-Gyarados\",\n lapras: \"Lapras\",\n vaporeon: \"Vaporeon\",\n snorlax: \"Snorlax\",\n zapdos: \"Zapdos\",\n moltres: \"Moltres\",\n dragonite: \"Dragonite\",\n mewtwox: \"Mega-Mewtwo X\",\n mewtwoy: \"Mega-Mewtwo Y\",\n \"mega-mewtwo-x\": \"Mega-Mewtwo X\",\n \"mega-mewtwo-y\": \"Mega-Mewtwo Y\",\n mew: \"Mew\",\n azumarill: \"Azumarill\",\n espeon: \"Espeon\",\n umbreon: \"Umbreon\",\n mamoswine: \"Mamoswine\",\n suicune: \"Suicune\",\n tyranitar: \"Tyranitar\",\n \"ho-oh\": \"Ho-Oh\",\n blaziken: \"Blaziken\",\n gardevoir: \"Gardevoir\",\n sableye: \"Sableye\",\n absol: \"Absol\",\n metagross: \"Metagross\",\n latias: \"Latias\",\n latios: \"Latios\",\n empoleon: \"Empoleon\",\n garchomp: \"Garchomp\",\n lucario: \"Lucario\",\n \"mega-lucario\": \"Mega-Lucario\",\n leafeon: \"Leafeon\",\n glaceon: \"Glaceon\",\n darkrai: \"Darkrai\",\n crustle: \"Crustle\",\n zoroark: \"Zoroark\",\n chandelure: \"Chandelure\",\n delphox: \"Delphox\",\n greninja: \"Greninja\",\n talonflame: \"Talonflame\",\n aegislash: \"Aegislash\",\n sylveon: \"Sylveon\",\n goodra: \"Goodra\",\n trevenant: \"Trevenant\",\n hoopa: \"Hoopa\",\n decidueye: \"Decidueye\",\n tsareena: \"Tsareena\",\n comfey: \"Comfey\",\n mimikyu: \"Mimikyu\",\n dhelmise: \"Dhelmise\",\n buzzwole: \"Buzzwole\",\n zeraora: \"Zeraora\",\n cinderace: \"Cinderace\",\n inteleon: \"Inteleon\",\n greedent: \"Greedent\",\n eldegoss: \"Eldegoss\",\n cramorant: \"Cramorant\",\n sirfetchd: \"Sirfetch'd\",\n alcremie: \"Alcremie\",\n falinks: \"Falinks\",\n duraludon: \"Duraludon\",\n dragapult: \"Dragapult\",\n zacian: \"Zacian\",\n urshifu: \"Urshifu\",\n meowscarada: \"Meowscarada\",\n pawmot: \"Pawmot\",\n armarouge: \"Armarouge\",\n ceruledge: \"Ceruledge\",\n tinkaton: \"Tinkaton\",\n miraidon: \"Miraidon\",\n // Maps — names and descriptions\n \"map-groudon\": \"Ruinas Celestiales de Theia\",\n \"map-groudon.description\": \"Mapa 5v5 con Groudon.\",\n \"map-kyogre\": \"Ruinas Celestiales de Theia\",\n \"map-kyogre.description\": \"Mapa 5v5 con Kyogre.\",\n \"map-rayquaza\": \"Ruinas Celestiales de Theia\",\n \"map-rayquaza.description\": \"Mapa 5v5 con Rayquaza.\",\n // Neutrals (wild Pokémon / items)\n accelgor: \"Accelgor\",\n altaria: \"Altaria\",\n baltoy: \"Baltoy\",\n bunnelby: \"Bunnelby\",\n escavalier: \"Escavalier\",\n groudon: \"Groudon\",\n indeedee: \"Indeedee\",\n kyogre: \"Kyogre\",\n natu: \"Natu\",\n rayquaza: \"Rayquaza\",\n regidrago: \"Regidrago\",\n regice: \"Regice\",\n regieleki: \"Regieleki\",\n regirock: \"Regirock\",\n registeel: \"Registeel\",\n salac: \"Baya Salac\",\n sitrus: \"Baya Sitrus\",\n xatu: \"Xatu\",\n // Spawn info (HTML)\n \"spawn.info.groudon.boss\":\n \"<p>Al derrotarlo, todos los compañeros vivos reciben <strong>buff</strong> y <strong>15 puntos aeos</strong>.<br>El buff es <strong>permanente hasta que el portador sea K.O.</strong>. Al ser K.O., el buff <strong>pasa al que lo derrotó</strong>.<br>Da <strong>aumento de velocidad de anotación</strong>, <strong>gran aumento de daño</strong> y <strong>pequeño escudo</strong>.<br>Siempre aparece a las 2:00.</p>\",\n \"spawn.info.bunnelby.initial\":\n \"<p><strong>Aparecen al inicio de la partida</strong> y <strong>no reaparecen</strong> al ser derrotados.</p><p>Dan 2 puntos.</p>\",\n \"spawn.info.bunnelby.lane_940\":\n \"<p>Empieza a aparecer a las <strong>9:40</strong>.</p><p>Al derrotarlo: <strong>2 puntos</strong>, reaparece tras <strong>60 segundos</strong>.</p><p>Si alguna <strong>primera torre</strong> del carril cae, <strong>desaparece</strong>.</p>\",\n \"spawn.info.bunnelby.lane_920\":\n \"<p>Empieza a aparecer a las <strong>9:20</strong>.</p><p>Al derrotarlo: <strong>2 puntos</strong>, reaparece tras <strong>60 segundos</strong>.</p><p>Si alguna <strong>primera torre</strong> del carril cae, <strong>desaparece</strong>.</p>\",\n \"spawn.info.bunnelby.lane_915\":\n \"<p>Empieza a aparecer a las <strong>9:15</strong>.</p><p>Al derrotarlo: <strong>2 puntos</strong>, reaparece tras <strong>60 segundos</strong>.</p><p>Si alguna <strong>primera torre</strong> del carril cae, <strong>desaparece</strong>.</p>\",\n \"spawn.info.accelgor\":\n \"<p>Empieza a las <strong>9:45</strong>. Derrotado: <strong>4 / 7 puntos</strong> y <strong>buff</strong>. Reaparece en <strong>60 s</strong>. Buff <strong>70 s</strong>: <strong>-10% enfriamiento de movimientos</strong>.</p>\",\n \"spawn.info.escavalier\":\n \"<p>Empieza a las <strong>9:45</strong>. Derrotado: <strong>4 / 7 puntos</strong> y <strong>buff</strong>. Reaparece en <strong>60 s</strong>. Buff <strong>70 s</strong>: <strong>daño extra en ataques básicos y ralentiza al rival</strong>.</p>\",\n \"spawn.info.baltoy.generic\":\n \"<p>Empieza a las <strong>9:45</strong>. Derrotado: <strong>2 puntos</strong>. Reaparece en <strong>60 s</strong>.</p>\",\n \"spawn.info.baltoy.lane_940\":\n \"<p>Empieza a las <strong>9:40</strong>. Derrotado: <strong>2 puntos</strong>. Reaparece en <strong>60 s</strong>. <strong>Primera torre</strong> del carril destruida → <strong>desaparece</strong>.</p>\",\n \"spawn.info.baltoy.lane_920\":\n \"<p>Empieza a las <strong>9:40</strong>. Derrotado: <strong>2 puntos</strong>. Reaparece en <strong>60 s</strong>. <strong>Primera torre</strong> del carril destruida → <strong>desaparece</strong>.</p>\",\n \"spawn.info.baltoy.lane_910\":\n \"<p>Empieza a las <strong>9:10</strong>. Derrotado: <strong>2 puntos</strong>. Reaparece en <strong>60 s</strong>. <strong>Primera torre</strong> del carril destruida → <strong>desaparece</strong>.</p>\",\n \"spawn.info.baltoy.lane_910_only\":\n \"<p>Empieza a las <strong>9:10</strong>. Derrotado: <strong>2 puntos</strong>. Reaparece en <strong>60 s</strong>.</p>\",\n \"spawn.info.baltoy.lane_840\":\n \"<p>Empieza a las <strong>8:40</strong>. Derrotado: <strong>2 puntos</strong>. Reaparece en <strong>60 s</strong>.</p>\",\n \"spawn.info.baltoy.tower\":\n \"<p>Aparece cuando la <strong>primera torre correspondiente</strong> es destruida. Derrotado: <strong>2 puntos</strong>. Reaparece en <strong>60 s</strong>.</p>\",\n \"spawn.info.regidrago\":\n \"<p>Aparece en <strong>el centro del mapa a las 8:00</strong>. Derrotado → <strong>Altaria 1:30 después</strong>.<br>El equipo que lo derrote gana <strong>experiencia para todos</strong>. Golpe final: <strong>buff de anotación</strong> y <strong>20 puntos</strong>.</p>\",\n \"spawn.info.regieleki\":\n \"<p>Aparece a las <strong>7:00</strong> en carril superior o inferior. Derrotado → va a la base rival; toca base: <strong>20/16/12/8 puntos</strong>; base viva: <strong>goles instantáneos 20/15/10/5 s</strong>.<br>Golpe final: <strong>20 puntos</strong>. Reaparece <strong>2 min</strong> después.</p>\",\n \"spawn.info.regi.700\":\n \"<p>Aparece a las <strong>7:00</strong>.</p>\",\n \"spawn.info.xatu\":\n \"<p>Aparece a las <strong>9:59</strong>. Derrotado: <strong>mucha experiencia</strong> y <strong>2 puntos</strong>. <strong>No reaparece</strong>.</p>\",\n \"spawn.info.natu.900\":\n \"<p>Aparece a las <strong>9:00</strong>.</p>\",\n \"spawn.info.natu.920\":\n \"<p>Aparece a las <strong>9:20</strong>.</p>\",\n \"spawn.info.indeedee.lane\":\n \"<p>Empieza a las <strong>9:30</strong> / <strong>9:35</strong>. Derrotado: reaparece en <strong>60 s</strong>, <strong>5 puntos</strong>. <strong>Primera torre</strong> destruida → <strong>desaparece</strong>.</p>\",\n \"spawn.info.indeedee.tower\":\n \"<p>Aparece cuando la <strong>primera torre correspondiente</strong> es destruida. Derrotado: reaparece en <strong>60 s</strong>, <strong>5 puntos</strong>.</p>\",\n \"spawn.info.salac\":\n \"<p>Al consumir: <strong>bonus de velocidad 3 s</strong>. Aparece a las <strong>8:30</strong>, reaparece <strong>60 s</strong> después de consumir.</p>\",\n \"spawn.info.salac.short\":\n \"<p>Bonus de velocidad durante 3 segundos.</p>\",\n \"spawn.info.altaria.after_regidrago\":\n \"<p>Aparece <strong>1:30 después de derrotar a Regidrago</strong>.</p>\",\n \"spawn.info.altaria.rayquaza\":\n \"<p>Aparece a las <strong>8:00</strong>, reaparece cada <strong>1:30</strong>. Desaparece a las <strong>2:30</strong>.</p>\",\n \"spawn.info.kyogre.boss\":\n \"<p>Derrotado: compañeros vivos → <strong>buff</strong>, <strong>15 puntos aeos</strong>, torres rivales aún en pie desactivadas 1:30 (sin escudo/regen).<br>Buff <strong>permanente hasta K.O. del portador</strong>, luego <strong>pasa al que lo derrotó</strong>.<br><strong>Velocidad de anotación</strong>, <strong>regen 5%/s</strong>, <strong>pequeño escudo</strong>. Aparece a las 2:00.</p>\",\n \"spawn.info.rayquaza.boss\":\n \"<p>Derrotado: el equipo ganador recibe <strong>15 puntos aeos</strong>, un <strong>escudo</strong> que <strong>acelera el marcador</strong> y <strong>evita que bloqueen goles</strong>. Aparece a las 2:00.</p>\",\n \"spawn.info.regidrago.kyogre\":\n \"<p>Aparece en <strong>el centro del mapa a las 8:00</strong>.</p>\",\n \"spawn.info.xatu.short\":\n \"<p>Aparece a las <strong>9:59</strong>.</p>\",\n \"spawn.info.indeedee.tower_break\":\n \"<p>Aparece al destruir torre.</p>\",\n \"spawn.info.baltoy.tower_break\":\n \"<p>Aparece al destruir torre.</p>\",\n \"spawn.info.bunnelby.lane\":\n \"<p>Empieza a aparecer a las <strong>9:40</strong>.</p>\",\n \"spawn.info.bunnelby.lane_920_short\":\n \"<p>Empieza a aparecer a las <strong>9:20</strong>.</p>\",\n \"spawn.info.bunnelby.lane_915_short\":\n \"<p>Empieza a aparecer a las <strong>9:15</strong>.</p>\",\n \"spawn.info.baltoy.lane_940_short\":\n \"<p>Empieza a aparecer a las <strong>9:40</strong>.</p>\",\n \"spawn.info.baltoy.945_short\":\n \"<p>Empieza a aparecer a las <strong>9:45</strong>.</p>\",\n \"spawn.info.baltoy.lane_910_short\":\n \"<p>Empieza a aparecer a las <strong>9:10</strong>.</p>\",\n \"spawn.info.baltoy.lane_840_short\":\n \"<p>Empieza a aparecer a las <strong>8:40</strong>.</p>\",\n \"spawn.info.indeedee.lane_930\":\n \"<p>Empieza a aparecer a las <strong>9:30</strong>.</p>\",\n \"spawn.info.indeedee.lane_935\":\n \"<p>Empieza a aparecer a las <strong>9:35</strong>.</p>\",\n \"spawn.info.bunnelby.points\":\n \"<p>Dan 2 puntos.</p>\",\n \"spawn.info.baltoy.tower_kyogre\":\n \"<p>Aparece cuando la <strong>primera torre correspondiente</strong> es destruida.</p>\",\n \"spawn.info.indeedee.tower_short\":\n \"<p>Aparece cuando la <strong>primera torre correspondiente</strong> es destruida.</p>\",\n};\n\nexport default es;\n"],"mappings":"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AA,EACF,+BACE;AAAA,EACF,gCACE;AAAA,EACF,gCACE;AAAA,EACF,gCACE;AAAA,EACF,uBACE;AAAA,EACF,yBACE;AAAA,EACF,6BACE;AAAA,EACF,8BACE;AAAA,EACF,8BACE;AAAA,EACF,8BACE;AAAA,EACF,mCACE;AAAA,EACF,8BACE;AAAA,EACF,2BACE;AAAA,EACF,wBACE;AAAA,EACF,wBACE;AAAA,EACF,uBACE;AAAA,EACF,mBACE;AAAA,EACF,uBACE;AAAA,EACF,uBACE;AAAA,EACF,4BACE;AAAA,EACF,6BACE;AAAA,EACF,oBACE;AAAA,EACF,0BACE;AAAA,EACF,sCACE;AAAA,EACF,+BACE;AAAA,EACF,0BACE;AAAA,EACF,4BACE;AAAA,EACF,+BACE;AAAA,EACF,yBACE;AAAA,EACF,mCACE;AAAA,EACF,iCACE;AAAA,EACF,4BACE;AAAA,EACF,sCACE;AAAA,EACF,sCACE;AAAA,EACF,oCACE;AAAA,EACF,+BACE;AAAA,EACF,oCACE;AAAA,EACF,oCACE;AAAA,EACF,gCACE;AAAA,EACF,gCACE;AAAA,EACF,8BACE;AAAA,EACF,kCACE;AAAA,EACF,mCACE;AACJ,CAAC;AAED,IAAO,aAAQ;;;AChHf,IAAM,OAA+B;AAAA,EACnC,GAAG;AAAA;AAAA,EAEH,eAAe;AAAA,EACf,2BAA2B;AAAA,EAC3B,cAAc;AAAA,EACd,0BAA0B;AAAA,EAC1B,gBAAgB;AAAA,EAChB,4BAA4B;AAAA;AAAA,EAE5B,2BACE;AAAA,EACF,0BACE;AAAA,EACF,4BACE;AAAA,EACF,+BACE;AAAA,EACF,8BACE;AAAA,EACF,uBACE;AAAA,EACF,gCACE;AAAA,EACF,gCACE;AAAA,EACF,gCACE;AAAA,EACF,uBACE;AAAA,EACF,yBACE;AAAA,EACF,6BACE;AAAA,EACF,8BACE;AAAA,EACF,8BACE;AAAA,EACF,8BACE;AAAA,EACF,mCACE;AAAA,EACF,8BACE;AAAA,EACF,2BACE;AAAA,EACF,wBACE;AAAA,EACF,wBACE;AAAA,EACF,mBACE;AAAA,E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","names":[]}