From f6f43781b88e0d727e8060a6b262b1626f80b28f Mon Sep 17 00:00:00 2001 From: MementoMartha Date: Sat, 1 Oct 2022 20:53:37 +0100 Subject: [PATCH] PZ, Magnezone and the Dubious Disc --- constants/item_constants.asm | 5 +++-- constants/pokedex_constants.asm | 4 ++-- constants/pokemon_constants.asm | 4 ++-- data/items/key_items.asm | 3 ++- data/items/names.asm | 1 + data/items/prices.asm | 1 + data/items/use_party.asm | 1 + data/pokemon/base_stats.asm | 2 ++ data/pokemon/base_stats/magnezone.asm | 14 +++++++------- data/pokemon/base_stats/porygonz.asm | 25 +++++++++++++++++++++++++ data/pokemon/cries.asm | 4 ++-- data/pokemon/dex_entries.asm | 16 ++++++++++++++++ data/pokemon/dex_order.asm | 2 ++ data/pokemon/evos_moves.asm | 20 ++++++++++++++++++++ data/pokemon/menu_icons.asm | 2 ++ data/pokemon/names.asm | 2 ++ data/pokemon/palettes.asm | 2 ++ engine/debug/debug_party.asm | 10 ++++++---- engine/items/item_effects.asm | 1 + gfx/pics.asm | 4 ++++ gfx/pokemon/back/magnezoneb.png | Bin 0 -> 515 bytes gfx/pokemon/back/porygonzb.png | Bin 0 -> 544 bytes gfx/pokemon/front/magnezone.png | Bin 0 -> 903 bytes gfx/pokemon/front/porygonz.png | Bin 0 -> 706 bytes 24 files changed, 103 insertions(+), 20 deletions(-) create mode 100644 data/pokemon/base_stats/porygonz.asm create mode 100644 gfx/pokemon/back/magnezoneb.png create mode 100644 gfx/pokemon/back/porygonzb.png create mode 100644 gfx/pokemon/front/magnezone.png create mode 100644 gfx/pokemon/front/porygonz.png diff --git a/constants/item_constants.asm b/constants/item_constants.asm index 0e6fa0fc..fb0ffd9e 100644 --- a/constants/item_constants.asm +++ b/constants/item_constants.asm @@ -58,7 +58,7 @@ DEF SAFARI_ROCK EQU $16 ; overload const LEAF_STONE ; $2F const CARD_KEY ; $30 const NUGGET ; $31 - const WING_FOSSIL ; $32 + const WING_FOSSIL ; $32 const POKE_DOLL ; $33 const FULL_HEAL ; $34 const REVIVE ; $35 @@ -112,7 +112,8 @@ DEF NUM_ITEMS EQU const_value - 1 const ICE_STONE ; $62 const PROTECTOR ; $63 const POISON_STONE ; $64 - const BLK_AUGURITE ; $65 + const BLK_AUGURITE ; $65 + const DUBIOUS_DISC ; $66 DEF NUM_FLOORS EQU const_value - 1 - NUM_ITEMS const_next $C4 diff --git a/constants/pokedex_constants.asm b/constants/pokedex_constants.asm index b138354a..199147ae 100644 --- a/constants/pokedex_constants.asm +++ b/constants/pokedex_constants.asm @@ -108,7 +108,7 @@ const DEX_MAGNEMITE ; 81 const DEX_MAGNETITE const DEX_MAGNETON ; 82 - ; const DEX_MAGNEZONE + const DEX_MAGNEZONE const DEX_BARUNDA const DEX_FARFETCHD ; 83 const DEX_MADAAMU @@ -209,7 +209,7 @@ const DEX_SYLVEON const DEX_PORYGON ; 137 const DEX_PORYGON2 - ; const DEX_PORYGONZ + const DEX_PORYGONZ const DEX_OMANYTE ; 138 const DEX_OMASTAR ; 139 const DEX_KABUTO ; 140 diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm index 291cdeea..fa9246b1 100644 --- a/constants/pokemon_constants.asm +++ b/constants/pokemon_constants.asm @@ -225,8 +225,8 @@ const PARA ; $D8 const HINAAZU ; $D9 const BETOBEBII ; $DA - ; const MAGNEZONE ; $DB - ; const PORYGONZ ; $DC + const MAGNEZONE ; $DB + const PORYGONZ ; $DC ; const PERRSERKER ; $DD ; const SIRFETCHD ; $DE ; const MR_RIME ; $DF diff --git a/data/items/key_items.asm b/data/items/key_items.asm index e88abbd6..6da86e59 100644 --- a/data/items/key_items.asm +++ b/data/items/key_items.asm @@ -89,7 +89,7 @@ KeyItemFlags: dbit TRUE ; FLOOR_2F dbit TRUE ; FLOOR_3F dbit TRUE ; FLOOR_4F - dbit TRUE ; FLOOR_5F + dbit TRUE ; FLOOR_5F dbit TRUE ; FLOOR_6F dbit TRUE ; FLOOR_7F dbit TRUE ; FLOOR_8F @@ -101,4 +101,5 @@ KeyItemFlags: dbit FALSE ; PROTECTOR dbit FALSE ; POISON_STONE dbit FALSE ; BLK_AUGURITE + dbit FALSE ; DUBIOUS_DISC end_bit_array NUM_ITEMS + NUM_FLOORS diff --git a/data/items/names.asm b/data/items/names.asm index 698abfd4..fd4835cd 100644 --- a/data/items/names.asm +++ b/data/items/names.asm @@ -102,4 +102,5 @@ ItemNames:: li "PROTECTOR" li "POISON STONE" li "BLK AUGURITE" + li "DUBIOUS DISC" assert_list_length NUM_ITEMS + NUM_FLOORS diff --git a/data/items/prices.asm b/data/items/prices.asm index f3b90eb2..f7e04e8b 100644 --- a/data/items/prices.asm +++ b/data/items/prices.asm @@ -102,4 +102,5 @@ ItemPrices:: bcd3 3000 ; PROTECTOR bcd3 2100 ; POISON_STONE bcd3 2100 ; BLK_AUGURITE + bcd3 3000 ; DUBIOUS_DISC assert_table_length NUM_ITEMS + NUM_FLOORS diff --git a/data/items/use_party.asm b/data/items/use_party.asm index 62e55ef5..111bba1c 100644 --- a/data/items/use_party.asm +++ b/data/items/use_party.asm @@ -41,4 +41,5 @@ UsableItems_PartyMenu: db PROTECTOR db POISON_STONE db BLK_AUGURITE + db DUBIOUS_DISC db -1 ; end diff --git a/data/pokemon/base_stats.asm b/data/pokemon/base_stats.asm index 1b7dc875..64987101 100644 --- a/data/pokemon/base_stats.asm +++ b/data/pokemon/base_stats.asm @@ -103,6 +103,7 @@ INCLUDE "data/pokemon/base_stats/slowking.asm" INCLUDE "data/pokemon/base_stats/magnemite.asm" INCLUDE "data/pokemon/base_stats/magnetite.asm" INCLUDE "data/pokemon/base_stats/magneton.asm" +INCLUDE "data/pokemon/base_stats/magnezone.asm" INCLUDE "data/pokemon/base_stats/barunda.asm" INCLUDE "data/pokemon/base_stats/farfetchd.asm" INCLUDE "data/pokemon/base_stats/madaamu.asm" @@ -201,6 +202,7 @@ INCLUDE "data/pokemon/base_stats/glaceon.asm" INCLUDE "data/pokemon/base_stats/sylveon.asm" INCLUDE "data/pokemon/base_stats/porygon.asm" INCLUDE "data/pokemon/base_stats/porygon2.asm" +INCLUDE "data/pokemon/base_stats/porygonz.asm" INCLUDE "data/pokemon/base_stats/omanyte.asm" INCLUDE "data/pokemon/base_stats/omastar.asm" INCLUDE "data/pokemon/base_stats/kabuto.asm" diff --git a/data/pokemon/base_stats/magnezone.asm b/data/pokemon/base_stats/magnezone.asm index bc360c4f..25435484 100644 --- a/data/pokemon/base_stats/magnezone.asm +++ b/data/pokemon/base_stats/magnezone.asm @@ -1,14 +1,14 @@ db DEX_MAGNEZONE ; pokedex id - db 50, 60, 95, 70, 120 + db 70, 70, 115, 60, 130 ; hp atk def spd spc db ELECTRIC, STEEL ; type - db 60 ; catch rate - db 161 ; base exp + db 30 ; catch rate + db 211 ; base exp - INCBIN "gfx/pokemon/front/magneton.pic", 0, 1 ; sprite dimensions - dw MagnetonPicFront, MagnetonPicBack + INCBIN "gfx/pokemon/front/magnezone.pic", 0, 1 ; sprite dimensions + dw MagnezonePicFront, MagnezonePicBack db TACKLE, SONICBOOM, THUNDERSHOCK, NO_MOVE ; level 1 learnset db GROWTH_MEDIUM_FAST ; growth rate @@ -20,5 +20,5 @@ SUBSTITUTE, FLASH ; end - db BANK(MagnetonPicFront) - assert BANK(MagnetonPicFront) == BANK(MagnetonPicBack) + db BANK(MagnezonePicFront) + assert BANK(MagnezonePicFront) == BANK(MagnezonePicBack) diff --git a/data/pokemon/base_stats/porygonz.asm b/data/pokemon/base_stats/porygonz.asm new file mode 100644 index 00000000..2b49e3e9 --- /dev/null +++ b/data/pokemon/base_stats/porygonz.asm @@ -0,0 +1,25 @@ + db DEX_PORYGONZ ; pokedex id + + db 85, 80, 70, 90, 135 + ; hp atk def spd spc + + db NORMAL, NORMAL ; type + db 30 ; catch rate + db 185 ; base exp + + INCBIN "gfx/pokemon/front/porygonz.pic", 0, 1 ; sprite dimensions + dw PorygonZPicFront, PorygonZPicBack + + db TACKLE, SHARPEN, CONVERSION, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, TAKE_DOWN, DOUBLE_EDGE, ICE_BEAM, BLIZZARD, \ + HYPER_BEAM, RAGE, THUNDERBOLT, THUNDER, PSYCHIC_M, \ + TELEPORT, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + SWIFT, SKULL_BASH, REST, THUNDER_WAVE, PSYWAVE, \ + TRI_ATTACK, SUBSTITUTE, FLASH + ; end + + db BANK(PorygonZPicFront) + assert BANK(PorygonZPicFront) == BANK(PorygonZPicBack) diff --git a/data/pokemon/cries.asm b/data/pokemon/cries.asm index a6557d5d..48e5b469 100644 --- a/data/pokemon/cries.asm +++ b/data/pokemon/cries.asm @@ -224,8 +224,8 @@ CryData:: mon_cry SFX_CRY_1E, $79, $40 ; Para mon_cry SFX_CRY_00, $00, $00 ; Hinaazu mon_cry SFX_CRY_05, $FF, $40 ; Betobebii - ; mon_cry SFX_CRY_00, $00, $00 ; Magnezone - ; mon_cry SFX_CRY_00, $00, $00 ; Porygon-Z + mon_cry SFX_CRY_00, $00, $00 ; Magnezone + mon_cry SFX_CRY_00, $00, $00 ; Porygon-Z ; mon_cry SFX_CRY_00, $00, $00 ; Perrserker ; mon_cry SFX_CRY_00, $00, $00 ; Sirfetch'd ; mon_cry SFX_CRY_00, $00, $00 ; Mr. Rime diff --git a/data/pokemon/dex_entries.asm b/data/pokemon/dex_entries.asm index a86761f5..11227c57 100644 --- a/data/pokemon/dex_entries.asm +++ b/data/pokemon/dex_entries.asm @@ -218,6 +218,8 @@ PokedexEntryPointers: dw ParaDexEntry dw HinaazuDexEntry dw BetobebiiDexEntry + dw MagnezoneDexEntry + dw PorygonZDexEntry assert_table_length NUM_POKEMON_INDEXES ; string: species name @@ -1736,3 +1738,17 @@ HinaazuDexEntry: dw 200 text_far _HinaazuDexEntry text_end + +MagnezoneDexEntry: + db "MAGNETAREA@" + db 3,11 + dw 3970 + text_far _MagnezoneDexEntry + text_end + +PorygonZDexEntry: + db "VIRTUAL@" + db 2,11 + dw 750 + text_far _PorygonZDexEntry + text_end \ No newline at end of file diff --git a/data/pokemon/dex_order.asm b/data/pokemon/dex_order.asm index 11f29fbd..1b520504 100644 --- a/data/pokemon/dex_order.asm +++ b/data/pokemon/dex_order.asm @@ -218,4 +218,6 @@ PokedexOrder: db DEX_PARA db DEX_HINAAZU db DEX_BETOBEBII + db DEX_MAGNEZONE + db DEX_PORYGONZ assert_table_length NUM_POKEMON_INDEXES diff --git a/data/pokemon/evos_moves.asm b/data/pokemon/evos_moves.asm index 0386c516..6b88818c 100644 --- a/data/pokemon/evos_moves.asm +++ b/data/pokemon/evos_moves.asm @@ -221,6 +221,8 @@ EvosMovesPointerTable: dw ParaEvosMoves dw HinaazuEvosMoves dw BetobebiiEvosMoves + dw MagnezoneEvosMoves + dw PorygonZEvosMoves assert_table_length NUM_POKEMON_INDEXES RhydonEvosMoves: @@ -853,6 +855,7 @@ ElectabuzzEvosMoves: MagnetonEvosMoves: ; Evolutions + db EV_ITEM, THUNDER_STONE, 1, MAGNEZONE db 0 ; Learnset db 21, SONICBOOM @@ -2699,6 +2702,7 @@ BellossomEvosMoves: Porygon2EvosMoves: ; Evolutions + db EV_ITEM, DUBIOUS_DISC, 1, PORYGONZ db 0 ; Learnset db 23, PSYBEAM @@ -2802,4 +2806,20 @@ BetobebiiEvosMoves: db 28, HARDEN db 33, SCREECH db 37, ACID_ARMOR + db 0 + +MagnezoneEvosMoves: +; Evolutions + db 0 +; Learnset + db 31, METAL_SOUND + db 41, MAGNET_BOMB + db 50, IRON_HEAD + db 0 + +PorygonZEvosMoves: +; Evolutions + db 0 +; Learnset + db 50, AMNESIA ; will replace with nasty plot db 0 \ No newline at end of file diff --git a/data/pokemon/menu_icons.asm b/data/pokemon/menu_icons.asm index 38d11448..d90d83eb 100644 --- a/data/pokemon/menu_icons.asm +++ b/data/pokemon/menu_icons.asm @@ -103,6 +103,7 @@ MonPartyData: nybble ICON_BALL ; Magnemite nybble ICON_BALL ; Magnetite nybble ICON_BALL ; Magneton + nybble ICON_BALL ; Magnezone nybble ICON_BALL ; Barunda nybble ICON_BIRD ; Farfetch'd nybble ICON_BIRD ; Madaamu @@ -201,6 +202,7 @@ MonPartyData: nybble ICON_QUADRUPED ; Sylveon nybble ICON_MON ; Porygon nybble ICON_MON ; Porygon2 + nybble ICON_MON ; Porygon-Z nybble ICON_HELIX ; Omanyte nybble ICON_HELIX ; Omastar nybble ICON_HELIX ; Kabuto diff --git a/data/pokemon/names.asm b/data/pokemon/names.asm index 56db580b..de2402a5 100644 --- a/data/pokemon/names.asm +++ b/data/pokemon/names.asm @@ -218,5 +218,7 @@ MonsterNames:: db "PARA@@@@@@" db "HINAAZU@@@" db "BETOBEBII@" + db "MAGNEZONE@" + db "PORYGON-Z@" assert_table_length NUM_POKEMON_INDEXES diff --git a/data/pokemon/palettes.asm b/data/pokemon/palettes.asm index f5867858..c049aa53 100644 --- a/data/pokemon/palettes.asm +++ b/data/pokemon/palettes.asm @@ -104,6 +104,7 @@ MonsterPalettes: db PAL_GREYMON ; MAGNEMITE db PAL_GREYMON ; MAGNETITE db PAL_GREYMON ; MAGNETON + db PAL_GREYMON ; MAGNEZONE db PAL_PINKMON ; BARUNDA db PAL_BROWNMON ; FARFETCHD db PAL_BROWNMON ; MADAAMU @@ -202,6 +203,7 @@ MonsterPalettes: db PAL_MEWMON ; SYLVEON db PAL_MEWMON ; PORYGON db PAL_MEWMON ; PORYGON2 + db PAL_MEWMON ; PORYGONZ db PAL_BLUEMON ; OMANYTE db PAL_BLUEMON ; OMASTAR db PAL_BROWNMON ; KABUTO diff --git a/engine/debug/debug_party.asm b/engine/debug/debug_party.asm index 8ce02160..24fa929e 100644 --- a/engine/debug/debug_party.asm +++ b/engine/debug/debug_party.asm @@ -23,15 +23,15 @@ SetIshiharaTeam: IshiharaTeam: db KINGDRA, 90 IF DEF(_DEBUG) - db ANIMON, 50 + db MAGNEZONE, 50 ELSE - db ANIMON, 20 + db MAGNEZONE, 20 ENDC db MAGMORTAR, 56 db ELECTIVIRE, 56 db PORYGON2, 57 IF DEF(_DEBUG) - db SCYTHER, 16 + db KADABRA, 16 ENDC db -1 ; end @@ -145,12 +145,14 @@ DebugItemsList: db ESCAPE_ROPE, 99 db RARE_CANDY, 99 db MASTER_BALL, 99 - db BLK_AUGURITE, 99 + db DUBIOUS_DISC, 99 db SECRET_KEY, 1 db CARD_KEY, 1 db S_S_TICKET, 1 db SUPER_ROD, 1 db COIN_CASE, 1 + db POKE_FLUTE, 1 + db SILPH_SCOPE, 1 db -1 ; end DebugUnusedList: diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm index 8ea45f13..a5511cd5 100644 --- a/engine/items/item_effects.asm +++ b/engine/items/item_effects.asm @@ -118,6 +118,7 @@ ItemUsePtrTable: dw ItemUseEvoStone ; PROTECTOR dw ItemUseEvoStone ; POISON_STONE dw ItemUseEvoStone ; BLK_AUGURITE + dw ItemUseEvoStone ; DUBIOUS_DISC ItemUseBall: diff --git a/gfx/pics.asm b/gfx/pics.asm index 8d1eb434..ffd8b504 100644 --- a/gfx/pics.asm +++ b/gfx/pics.asm @@ -512,3 +512,7 @@ HinaazuPicFront:: INCBIN "gfx/pokemon/front/hinaazu.pic" HinaazuPicBack:: INCBIN "gfx/pokemon/back/hinaazub.pic" BetobebiiPicFront:: INCBIN "gfx/pokemon/front/betobebii.pic" BetobebiiPicBack:: INCBIN "gfx/pokemon/back/betobebiib.pic" +MagnezonePicFront:: INCBIN "gfx/pokemon/front/magnezone.pic" +MagnezonePicBack:: INCBIN "gfx/pokemon/back/magnezoneb.pic" +PorygonZPicFront:: INCBIN "gfx/pokemon/front/porygonz.pic" +PorygonZPicBack:: INCBIN "gfx/pokemon/back/porygonzb.pic" \ No newline at end of file diff --git a/gfx/pokemon/back/magnezoneb.png b/gfx/pokemon/back/magnezoneb.png new file mode 100644 index 0000000000000000000000000000000000000000..45bf5d3a37e226ec02f423b4dfe9767bc34d47c2 GIT binary patch literal 515 zcmeAS@N?(olHy`uVBq!ia0vp^3Lwk`Bp75C+I9jdmUKs7M+SzC{oH>NSwWJ?9znhg z3{`3j3=J&|48MRv4KElNN(~qoUL`OvSj}Ky5HFasE6@fg!Ib3f?!v%q+)~s54nJ@ErkR#;MwT(m+A>5>H=O_Ges-!knh*SNwMXg&6aT{6ZMdFDjn}$Zqy@aSV~Tocx2Im1l_&-vNoTZvw~W$NmjCrls+CzgWnt{}cbe z=n-y_l()E{$n#IQ{;gwA|8keD{LK1$!L>HxS?*=&(HH6SDPjs6NSwWJ?9znhg z3{`3j3=J&|48MRv4KElNN(~qoUL`OvSj}Ky5HFasE6@fg!Ib3f?!v%q+)~s54nJ@ErkR#;MwT(m+A>5>H=O_Ges-!ko&J8GgM43Nhvv`Gqi^UsOH|$WbkEjVMV; zEJ?LWE=mPb3`Pb?TfNTy1Rz@KPW+00Z2pJfq7(iYIvKYJ=rQz%#Mh&PMU_dbmBh&-c zfq(}PgYgIZcLq zx(wP$Ka_X;;F$3-Gx3;RoxtNOmqJ&I{ZC~x3R@fXzv=JsdbYKptIZ<*#51MkY}>@u zX7D5A??RryYL3TqI0ANGSrwXnj+0q3$)Qd4f(zTl(A8o48D`d)aAz3J5Zsz2dP0#$ y-f8o+8_jnQ3%uefydlrlaroc=_R0wc%naYQpU7J46gdItRt8U3KbLh*2~7a{J(O4g literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/magnezone.png b/gfx/pokemon/front/magnezone.png new file mode 100644 index 0000000000000000000000000000000000000000..5d151b376748a6edc58b43e23d51c45ca6ceb177 GIT binary patch literal 903 zcmeAS@N?(olHy`uVBq!ia0vp^79h+7Bp8mz)+7TdmUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Hf|~E0P;8s zJR*x382FBWFymBhK53vJdx@v7EBiApMqy@!56_%$0)-g!i~K?u&o3&U1>~rfxJHzu zB$lLFB^RXvDF!10BO_fy16>2d5JO8V17j;=Lu~^CD+2?AX_5IT8glbfGSez?Yj8aM z@G?+CRBD80ny)W|7Ld)sz{)7Zzzk$D0wDvV6a&c1Ko)}+qcofy#HayP0}Lo8VT5|1 zIuP&xVvrs%Eg$sV1gMJL)5S4F<9zOA$L`AxBJ3Zgr)h7RuCS!sk>6XNwZFS;)ury~ zX{Lz>z4y1=ndS}mg^4@2b9>SH&C#wplC|G@;ySM1*-<8*nzj@qZe_uP^?EuH;1)&^2 zf-mRrH}6u(-^c&M@n_y_(fKFNmb|^&B5(H2mhiGA-;7-HWw&sI=Fk2uc`{sptyRL`v;9wE+hH-?FB@O1D&_dEwAlV( ze&gR0N10}^{`$96_fQT;&otiI7Y}dfJwE-PQp$cQvBm6vnDXw#Jdoxqn&!Cfj>Rqc z7M)vXr}9WKUR{~6eWQ%^q~Zr>t}b`DTYN&nQIuz{*0H1FeQ5%p&WC(l^lM3uc3$KI8zRpzLmNi>9Y0CQ4>u-Mc{EF)n`u2C-5?%hNi)?3WW>1=C zJyB%VRL=@6&Y<=+8rqr_XFW7h@;j!7C2qc5Eaq+eRjjJ2>wl%@^T+bsC-o~=2dQiY Or4vtAKbLh*2~7a6phu4Y literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/porygonz.png b/gfx/pokemon/front/porygonz.png new file mode 100644 index 0000000000000000000000000000000000000000..7054db8180d04ef397765ead0ae3991c51dd396b GIT binary patch literal 706 zcmeAS@N?(olHy`uVBq!ia0vp^79h+7Bp8mz)+7TdmUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Hf|~E0P;8s zJR*x382FBWFymBhK53vJdx@v7EBiApMqzFV0oy`Lbl>w3Oi*O#?cf%7bq zFKzwsqwe&JOdei0&F za_-snZkCY3?dj|yPeUUE^h%DaPnmy7Hssf~t3OY@4`Om}j?Q3T#hSq*+_37^_6Yes z4!#=4N_nE5l}UMCQ?w=MG@zbWj? z`V;TD`lMx8;nf0`#UWqwpWTTpSm*J$r>6IQQ}HLCIU83_T)+P(^C9NN4`US`)PsW9 M)78&qol`;+0Hk{4IRF3v literal 0 HcmV?d00001