From 097cc95bd2cd84b277a4d158dafed352892b7650 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sat, 25 Oct 2014 20:54:25 -0400 Subject: [PATCH 1/2] R&D Nerfs --- code/game/machinery/autolathe.dm | 3 +- code/game/machinery/vending.dm | 2 +- .../objects/items/weapons/storage/backpack.dm | 5 -- .../objects/items/weapons/storage/boxes.dm | 15 +++++ code/modules/hydroponics/hydro_tools.dm | 1 + code/modules/research/designs.dm | 55 +++++++++++++++---- code/modules/research/rdconsole.dm | 4 +- 7 files changed, 65 insertions(+), 20 deletions(-) diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index f29d285bd45..a33f0e29398 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -45,7 +45,7 @@ var/global/list/autolathe_recipes = list( \ new /obj/item/weapon/rcd_ammo(), \ new /obj/item/ammo_casing/shotgun/beanbag(), \ new /obj/item/weapon/storage/box/blanks(), \ - new /obj/item/ammo_casing/shotgun(), \ + new /obj/item/weapon/storage/box/gauge(), \ new /obj/item/ammo_casing/shotgun/incendiary(), \ new /obj/item/ammo_box/c38(), \ new /obj/item/ammo_box/a357(), \ @@ -63,6 +63,7 @@ var/global/list/autolathe_recipes_hidden = list( \ new /obj/item/device/radio/electropack(), \ new /obj/item/weapon/weldingtool/largetank(), \ new /obj/item/weapon/handcuffs(), \ + new /obj/item/weapon/hatchet(), \ /*new /obj/item/ammo_casing/shotgun/dart(), \ new /obj/item/weapon/shield/riot(), */ \ ) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 60d917d275f..8666269d77a 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -862,7 +862,7 @@ /obj/item/clothing/under/sexyclown = 1,/obj/item/clothing/mask/gas/sexymime = 1,/obj/item/clothing/under/sexymime = 1,/obj/item/clothing/suit/apron/overalls = 1, /obj/item/clothing/head/rabbitears =1) //Pretty much everything that had a chance to spawn. contraband = list(/obj/item/clothing/suit/cardborg = 1,/obj/item/clothing/head/cardborg = 1,/obj/item/clothing/suit/judgerobe = 1,/obj/item/clothing/head/powdered_wig = 1,/obj/item/weapon/gun/magic/wand = 1) - premium = list(/obj/item/clothing/suit/hgpirate = 1, /obj/item/clothing/head/hgpiratecap = 1, /obj/item/clothing/head/helmet/roman = 1, /obj/item/clothing/head/helmet/roman/legionaire = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1, /obj/item/weapon/shield/riot/roman = 1) + premium = list(/obj/item/clothing/suit/hgpirate = 1, /obj/item/clothing/head/hgpiratecap = 1, /obj/item/clothing/head/helmet/roman = 1, /obj/item/clothing/head/helmet/roman/legionaire = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1) refill_canister = /obj/item/weapon/vending_refill/autodrobe /obj/machinery/vending/dinnerware name = "Dinnerware" diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index d6fef14906b..02ef0ef86c9 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -38,11 +38,6 @@ if(crit_fail) user << "\red The Bluespace generator isn't working." return - if(istype(W, /obj/item/weapon/storage/backpack/holding) && !W.crit_fail) - user << "\red The Bluespace interfaces of the two devices conflict and malfunction." - del(W) - return - //BoH+BoH=Singularity, commented out. if(istype(W, /obj/item/weapon/storage/backpack/holding) && !W.crit_fail) investigate_log("has become a singularity. Caused by [user.key]","singulo") user << "\red The Bluespace interfaces of the two devices catastrophically malfunction!" diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index ad71f78e41d..77cde4e91f1 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -167,6 +167,21 @@ new /obj/item/ammo_casing/shotgun/birdshot(src) +/obj/item/weapon/storage/box/gauge + name = "box of 12 gauge slugs" + desc = "It has a picture of a gun and several warning symbols on the front." + m_amt = 50000 + + New() + ..() + new /obj/item/ammo_casing/shotgun(src) + new /obj/item/ammo_casing/shotgun(src) + new /obj/item/ammo_casing/shotgun(src) + new /obj/item/ammo_casing/shotgun(src) + new /obj/item/ammo_casing/shotgun(src) + new /obj/item/ammo_casing/shotgun(src) + new /obj/item/ammo_casing/shotgun(src) + /obj/item/weapon/storage/box/flashbangs name = "box of flashbangs (WARNING)" diff --git a/code/modules/hydroponics/hydro_tools.dm b/code/modules/hydroponics/hydro_tools.dm index 1d977b55310..9764b3a9041 100644 --- a/code/modules/hydroponics/hydro_tools.dm +++ b/code/modules/hydroponics/hydro_tools.dm @@ -319,6 +319,7 @@ throw_range = 4 sharp = 1 edge = 1 + m_amt = 10000 origin_tech = "materials=2;combat=1" attack_verb = list("chopped", "torn", "cut") diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index ac73ab9ae59..46c706fccb6 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -1442,6 +1442,37 @@ datum/design/noreactbeaker reliability_base = 76 build_path = "/obj/item/weapon/reagent_containers/glass/beaker/noreact" category = "Misc" + +datum/design/implant_free + name = "freedom implant" + desc = "Use this to escape from those evil Red Shirts." + id = "implant_free" + req_tech = list("syndicate" = 2, "biotech" = 3) + build_type = PROTOLATHE + materials = list("$metal" = 50, "$glass" = 50) + build_path = "/obj/item/weapon/implant/freedom" + +datum/design/implant_chem + name = "chemical implant" + desc = "Injects things." + id = "implant_chem" + req_tech = list("materials" = 2, "biotech" = 3) + build_type = PROTOLATHE + materials = list("$metal" = 50, "$glass" = 50) + build_path = "/obj/item/weapon/implant/chem" + locked = 1 + +datum/design/implant_loyal + name = "loyalty implant" + desc = "Makes you loyal or such." + id = "implant_loyal" + req_tech = list("materials" = 2, "biotech" = 3) + build_type = PROTOLATHE + materials = list("$metal" = 7000, "$glass" = 7000) + build_path = "/obj/item/weapon/implant/loyalty" + locked = 1 + + ///////////////////////////////////////// /////////////////Weapons///////////////// ///////////////////////////////////////// @@ -1505,6 +1536,7 @@ datum/design/rapidsyringe build_type = PROTOLATHE materials = list("$metal" = 5000, "$glass" = 1000) build_path = "/obj/item/weapon/gun/syringe/rapidsyringe" + locked = 1 datum/design/largecrossbow name = "Energy Crossbow" @@ -1517,7 +1549,7 @@ datum/design/largecrossbow datum/design/temp_gun name = "Temperature Gun" - desc = "A gun that shoots temperature bullet energythings to change temperature."//Change it if you want + desc = "A gun that shoots temperature bullet energy things to change temperature."//Change it if you want id = "temp_gun" req_tech = list("combat" = 3, "materials" = 4, "powerstorage" = 3, "magnets" = 2) build_type = PROTOLATHE @@ -1534,15 +1566,6 @@ datum/design/flora_gun materials = list("$metal" = 2000, "$glass" = 500, "mutagen" = 50) build_path = "/obj/item/weapon/gun/energy/floragun" -datum/design/portaseed - name = "Portaseeder" - desc = "An advanced hydroponics tool used for harvesting produce and extracting seeds." - id = "portaseed" - req_tech = list("materials" = 2, "biotech" = 3, "powerstorage" = 2) - build_type = PROTOLATHE - materials = list("$metal" = 500, "$glass" = 500) - build_path = "/obj/item/weapon/storage/bag/plants/portaseeder" - datum/design/large_grenade name = "Large Grenade" desc = "A grenade that affects a larger area and use larger containers." @@ -1618,6 +1641,7 @@ datum/design/plasmapistol build_type = PROTOLATHE materials = list("$metal" = 5000, "$glass" = 1000, "$plasma" = 3000) build_path = "/obj/item/weapon/gun/energy/toxgun" + locked = 1 ///////////////////////////////////////// /////////////////Armor/////////////////// @@ -1631,6 +1655,7 @@ datum/design/powerarmor build_type = PROTOLATHE materials = list("$metal" = 7500, "$plasteel" = 4000) build_path = /obj/item/clothing/suit/space/powered + locked = 1 datum/design/powerarmor_helmet name = "Powered armor helmet" @@ -1640,6 +1665,7 @@ datum/design/powerarmor_helmet build_type = PROTOLATHE materials = list("$metal" = 3750, "$glass" = 3750, "$plasteel" = 2000) build_path = /obj/item/clothing/head/space/powered + locked = 1 datum/design/powerarmor_gloves name = "Powered armor gloves" @@ -1649,6 +1675,7 @@ datum/design/powerarmor_gloves build_type = PROTOLATHE materials = list("$metal" = 7500, "$plasteel" = 2000) build_path = /obj/item/clothing/gloves/powered + locked = 1 datum/design/powerarmor_boots name = "Powered armor boots" @@ -1658,6 +1685,7 @@ datum/design/powerarmor_boots build_type = PROTOLATHE materials = list("$metal" = 7500, "$plasteel" = 2000) build_path = /obj/item/clothing/shoes/powered + locked = 1 datum/design/powerarmor_plasma name = "Powered armor miniaturized plasma generator" @@ -1667,6 +1695,7 @@ datum/design/powerarmor_plasma build_type = PROTOLATHE materials = list("$metal" = 7500, "$plasma" = 4000) build_path = /obj/item/powerarmor/power/plasma + locked = 1 datum/design/powerarmor_cell name = "Powered armor powercell interface" @@ -1676,6 +1705,7 @@ datum/design/powerarmor_cell build_type = PROTOLATHE materials = list("$metal" = 7500, "$silver" = 4000) build_path = /obj/item/powerarmor/power/powercell + locked = 1 datum/design/powerarmor_nuclear name = "Powered armor miniaturized nuclear generator" @@ -1685,6 +1715,7 @@ datum/design/powerarmor_nuclear build_type = PROTOLATHE materials = list("$metal" = 7500, "$uranium" = 4000) build_path = /obj/item/powerarmor/power/nuclear + locked = 1 datum/design/powerarmor_reactive name = "Powered armor reactive plating" @@ -1694,6 +1725,7 @@ datum/design/powerarmor_reactive build_type = PROTOLATHE materials = list("$metal" = 7500, "$diamond" = 4000) build_path = /obj/item/powerarmor/reactive + locked = 1 datum/design/powerarmor_servos name = "Powered armor servos" @@ -1703,6 +1735,7 @@ datum/design/powerarmor_servos build_type = PROTOLATHE materials = list("$metal" = 7500, "$plasteel" = 4000) build_path = /obj/item/powerarmor/servos + locked = 1 datum/design/powerarmor_atmoseal name = "Powered armor atmospheric seal" @@ -1712,6 +1745,7 @@ datum/design/powerarmor_atmoseal build_type = PROTOLATHE materials = list("$metal" = 7500, "$plasteel" = 4000) build_path = /obj/item/powerarmor/atmoseal + locked = 1 ///////////////////////////////////////// /////////////////Mining////////////////// @@ -1854,7 +1888,6 @@ datum/design/security_hud build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/clothing/glasses/hud/security" - locked = 1 ///////////////////////////////////////// //////////////////Test/////////////////// diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 3568d900c8c..6bc69d3fc47 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -391,10 +391,10 @@ won't update every console in existence) but it's more of a hassle to do. Also, new_item.investigate_log("built by [key]","singulo") new_item.reliability = being_built.reliability if(linked_lathe.hacked) being_built.reliability = max((reliability / 2), 0) -/* if(being_built.locked) + if(being_built.locked) var/obj/item/weapon/storage/lockbox/L = new/obj/item/weapon/storage/lockbox(linked_lathe.loc) new_item.loc = L - L.name += " ([new_item.name])"*/ + L.name += " ([new_item.name])" else new_item.loc = linked_lathe.loc linked_lathe.busy = 0 From 42867b255dd1a752560aab8bafacfed6b2b4c477 Mon Sep 17 00:00:00 2001 From: Bone White Date: Sun, 26 Oct 2014 01:08:18 +0000 Subject: [PATCH 2/2] Added Radiation Laser Traitor item, cmo/doctor/virologist only. 3 TC cost, looks like a health analyzer but is a delayed radiation + stun effect on attack. Has recharge time and configurable settings. Fox did most of the work, I just fixed it. --- code/datums/uplink_item.dm | 17 ++++ code/game/objects/items.dm | 1 + .../objects/items/devices/traitordevices.dm | 87 ++++++++++++++++++ .../mob/living/carbon/human/human_defense.dm | 10 +- icons/obj/device.dmi | Bin 23837 -> 24146 bytes 5 files changed, 110 insertions(+), 5 deletions(-) diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index cfd394f6202..104b29310c4 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -144,6 +144,23 @@ var/list/uplink_items = list() cost = 2 job = list("Janitor") +//Medical + + +/datum/uplink_item/jobspecific/rad_laser + name = "Radiation Laser" + desc = "A radiation laser concealed inside of a Health Analyser, After a moderate delay, causes temporary collapse and radiation. Has adjustable controls, but will not function as a regular health analyzer, only appears like one. May not function correctly on radiation resistent humanoids!" + item = /obj/item/device/rad_laser + cost = 3 + job = list( + "Chief Medical Officer", + "Medical Doctor", + //"Geneticist", + //"Psychiatrist", + //"Chemist", + //"Paramedic", + "Virologist" + ) //Assistant diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 37183aa7ff7..a4b8ea018dc 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -1,6 +1,7 @@ /obj/item name = "item" icon = 'icons/obj/items.dmi' + var/discrete = 0 // used in item_attack.dm to make an item not show an attack message to viewers var/icon/blood_overlay = null //this saves our blood splatter overlay, which will be processed not to go over the edges of the sprite var/blood_overlay_color = null var/abstract = 0 diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 95bab377c70..d9b0a32728b 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -60,5 +60,92 @@ effective or pretty fucking useless. icon_state = "battererburnt" +/* + The radioactive microlaser, a device disguised as a health analyzer used to irradiate people. + The strength of the radiation is determined by the 'intensity' setting, while the delay between + the scan and the irradiation kicking in is determined by the wavelength. + Each scan will cause the microlaser to have a brief cooldown period. Higher intensity will increase + the cooldown, while higher wavelength will decrease it. + + Wavelength is also slightly increased by the intensity as well. +*/ + +/obj/item/device/rad_laser + name = "Health Analyzer" + icon_state = "health" + item_state = "analyzer" + desc = "A hand-held body scanner able to distinguish vital signs of the subject. A strange microlaser is hooked on to the scanning end." + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BELT + discrete = 1 // Makes the item not give an attack log message for viewers. + throwforce = 3 + w_class = 1.0 + throw_speed = 5 + throw_range = 10 + m_amt = 200 + origin_tech = "magnets=3;biotech=5;syndicate=3" + var/intensity = 5 // how much damage the radiation does + var/wavelength = 10 // time it takes for the radiation to kick in, in seconds + var/used = 0 // is it cooling down? + +/obj/item/device/rad_laser/attack(mob/living/M as mob, mob/living/user as mob) + if(!used) + ..() + user.visible_message(" [user] has analyzed [M]'s vitals."," You have analyzed [M]'s vitals.") + var/cooldown = round(max(100,(((intensity*8)-(wavelength/2))+(intensity*2))*10)) + used = 1 + icon_state = "health1" + handle_cooldown(cooldown) // splits off to handle the cooldown while handling wavelength + spawn((wavelength+(intensity*4))*10) + if(M) + if(intensity >= 5) + M.apply_effect(round(intensity/1.5), PARALYZE) + M.apply_effect(intensity*10, IRRADIATE) + else + user << "The radioactive microlaser is still recharging." + +/obj/item/device/rad_laser/proc/handle_cooldown(var/cooldown) + spawn(cooldown) + used = 0 + icon_state = "health" + +/obj/item/device/rad_laser/attack_self(mob/user as mob) + ..() + interact(user) + +/obj/item/device/rad_laser/interact(mob/user as mob) + user.set_machine(src) + + var/cooldown = round(max(10,((intensity*8)-(wavelength/2))+(intensity*2))) + var/dat = {" + Radiation Intensity: -- [intensity] ++
+ Radiation Wavelength: -- [(wavelength+(intensity*4))] ++
+ Laser Cooldown: [cooldown] Seconds
+ "} + + var/datum/browser/popup = new(user, "radlaser", "Radioactive Microlaser Interface", 400, 240) + popup.set_content(dat) + popup.open() + +/obj/item/device/rad_laser/Topic(href, href_list) + if(!in_range(src, usr) || issilicon(usr) || !usr.canmove || usr.restrained()) + return 1 + + usr.set_machine(src) + + if(href_list["radint"]) + var/amount = text2num(href_list["radint"]) + amount += intensity + intensity = max(1,(min(10,amount))) + + else if(href_list["radwav"]) + var/amount = text2num(href_list["radwav"]) + amount += wavelength + wavelength = max(1,(min(120,amount))) + + //updateUsrDialog() + interact(usr) + add_fingerprint(usr) + return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index e08a8dde3e5..03ad70ce3eb 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -239,11 +239,11 @@ emp_act emag.uses-- affecting.sabotaged = 1 return 1 - - if(I.attack_verb.len) - visible_message("\red [src] has been [pick(I.attack_verb)] in the [hit_area] with [I.name] by [user]!") - else - visible_message("\red [src] has been attacked in the [hit_area] with [I.name] by [user]!") + if(! I.discrete) + if(I.attack_verb.len) + visible_message("\red [src] has been [pick(I.attack_verb)] in the [hit_area] with [I.name] by [user]!") + else + visible_message("\red [src] has been attacked in the [hit_area] with [I.name] by [user]!") var/armor = run_armor_check(affecting, "melee", "Your armor has protected your [hit_area].", "Your armor has softened hit to your [hit_area].") var/weapon_sharp = is_sharp(I) diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 7a4fe676021f95249bb74968094781d1f180519b..3c076f84c89c5253af4fd45e2aac380defbaa8a8 100644 GIT binary patch delta 2762 zcmV;*3N`hex&hL>0gxmCm60Vge{1X%WuJZzfs&LOJ5>*DrSE4lo*(Bn|MT?s`89uh zdCrc=PLj#@`R>;`TfIx+yL_K-H`%H~*>-;X<2-oG_xTNYP3|UJ3CS+s=Vi8P7&MN* zPbg=x_DmW*@*;2*(B5V%feMCvpYMuYvCCGB@6w355{P59$oia+Y=2Vde-M=KqDI{y zn4%~}HF%nY{rfVmQQ+d9jRMzgq7PISWwD){Mw+<0PQ6j!x5Nkyauiy#ESO*&WN22MKx`GA@*)NOJ4MrRgYBKS< z1dEI{u|Sq0G$R6p@mrd9`DB^OSOvpXBDz;zdZIvDC&(ko8WXyde++UB>{*I7o(nCF z_+gPe%#P>tb9t$sq*9j6rnrx&{J4BBQV-xga>8xm6PUK&q_zq|xaoje7vEVG9%Z~` zE>krskMZ%1jkhURJ%@(e@r!ixuUT8+ub zKsnD=j5H~?*biLAe<&&iZUN(d=quTv(5quKmr?Jv)Mvb6Mr|c zO{8}m$G_u*BtU>bwkW$T-SDPL&_hD@KyzVKi3s(;AqNy8HF8j8q>7cTR_dWINFZ%5 zt4gtmO2Z*U99Ap`q+ZIQ(#nS_MJh?$K*Cnq6qYOtTQ)C1URd%nJvigo$=In#e+-kk?i5RNdmg(L#1?sI9F{+diqLriQAjs=Qta z$(Pp?FJiHnk>^^ZE6#UY2YV)H$Bp3?zw7B6O)KX%RyOf?9Dq}&P7#SjEIZNIKlk+X zB+I-h@iV>$xZc|q9Y20Nt$!EL(b2J{FSRPZzvCC;)~#C{K75$L!NKIJHE)7gFlLzD zrbQ59F0S+N;X?yROM>>wFsZXaYinz*#jN+%&B^mp8K1{rT$Z(pQpE@{^532~b4R z#FveExlM>78&%G0fr^MfDB+1;1lGF(A|fK|K?zVqM0`mJP((z0Nn?OM=d{bWh=?Dk z2Ph&UzN7>wA|k$&(|;pS(=@H7<3G*mf)(ZE?Ao=H?rWbEZDjzz#}^Ti;>&pq@V$3y z=)U#|4M*y;mh0{7C)j%0b;T54L`1ygm;g=FwBD(%=G)QHWG`lHY@A^0Y3|;;&zE05 za=h64@Bffs>uJWu#$8p)@9{-M#CwiofbUdSCx5oL0vR0}=YQ_K`^n?wAF%QzOL}5s@{p>UK!>I96u}LY;YBc=6$%+sA-*{L7(Ie*UL2EDXxa zU$be`Y_iPEOn(&%3uS;oNnnnO&7(z+zh3PJh(@Cs#}dQgu(7=C@?+U(B^VL$tE?}= zo2F?U*uRgzgbae0b~5woXPh;F4`6O~C-ZaF%uN57nVEwaXTbobr}y&u^$six4(#9O zY9dH#{43Ua3$%AP%YXl`z{UOa!!AI_gwA`}sEko6JhSC7BuAJL^(0xn;^ z%zvRnhq7L9XlRHFCzs9#_`&zzE2whz`AOCShBXV;92fz>TFiBJ!m|>|5dfno@l)Gh z$oYlDcS?T0KYxDJ^Dgzpxpws`t!-`Gym=FV`ucjSy}eyYP();ztdn4zZvI_eU37JI z0npOYLQ6|a+ObrXTerHd;L2-Qz(OJkT7QYhp0EH73oFXGjqfJ;f&2FVxuXLh+4I{n zF~OFJi52C_I}_7WKRi;GEc?;Li>_jeh`jAG_5iQ{=D&`|&zw2qS!GBpMj;A~pQ-)1OoB-*Q)v85oO*zE(o^yi5y?;9Yk?j;dK5^E_1Qn$ zhK7dHK7aN2YkOI-%vmynSS)6krfDr72VAuWR;2jF;5Pm*&z)mrWQ6gtF~GS82usQD zQeQk-_IEjq8H$MbS;hp|+nfG4uYaKd8X5{4SBk}Ae=q37WeR<~SV(-Q_IKv75{#Sp z?d|PGeSN*Pckf=J(I~BLZE*2oPP0H;+u8tVZf@qmg9m5=jEIOc$EDCJ|6^LI3E;$U zm$nCbIXTIW?b{tM_WZ>QwpCUpKd0`eS15aLzO{_Mk=k#s1e1?&IJ{zsw0}&r6q<wA|k$|1SldRzN7>wA|k%@f7QS`(~Y{_ Qk^lez07*qoM6N<$f}AE|vH$=8 delta 2455 zcmZ`(X*|>m7yi!}%b;<`Bx{(-zME<+#Yht&>rJQ|B1@ua^k$fbu~qgpEovr&vJ3`! z#n|qpgqRj<_OaGwF!r&$y7%*YK0Lp3&WH2+Jp*ErptN-5Q3o79Fp=k=Un0@Z*#@0y+IjlQnj;WN%;f|Ewtsy;$t|!058w?ho9Sk9F zv!$iD;SqeLAIGk1BB?zaVbAC?f-?3^J!*J{uceIi22d>k{+l;tCy&5;vb7G0*sAk`^ne(H(`$VylQA@#uK z^A)Qp-8S4KVm#49v3q*Ihaog?yty%n`I2@+Q4e9!!%)XaY9*VmZwq_T+u0JQkw^QY z-tVRRlM2dmqRc;ZPOiql1!J=>Fm+n;{>pw~rh3lb0wVMpe`9Dm(?`o&LewRG&Yf{R z&+M{g`>~HQh`L7<(K;EqQ|d#ZI@Kp8AD&y$GotnM>^Na<3bdZv5)>S_2wPoFV$Df9 z6PRV_h3|N$EBwgeP&0ZWr&Kr7>* zvVHCSlHSZ8ZW%=bEosc9$(9!`-e|N#cc#QK+Yaq@J{Kd(;Vf`dB*DQ%C%+o@S!-%w z)GaF@pTYk`z6NG z{6YXG-%ZzcxY|l=4VSs@l|69YeAz5cFh)t9RP<2A7k21mQL_bv#JUu(M%URCbnO6_ zKOB(`@eCOpc{a#D%d^5<`(VJm*E6>h%AIL2Ffxkw>!AfDD!o}Ra-xU?pfbpV`Ho*> z5hB;@?d@Ncmy6Nq^xAM9#+?}&<*7I43Wjv)w%6(lWYr;XH8<}y(yUJl^bsH4MuEW1 zl0kRhGbVWPXPy*px0YC9_xHZ7(bN8%s0h4u3qx|{?E9zXWo3cJS9EUd& z2wk3($Sp43S-j`xK`E@_iCqf}>?$hOGiA>zea9UUzCT=+P$HALZ^<2GaB&)aAnPo*!;w)@Zwraz;Dk%!s6b3`zyEl8m zOeDa3;dkZeNME+Gn1bnH;DVKdhqTIC5Nl}Y@-wY^?ZZ5Gq1uB1eERfB z=;2>z@%Y+p;FhijDm>e#?-u$8?WsO(2-}oI^S`)DbsZz zKCV6U=|5OWf*dF*T20RAbI=o@e6^JB zJai~kF?2m?;o#=r@OK~4pyFbU4Hp-7*olBuFJE6@`00BBuQpVc=04|7x4{%56k4kM z^o}3DS>p81yu~UxzG086K|7^*esSuvwz&ou1qFp15fOdAfYwbM?jrE~ z*2DZ%@3q)S2YZ;Lo#{>$Ps$;6?5IYIANG;Cc}{5{^i)V|GMeEkammF7B((X+=Mg8# zSbmJYeuttgh02?3H-x)8JG*%hA=vwn=qDSfnoad?D4-fSz3E=6<#McM3F*ZUh`SRB zR8%a19zR|;v(9N;jH64Qabgqy809a(wYk*KFxc!`b<-t`M$?XDmc+iN^J0i{g#OTh zsEZ$eC`*CjzkGHBnsR3CR$A-h4UQ5~!ay1Y37iF%hB=A zy-LP0z|2q_`*wHh1zz>nBC2|WtLwHl*4M#+v9U30lol!~BLqqEF4EA{sLXasv+_B| zANh^c-fCHvEwY_17js3^&!CYyC206H0)+~;9D)q&uX#MCeCStwr+ut*`CVYa&3#{X zWQhC|ak%4zt6fZO=C#HvczpS15m5-(g41K|+$#?>?+W&PR61(=H8vt8BAGlTi@nOL z3WKV=z0kOP;7PbqIX`J-$_j{QnC|+GY;M-h^VmhI+m&APRo7**3!%==)7yk*+k2j{ zHljI$jiA6CNe4c%(zXb+F|p0vu^9>6*J=;0F@Z`}(49ey74MoDl|sA?esR_;k@x&* zaPvD~1MT@=w2^x4&IaynH