From 013781c6f6f99c51f06d80a577b2cb59217fefa7 Mon Sep 17 00:00:00 2001 From: Warfan1815 <69102610+Warfan1815@users.noreply.github.com> Date: Wed, 25 Oct 2023 05:00:46 +0100 Subject: [PATCH] EPIc Epi changes (#22) Co-authored-by: Morrow --- code/__DEFINES/chemistry.dm | 1 + .../vending/vendor_types/crew/synthetic.dm | 3 --- .../machinery/vending/vendor_types/medical.dm | 1 - .../vendor_types/squad_prep/squad_medic.dm | 3 ++- .../items/reagent_containers/autoinjectors.dm | 9 +++++++++ code/game/objects/items/storage/belt.dm | 1 - .../chemistry_properties/prop_special.dm | 17 +++++++++++++++++ .../reagents/chemistry_reactions/medical.dm | 7 +++++++ .../reagents/chemistry_reagents/medical.dm | 15 ++++++++++++++- .../vehicles/interior/interactable/vendors.dm | 1 - icons/obj/items/syringe.dmi | Bin 7035 -> 7079 bytes 11 files changed, 50 insertions(+), 8 deletions(-) diff --git a/code/__DEFINES/chemistry.dm b/code/__DEFINES/chemistry.dm index 078ccbdc2d..b99013f8a0 100644 --- a/code/__DEFINES/chemistry.dm +++ b/code/__DEFINES/chemistry.dm @@ -221,6 +221,7 @@ #define PROPERTY_ANTICARCINOGENIC "anti-carcinogenic" #define PROPERTY_UNKNOWN "unknown" //just has an OD effect #define PROPERTY_HEMOSITIC "hemositic" +#define PROPERTY_REVITALIZING "revitalizing" //Property rarity diff --git a/code/game/machinery/vending/vendor_types/crew/synthetic.dm b/code/game/machinery/vending/vendor_types/crew/synthetic.dm index 8e556318c7..bf96246e92 100644 --- a/code/game/machinery/vending/vendor_types/crew/synthetic.dm +++ b/code/game/machinery/vending/vendor_types/crew/synthetic.dm @@ -49,7 +49,6 @@ list("Injector (Bicaridine)", 1, /obj/item/reagent_container/hypospray/autoinjector/bicaridine, null, VENDOR_ITEM_REGULAR), list("Injector (Dexalin+)", 1, /obj/item/reagent_container/hypospray/autoinjector/dexalinp, null, VENDOR_ITEM_REGULAR), - list("Injector (Epinephrine)", 2, /obj/item/reagent_container/hypospray/autoinjector/adrenaline, null, VENDOR_ITEM_REGULAR), list("Injector (Inaprovaline)", 1, /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, null, VENDOR_ITEM_REGULAR), list("Injector (Kelotane)", 1, /obj/item/reagent_container/hypospray/autoinjector/kelotane, null, VENDOR_ITEM_REGULAR), list("Injector (Oxycodone)", 2, /obj/item/reagent_container/hypospray/autoinjector/oxycodone, null, VENDOR_ITEM_REGULAR), @@ -60,7 +59,6 @@ list("Autoinjector (C-M) (EMPTY)", 2, /obj/item/reagent_container/hypospray/autoinjector/empty/medium, null, VENDOR_ITEM_REGULAR), list("Autoinjector (C-L) (EMPTY)", 4, /obj/item/reagent_container/hypospray/autoinjector/empty/large, null, VENDOR_ITEM_REGULAR), - list("Emergency Defibrillator", 4, /obj/item/device/defibrillator, null, VENDOR_ITEM_MANDATORY), list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Surgical Line", 4, /obj/item/tool/surgery/surgical_line, null, VENDOR_ITEM_REGULAR), list("Synth-Graft", 4, /obj/item/tool/surgery/synthgraft, null, VENDOR_ITEM_REGULAR), @@ -348,7 +346,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Autocompressor", 15, /obj/item/clothing/suit/auto_cpr, null, VENDOR_ITEM_REGULAR), list("Backpack Firefighting Watertank", 15, /obj/item/reagent_container/glass/watertank/atmos, null, VENDOR_ITEM_REGULAR), list("Breaching Hammer", 15, /obj/item/weapon/twohanded/breacher/synth, null, VENDOR_ITEM_REGULAR), - list("Compact Defibrillator", 15, /obj/item/device/defibrillator/compact, null, VENDOR_ITEM_REGULAR), list("Compact Nailgun kit", 15, /obj/effect/essentials_set/cnailgun, null, VENDOR_ITEM_REGULAR), list("Crew Monitor", 15, /obj/item/tool/crew_monitor, null, VENDOR_ITEM_REGULAR), list("Experimental Meson Goggles", 15, /obj/item/clothing/glasses/night/experimental_mesons, null, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/medical.dm b/code/game/machinery/vending/vendor_types/medical.dm index 9844101cb1..6e721ec4fe 100644 --- a/code/game/machinery/vending/vendor_types/medical.dm +++ b/code/game/machinery/vending/vendor_types/medical.dm @@ -141,7 +141,6 @@ list("AUTOINJECTORS", -1, null, null), list("Autoinjector (Bicaridine)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/bicaridine, VENDOR_ITEM_REGULAR), list("Autoinjector (Dexalin+)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/dexalinp, VENDOR_ITEM_REGULAR), - list("Autoinjector (Epinephrine)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/adrenaline, VENDOR_ITEM_REGULAR), list("Autoinjector (Inaprovaline)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, VENDOR_ITEM_REGULAR), list("Autoinjector (Kelotane)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/kelotane, VENDOR_ITEM_REGULAR), list("Autoinjector (Oxycodone)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/oxycodone, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm index c965b7c90e..833692b8b9 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm @@ -23,7 +23,6 @@ GLOBAL_LIST_INIT(cm_vending_gear_medic, list( list("AUTOINJECTORS", 0, null, null, null), list("Autoinjector (Bicaridine)", 1, /obj/item/reagent_container/hypospray/autoinjector/bicaridine, null, VENDOR_ITEM_REGULAR), list("Autoinjector (Dexalin+)", 1, /obj/item/reagent_container/hypospray/autoinjector/dexalinp, null, VENDOR_ITEM_REGULAR), - list("Autoinjector (Epinephrine)", 2, /obj/item/reagent_container/hypospray/autoinjector/adrenaline, null, VENDOR_ITEM_REGULAR), list("Autoinjector (Inaprovaline)", 1, /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, null, VENDOR_ITEM_REGULAR), list("Autoinjector (Kelotane)", 1, /obj/item/reagent_container/hypospray/autoinjector/kelotane, null, VENDOR_ITEM_REGULAR), list("Autoinjector (Oxycodone)", 2, /obj/item/reagent_container/hypospray/autoinjector/oxycodone, null, VENDOR_ITEM_REGULAR), @@ -214,4 +213,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_medic, list( /obj/item/storage/surgical_case/regular, /obj/item/reagent_container/blood/OMinus, /obj/item/reagent_container/blood/OMinus, + /obj/item/reagent_container/hypospray/autoinjector/adrenaline_concentrated, + /obj/item/reagent_container/hypospray/autoinjector/adrenaline_concentrated, ) diff --git a/code/game/objects/items/reagent_containers/autoinjectors.dm b/code/game/objects/items/reagent_containers/autoinjectors.dm index 46463e628c..248bdd7392 100644 --- a/code/game/objects/items/reagent_containers/autoinjectors.dm +++ b/code/game/objects/items/reagent_containers/autoinjectors.dm @@ -99,6 +99,15 @@ display_maptext = TRUE maptext_label = "Ep" +/obj/item/reagent_container/hypospray/autoinjector/adrenaline_concentrated + name = "epinephrine (concentrated) autoinjector" + chemname = "adrenaline_concentrated" + desc = "An autoinjector loaded with 3 uses of Epinephrine, better known as Adrenaline, a nerve stimulant useful in restarting the heart. In this concentrated form, it will prevent unconciousness but will cause minor suffocation." + amount_per_transfer_from_this = LOWM_REAGENTS_OVERDOSE * INJECTOR_PERCENTAGE_OF_OD + volume = (LOWM_REAGENTS_OVERDOSE * INJECTOR_PERCENTAGE_OF_OD) * INJECTOR_USES + display_maptext = TRUE + maptext_label = "Ep" + /obj/item/reagent_container/hypospray/autoinjector/dexalinp name = "dexalin plus autoinjector" chemname = "dexalinp" diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 71edc21e29..d2451ff29a 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -245,7 +245,6 @@ new /obj/item/stack/medical/advanced/bruise_pack(src) new /obj/item/stack/medical/advanced/ointment(src) new /obj/item/stack/medical/advanced/ointment(src) - new /obj/item/reagent_container/hypospray/autoinjector/adrenaline(src) new /obj/item/reagent_container/hypospray/autoinjector/dexalinp(src) new /obj/item/reagent_container/hypospray/autoinjector/oxycodone(src) new /obj/item/storage/pill_bottle/bicaridine(src) diff --git a/code/modules/reagents/chemistry_properties/prop_special.dm b/code/modules/reagents/chemistry_properties/prop_special.dm index 640e184263..7baa66fc58 100644 --- a/code/modules/reagents/chemistry_properties/prop_special.dm +++ b/code/modules/reagents/chemistry_properties/prop_special.dm @@ -369,3 +369,20 @@ /datum/chem_property/special/firepenetrating/update_reagent() holder.fire_penetrating = TRUE ..() + +/datum/chem_property/special/revitalizing + name = PROPERTY_REVITALIZING + code = "REV" + description = "For a period of time, revitalizes the main systems of the body and prevents unconciousness." + rarity = PROPERTY_ADMIN + category = PROPERTY_TYPE_STIMULANT + value = 666 + +/datum/chem_property/special/revitalizing/reagent_added(mob/living/M) + if(!ishuman(M)) + return + M.status_flags &= ~CANKNOCKOUT + M.knocked_out = 0 + +/datum/chem_property/special/revitalizing/on_delete(mob/living/M) + M.status_flags |= CANKNOCKOUT diff --git a/code/modules/reagents/chemistry_reactions/medical.dm b/code/modules/reagents/chemistry_reactions/medical.dm index 2e38117134..72a491d779 100644 --- a/code/modules/reagents/chemistry_reactions/medical.dm +++ b/code/modules/reagents/chemistry_reactions/medical.dm @@ -14,6 +14,13 @@ required_reagents = list("carbon" = 1, "nitrogen" = 1, "oxygen" = 1) result_amount = 2 +/datum/chemical_reaction/adrenaline_concentrated + name = "Epinephrine (concentrated)" + id = "adrenaline_concentrated" + result = "adrenaline_concentrated" + required_reagents = list("carbon" = 1, "nitrogen" = 1, "oxygen" = 1, "phoron" = 3) + result_amount = 1 + /datum/chemical_reaction/alkysine name = "Alkysine" id = "alkysine" diff --git a/code/modules/reagents/chemistry_reagents/medical.dm b/code/modules/reagents/chemistry_reagents/medical.dm index f69d1b952c..01269a0d85 100644 --- a/code/modules/reagents/chemistry_reagents/medical.dm +++ b/code/modules/reagents/chemistry_reagents/medical.dm @@ -275,7 +275,7 @@ id = "adrenaline" description = "A natural muscle and heart stimulant. Useful for restarting the heart. Overdosing may stress the heart and cause tissue damage." reagent_state = LIQUID - color = "FFE703" // Yellow-ish + color = "#FFE703" // Yellow-ish overdose = LOWM_REAGENTS_OVERDOSE overdose_critical = LOWM_REAGENTS_OVERDOSE_CRITICAL custom_metabolism = AMOUNT_PER_TIME(1, 5 SECONDS) @@ -283,6 +283,19 @@ properties = list(PROPERTY_PAINKILLING = 1.5, PROPERTY_ELECTROGENETIC = 4, PROPERTY_INTRAVENOUS = 1) flags = REAGENT_TYPE_MEDICAL | REAGENT_SCANNABLE +/datum/reagent/medical/adrenaline_concentrated + name = "Epinephrine (concentrated)" + id = "adrenaline_concentrated" + description = "A natural muscle and heart stimulant that is in a high concerntration. Useful for restarting the heart and preventing unconciousness but in this concentrated form it will cause minor suffocation. Overdosing may stress the heart and cause tissue damage." + reagent_state = LIQUID + color = "#FFE702" // Yellow-ish + overdose = LOWM_REAGENTS_OVERDOSE + overdose_critical = LOWM_REAGENTS_OVERDOSE_CRITICAL + custom_metabolism = AMOUNT_PER_TIME(1, 10 SECONDS) + chemclass = CHEM_CLASS_COMMON + properties = list(PROPERTY_PAINKILLING = 1.5, PROPERTY_ELECTROGENETIC = 4, PROPERTY_REVITALIZING = 1, PROPERTY_HYPOXEMIC = 5, PROPERTY_INTRAVENOUS = 1) + flags = REAGENT_TYPE_MEDICAL | REAGENT_SCANNABLE + /datum/reagent/medical/ultrazine name = "Ultrazine" id = "ultrazine" diff --git a/code/modules/vehicles/interior/interactable/vendors.dm b/code/modules/vehicles/interior/interactable/vendors.dm index 6d98bc85e4..f5aef4f430 100644 --- a/code/modules/vehicles/interior/interactable/vendors.dm +++ b/code/modules/vehicles/interior/interactable/vendors.dm @@ -77,7 +77,6 @@ list("AUTOINJECTORS", -1, null, null), list("Autoinjector (Bicaridine)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/bicaridine, VENDOR_ITEM_REGULAR), list("Autoinjector (Dexalin+)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/dexalinp, VENDOR_ITEM_REGULAR), - list("Autoinjector (Epinephrine)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/adrenaline, VENDOR_ITEM_REGULAR), list("Autoinjector (Inaprovaline)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, VENDOR_ITEM_REGULAR), list("Autoinjector (Kelotane)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/kelotane, VENDOR_ITEM_REGULAR), list("Autoinjector (Oxycodone)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/oxycodone, VENDOR_ITEM_REGULAR), diff --git a/icons/obj/items/syringe.dmi b/icons/obj/items/syringe.dmi index d08b2a8c2d9f99de5a954543eb3722fcbee6c115..d54123a898efa86dcafbf7acc3661027f4371d9c 100644 GIT binary patch literal 7079 zcmbtZcU05aw*CPFC{m<|bQDBTs-P69N|PR>w*-)0Lhm8LLY1Z>NN-Z4s+3TKAiYSH zUZhJ60U|ww7iY$K^VWKItvmPrk(Hg~oc%lJJKwkWK0A>hZB;4?7773WsMH=PJp=%v zD?eZ7$N&Ifcv==h`0y=I-`HEp*6Wd{qr11G8x#Qi(_WAEYHx^K44e1yyu>JQFCyVd z-*r~~XLTWF5o|#Y->-dm`UpN*Y)_k#Ntz;DZy0Ee%20VNJhJ!|i#I@n_t$tsGaB@2 zC%;YScU_(`erG=8I`o!HPT%8jNR?e}d7Z2N0ew%lQEm6olHh7$SbuH}>e6|VCGd6T z_nKrSBn)ODozf;*nJ_1FYz<4A}7M-q;#{>&z))7o!_3>@>b5+etf+pfw zd9ThnJHduyqomWI?l;f8OpiyY>Z#8$y<-!3D3xWCOJWvgC(`2CO4-A_f+US#dY2~h z@LEU=jrc0PcvPP1!|&j&omthz(s0x3{C=8-Q2#Saz0`KqEUS;6EjG(!=)$;5%Hj%y z>6gR=?B9R2*v_o`{4JI=Nsp23O(fM4nad}!CF_9~0-{-KT?YOis6-}zfA1}l>Kupt z7(_OGKxDJwFU*&keRPQm_c3pD5IFQ@4==do?th&moL7;z>7mBFLLVE^lqyu()rqMa znNTby80N4^H#9bl3wT$juTw5v6*N&GZ~X{;M|E6!3;>v)sVUvl_fJF5AiVYVX2`ew znm9H22Nps`UuQBNSxroIXHQ6-GjR7}vrQG@><$QvhNuH-ymMk>ssY9Ydijjc4Tyrg zy_&3!4_!RnDcJ=-mRf#zrSLcrzhLC}IA2T8MYpD(lP4*4Dm7p2)rn)u!3JBOM3>es zUR?fLZLP$$L>vxwkydS$N0x{y3M_CX2ii36&UcJx?E9MhwW=eSeT(`?f=TQ8oI?lk{iz~%BcqlW4)e(obM)SZ5h9s$=IF5v;2N5rUNOjGDEW*#lQo-UX`@|y z<8{o@U~1;8SGi@c9WV5H1z!7J5puCHCcbf>MI`fRIE>UgX61G7tcpr5)?fQ;Mwxsc z?7LnNBb@FouHI^Iis{D`@P^<$LyGBjCKM?Sw8-j!!}sd@_Ja26^yDr?6tarkymzYN zg0^>q1&4Jxv>>a2U{@fi+n$K_1rwBni|dxa6)w6KVuB$jf4;$gkjr*4Uu&H#H#(Y< zM@Xn|)ov!z;i2|~{)p93Cd7W{q^{S#s@Ub`0BsQz5fO#eze|wK( z4~LZB2EO-amS5xHv1$q-T3;g}r&fZ&WFG42ohH6&{89OqVnB>H5{5=w`8Kv*i2rda zoIX347P!9HzXBGCB)3#i2^-q&wd06Qb zJ)L0OkvYi_itf{HH@_7kXk^nD*|XQ#*$FDaxaK}D4?st(>gz|YS)zVvLr)pIomta z?Gy=}VfpAu;R9D7RZ{Xy`S=kg*R^Q($SNs3|2&RuZS;sB%5zzW zT?DR6Zg2YxdiFf<@ZDm^<3-o-bO>Swjh(s_5A~}UtB&nc*Ve9HT3T}O(?L$b7dAc) zX6V=~Re#aE04yy`iodDY8?;Rg*@50@qdP^l*KG~U|TsO%vcyn^UtAY}3d$mm@ z-4qHD*GW)<^2PqCOrDK2xg=x|Xk%{+qM9 zCk_rrF2_Z#@(1Yg(MI*K6mJ5!s;hU&d>0?|FsP9zeKEWXT}iEufsR85;}n8eVR zJ>Nrj^Cr|>j^=A7401#YUN`4dsT4HHdFCa|dLbgBbz6{$Hqz>65M?Cj{y#BvFAiA` z*&yOI9(C{V*7uqdw-IwufJ`-0USj$%;wU0R_c4vc2ZGt!!B;0<^BX06YY6g7Wleh! zg}RgJe)$zD=SIy&UPNHVv0&B>y?j2DNj>AMe9g#0`Di}#x+#{61BRL}4CNGf;g@o& z^V_2XE-FXE{2KG5U&kjeSDcQ#R)1YF2*kzO<_AGgAKc?Qf4d zVhvQeVLd9cCVn?KuY7W=ck!~j@l-XA9Eje+JQ;CP_6enzPs9Ee%XrFO_MKQpUXUnN zo|N(1s}Kkr_PmY~XxFTv$t%cc!+xcEulk``+&=MT{j#i2Bbd~Cx%*Q2LDFpMZ8cdL z=ohBFZPY%xCHP>bAeLjYipSN8^r6by+8PDmGE+D5L;B6ccYD2q@5di6N&21x;^W!k ziiTPWOPrOIcRC7h3O=sbrxQm|BqU|D*S^yU7NOe{!VX-<&Dtm=$wP8S}?1bsdg~^#cz4TJl>&pk3~S?+UzUA7v;T)od-O!vKDKac-Yh{ zfqoJHgQqkN&@rEVQVM_pw+IyRrxm)os06G@!M5ty`DC9@j(%Pj1tg6yhW(2&M^p}D za6pTQ>Wze%MXHqN4?eQC4w9Ni!wP#0STj>@#@X{{Uc{}*pS|N41y|dRF@3_e_0vL- z5H&3=^zhSbj?J$A^98;@lb-X(k*|IT((vL_}8 zi9sJfhblAbj!M}c-dO~Il`)9l&DmE}fZd971<$T5Y{n0dJ>VZruu1coZRVoLHJETC zg`LO^eHQf*Hin))upMScTA3{5X_peM%}57`G76d6)RYj`JeHk6+S-{8`RKH}6CNbn(c3*{pPKG=J4wDRSW&Plb`&PlTt%ib zzg)!%Mp1PpA<$Fd7_F4Iu`257>ccHvU0u^;t()2!Iyy%CGEQv`7zW~P`SMTGNepwx zEJGQprIH6tQP3SEsN*h z5g6aV!qz7$dK$z!sxoQU*X=`PGBJbjKGh(Wxzkw@82dgOjW5UiFu#~sg-HAb8+&`R zD&n|>Df+{;?!}lKf4HN3K9w+2f zaN@v+p@+}m(mI-<5O0>4*7rc3p{FNb#)=MBB*;O~H%fOx++Ng&wVz7s<&cl5T4( zEnGwJ_yH)A-^9d(5pZzyO%c<`fi^o(b(U<#j@r~=O|?}6d(GaOlAPwN1PgLCN?}#U2>ATVL_|>zsB*KBd91Z&gc@xZT-gafD7j^jpE`baUM?v*7;M09) z=P7V1Z?si$a#38$-!@aoDKEh8?z{G>qgUrCtgp_D*UJL>*_qH_Y@TcvoT(KP<U2VJL*Fo z3SqgJ;q#FM^^yUUvClu_bM)R*`%~XJ9i4x{3tu_dkO9M>F`gxrbff1N2j`sbTcDMH zpkUMnW#5=a4=7lmEYZ4ZEdz5-#DLF{R^;OQtT1dw&ne9zrj_{dE60} z>9Q9mb^XEI)|()Y)>FS}DbH&x7D50hX)L(qaRK7ec-)$g%}Fu;>vf8Pz#u~-NsqnM z$WlAZ zqsGetkyZ$8s!SFplZo3sl}^xA{~!K9(<)xbxYUpU;!cZ{ z&YZ*G?7Wju)2Wx<`;9%OX?c0l4g})w`GW8ZD6pMkD$PWFEAarP?T`PY`uayE{+v(M zc*VlWJ!THvXGO^)WdE=&Fubfxl^w)3{{72Ce2*L}A(53&1$G{~ zEiPq0N2?T%MBSp_YQg6iyf-Z!Cy-*!<@fy%=<*f`Z#!OZ@UjiikHZR_-o2^pGmvdMPuGMB14-{~D zjtCoCAmKx8zn<+eFf_Cr_PcI9zWMxOl>~i*-%j;zgmZk}HB%@PHhcUi z901OD?G)aWjqa{f(PuzJ7Y)%#ItyF*eY;mP1KsSCKDW}QLC7yPwFd@!GTqxPaNgme zp{VX|^H=b3?$A9vw~Y{}6?JIJSK-G#`qIptru zd-9|@6Mou3M4*=L)OfU~#uU2+7;&yDruSEJ^};XQK$R<*Rl8P{n13)Q3dvaz1{np> zYV{_8z@z(&l(xKsKMWwhZ>U8p>1oaRPp&i7y)UgG*+A1u+gbY&c4csQsXcU*WzKG{ zxsBzvg>P{WP}t)*bFVbO0eSkV(bh;INl=jAr~_2G=YXD_d1l7p z{A-^(th8MP5)iniZcnGp&oIUO`nIURlt7PB7l$y9{n}! zM!CGrAJgM3O?I(ZMKOA=9Kb{Pzb)$jv#S7YPcHb=f zPcr@;q6|p9<*&U@?{Lmau=QR~FV75jWISOaSeU^!T+>*H+#QZTzBWne(P8})gxjpa z(S%1FtXjjHNcF*ie*xmick|YtZcM22nc{w52e&by(}s)Jd=|k6n!cd&kMrd}O0NHM zFtN~;@RsbqptXLX7W9q@ zTwp!{J(+i?2A!S~T^|lFS&KEZSu*+xnD4V50Kv8&;G4kR~@D$$dS6KoI(+zxMxkKl)zp2b~k>T#run(PF;bndD)EqFCSZDlqW_H@(RR(k?22b8hEv~I?1&@OG-Y5nqZLAH z6VCDQXui6yF>8jz*_r*&kPe9JFilrMntxV1g2Z7r<6j10*i z?D2WQNur%HS~YW=Ngs1c`SfLnC1{uFZMkWdi^bT^qud_SO4yMn0|P@P>+j-LE!0XD zZNu=Z-@A8j{JEv-;>dpOJoQKbj)=6UqUS>pw|j{V(A`&^k|KX+M_Xol#+ZS#HezxV zEIH!od@1WiQ!%-!v!QOh*XK(YZJA_`g&1&aXWOm9hDU+SKiFoU_nB zg7SO~81dz>K2F~-OtvLc0`K&>tc&}O^OazcudO&8?Q{iYXZa6zvL-6*&HB=$o<`F1 zS}(LlUPa-{g{pGs3Wxv?j}~2688NSOf7S@PwYE5TAn@I(u|W`-k=tg>_enDSkqjaL zSIfuQTSdig=TjT9Pq+r|EOsD&f#j2f^udPFK>a2$ni+~IK1}e&O~;>Q&=Ulk0^G_# ze>r?g6@z{cxH{jL_%=kI7fV;O;WRKb5Iq?t=I}WQ-F~5?XJEmb1Q22qZYh0wyx6=W zid#Ow_#M_PgGHhwhk~--V!1y@*NR<2ERzuUcE8l3-jG?`g-K4@9gt!bkB~V^5;n_! zV0*yuvw?LjQD^J}ft9k@FJg&BMK==_o;~`jBX9nH+VcN@-o>7^Uljsb7L$A@`~e53 MDQhd0-M4)5Kbk30dH?_b literal 7035 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