From 03b56392fbbf453aa9600392c8456f0bc38c190b Mon Sep 17 00:00:00 2001 From: Pandora Date: Fri, 23 Aug 2024 12:58:11 +0100 Subject: [PATCH 1/6] Adds ERP (#395) --- .../reagent_containers/food/condiment.dm | 78 ++++++++++++++++- .../items/reagent_containers/food/snacks.dm | 10 +++ code/game/objects/items/storage/boxes.dm | 27 +++++- .../chemistry_reactions/food_drink.dm | 60 +++++++++++++ .../reagents/chemistry_reagents/drink.dm | 11 +++ .../reagents/chemistry_reagents/food.dm | 80 ++++++++++++++++++ icons/obj/items/food.dmi | Bin 102807 -> 108980 bytes maps/map_files/golden_arrow/golden_arrow.dmm | 17 ++-- 8 files changed, 273 insertions(+), 10 deletions(-) diff --git a/code/game/objects/items/reagent_containers/food/condiment.dm b/code/game/objects/items/reagent_containers/food/condiment.dm index a13489f0af..e676b310f1 100644 --- a/code/game/objects/items/reagent_containers/food/condiment.dm +++ b/code/game/objects/items/reagent_containers/food/condiment.dm @@ -86,7 +86,7 @@ to_chat(user, SPAN_NOTICE(" You transfer [trans] units of the condiment to [target].")) /obj/item/reagent_container/food/condiment/on_reagent_change() - if(icon_state == "saltshakersmall" || icon_state == "peppermillsmall" || icon_state == "hotsauce_cholula" || icon_state == "hotsauce_franks" || icon_state == "hotsauce_sriracha" || icon_state == "hotsauce_tabasco" || icon_state == "coldsauce_cole") + if(icon_state == "saltshakersmall" || icon_state == "peppermillsmall" || icon_state == "hotsauce_cholula" || icon_state == "hotsauce_franks" || icon_state == "hotsauce_sriracha" || icon_state == "hotsauce_tabasco" || icon_state == "coldsauce_cole" || icon_state == "eggpowder" || icon_state == "milkpowder" || icon_state == "bjpowder" || icon_state == "ojpowder" || icon_state == "ajpowder" || icon_state == "wjpowder" || icon_state == "gjpowder" || icon_state == "pjpowder") return if(reagents.reagent_list.len > 0) switch(reagents.get_master_reagent_id()) @@ -236,3 +236,79 @@ /obj/item/reagent_container/food/condiment/coldsauce/Initialize() . = ..() reagents.add_reagent("frostoil", 60) + +/obj/item/reagent_container/food/condiment/juice + name = "Juice Packet" + desc = "A small packet of dehydrated fruit-juice powder. Mix with water for a 'tasty' beverage. This one appears to be missing the label indicating what flavor it is however." + w_class = SIZE_TINY + icon_state = "bjpowder" + amount_per_transfer_from_this = 1 + volume = 6 + +/obj/item/reagent_container/food/condiment/juice/orange + name = "Orange Juice Packet" + desc = "A small packet of dehydrated orange-juice powder. Mix with water for a 'tasty' beverage." + icon_state = "ojpowder" + +/obj/item/reagent_container/food/condiment/juice/orange/Initialize() + . = ..() + reagents.add_reagent("dehydrated_orange_juice", 6) + +/obj/item/reagent_container/food/condiment/juice/apple + name = "Apple Juice Packet" + desc = "A small packet of dehydrated apple-juice powder. Mix with water for a 'tasty' beverage." + icon_state = "ajpowder" + +/obj/item/reagent_container/food/condiment/juice/apple/Initialize() + . = ..() + reagents.add_reagent("dehydrated_apple_juice", 6) + +/obj/item/reagent_container/food/condiment/juice/watermelon + name = "Watermelon Juice Packet" + desc = "A small packet of dehydrated watermelon-juice powder. Mix with water for a 'tasty' beverage." + icon_state = "wjpowder" + +/obj/item/reagent_container/food/condiment/juice/watermelon/Initialize() + . = ..() + reagents.add_reagent("dehydrated_watermelon_juice", 6) + +/obj/item/reagent_container/food/condiment/juice/grape + name = "Grape Juice Packet" + desc = "A small packet of dehydrated grape-juice powder. Mix with water for a 'tasty' beverage." + icon_state = "gjpowder" + +/obj/item/reagent_container/food/condiment/juice/grape/Initialize() + . = ..() + reagents.add_reagent("dehydrated_grape_juice", 6) + +/obj/item/reagent_container/food/condiment/juice/pineapple + name = "Pineapple Juice Packet" + desc = "A small packet of dehydrated pineapple-juice powder. Mix with water for a 'tasty' beverage." + icon_state = "pjpowder" + +/obj/item/reagent_container/food/condiment/juice/pineapple/Initialize() + . = ..() + reagents.add_reagent("dehydrated_pineapple_juice", 6) + +/obj/item/reagent_container/food/condiment/juice/egg + name = "Powdered Egg Packet" + desc = "A small packet of dehydrated egg-whites and egg-yolk powder. Mix with water for a passable alternative to the real deal." + icon_state = "eggpowder" + volume = 12 + w_class = SIZE_SMALL + +/obj/item/reagent_container/food/condiment/juice/egg/Initialize() + . = ..() + reagents.add_reagent("dehydrated_egg_powder", 12) + +/obj/item/reagent_container/food/condiment/juice/milk + name = "Dehydrated Milk Packet" + desc = "A small packet of dehydrated milk powder. Mix with water for a passable alternative to actual milk." + icon_state = "milkpowder" + amount_per_transfer_from_this = 1 + volume = 12 + w_class = SIZE_SMALL + +/obj/item/reagent_container/food/condiment/juice/milk/Initialize() + . = ..() + reagents.add_reagent("dehydrated_milk_powder", 12) diff --git a/code/game/objects/items/reagent_containers/food/snacks.dm b/code/game/objects/items/reagent_containers/food/snacks.dm index d27d6adb09..35f34d9d80 100644 --- a/code/game/objects/items/reagent_containers/food/snacks.dm +++ b/code/game/objects/items/reagent_containers/food/snacks.dm @@ -567,6 +567,16 @@ new newegg(loc) qdel(src) +/obj/item/reagent_container/food/snacks/egg/dried + name = "reconstituted egg" + desc = "An egg! Or it was in another life, at least. Now it's just a sad pile of goop that might work in recipes." + icon_state = "honeycomb" + filling_color = "#FDFFD1" + +/obj/item/reagent_container/food/snacks/egg/dried/Initialize() + . = ..() + reagents.add_reagent("egg", 1) + /obj/item/reagent_container/food/snacks/friedegg name = "Fried egg" desc = "A fried egg, with a touch of salt and pepper." diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index d544b5b281..bcfa7ba1fa 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -711,7 +711,7 @@ icon_state = "mealpack" w_class = SIZE_SMALL can_hold = list() - storage_slots = 7 + storage_slots = 8 max_w_class = 0 use_sound = "rip" var/isopened = 0 @@ -728,8 +728,9 @@ //1 in 3 chance of getting a fortune cookie var/cookie = rand(1,3) var/matches_type = rand(1, 5) + var/juice_type = rand(1, 5) if(cookie == 1) - storage_slots = 8 + storage_slots = 9 new /obj/item/reagent_container/food/snacks/packaged_meal(src, main) new /obj/item/reagent_container/food/snacks/packaged_meal(src, second) new /obj/item/reagent_container/food/snacks/packaged_meal(src, side) @@ -749,6 +750,17 @@ new /obj/item/storage/fancy/cigar/matchbook/wy_gold(src) if(5) new /obj/item/storage/fancy/cigar/matchbook/brown(src) + switch(juice_type) + if(1) + new /obj/item/reagent_container/food/condiment/juice/orange(src) + if(2) + new /obj/item/reagent_container/food/condiment/juice/apple(src) + if(3) + new /obj/item/reagent_container/food/condiment/juice/watermelon(src) + if(4) + new /obj/item/reagent_container/food/condiment/juice/grape(src) + if(5) + new /obj/item/reagent_container/food/condiment/juice/pineapple(src) /obj/item/storage/box/MRE/Initialize() . = ..() @@ -761,3 +773,14 @@ else if(!isopened) isopened = 1 icon_state = "mealpackopened" + +/obj/item/storage/box/powderedmilk + name = "box of powdered milk packets" + desc = "It has a weird stain on it." + +/obj/item/storage/box/powderedmilk/fill_preset_inventory() + new /obj/item/reagent_container/food/condiment/juice/milk(src) + new /obj/item/reagent_container/food/condiment/juice/milk(src) + new /obj/item/reagent_container/food/condiment/juice/milk(src) + new /obj/item/reagent_container/food/condiment/juice/milk(src) + new /obj/item/reagent_container/food/condiment/juice/milk(src) diff --git a/code/modules/reagents/chemistry_reactions/food_drink.dm b/code/modules/reagents/chemistry_reactions/food_drink.dm index 7e3fdac324..63c79ea577 100644 --- a/code/modules/reagents/chemistry_reactions/food_drink.dm +++ b/code/modules/reagents/chemistry_reactions/food_drink.dm @@ -186,6 +186,66 @@ required_reagents = list("hot_ramen" = 6, "hotsauce" = 1) result_amount = 6 +/datum/chemical_reaction/banana //WHO DIDN'T MAKE ALL THE JUICES SUBTYPES OF A PARENT ONE AAAAAA + name = "Banana Juice" + id = "banana" + result = "banana" + required_reagents = list("dehydrated_juice" = 1, "water" = 5) + result_amount = 5 + +/datum/chemical_reaction/orangejuice + name = "Orange Juice" + id = "orangejuice" + result = "orangejuice" + required_reagents = list("dehydrated_orange_juice" = 1, "water" = 5) + result_amount = 5 + +/datum/chemical_reaction/applejuice + name = "Apple Juice" + id = "applejuice" + result = "applejuice" + required_reagents = list("dehydrated_apple_juice" = 1, "water" = 5) + result_amount = 5 + +/datum/chemical_reaction/watermelonjuice + name = "Watermelon Juice" + id = "watermelonjuice" + result = "watermelonjuice" + required_reagents = list("dehydrated_watermelon_juice" = 1, "water" = 5) + result_amount = 5 + +/datum/chemical_reaction/grapejuice + name = "Grape Juice" + id = "grapejuice" + result = "grapejuice" + required_reagents = list("dehydrated_grape_juice" = 1, "water" = 5) + result_amount = 5 + +/datum/chemical_reaction/pineapplejuice + name = "Pineapple Juice" + id = "pineapplejuice" + result = "pineapplejuice" + required_reagents = list("dehydrated_pineapple_juice" = 1, "water" = 5) + result_amount = 5 + +/datum/chemical_reaction/egg + name = "Rehydrated Egg Product" + id = "egg" + result = "egg" + required_reagents = list("dehydrated_egg_powder" = 1, "water" = 5) + result_amount = 1 + +/datum/chemical_reaction/egg/on_reaction(datum/reagents/holder, created_volume) + var/location = get_turf(holder.my_atom) + new /obj/item/reagent_container/food/snacks/egg/dried(location) + +/datum/chemical_reaction/milk + name = "Rehydrated Milk" + id = "milk" + result = "milk" + required_reagents = list("dehydrated_milk_powder" = 1, "water" = 5) + result_amount = 5 + //*****************************************************************************************************/ //******************************************Cocktails**************************************************/ diff --git a/code/modules/reagents/chemistry_reagents/drink.dm b/code/modules/reagents/chemistry_reagents/drink.dm index 9739687dec..e06f898be4 100644 --- a/code/modules/reagents/chemistry_reagents/drink.dm +++ b/code/modules/reagents/chemistry_reagents/drink.dm @@ -151,6 +151,17 @@ description = "Made in the modern day with proper pomegranate substitute. Who uses real fruit, anyways?" color = "#FF004F" // rgb: 255, 0, 79 +/datum/reagent/drink/pineapplejuice + name = "Pineapple Juice" + id = "pineapplejuice" + description = "Refreshingly citric, with a pleasant flavor." + color = "#FFC000" // rgb: 255, 192, 0 + +/datum/reagent/drink/applejuice + name = "Apple Juice" + id = "applejuice" + description = "The pleasantly sweet taste of apples, now in liquid form." + color = "#f59a40" // rgb: 245, 154, 64 //MILK// diff --git a/code/modules/reagents/chemistry_reagents/food.dm b/code/modules/reagents/chemistry_reagents/food.dm index 0ec3a22502..8e167908b2 100644 --- a/code/modules/reagents/chemistry_reagents/food.dm +++ b/code/modules/reagents/chemistry_reagents/food.dm @@ -307,3 +307,83 @@ color = "#FFFF00" chemclass = CHEM_CLASS_RARE flags = REAGENT_NO_GENERATION + +/datum/reagent/dehydrated_juice + name = "Mystery Juice Powder" + id = "dehydrated_juice" + description = "Powderized fruit-juice ready to be mixed with water. Smells of artificial bananas." + reagent_state = SOLID + color = "#863333" // rgb: 175, 175, 0 + chemclass = CHEM_CLASS_COMMON + properties = list(PROPERTY_NUTRITIOUS = 2) + flags = REAGENT_NO_GENERATION + +/datum/reagent/dehydrated_orange_juice + name = "Orange Juice Powder" + id = "dehydrated_orange_juice" + description = "Powderized orange-juice ready to be mixed with water. Smells of, surprise surprise, oranges." + reagent_state = SOLID + color = "#E78108" // rgb: 231, 129, 8 + chemclass = CHEM_CLASS_COMMON + properties = list(PROPERTY_NUTRITIOUS = 2) + flags = REAGENT_NO_GENERATION + +/datum/reagent/dehydrated_apple_juice + name = "Apple Juice Powder" + id = "dehydrated_apple_juice" + description = "Powderized apple-juice ready to be mixed with water. Smells of, surprise surprise, apples." + reagent_state = SOLID + color = "#365E30" // rgb: 54, 94, 48 + chemclass = CHEM_CLASS_COMMON + properties = list(PROPERTY_NUTRITIOUS = 2) + flags = REAGENT_NO_GENERATION + +/datum/reagent/dehydrated_watermelon_juice + name = "Watermelon Juice Powder" + id = "dehydrated_watermelon_juice" + description = "Powderized watermelon-juice ready to be mixed with water. Smells of, surprise surprise, watermelons." + reagent_state = SOLID + color = "#863333" // rgb: 134, 51, 51 + chemclass = CHEM_CLASS_COMMON + properties = list(PROPERTY_NUTRITIOUS = 2) + flags = REAGENT_NO_GENERATION + +/datum/reagent/dehydrated_grape_juice + name = "Grape Juice Powder" + id = "dehydrated_grape_juice" + description = "Powderized grape-juice ready to be mixed with water. Smells of, surprise surprise, grapes." + reagent_state = SOLID + color = "#863333" // rgb: 134, 51, 51 + chemclass = CHEM_CLASS_COMMON + properties = list(PROPERTY_NUTRITIOUS = 2) + flags = REAGENT_NO_GENERATION + +/datum/reagent/dehydrated_pineapple_juice + name = "Pineapple Juice Powder" + id = "dehydrated_pineapple_juice" + description = "Powderized pineapple-juice ready to be mixed with water. Smells of, surprise surprise, pineapples." + reagent_state = SOLID + color = "#FFC000" // rgb: 255, 192, 0 + chemclass = CHEM_CLASS_COMMON + properties = list(PROPERTY_NUTRITIOUS = 2) + flags = REAGENT_NO_GENERATION + +/datum/reagent/dehydrated_egg_powder + name = "Powdered Egg" + id = "dehydrated_egg_powder" + description = "Powderized egg-whites and egg-yolk ready to be mixed with water." + reagent_state = SOLID + color = "#FFFFFF" // rgb: 255,255,255 + chemclass = CHEM_CLASS_COMMON + properties = list(PROPERTY_NUTRITIOUS = 2) + flags = REAGENT_NO_GENERATION + +/datum/reagent/dehydrated_milk_powder + name = "Dehydrated Milk Powder" + id = "dehydrated_milk_powder" + description = "Dehydrated milk-product powder waiting to be mixed with water." + reagent_state = SOLID + color = "#DFDFDF" // rgb: 223, 223, 223 + chemclass = CHEM_CLASS_COMMON + properties = list(PROPERTY_NUTRITIOUS = 2) + flags = REAGENT_NO_GENERATION diff --git a/icons/obj/items/food.dmi b/icons/obj/items/food.dmi index 3c2e963e3804a6842d25695d1e6212de3449cd74..5872b7e852cee968ffceeb7d18c3229c89ff5504 100644 GIT binary patch literal 108980 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 abuC-=Fi$F=CT#)$U#g0l3T5&ZLH`G6e*mKZ literal 102807 zcmb??Wl)^W5-#o@++BjZy9ak?(ctc`!5xCT6WlGhyX)c_+=486`Mz`NR^4CsL1 z_TAo{-g$evd**qjCsJ8a8W{l}0SpWbSyo0u6$}i*=<_842lFZUICt*-4V zVeVq;Y~|=`*4?u@QOur(RSETiC8>!NOWEi~YL@8%W z#Ay7#D(Ic^X(>eYaeg|HYWis1x*$D3q%3<^O8z-+>;@qvHl%*3*r2nKG!o7vbug;U z&OKzlw^woj@SVOA1v0@y*_)uM{9xZnM?hoqo?UZa#=(;u2sEk@i|iX;*RZrego&Z- z)ENSmZv;kWkLd;k=4*e~`CEmK@-1hQ(q_D%5w&|;ZI~S6W(wL9I_wE6-Jr%WxJ`@n zk~6}GqLaI0hp1zZsN;aBN*pZ=AL$g-4?Ku_=(0gdC z^z&nh)&?`_r54&FfwhIF_$-kZitQNY?S@YoZ#XY6r@~R(Uv!id`%)~~pTwgFmlH_E zb49(WfU)bjW2~IQ$X_H_?-Ih^dgpkk*UX#5`9%amm5L>XDAr7PZ`x+3POwR#73c0! zHNlg^^*M-`5JO{NzRYx43!_yA%ePPpU&N@Cbd8=47A&HCGPJs#yUn>0Vj%g_^G}C~ zV}Jx}j#fuJ*7elGdMAe%82KtGF9+ z0qacHN48KX3nN7W01RSFljMuuC9)n!OMQ3Y&W_8PG+;g#Gz}^2XbOQWhAJ`a!APlI z3{9?E1%KF~x+sq4-0}un#_%b#Z1F>$7A}KP8K$f#sUFGJt`NdD7=jCUiJxExE;Ww% zC*kgx@JW-aVEC_ljMxewt@5!dmy={`W%uJ;IA)UdJz=dvV8{Vl3sw$G z(`mM5_xvRk_tZx1VcTH5oaxMf#p1o*icPZ&H=%y<{Z8qbofBs-H0j`AIsBr>FSM^@ z_%FeF_z}D$Wnq z4z-On2&fYI0?D?SH+QksI367GB|7MbI8GZ1)(}^6ZPIuT3lm(6t7^tQR?HxGrdY1v|{ko&)#SVB;ntaW=K+X z>&uZ^OmM}sVun&NpR&MPR8=Yq655j=z*_g#C&mOPG%O+Ax3qWuo@h52f!f_=s<={n zCh`vsew8vkn=RVaBXL*6PX>S;qP_~Rpq~-px=<+#P@Jq-C6ZM`IJ30n=ZonCDU0!w z&+P_U=ngpW^&SbD201z4SyB{PhG@SLJI7IF?oKx5_r;nLCnRY&i}7Y6W#J1-gh1lj zP%C@pa67xw8O5~c;+TpH?TN*aU2#I=xX*((50=75#0#0|cqzDHO&jp<6u`zWyhTijvYUcPeeT2s#U*LWmWDXUKqeU&t5U5*pCw6KFE-{S^ zHb~h0Rzp7(X@H39ydv;oAk&2H!uMM?)cm_I%+1!7HNio4AN*sib26V8oH30BEkFCq zFAk``T`Gqm#Y86;Y~rv{7RAC8I1uHF>`!m1DSePEd#*7Xz6Ud_=psD24!rOz3$x|X ztRoJIn)|eA_Yp9bQ8>cVeU+{)tjf4tw2o?{hcYtr&Svf79DO5xUleFMXVA_f^X;GK z9H*fX6_ei?5q4UdV@YgCX7&)Bg^vxRsgoCEOwBn&99FC$j=HI#X*sOTEq}9zMD{Wm zE`f_R8rq1ID#dBQz{HS3ZiIckJ*pYO0!v7t@5SPnnw9~}k_(!u$olb4X6U?K$6;{5 zgw=kb1}lv08Kq-^j+`XRb2SFuc%1|joQk$y-T;mw_EmkF1&fL%ZQ5rrjQ$*f44v={ z7a?JoV6JlX6@j;QJ3ny4h-cJS5DVNy5ELV?WV5~Kr3oG~{$;3r2!)!#@;AS)r zN(2ah`90HsIDjM0XL-ZdyY;nXAwW{H(J;^$>dKgslC=nhD=?l*mHk8B8jCYg`G)ing@r~qSSs~sP*_2;J{a>d zS6vp}UNhgh8nYDgG8A_Fo)}%GGj69-&xKxc*)50)3k!Q$kOn?4TxlGiJg|T6SSHtC z5OM##i|MNiWc|v78z-c(nT z+b2)N!VIYP(Etj^zIn<*@g9lu^Ak-DIDot|tbXDBrzb=6C2}S3U#N{{as@5z+kHXK z;@clG-7upQY7?o(fxboZtKz7FgI9g>(TXDH1=%$9ERmIoU|g+vPJzB)#1f?EVK>eZa)8{Zw9dJAZinmqXOd59B1@3->i-q{c4)jJ#ij(DDo! zmg%8%w>FHZl{>`UH6(()4Pd79&+GaetOMH)>7EH2A~e=W237l3pU2-z(ij` z_i9*}2alk}540yQUJCYB`6{(>bE^^btVMBKA8J`#^WOr$eWDu34IAyV0t=fA3bXwM zNN5zjbS^0n^#%jBEgwxqZaMjU6Lgv|7u}MWOKNQ8>|hW4W+>s+2G0)Z8G!@gV96*m~a<+NRH?+3qV+NpFl zBW=^FOpsHh@jruKQDy=EPKFwId<;~tzaNHU+hBEw4{C{vSypzjBLJeI&H)}w3ErJN z(YJm!at9wpH{*;o@66e4cVD^csMc<;E^yEoQuyiNjJmdYfrncnVAqzMp>`t)9hiOiRH;cQ&kWb%P{3$+7PhhjIm1Mh<`B zb0Yq>ZSwe$OE=ANEh+-f`hXuGiz2*qN#?HF2^R%bHy08$okS)vonJti!KM_JBxcDD zm?vF?hl;9O7$7}x-d|S+cWkAY@8lMj6HBl(7CPxx1rH}aIHV^Fh(*1`_>uIuAlE;w z2~PH>I~;~P#mHJXnFJD}5=hfgR6f|^OZVriu^WSUmoNOyFN!@xkT3}Wzh#7OH=I&h z4Kn4VYts6sH5f(m7=8L`ZmQ{oZtJzb0z5lovP`vYlWH@LLAry&8QROGrp>gFTwdQO zlOF7G4x^=#hH5#K!>yqft=m_GZPm-cTM=H+ljjG zQ}|O`U?>+;X#3p}Jpp`7Yz9#g=-)DigAzR>{T_-b%8Gw)>eMZUT7%qGW8NC3Lla$d zgl>vf6*sA5&DU$~)q}q$_!xS|{mevK7xz|@6PBgckY^(X*F-k|Zv}TMJ4`|>(zcxB%7z~dt)ZLO;e=YcX%iu;1pI0(Buh|y|YRl!L*VBD} z$`87Bs^}Z+eP%Z5RCC@1n&ub82MJz&Y#k8BoE_US(bL*Zjb&gnh!5CHli#9UA0#`I zed}3WzP*=LhnS8>YN0b`KLBFu^b$wSA9>Zcf>C`hUgPZMjC!KInz?b0tE~*Iu#&|o zHcaqUNI#7hdLu;VXe01_StdPm)v8ydqses?^LGBRs)-0s5qY}3jRoy>kLvh==0T=Q zsSow@&DUo~*_jw+&b=8!|99uuON-!T7C?~J{4Fuos&8DY!}=z`x*zZzPmPqWGL7j= z1)Xc<@N%fFfRhJsMtrxFpeC(`XbW*5m~a;lGw5~D?#S(%UoFFM(`Gn<(A@a|>DO=X zy#OfR>lS^Lv8D8D?;BOQ71)#8aPjA_w&E|!6KTP^zf*)o`j_3m`RGx}GXg@dG`JB# zUlrN>22?umBV~Wt%QnYYF&h6Z`1rf0Qz+nGP9mW1ou6Nf@e*fl61-8<8dzSkzf_s2 zT{ghGIFVMAP>YI+lfJUa(Jv>1TfK6}s=Ph&=F;7&%`J8OqI7`m#u|m1V_NCSsMR8!s^uB4Ca$6)L@jbYrz07t~ zI@(cDO(N=<%40~0VWC-K&`S-Zoh58*pIq_;qUz z2lyS)JC@S-G(Cu-w)}2cnd%{Y8k_tsDJY5vW%}R0CHx@QZtnlqfhp6?vM<;ES0>9; zl_bE^a-W&txd@0?rYM4$^+75-ON%JQExG*1vl@>?1lYs5`d1;04Un=lzNuTALJ6Sy zX^-vJ97?CdlGG|o)|*ouPkJof>Z~i?bS8gE;B`MKYoh!D~@55{`9R-fhy;f3H(dV#f1$C zi(;$Z|5pkRrH~C2cw=hOrt%K;Slf(v}E~`bBu3}cA z|90Z*uI{{eO7tO{`Cvqps_ba0n7w9+_IEQa1dz27HiM;DiLc85w+$(!d;(Zw4Env8 zCaNrsopeI4Lb~!=%a^)BkH@d)n~BlJqOhlIh7Qs0ZW+r9?z(6<=Z$;3+Yh4@D7A#B z!+u$}b@y()R+`}B++IfOoA-DT)wMnm?$Tu%nS=I7Zmp(@LC;z7SwrrN&=qEVO(J97 zi7|A9^wl`M@PZ7jSLpb`HL~k(WWPFzut3j8l~cbMnK^3vn}3{Mp7#6 z3C#EPbedAL64l}v^$E;-HB-nFzqr;lmEdinLaaCgLs~wam4E)JrkvTf7U#CaYS4Rd zDbDy!LMM^g240QL*w4?K)cix%;6QFFRvgx}Se%ns0H5ZR83}QStb#y@&s}V$4!JHo zlrE!LUbvDKu(sA=vAOvAd;9NujW2rZtAHghBQ{Is_Sr(uS9Dx8`W1YVotz|tuMT<( zrO8$Z_-fdBw$CsuuY_gP9i*S(P}~rYy+14Fx1pk4Hk8hp=To z{pV;^(pG%dU90EXFzX$c`Rt=%;8FHb&UDz*wCC3*gQmd@uSovw(!f_0w&=w+K1R3s6sq5Gls$L_im;82suc%YsmHI353Wv z@RsE|(#oI@2X*J?0Cc|n*o%~B1l#6i2rS{*L!PTMPOihFj&@-x^SHY~sczY2a1(L) zwq{kM?l)?AyzL)S9i)C&U0SXhzv7EHDFMq6&Lfk0obg43ot(EN`Dvk4SnJ(&rS%UF z(zwa_&`AJI2%4X0+5BMr|v8$T1pI8V+vvjNUfO z2Y@du^_f8bcY}TQbYExDRJ+-A!qUdvo}^`KmQ(_ufWLIBpgT znGmyxjRm8R6B`yGQ_d z?yE^c_5Jy9O2U=)`yLDHRg1I{C`}LtBQzJdiQ{byL)l~d%gVBwQptQZv(t9!WOMs}x~BZsHBArDsHjL|vrBX;8ak2fz@nsO~sXE9$C zIO&JpH+@mZQBw=eNKw~XbY^s_7p0+IPzjIR=dr#mPs~<&|#=({0 zU08jE*XY#k$GjnrNn*B<`F##Anh>y2Fb^(9#O0STjK;G4$T)BIxhlw}hD3TQ2innHEe-BwX{}hrvS|a)4eB1XI=r zdpCgFKxS#l?E>KSPT62=U9NcRHl@Cx7Y3Z2Ix>}CGV(-l6WzklkNgQAna)d#nh+|yqQhCCT%Oci2m2MVjzs~l zfh7#&jy&qDw7g2XMs?Q%`!?hNqD#NBC|T{IZH}=coSv-GlD0#|WKWf&=m(v@>fpJn z*FUL`?+>~>WGHngYLTit@#hC4dr)^~hk3{VO241usOuLYNlw9~2K9HUMJ-XL zU-W7))zxdvCTp+lNlDhknCc(iHrCX>&Hw0~U-*k$!5C1td;?4MvU={WE`D1gqvx{^ z43;q3OSzK-MMZW^UTj}-A^R^;yp+T#Oz6F4ZQ0uy1axj47v#ohw3E+A(D9u6eZ*2b z>l8OJG`u5>QnLeGu?|%5d1|Npa5Czy9T$p!X`adSe=|u!PGrW2LuCG4r=cbK{(M%O z2`}q%W2KAG>}y5zAzvyfJly5~=6$kSZ(7ZFJzF5o>T#*BkP9Z+>;L{BC!dZEQ`Uj` z)J8{4ekZB?U~}cZ@RWR;RI}Ph1+!3_UKAaO2MwQI6izdJwlpQsJhwvudw9HmYE zy`Nd&t+T!JW^lW-lHy~sQc6;^`#S{nv}|hK@Uj&ZAXK*(t~oSOU!|3@epHI9qwBV0 zHa(OxT=Ujcu0J!TvdEW?mOMWKS9DJjmlMxg?d*aT{g)t3e)Ew$Ix{Dwu?LEs5cu_S zeJe*YGjt+60ZXq~|DXUMk%i$-62kSW>#@Z;PYd9up$6V)@yeco4WHhn0u^KSi-EZe zL}Y{?UV6Tu10ADGDIa7OQ%7YMUppD*tyg_GLClc~uO{AKB83Q2RhC1WONpS{?`ldR z@fmSI@_~nQac^)vnWr8~*6#LgXQ~x)CLpmuPgV=SN=m&oy?R1&X(^fx#iIjEW+;@Q)y1)(R2Su^vg&2i&6~$I zhg#8TSBo-=BQN8T3O>ZmuvpORzSVIJ(7GakQ=AK;#Gc@mOHLYM4F5xiU6d@q{f7>l z%n%y@XqtZ#Tc4Nf59pYG-f@SGw0r*}LJIpIib@yYSAh;ajLoGv|Nc#B(cIJ)&8#jq zqwYc7r%hoRnm?H_Sf6avf2lfon-fny*^kHjun9CF0}Yw_v5W8<8;HO_s0T5 z=;xy_QkH9RZ~Cxe-2DRiWt^}y$@PXI;nBVu#gW8w9!UCq+$XBG`hU4OOatgP^*rrG zr?XqcsptGAU=F}2nP^Y&?fTmb?dW{hXt~|$!95(8WjUv5m=gK%`zd|!KgNn-T&FaO z^5o_3EUc6W(<$Xf@kyCcmL@Vw#vJYqh>2GX3i!wxCX0PRMB{fvwa}J&sk3JMb37vPGBY%5FmU3c=nmd78e%>wiI35^TfxANzFT`no01y zzP=ug6bmzT{WZZfBjGw18hOp7QsDLY>iu{lx$O_$X7)@a!>?(k{o0BVQW6kz8G^pm z>j~I-xD&r|iR>}H5nuMDyU%s0f29*Z!{vv9v~Pz2*F(j{4iMRRN!s?(0{068_ZuNK zdscu;`LR*{q|v-ByL+66h#LQX{Q%#WGCHwCdcn!?-ZC3sT+!V)Mf?p5HC^Kf)K^FDotmRwNZ0oR)^;>*vR6HBX6&b@K8keS4n=x-}Ja zgUi%wQD1D5LT5A|Vc#cl-)fDPJNTa=tztbh0nP|WI zlZj&A7mMu}U69I4XOi8#JT}L~AE<{CMM<7E&4mqK;mocy6kKz_Xc9>wl;UCpJh6~O zcTj#HKY?h-Dg3g@ZbF`Qw>}s^xn*I*lA|YgNRit^S45cVODl*6z?MK2=U2P1!LrG; z5OKexincb~=H}*(5hAWP?49H0DJJeSf9e*M27}WooCOe1_otUXg}Ut z#8d8N`=h5dAka!J*K+pq^faz%L7EgX-M&6DZ{=e6=|hSu=ISzP(9|jcT7KmT^*p7{ z7>V}6MAV3RCwlO!KBvfb#YM5SA*7IR`)*WVclon7g(HZ=Z$IFXr|$1&7=8Au%Fn;Z zXr))MvlVSCvqixD@_K6zj|UOWX@`GRlE^9T_IP%R`jCLOkA7XTpe(q>_FTZgGWbLP zIWb$i)I@rH5@mGksoA|*0R$Ld@AP5gvGgx3VV#_ud@5*NrFj<$EQdnjP=?i1lZr@`?Q?RN zOZz#+0T%B^`*ggOs8UOxO(%{Qn*VXoL214F8w__dVfD-> z`?p-3)hX`gR!|&)Q-6P~U~;nU5Wz&(PsV?DvpC&e`1+J}hE77l+<_-9CMJ<#uTBjr zv~#&BBQ7&e-t6%uKRD}F;C-_6rxnukVwY0vR&DkCGLv_l;Aov?#%LssdNq)cxN?$P znB%_56W&G?nbaIev=xA4dK~&WH}vc}Y9}I&>GpEv(e~LGCtcpykm&yj{P3gELDU|L zS1H%2mw0?yO2*;e`J;zHt%smJHpf_w|B`)q0}Hi%l#u)PCnn#bYOjgOLx1f|PRB^k zuUq19L2U{h#8m*5@cwgDnQJ@%!?|(br0+_urfsWGuyh5LmeE)K@ku-k$w@|DJ|zs5 z#D32Ie3cammqlddiBd}k3$w7@{H2~sE*4(h1=ynbd%BcW#(Q?_uG8lbh}`1mcTN2Nhn# z1|HZ9Gt&R??P8nI8(sNpbA@5>)4RduQ3xtLv~L2awYZ>~oS3AE^bscB=xV$jw28~Y z0w>f>4KK%=6F0f1-d?=T?Z_GKaVZ(|$P?<7e(K{AbO|ku9I0^5-#}n$dWhN^L}=F8BT4guAwQSumIvxR$EI(u!^|Ea{4dKW>LDL;)`r+|uwP`RvP{cGekQJ#$_SQdexltF_Bgn%m zySFHyp^-%;wMh9-ScLLQ=d`Y{mD^6~!vCCoP#|BDkOuIB#eKIZI^VZIjs`f6*`W9c zx69&7?4yi-bz~4CC|RlHWbk+V_~7$>I1&GxBgh=fs|UySt>6gEHr{&J1AYulyx6Bf z^gs83{~Q&_jqQ}v#KYd^zv2z&zrYn15ZEx@AC5I)5t@Qb&CZUAX6lf6eDaR|`HUdd zmD<(~Vhy%fz@-%Y^XGUa(J>+_s^O8h3C^5}C8=)slZA+n)V8921=b*7g-uU7I;v$T3OMlENp`S1sPrYF#&i^!HM3ayn?Y{=)=(ys8Q!IX|TJJze zn!PKFkm*IaSY0jlMQ1SjT-jDraDzfG_kDjqBOg7Ql@82S_{ZomYFXng$aUC?swvDa z#f=C0oVxp-4adOPyC~y{x;)vds7@i8k<$boYHT}b)lN*)+H7;&dRar(XXq=a9lI}ih z1wCn5&VRF+Mv_e2g#Apd8B9XE^>7n|i@ zJc1jt%W8zQAo}!N0cp(1;F-WE?|7!be4Ko1oKNJZ|4zdu1&hL@? zpN`FyAl^RxvM33G}JC$_%XpSj@`8aaNF8ua+|rg;vuu{2d`cnXlJ5&YRx zf&i^~5?m7Ok2q3vi(8Q3-D*hY$FAPpp9SXCH&$x|?>nEr?>?Num+Z_v>xJCLasMjg z{@TriR|im}Bx}rH)qlKm9Fh!qIYW<{3-UmH`%xZD=pr~jK+qbSZ8pN*a3C+(V;ll| z;-yPOd^p8SN1=9Sy5N+T7{9%k#q!xN!n}O~Jb(*01<1O}FJie5cZ$r*vg&Q)tc<{y zt7WFB-d#x8uFe9dmzn=Pw6ijLdDn@J8oRx{{j;HqZ``)=-dPg(zX^ED76ABNKICvp zhXZKZnKh-oIz zC#2oppoLnH5n0$F)|%_f!!;zT%*s@IM~2Uwx6s=yy};vM^i=oz=NJeB_X9qb2A;0> zzYtNsE8M}fzW6r9Y^UB?G5CjL)(sEOx@Ei2AyvPW40)>lc$7huHs3TAD*65yh#o6vm$RNW zY582+$0yy~|0?<82qCp^F*v_PGY{wMA7dyXA>Z;ymtWTg^@FwEJ-XI4XkOLpZvL0z zCKzL+k^z#0bY$%k$P%lk`nX8zH8nS0<%WQt#AitBlrggBB;3{ohd?%@Yrm{a(%M}} zchF%5v>LU&3l(ELt=VD+3<@-*E6nEOP-bYZ0l4k&NbS>yDBl-SX_3+G&!nI-GM+Jt zdNr!2KE%}?f-KQ{1dofPUzfAv(QmT&NPGshn1$bx_C1=OK7(~Z7MIVKMFE?7ocNom zf#7{PSIBp(Y>3^%!;-O^h}4KQv5zhPBR1rXm4>Ybm#O-4Ab)r2agpTfLv}pzjh>5; z)S$zu?>YK*$Mg-q<|_*KXWE+9v_$KE$EzEL-CZDEtT@g?B>@1cFOxFPs~BG2M@Xhn zf=iy7a+YaF4*zj%m)AIqynvW2V_f#|c%p%dP|uW~Kdm~7_ggrG4B)x$_M$lroPGZZ zDu3zd89bJ-6Vg?FNU7OY5nWXrN;e|wW=dT?RMh`ONgncz&i^G!I!W>V&07Bp%H(OJ zji0r3+rKlt*<&h`b87m!Qp@&p!16)__n5nPRp~nQn4i>-jSs`7+}l5pOqI?-k0UG= z5DZ2+xFF=~#Wh?#GOjn6&f$RPpn$z43qXt9`6vyl%xFBgzyR9)pyfLlM>=F;V$$m$ z3i+nP0m4y8`LFOw}0iPx;h97%N;l+x((o$H{U1mGXf~a zwG*0zKe1{_eQQ0Am;UX*;s0~Om>_lrVm(=nWYdc59n#)+BH@Lk-aqmXC(d%>9;jKx zQ<)n+jq+Iz))X}VOZRm<+99&U;2MeDyeGJ2oyzySDmhaQ7hcat_a@VgQdzMMLu^YUk#+N7aW3^E4iF_V8uX$V zoVQ$DW8Uk(EafWN+Yaz6HuGaAXBu1i4ZSPYz2`Bsw-0S7BkZc10(fquwxgabV9i084rG<5*Y;i^Qr$j#Q}$8d6$tYz`s>N`+^^Kc9I#I$-s44F$U3_p6Jseh z=ARR#)E}7e9%j+UCcGAj1n9;4F)H&7+l_(kFQ)t;NrU)oBaUQ~VfTE4pf4PYtj=Sk zkU;^70Gsr!iwCB85|f1m&1d-S&yfh!-&&8d9Z@cuW2HpfIru-wP0g4BH?U9?zV{6i zEI@nB2tG!PbktfSU5B6wnyvceb?w{0TlC_VB0rV7ie@qZnwk*Ddce2B<>f*mb#V_9 zJjO=;xE;IyW4ht^3&?EtNxWpKwg~eoq6U$_t$bQdwZA*`7f+-NlA2=4t-VDszEAtpEt>blB-M6awuz6< zB>7zSy;N#OmXJ$Yc>7lG{^RjOHuSLNXU9qcGj&#ERi*?)d7iZI#zwAwZ=j3KSR@B6 za)$t&j{CWeORcK3GnbNb&PM`jQD$kWZ(5(cW&PHc2@B8CRqKE{(nIj&)$@(nRUc|>q3N!_wrnI;&%NC`vTgWw0 zVUZgNBF|$OLGcKQKd!^?ySVc0k6Ce2yh1*B^lHH8(!o9e_A}eVazWdI?q+Q4ljZah z$pwJ>+#@8NAB5KzINRDy22NAw;2d0X4wLmn)L`?(ck|^>gNHaIy|17d{%&#Un|Xj=sP7@BhRNnu zcbmh8F&RMp>eM!gb^ZI)tFkY}75`nqeTM)uqWNxSrEI~loXk0&c7I*aX zNlHp1dG|608cR~V^i_}6oyg4Sh+Sl8_Qg#`DyuJ#fxmn5uc0>HvC;=Sp8esMieUt8 z#eSja!?j=?Fr_w%s(A%$QV%G6hQLrZb&l0qiLus}TQ_II& ztEAul<2C{INArrI&2`&Xlkb?6fc@djQqr}~E2FIV1yaa|i8$fi%hUM>cAL;-*80(@ zDLePhMnRzkzOZeMsv5-k)wYKuCj1Xhq1$hsu<=+134>2EYMqJuz4~cPk~83tJKm?5 zQEANFl%>^|N=2Qb7i-WqL@$Y1-ur8)#(#Lr3no{RB=71>w!Zlm?&H*H#lcbpNHCC2 z{Is|hIiMLdS>J>{x~DWyY(!A*9-{;>``$v=m1{RXQL1WfJ*04$EmGQUw`w+-W6vM^ z`Gv{hc?MKHk`oF);c#`ov@y+y7rzoNTr=N8Rqbn>6}tMq%R1NmK4&BQEDjs|5-%85 z+XEW@ZFt3MgbCPfj2B9(=|25BI6M@z9!m%*rNb=wyL>~F0V)QHjFEy!_|-Mv&%z>v z)l`bRb83yaXF+t0ncwMP)C`HFTi2f=Q+dV27G|0lk45j+92I_|<3U#>wMJD3B5GeL z>(rsA+C!T?3kHY0Eg-QyceV&EDBzT&l>#omA6e}yn#-N;Aaf_05+3ly?i2iZzrP`` zWuPi~Bs(6?L=4e~BT8`Z`%wsdGE$FylmO5rymp%fSz(mcA7`eru&%(uLb0~?_Gl{6 z!=?_dK@x`}xEvDvC;#gm(HMMAgm4rRY&&(XuZZriJEF3Y!p?(mWJXfMTBBWdl~30v zpy30q05n~=RTt*&KiB`P^tS`i(I-xt!_dOF-rFn zHU6Ika*RJ}c#1`@mhE&2J0SnLvib45oOUVpDA3JH}1TEjz4>+lmtX4+8i}pPjoi)@O>2z*8f&#na9oE z);H5&i7eRh!p9~Zdf4yo^{pvZ_5(Q+#n$BAWA(OD zUq&7J{DXiR+jiIX`|J{Yj@S_{e18@}Ayxkc|h4ds#oOyLt%mAPyUQS4HV>J@0 zyDE)?Zm|``S&Dc3px%C*a(+qJzV9L3D>{Qr(4_%{k{gpSX2WSgLTT>;nbjuQcfa(U z5;`n}YTSNQ);lUSB`^nf;Qw$ObNg8GVey=Us`B;$$DWrjacPcKGKgA4J~{ak_#~bV{h95SmF21Le_|85% zJYM)&+mP#hNE-E<;WL3pC1uPhT%MVXEk<1HJO2csp3W91AS=OrJ{?5+$(5;b%X3mP zM5O`Z7BxC=F0wqdH$Gb5&*JFc?@=HQ?k&hU%2wW1l+av)B&$W=(uj203Y7suWD_eu zKTQhj8h?nw2y8duujXfNlNqSyy)el5i{#F~)o1zT%KY~zS6&QKLcv_0@`)tI?p_1Q7Y&n)3G~eJeYlBk`d34q)h4tqp0hR_S){va*`hnWnf!RvR}Im-3tcPxsPz4@mnnVYSc9&R?&6((ctTph>=b0e+V845j9ynU znsh^>1e{vY{)v()ItnT4dngrsLI!gC)&$@jl=NJE`TQMp!g_26!eIq!<6y53{)^lCKAVN*=f%4jhdKD1iyORBm8c|E|5wlRxS!_q zC*(*S0^;`i@P9v`_hBEzT-BW$!)K#RmN+n_M1^@VpDcbRRPVgsuMkpGQboIW1tdif z8+gAmzX{^wRKVSB1bHJtW*;GB4{jl z5t7Kh3#8~K<``Wk5ptK;XXW`9rp`O*^?zpal39%iAt9l??;NMA4-w4y^rUZs3ayPX zcsK@udL)RP+n=Mmcu31;geveg^|SsCGQ+K(NNcDg!$F-p3Gw@+$e(Mysa8Z=dAS1a zzXT~_-RIYODNqLBcuAaw8@O);OhZfK(E0mk4sOCfY@8MvUlJ+H>az@4`BiI3)4NXi`t5YT9N{x7c`>iRTo8!8ZKhTJYx2|Ck-1_-i=58WKb$WD>!eZB5 z3&;Wj<*qu!Z}U`^cD{}_F>cnsBHO`y=la2hXJgbW;-dG>nxU|Wt3N_k+p1xX#tv@e zi(X4_gsjX`&kr6J9<+M+(i0^vDQN=yJQMm^URQva>hjw5cbEMfCNm+|H;Mo zW!M5&ir};Uq4Z}$s7@;$72uO#oXijn5q&}$;6R?h{-gvK3}Z6+K6%!E@P0+e|FA+L z%%a}{H;fmu?Xg4VWJ&2Bq%ay32d(%)v;Mx5D=@ZFe^(4!fN_cu$lny=?*@3QX&t`)xXZMCX(FlKD{hFLf3( z#2l^q-M+jZyLnWjwFWm?F^P$Z9YV+GXK6CH%s7RIdh8Q+E?U{FwLR#<(_9}%hr4p! z^=*Jh!1gt40pNY`cA%%?4bRT=wiIuVb-KDdG|d!s?qM)okHe=*_P2BN#O@!URzzB3 zbfx9vEvl%!u5ZZ2#J8v)5gKMWVQH1g1`<_T>!_-^AM*ZPtQXY%7n1N~A7I}Uo9w02 z`b1tWRyF^MB-ak0FdI<r}aR((Xi-+Z4# zuGCg~?bH2mQ)I+!9;F#E*sGNIub;|#nvwGdUuZo}Le@8&>tn^eGPS=cz8A{N^;4DO z=x-S8&Pw`&mWWLCHiozW(L~*d4JEgdv+jr#9%sH%79@RreaH<&c4TB^qK(`VlHDl{ zxfsjjAk`MVYM>5o*k`F}f^VWHa@&Q=fjJGuRo0N$?>NdalBNaWkriNa{maGBtvf$j zGi|R4fRC6cjjHN`cJF6)Hp3}*4$0TlC|4`!u{4+MpajAW3Sq`+1|8KECdbn)NGy#d zM@L5yrFg?5zpvk%18X)(1JwHpO0nY<70YRvaUitT7SJJ;M!rdX9>_`CVvPs_dC2I1 zmX11VEw~50yInMYx14l$K0{}m5jXoJCSCXqZv-UX2QwH76)7hHLg&9olijCo|M5nJ zLO5W~C*B-#Pm&J!i}D~XC6-A`pK^dxR8@{dtcv3Om&8t}wAxlX9Earx^nsDjL;BY* z)Y>&wHh>GGrRgSuq}u%a{3CAL;K4zO*y-U=#@%^?{^6Cb2ki0MdX3l=y|30eaO3(v zQ^2(R4Fkh1G8+sj0o1j(YT-}sF|$5S5&f8iL}a~4f^_vS-%d11hiV?4{&d&z9Kn71nWa)Fs240%nN9E z9f>7xIw}X7GHljFP%z!u&t@O39M7e(pA3K~$Ba{rQ6A+-m`}DLv_XMbVD9cov<(@L zs=)}|Us!fIqfU{+NUWi1sItPnbdxrt_5lGCK3fxGIo(nv>k^|BZbj^+dn*i?fI2s= zNIL%189*l|x%Mjw19-Ntc%JgXEeOLZ%>eAGTEBIXhjnt=buzO1abUCA;a0fO>Hx?V z^3zSR0_~DGVcSXc_`emGm$x7fKjIQwC6(4}hAMl#JV+|)3XD%EY%(djt+Dh2g(a%k zDP+Ya$2ANRQ8qiGABZ<|0t356d{ruEPRvZGy?0@)loLpF$xR@n@sR|pm+J9D4nk5Z zwT?_@BXZ#o?)v5c@?!EBT>ig=qwWH0x8(+chdgAwWn@Ap8XJ5W+2GTTweB%A>C*%c z@70{C=BSIBW9V)V6G1Ep8}_0>uNDfQ=|NH%yQ0X%z%r#XuU$ismifahmk+Wudu+VOrkcrWf2d__;p&r7(=m^6TlL-lBdP6rA?bA8^f8tPe}pJ56;BQ zd%_Sg{F;IS>qB*ObECZUa3H$>S90pImQwfKH+x%K!Ve^{;5Kae1IAC~9_FZKmRaka zD3wzxM0l05#6M?bzg<^g@|=~Fn^0LHbI&F-xxsBIv3v8i12&}hBz#N?82dqJ#8}3x zo8y#3^Epp!{x+T%PE=3Pinf&g{batma%}JYd9zQMF_2bSQod44?6WQ(l^Ri6Qd&BD zSb^EFiP#aKW!B;!UKjPHOey5wkXlV+uIyNywi6*>)na5#MInLO6xZ`t4uvsd0QKU- zwmJ`#(>KoAzb&L_4-wqG=I8y2_6BuHqyhY$uxU^x(wu4F33*GGb`?i8|G`>zml|7U z`%r3sMu_3py=Vx9xtZqDBXVIFjcd2QUPt=7sLvJGmgY zi{qq0(utNIqOcT6eIf7P&`G*sqWmNF_;+Sn0D;gLto(_4$xbJ(S7xF({ks|nE)=DT zi@@A_HszsC@&bD>`SIJ?Z@t8~o+qv*2hF16BrhLDhz76T{p}81@hfR{k^P$bS$sU= z0^W+O#!;nQKY_6bW3Z8=m+(^YuERv2K_)7pRM$wNv!2-0#wnedlM|+zX48fNOBz9|OL7n)SR?(2WJx4ugC z}MXVRv6HX1~Gt5qbIDXeVbg(IGw?wpM zFGn8DamjA<2Z5$O?>yWWmp16;9ZtgmFS|c)P=mEeClKi!{$-?GHc(s3<61tRN~Vn| z@IL}=x`QlX$JOi4@m~fVs?e%7NQ|OFjT3R*53UBgMuC~F3{u`JMp<}gEU~y@VISBU zQNh&-Ruo)Z>7}k1Ogb0QdxZ#9fwbBdZEzUXE-(AFbp?c*LVthUy3ku~;n5t}A4-D!hP4X!+loq;E>aD)@`t}Ua{_e>@lRZb+?>Z zSp7_8qRzyMGH=!zSbXYz2A(GwEeJ1b?67O>RQ2@zx*i zaQao@*Z~To2sYjK**l3K3KQ|cv^#w6G}?+ieex|(u@Q0Tae`;@r!-)ZXv%j5@)GGU zVau4!yYwF{PZ;mj7{U=eprGljsM4C%qW>1)Iy^bVIZctNI9H~0~&h~d`OxLn^w zBxdq3Ffz<`|3xZI6l;BjgjE*ZOKcd6u%$9dd-xLkjdxHYE;|+-itu)9dB}t=0nhNV z4-{-*{g=6Sz30aLRQbsdCO$SxTl+OqmNBH&Epb@gJ!_la#~*IoE$b7fF-lFM{M^AN z?~<{t$5_X=_nM_0r4@bIEv$tFx0Ezg5B>`_JG|YGbOFGjYUn=Zy_vjT&v>fz4G1Bk zf3Gt3P*#%CEqRYv(HPUVJAjLG@fH6x`6(Lz4x_896-=7%cs^Q3O=TR|rW$gUSG8J^+~#JHri!_8e$xRR`3mzNir z$UCxb@s;?~Z)UiB0i-=SJ}yYS0;GXJ^?+(pjIC5#z<3BZlUy9^M$a~~5UZ~QQ4#ZM z2WVKv7~?!9wquOLgE?lu7yFlRN69GlAeV+w;8mG;&$=%N`{mXh7_zDHVX^yHY`g-f z_WLN&HNzmRY5?i}B(R#vSoEmg;aRB-?ZcXSu*eQe>K8M@6!zoa+GMwX7MpoHKF?$-cu9rmV)!xQ=@quEQ))Z#*vrn0 zL5?_e1BL2o+s)d3>slfr%1@kqm*yjXHUbucdc$lMLeT}cF(G}V_FIj`f4n*3?)*OK ze$5SHercF%;m>Z6T#s~)_WN_~Jj?APo7Lxol&3dT?r`lT7;-RC$CNeyV3T`P{2KC2 z08>jX&$$CjHz3&e{{kxF`6h=n#$x`BiTS~?NEo{JbI3Z4fSKc~1`{wMPJpgd4BV{5 zm5y!jiMDaBcj|gqV#?lzDr`=!GZL{jxtJ-v?fFjf%vmPt_RZ+nkzwJoga3?S(7E1OPOd^{9?Y*J zq^h9`sYELLXi{5O6z}&_V1(fh(gDwdG^?5LgV>>1Iwq#Ra{cZ8t7cC)_@YVexj7pu z8gI(-K$qMoaN59F4D;dgx8w%nBBvLaarQ6Wa5CHL06w!wqW*{oQ-fGc6dDC(hAqKH zwvhp|LW!JoS(qnJ?C4Y8Q~w$O-}aV0`<$z8c)Qz|-Etgj0b0>ZqDg8Z(CRxtB}od& zo#L^D3GVhzm7*6|vK_j5V0f#9!>YUPV`N3pdrpCP`*^vrd$M|Mx7M;9n8Lo;eT;DP zvohTo?TI*Wdj8;(5uZ07eVVsp7fkv74jaD>kk4t^^_wB(dRruOC!aOEsLT`IL#Pwy zSn%VwL&Dti%M>fyMZ~i8&SO9;0j2L)Vvb7ud!Ych0}*-b6;*1Kw-bAG7RQEvZql!0 zsfqpyCmTiOQr)h)W7ZdCuV`}`D^G0p%?K49;Ib9CtLJ%ilJjx2O0HMC0~VD5Jlrre z?r=2!Kip`Ycr{uRW<#w9=>6s|k26n!6ceuD6JwYe3DIx;-)J0WU>Ie;8~f+h5~W2 zjo`x7Md}U6K)bz7<8H%?JKkz1+IlhZ{}P)8SkUt|BG8-{@QUjZZHwzG-gn$EYUB@; zGDRv%smc6%Lz7t7dzgo)b4Oa%ktCmo;Yc(T7>~ zz`BLY^{AWIU8=(Db^OkNuChGdrwII8R0j>!<)T9q~a_h^e7W${6mK%D;Kla5gb+2rdHFNXX4f1b_o+M7jt^ zD42%vaxb-}W7MUr!7*N!+uiyWG^aY*fI!`*MH_$652m$_t8&}|31DV5>B8=4=8Jy6lcH5}1I#FPRn6eD=dP?I*x7XZcvld{K& zC)9^MY^Gk+<*~~qqZK~3f9z>gk$N381#2~ON;YzjjGxIz)Yb8H;+8XF&ywc1mQiUH zmI~dZ z@Wwbb{^hK+j$IHFW~8EvpwqjYuof4$vxLPbVfW|nqj=ul-dTKi>^FWYzgv|9J~O{4 zkk~(eaX8%GVb%{VvS=_&;5xE?`3O8NGFA@vy;YdQ{Mz7V@ge=vhHF@KJ8c7_tMXBI zE6V9&*-fiWN01TgE&j>9^Q(Uzu_$0hW1?rg=6UBdIF)i^FxcDp0w?ieJAO_2d)Wb9 zs&wjAGYX|Il!ogEVcD;K%ZcYLVo000yIc~Bw|ok98n|((wpWMCPj=@!u6QwEUuZf8vCzr4pL+4fg5qsJ>b^`ICjmKEa6e>I|f5lEB7>A1t1|3#${z;mX^rZrFq15#CufJ zeLUK;FOOwYEKX>jM%C{6Ph4h?;;g3BHqt>_rPRs7i)5XR4^=@a37MM7gaX1AQ^;lV z(l&)U&9!$ZkMO=9rYl_*!UqQjqnxj>W^{GY!D`av-8FE0FO~aF`$ghDd~#CiiJ$## zG;Uzh3ly=fSFW)B)q;7uw9MDn)!l6=rWcHu$<)6eX*9@p2SmTbq4*wI-7>Q7S?&9E z$y!l(%;;>o8AKMgDMZA%Y<~ATY3UhRQgIxnZZF!<>4&Y|vrQ{?t}EnW`QOxKSN|ON z-0=T2A!T3~AHLE1l+`JWg8P$!F2&uH#-gtin-v>-`S0taUmEVEYo7R4JKZN`4in*x z66%`r&FcN*w~mT#y%2yXQ(=_duc5PT^-t$}x66}-MrH+X+2V;-t_CZqv2Kzu7RKY2 z#;tLhra4A=M^%Py&re5#m1-kxTGJ!{M!6oJ7;_Dz<{%CfD1H$T%}3!-Fc-tM9aORbLhi%?po_OL#n#TGL4|UzRTE4>!iiebRT`+C(y&+Wj4zvqnmRdCGg)}%O)8BD{{&93Y zOtp&lnC&r(zzTE)q5ns7+TFNzxy}EWada!CgP28OR9Ri+FcSt}T0Hjr&75L6;gK*Y zCa9vsK4eMV9-ML#V;Ko}VHhPA3Uhkfg$QpCQFN%Fasuo&tETmFV-(jd5%?RJB;w^O zPdA?4>zMyH!a51pXZfhFyOpWv!Oo>;wd1#GP@LsRy1&&dvRjBKy+4lLiN-lp+NwbIZW^J^QQXp>SFECC4`nr?u>1w-$&cA^iLhG zJa?RAT!GkYGUR!Op&J0%kT6g+od7{L+zc)Koda_SV!g=PU+;+^D6&$c{fgXbn^9i~FLkI;6mC zf~t5KjjJH9+vipgK=VFAYoes+2i5UOLRCbVkdT1kPEVBk4Ytv=W3Of30S_$aWCxwM8_lRLEA&SBnikbfI;k*TaJ|%)u!)W)y;YQ;pt=;o>C2)_3G}Jtr zxL-yt;gYwR;Wnt^(i<4|F6b$f|0$%Jsvm0X3nENbXC^X$oU0Z@bz(7kz8zhVRRV-Y zMZx(3;=f_|!hg5_>bowI(=T&Sj@%A6Wo96JxBnusA=agXYYZtUaSBOUk3H8WAXxTi z>&>jyPNT-xBiuiYw$+=@9j^q&@_qXF2o$xI6P1k!hpw;dxdFF{r>Cb^JFQXYzkOpK zG5T`bbA#c9T$aaKj0frC8H(U2B2Q%Y)S2YI&~ZF$9Zjjv!Yc5rC=;wFe6862;s6KT`B24+A z(6>j6*DnMeJb4oVnRpSWXq;~vl0_+3sSL2juru2d1hTk)qO_$4NL=-S@F1~~8{q8z zP#Nzk2s>cV+-*N}qb6-<7g;j{(vrIEWh*|SXZwN}6pmVx)-g!PMJK~7f4ws`G6F?Q$hi;dN*%cBh)R5D0nS)fHtwY1Yr5ao+GG3V22`u8>4Lq_`mgmCQG`iq?O1I4( z^km@#k=#VJYTexVz|58hAy;@CpCvbt3Y7_)YIMP+)Q&8pcZbrF0Ta2(k%&U~4ME-` zT_yvecT^n!H_#4dbes_Dua)SxuD5S$!mG#h5$Z3t46k_agRaJiIA*~%~#Z*t{3 z?J3O5Jl{1s4h*!_K5u|#ilo4p{GwR)re4aCI5=@5Wd`BR-;q)EHHDvN9h7aJpDuSP z%cNJI9fqJQxt<1YhoR)npGZ$XF%(8~@-WXC7#RgFd@-UkwetzuypcH-wA7rc+PBq< zvk^4YN_V50dIq<(OTA@#YT$09W_J7Ogi?Z>_ZuhAbw(}*U3q43#NV%B0ZlJAt@K}5 zk6ncq7lSGFO^`wqow_s=Fo%$9Dgt@3S7Lm;mV3otsFQs8j@ZyBimK?WBjtheMcgB8 z?6acN1tsfPvfX^EZNb62ipYlS7vF3A??%2(ZLMp>p#WtT9}Poph^a@j(pcBlB< zL#T(;81oZ|ljot`LQ*+;5%P@;T&ZNfquL6Y05%af=FFrlBhp^yx-uJ$37y3Gac+ey z?K2AczE(mX@0`5-rZgo@$odd#*wx zh=kaup!zc9Ij{+H&f&Xh#A^021DW#4$*O?r7gv0@L2A6-sE!b2z+_SR zU#ONF7rb^dlY#o+Ww>8_BG}J8F3dVq8~_cn3($;QP?D535ytV%ok~I`(Yi%HosAQ7O$l~gO7S-|@tQ=ibF8z$FBbl~IN$RT}uxVITjU6oomhWiKZ%V;GjIjTPF zG?Bu%7u1Z~?Jp>)Z>tMU;wvbhrcY^xTocli@nx=<=2LkX%V8R18<%yylaZ$lDcf~| z^P+_0K~x=<+MD>ruFBA4opyz+F1uVO8jArBz9sE%)Q~K7?khrM2rsfi%S~Lx5p3}kVy!1 z%SWrs%L7lcqyA!Naai_X*>tOzWR3aR!v8~MmUE+c#F$Hq~R8aPtCLHn7W zr4@eBgf%DiD>pd?IY%YNBYzv*%zLmTRI>FD>&cqyEvLyU=DzI2YO_a3e+*X+_n-Df z6>XT`$CrB}#eT_{_Iq@$V+`glI=vK9VAI?iI(xHvq2s!rj0HyG$RM+e2jmNdYzqM< zOGRmw*q2d9rq2rl{l!M9YvI-G5C5Kwkxr5M$y+tGQvDnVb|vv!srix}&SMxzYfO%izQiKh;RHiw>NPnh5A&g)kUZq$vp949DnlNpCt&aR{k{NGx5ZLiR~vw&Y- z5BGBQ3B~7kwnc2W1|o9-m&>6Pm>$jmvBK)FX3PI--?cg#EbjD&Qjacu-j-#d&f4QC ze>@6|u!=Zj)Ltn&jlBgvPD9qkFgOkZm4M{&NoW`;V8OGMWXw^VQmR^YJZ|-whV^ya zvs=R*9-0B7{UL=R6fr^KC$gyo81g>AZrZzi;G__bE32HW6MW(E(!{TyR@=YYU5^Ft z{HUIBnLwkvxgU8i;Lf+&0{5}6C+z&c`z_ACLe3p*a!l)VDD~14gly!023@^ zg_jq`wtJGuapHWkS|Yp~LCD&HHQ5(>2xVx2!qDrs&t;8w)X8-jy?=2^U-V$jX?`{Qt^Jji|%o%=Pvi?Vw< zcqeAc1`4`+oyLPfQ6*HrGRfbM%bi4*D|aUFJzB}JV>=(#1hOGt+b?1!IEc+LkT#_DXg;MB z{oA0Qk_cOhhLKs0K&kz1Y@r@0sw(Qe;b_9{Tu==j*1_l>g_B>~XPnuA*Ff!C+rdvD zt{)nj15OyapQff}!SfPHRGS%*D%NP(+iLjkm*LR~cK{QL!&Y=0<%M#wKBiYPTn~Zu zr|5Z5ZZ2^rqPsIs7#s+QgVNXi1c21Eszc179LIb#_qF4tWB#=-vMYE^u|y@5@DcwF zov11#h5FN$)F1)9RcNxT-6{|KXW-~-quPnj!9 z92JFWZmq`0#0>r$(D3JD2$=L-ZC3CVQ5ReThJPnTRcEAHZrZ_5$gt#P2j-)XUbs3a zn`WwzX7X<$ttaB;mzpA15%f0jJ>_5CEJ{RevU<;j9DCtPxSJ^8`q#eT8=kzUAt51Y zMm?^{u6{faZ;9NCm8_e{uz)!~AGsB%`?FsVM7eR7)R&Qh!2HjOFy8NldmOA`$hl5f z;P#b@3kg^+KS9-4r_D}u?Pq~jjv7YZ#6C){T%tM(6we_WWDX+B!**a~JBS?sJOiWU zBaYS`STFB(UFZQlsOsx$D_TO^K^TYL7pumW-R|=mjSLZYOnDE^W_OAQ*=y=P1*BNG zwM;@39q0kL(iZo(MKHtkDmQa9oHIDcIH8~Rm{G}4UeT5$Q(UBdaHT!`OH*KmT$WYU z4;GFNtav6Dr0hy$(il6`8Qwm5hhQEgeuszP;NV1kvJeBMf-A7jU4C%CpkMy;2tJY2 z6$yBdTdia89*^G2;`aVN({P%S>KO8BOlCv&o9i&^HH6;!-E!$-WksVeOPr9qmb&$C z$>enziW1GYqmsv?eaS?zLcz(l`*HRqetRD48*OnC#Ab(1aPd4HOrw)R{cK7Qjg5Ut^w`8o$ zfxdH06r)`zBcEpml>n&7vs$q-Wg{Hl)C=o?!9IKZzahT2sH>v_AW=-e3P`(GTCqG#v_lYx>)!u8^4BOjUj zh0mB_$yQ9c=0R-oaw&qo-UE~z7(#^i4(kYG%jF2w>Zfu~<{v_w{;D^hu^4*)sVEBnW5IUb5J z6-4!rlt$X)0B$sxogiIF8{GceUm+6s76@~0N?H$&_eE_Af}L|60ycW-@Y)3@cu_eV z6@?bu5x6vQJhl=ONK$9iDEQ~XsLa1K&m7uNVb?B$r}5uU!n^&ljaTlB$^Y$6JZX6_ zzsAKYac!tDhSbih9|0d2%kS-E*4BEz{k(IXx)nlggR*%z0srmjLk1xwby2ffc6bZd zDFNKT-S2%CXU82-v_vq5GUTj^Pf%NQ`1p8Y$Pmp6sx^PjZ^r3?t14jiwzxpV9+8Ez zdi%TB0cC7lJ2q06clm^So!+EDyfUEO<72yfm}3(Ymu$oPN!!fQzcRk+{+#0^dPn1k zX4p#KEqg8H-z^)C)Z>RAhF@sxV9P5ceJ(*z7Afe?~ZC~B$B z_1`ZsJml8WjBQMK**vsLOjQ+=UxZxSU1xeZkZ6+96iQPRJ26TvEp|Q* zSidU+dk?`iqjz0+UnJo~Bdm6{bIu`y)lQy7XNeY(+UP})LKatO;*|H|;^q|N_fk&? zcDPQ8hK4uRKhfV0et38YhlJEsr^fi1HsJ8Pfdu>JsjukC1;sRA`{JN$39pOpFl*Bl z8nRaTT5HihlIz_Tv2|nr6ulv;}dze%xpZBLN-~ zTW$s#^|WDY)(aK?Zb>%({n1QuuBxR z+V`7RVIwG0mh6Wn?6$C`k1l0gnm#@j1jEkq0x42?E`(=_lA%j!ZEj)Pdkhrghd6f% zv~Z(+?n>K#9?}DFUQl6br=J_Rc9N3^{wBp|4Hj))9>U1B$N@~O8t97dkDU=R%?9r@E$zi8nX$dF#>@5x zwer4&CQu4l!rkzNVNiZ^_hyd*<|}$erFE{khGqIp3fY0GrPX>jH#C#o_A#cv3r&{* z0e(h8A*>5nB_(>p+(Kdg!=ES&s^8Cw^r#r1<4Wu@qE~_lY;|U=CnNfpV>NfqunHlt z#jU{!1f{aNfy@y_J@Bm?KB+5f;2fK*c5Q4n(U|u%5LvRqo z)Pka??dyItiGL3S0Km{_Uu&cWpH?VKwS{l-T+;2=iJtU(gL7(GzihhVm&GPJ+S+!W zZ}xHCNE`HnW0qcJ@!me{DUBk}K`@4CD7p6s5+6NPmntqx*QXD7B5Hxw_82!1k*xdW znbe=+ZY$(eWQuewmBHX>b>7AczR8LL!?DxXg`A_kwZgBKe-o}na$Ha(?m5ZH6wB#q zg2C}1e@`hbC<+|LPCpkq)QX1+C1vY6(d9ta9TkVOxKbFe_ZaRw1&O0sAsADvr}z@OH?R$V6OJSWx@O=Fc4rbV33|>f5_Gj#!|Xe<=!4sNQwPyXV9a88pavacHQ7y zZACeaB>K_Og#b>HfOkJ;u|K{@^!iejfjG$>BoyFCnAINhKBaX)uUix?WsL0W){^G*~H`Af-vW}lzHsVx&I5}Byr zJh+i7A{F3|8Kfq+4`o@A?NQe-*Ve_d&)tLK>Pmi|`e?G2Y3t=}%Y)T8cruP+|2-N( zn^Re}6q+^Un|k_ZWjifReC4U-O;!016iMy~Jgfz^F8Lo2Yp!uRb3;6?Jr==#t^7DTb*?$Xc0d1^(CIU&n!sWvl0g)Ya7t_s3OlYQ+ zfn+~PXCPl_e#0Gw(z^1^a!OfQ2Q;;J{k4^-v|3%lEe|v+I<)@B>Q5MBOX*~m696;~ z|6!|48n+-mz>SrV=p=aZH_h{{OKW6pE8}!7ql~he5QIMwp2^a;KD!szY~8O1ZhUFQ zv-9WUV4&H)OU>}!B=e6lAf!G9r?_{04$HD%jNQtAQl$+XpO6~Z^p~RAfAtR?)wFf zC8tOKM3OBIKQ35(Dn`-F3M4d|;$U|21vvbE-HYv|6YF5$DPU`@_t=ZzM?I)a`nrS} zIt%`qg00As*DoEka$&BTmJ<4~I=B!OyL~d!A48_tmqjOKp%{c4jL$r{%g8m$0O+qN zHi&}Q1#7(zIbx5XYMZoT>P{d2&opk{qr;0xC?oOd@oBU$ zkwhXuS1QLNyD!?`E7A|#tXL)F%47%@y9F=lrH)iCS$#+&o?^>}#miP|M|6i=G>k(0 zBtJ;PewmE(03Qh?Lv(R@Idgt)$$V`y-3#i(U+rw9oEll?ZaHlP0p$|MyI zRyb9?&woLC-Iz6wnw4?$2$RE7e8V!cpEZX^Q+us%NCB5Iu|7CB80b9xQ;c#$`%D41 zkbr2LAL4-Au?}IeXl*YV7CXlYZVJ(Zppb3kDeB(`*P|E8YA{Nl7i##-6kpCT?M#nAZhu?r`?tJ+e)4I6XF7 zN1S8Kj+l`G%O}tX&lvQw4AsSF1R`y0Bb7DGk+F>dn|#A<78~EES}H3R%hvJzzOT$q z1a07gQ@ZTg%7)b88bjp;<~{8X{7bzMKw*!lwvx9G&eVc3HCu%n2~(u7V9X9~dW=zz zgbf5GileoVfw;HZKgUr6#97O}RPx+sho#OiIj{b|P>reNi34(eDw4zb?%r^I9f}~V zm2TZ->&psaVOO5Ne`^?jBBRjTd%)0s)S$E@?eY)FgffP*Nwqidemgk5+?xM8ojRwH zBsAE`DD~p4<8pkd!xy>L{_;lfDg^)hcPTUj&#B%5jV41Xfc#1aGkiF|DkL!wY?_KX z$KOQJRFTnMRNLOHU|1}y&~QB}6RkgntG|dkFouPzOeClGW8I2D1~%iEXIr&0=Hm0Trd zWsGh$i9~!D_mXTv;Bp1&>hkF9*KSlQ66!Qj{VPXu} z)}u41MB^yTs6tp>No)9lTv!kTB(EDxT`pfUxKK=5-*OAH3w3>(p^Oa*oqj+hkW35~ z=6CFMJFn;=8LI~h!NXwy4THau2m}+V%Y2AJ(^pftUvH3e;&@X1vQVa1(DISbh;W2^ zX75iRMew-d4-H99KR4}EQ20))B$#w<8d=@h+7do25yV=2@6Fcczf@{GqkMBOc1G|l zoCev_eZA&GE-a+m7ig!-C@=pHrkXAvggqM8SzAiOmN3>oR~>kk+UwS6WHgIhtWfyi zr_%dSrubaOe?AQ~nqpsLE~o849`l{8;{1I2NT#~f&2|Upe-3d-E00>D$sA@ER0!r1 zH=d65F9pcKiqu8Z_$?xe`1OK?W$guFYnpjlH&Dn^$j|HsZR57Dn3 zE{(+Me^!BrDF?vQ8Y&0<@I;ZV2>AUsQ`rv!qzj-ul<8DV|H|BcIPV1;>_$s|pJA(# z=wjFg{Uu!>nEEBo;R2=`b;R{mIM^h?tU1H$AOGe%F_IUIAe0-B-R0%@XBdXy zL(dJch8oPC)y;Ov>xlhO)__D3D~_y+5B`}yLnj`ytWxh1l18#t22Y3+%|j>$P zA^TPR*krm&5xa546GIqO%SjG>;&=;jALr%o(K9lBlk9@)DsK$%r7$k#i05zChBD5O z?$O(zDT2#N2YgUdkyTN{kHy3=u%)fT;mHkTI$9857d27-ODQASpj;@&DR2kS7Z#Sf2`6G&rEA}I~gIwjtM{y zQ{$Y}Yzbk}Xujv^ak#7vXN!sWHLiZru}T3($YqE1d6y5m{sF`q`@mkZ0!vNl$l602N!vRJYZ2aivrfSoaLRf(UJs1%i8ci{R{vUo z9&%sD{`)#J(fu4nDEYD_{;#!84R7+FBmY^%O#fehXZ{xc9a#3WzEwd&)@<% zDTPCu92pktON4mv`N@aS0n+fSZo;q)s}-wDx7N=5!2x_C6=n7lEtex{&VC0XJ&**Ul(sw&|=a5>pWbo^2mk>`` zPRKgPy2{$ozH2ZPa|#X`F-7^m{&t>FihbGxzg$mzr-UL-VVAp5d97e@x#7? z+<&T5gZU({LJ0Ja&HA#sZw8yc`JyiUSRPeiO`$}lf@gZXQhfkxFd<*|DNQ-~sto(u zcZ-z4Sy6s!Al4Ap?5lN0rdL1<3}J7b5|xP`eCXtC`>N4T-^O!Nk#XJrnWDO_4WBoa zzGjyxaVjh59S)V9{&rM~jE`0-k7(t|G7fG6od%19>Ej|Z>XVL%#%$z7EaI0k9-mKJji5 zEbruLHHq9{nSeu;B9oa3yIgeC!Z~Y(jDR;h*v5r7J5{!K!%9*_2v!F8ubVzDt=eX{ zyK5GCdnPUXel)sKb)?{Ocy$sqQ3R=GWHdp3u_8gA#mgC&==;)UzB1<~95^wDg!N@8 ztMj-UN!oJunXf092=u)#_!7tB+i})DDl+UPSlsOjBW8S7)O-YDeJmyRGC%ejf_)YA zWhzy{IXRFFjOTNe03ulb|zzyzSLKU)D&Pq?YgF$1uOb^R}%J#yMLGZuEywU8?B_$Q;1 zS+>a9Hjq8~^dx%!(xr3nO#gW+hkN#U50Fo1%Xh)TXhg6sNd+|?p>H#hWN08OJWGfP z%$vlUXkAO_wP5%^*aOx_;aF;Qe;Hrk!b2-odgDloTeYp`-$WsVkXmeC9@CalzUO#f zXlQ{vj=oIrks&uN-2rG>t=tTnA0$xLd(aWeU*Z_-?vYtdm9&aNL?KQ(ueJ2tX#hmQ?I&f zR=gkJ6>WY5tfcYineoH4m0J7L8_pbxfS03*sbyzJ(8li&&hXm%p=OxpLiIi! z_{z7DiOBVib?!>OXN-Aqys1Rr!PiecsS;+jmf~EFIF++ySTn)aNEZWA`{OWKsN4PuG7|BH8(4EuM@P>x@yYa@d1TvBH-%IaM z4&<-EDzVDBa8E>yFH(<&wuv7d60W7N&=s|?P#3^e-UhA{vw;m`nZOU-&A-WlJhH9; z&t#X#otFkBDqcTIM=P_?0+BST`2x&96pFX+2jp|qycT_5hNKHlewt+yvgY3n>%69G z_lK_B=iA+Vq82dh2I2Qp`%TX!!9m{s%&cC^!@wKU3mSi_3pF?5>lQQkFm$hyOW~kz zRq=@MKV&3rcowzOcNKl0e`*lmJ!@Y3wDau@o}R**0897%2PebXLTbOJneNa*){TJ= zs-}=w2eAss$Y`!;?X^niwlOh8C4S)zRB`I5y}hptiD7fMW`?*SZ0Lq)d-0@iXrkC6 zxY5e2xf05{LL=KxXxugaSR|=FW^3vDUR&2uB&&QULKcl3h7g;)1;c={Z6>BlyeQO7 z`&~DWUq27dKO!EC;o#y5?5(jMdqKzpo9iAI>I}i?s78r5<~hqZGLiL12_nHbrx&v< zcx(j%!iGe#wttj)^)wSBjlM5j>VouxgJ!Ru2~)gvy*N>k)3J%hK9`533|Gok1K#Q7 zC0{8abY0(AMHOVhwAD<7L9=yPBNMhy5Z(TDAfD#fI8$91E9TrlM+mkM)~^!zT8dse zgcXAID;bej#`*aigVG>l6-*sDr~_rZI1{@QqaNpC8^Ypvf9~SWgJLW^_c%7zl-G;X z))mSU>8gYAy0&q5V`5AJGS4Cce2b_>Z^=lw7IgI1(qc{JL>UWf4hpOS9W z#cqEDcmGNmCPHk?3?qB?)=l12LpCk=;ySoa%@yV&zRnmF^Vy;)(Ze;0ZB78v{L`oU9KaL zo~v7xc`NKam*lo)BJnbb7eAGAO$?R&ctCNE2~b;{z}ayn4?H_=mWA}vjDf>Q%&oH5TqgN?$6RikM7W$63KP6ZUVx&QV1=nLCbo~Lr zLMlLH9Pk4yZh^N;cb-oq(I2iyvN)E)*w9zTe4-~li?aci;QVX{e-+cd7cfR?`PpN~ zdGQ1ZD|*8UZdx5pAkr%vD17mQ3UbXmo!2dvHRJNB&yPEP+!rtG;W0a=c&L%6fnO;v z=6*`#&N60=!_88M*ODwTLaY}Fe0_{D_?dRw5=}dH+mcIAUYh@L*j^r#lW)_*2;QFw z?-qYOH`C=q!!UX{$ox)kGL0mhAaJD>xl)G+96yA6zwtfrdq=*mXOGi`Fl~k>OqbJc zl)h9XxbD?)r+8uiPSXw1N__FmZk$~@3mp<1bOqGDxp5U?8TQoQW4kEDo_e)U?EQ#V zY}?}cno&tDG1tDYqXquyK}Yy9`t1iGYI~JXH697Ei?XT>B?Ql#b;_b83*U6zKz z+UKjtU`5A%`(X&K{GMXod~bf17ny!a`8}n!`n!J5q&RNd1HTBvR{LV~3OO3(r6Rr= z`d8K)|7$qmhY^XoG$=IJM(OTqR#HaWiU-*_)({>TAO1BI!lT*{QGq;;!bC;b1y;3= z7<kzvMTB(SS}1iMqkocTez8Ec)L@W-Fg7ZW#5d!$KO1#WI` zhOep7EIU8y+icB9@-rUJ9U%QmXbwzwQ}BKp{Fnzbcg1(9_IjftEiKmtwEMp_R0bl8 zBE11$t5*i6r@QEox?h9AqIM#wz~b)LRP36({oH6FpJx}Mmg9oBjzxeaj>jbwU(mc} zro}(*-&Ke1=x7e5KI5!rQ4-fLfMW2221MW*?I|ZL4p(An<5gmj5OQ|x$^9xHhcv9m- z*8;}PsGsy^!@_C&l7rjbaPIE5&8Vvx{?;?+nA~KGu)Z^gH?mne+OBGBcJDA#B*7ZB z4jhWUxxtGABl2M<?aM&-Og^d1u_$JNaCyXJY%k`0yw9!m=B4LCL^u9p z3+#GR6Cfd(%=L@Ax_h8};#-ROa~Gg{>g5vTtIP4*%<^ZbzC+mWuY&@@7@m}mr9d-b z2$trW0Oro9qnMp-VuCzS$x1t`VmqzE_l<_Il~YGyZ`EL_GPxqa|qHY^p5&`$J!qDii zFav&?C(&|!V;R>%AUAs2E)4KnY6{>X3tSPhfBWc3GD)(k(fMlX-sE7uH0&$x3WHwE zw+x3Xnus4yAp4hOmR!h-ZHp>DpEoVw3(A_L@0)GXSk-(jR82l2dHzIe$#UJ?PiC{v z1*t^WEjGC5+Gyn8ggXY{d|VW@Hl}vC&X1s!nEJ5%P@1j;{ae-&%P^kpDxNmiwXZoF zJy5(Y5%{Cskd5XQrAfBZcPjszi_#SK4cHXa;@_11M7IC6Wp8rWpCLUPO{{RfATBhp zx$p80-cST+dhbTdHmWO9c8UiLEI!;b>;s+ks)TrAUoAa-g@2`O6pvc3lo&le%u4TJ zuJF~+`+RH`gMOV{La<~N{v~OUy4$GShl}oG`l(TI;@P~6l$t&Hj;~|E3owJ(K@bL}L zS-UmbSED4Zn&}jse|jbq2is_!H}GX(Z4IZ$#Y0B*4@>z%MSRj`Rir-)I!0}QDJ;T{}L;DDWU1o6=j>9Bro8>exj&WaL{S^4;5bEjFJ$NlMdO7L=QNKgfwDVV{daJ)Fb<_qIbiSUhF043n|^vy&zoIbKW z9Udy6lFwajxF|vu=O3GyRnvA@p)OjDMyY{Z!d{WwMTbe5wYSY3hpbZ2}d+n~0k zzB0lJ#tbCr;Mo1JDV@mp<-o^5^bXgY-;Ty>gDc8$*B?eX&Sz?Hb0JogwuohB%;I?+ zeWaPrSKGO~8}Q&o>Z`dNFLja%k&Mk;f&6ph^mZR?ohVBDAT);jF|wo@D5g%BUW-iK zFpD=tiY2NmKRNJVZ_xFJmllRv#28YA_YlUU<8>^zB3}e?DpA|!eZo|E5oJoM!sT;^ zg`qN~u%Zw%orDRlV|Zm_{DS7CrnZXIPmK%~Q}mL)jI&B8aHtT13Q{v!rsu>6VJ~R25r4cJU}49`OWT3TXD3a6rd+=qkqe8VLa3G-?^@2WkJiLxq7*^ zpB%Vi&=C5qKjY2<(6Fr^dgZk{@8xlDY&h5PNwaU{YSAn?rFwei;TYrwr3j0mi<l+?){!Bj z@87dg<*fP!Jxqw@EP>vfd{%UU_$Wy0k(Jt9RZd0w%~^oD%?J07&gW6hHiDKLbVCbU z+uOmrBdOb{G)>`SeF3@D*;Sxiu1dB@UB1DUu-{$k2R#FfKHOj4Djh){L+ok%97cZ2 z#Xg=QXB(7V{^6WiUUahuGGv=`9R<3S`2^XmklgovZDB+V<_A}9d)gS@x77-|W^8A` z`R1CS3D&NoQSQjj)Jg7AOh^-%cKQoW9oVv6C8xUh1?GQBFv=d?a@&$~AO1_K zWGoS}^A7L}Jw2eL8t;#^Ux8o6a44$qyJzg_?Txu4@qQZa2S`69BDAn^Gdd4Bc=Q;( z6d2pnhX;$9H<}JLWm>+Q5<+EeY?c`g}-Cw;NH#3_%?qZIDBs0$2J%)=J9 zW4T>o!}luo-`}CHv*Q8CmwhCKDk2Gb^@DI*^L z+@RKyP)z6xCipocxdZ5Rly@Sg@6si`DTD$t?ZsQ5>62#+B+DnlYvY(^GmXkMn7vbO zLn_C_6JbDd@m_y33O=T(SZXjoU35_1& z7_47qisld73V#l7?1TmI-&+cPkxhI?*MGi6*TxbURpIgiZkPK#;W(N;=E*e^T5B^XTw0rnu!YYvIQ5;|B*n<0#O~0 zxxIc2!F;IhOb$0HU-6{7o9O~tMK(E?FtxiEQQsq7AYjHF;ByyT{0={YY$xxhu_dI$ zaZ>f^h<;mxORmms_CuhJ*gF1i7SCMk=doH8%C0>?GEE-7*dwiy??;J!t|fOXVLUOn z8&H&*`Qa^+YpA5;6`TLDFNTz+V&;XMQVpBtM&(#IJ>iJPJGWEep}&8tt!eAe(Crkj z1#-DI_v1Gqd;paX_~!4?9;tC-hxlmNaYv487Fo{uQ=a!Nv)Tov>awh{OMMtJ&}6rR zd0gA^+867@_j4@Ws?r}}X=^HK%)hHDu1K>~n=O5ZV&)W?3Us`^AH3W$f@{Ddv$PBI zo5~S1(yxk{W1tK{gm%or50=Mg|ms@iIoOO*uySOY?prZiNEUShkG-#oeG!fU%o!|LM;}^Sa7M= zm1F;*e7JrEuPrzJOVrjieU9q9M#Yfw`2Q``g76;Q$(_s6pC~3P{rRvo#hB#9SQ+SX zE8O+N^VxT)6KgdIup{(J_;Q!q^$E%GSc%1_^!g)&TMKpeXR2%@(qD>RC^VG{%Z{CN z$^mYzo}=kknzUCTda1D!SZo4Sk_)D9@6%m2yis0;G!+#U&%q@1kl<>Rc2Vq~I;k-M z1fAELI1M6YCDQDj+fV{+;|KAicH)fc@|aUH3FY{+#QXm&$!#09-9#~~<`i?bsuWzc zSe`$R%#jj9(I*?ExdJcbI&qtdSS8zCQy#+caLLt$*QvV$jd81P8Q`LXz!QSO{` z&r#Q{f%%1IuwYvYC%6!c8@&o&k@kY6K7XsQkU7cyDV2ENs@Z&pO7M&knlHb*IhA*h zH8N+dVOgC1ey#EKGlaB`uZZtz=Q8}-LV5Z!1P(0Q{ts$mjoB=1uS~8A zRS8rXqT94poF#F0w|@xUxG|I9Q$faIMNJB@NAcpKmYUuel93Phb&Xqv*82Y5WOTLb zvaEE8De0r8qgb~@Lc86YRs?DeisipytGZJx8gwjs>$PyY>t_77Hd!?1xS4<{#Qac7I{ z=l3fdwz~;m!-QSm&)c8l4UB#oU!HX1bK{FgGD1KfYUa|eZ+ZX!(FZcZauh0J@lmBDDZB@4i>T6`oC`t0z0Wd0@(>;GtQ$Op|{k9%Ve&RN*ImoIxRw!*jRP*Lhdnu;^oUVC-h znI4xm+S!tIW!I?)$Y+SLy?t5!3djGA^^2RPj65OTb1u=?++6PiSGV&Em%ghBh3%6@ zby^+&>nRgYXtjvs)4btS*;Jhf4GTQKlMBukp!nYg-|D079N_^OG+Iqa(RipRi-o+d z#C&?9+dMlPqIr+gb{@2Ru)Du-VRJk`H@CD>dUG?9zJjX^IdrmvEa9l2?n9-cc+UBv zcjLdjk_qP){E%>s7cZzLz|G$gu|hE`E5UQ1kX#m~LRDk;Kb_Z|)`(P!fJ_5%^&Eb0 z4WP&kfnd6x&r3=dg_?WkY%JySbv*U|YL-~^2cqv(Q9xyK^FGrv2RxkVvH7tk%3~7cIV>W$r*joXTRXkx$B*GPHQsqGH#ctjEdoRg3`9+jj`dRn1Z9mJ{~f$D7LMcvyv#Lx zPqB;s{}L-zUzUc<9*sJ739`@lirM#^M4z28d2CW?NEW@W`LxE3=14dG?+m}E2F}ox z90==bf39Yg%Bj$??xc^*$NlVjaW!3z^+bktrgqf#-TXHbn7-lepPRiKsV+R*vJnRX z9i4hy;6u{1Bd1hW9*KQuQo0dU!ABbr=Cd+4ccLRt+xExt)au)Bp0;xCc&rd|-pIuM zQAoH0oR}A)cO59a3aca2&INq&ZL+)Y&vIbjkrI)Mm)Q6+UfQ0-|z@P61hLr z9{(;~?~Jz+^Ag9+(QO9z4w;6X|wb_5vG!*}qr>~o+uYgEPOOTNtZ*Awr zX>AKTnFu%?sL)E$6vh`8VyyeVC5nx8)4e-eNxeIf{_x>=L=kehA&(To(0AyO|1v%I z6LzA3D{myEn@I%@fwQrbq$b1}z=C&DG-J~N3`lI@d4ix|mu`V;Rtz6-ejLWoPHp!|Z|M>=zIs(B_#Ye!v0{1IMqLg%kT*Z(~)<7f)8s+EYRE1Ar{kHnKFpWe)lqjqxGBAynETIRXgI1MVD@GT_i|lPc^{z$-;eVSj$35!z z&2;&7FGC#QTp`;)2**RPbe(dr2L0@eyFX5YVEo4EIw}$WL)g3&h7d~wY5gEtXBf@q z``}*?^oqwBPjgP0S>I1sJG3j_;(b0ExrNDf0__it@f$7qQ0kYU~7VMi2k^ z6GYveX74}D~T`gC)8H<73 z-&L$9baA19ZM1Zi>T(`s!M3g+OBufrQt$V@YD-&WuhT7AX7LMH@b~MCxNAY*=0!s~ zSlbp~RvJZ8G)9It?A6veWwCrO$Cpnz58RAf!NCq8yw%7d!r+lvrOjfcGAbebZ^Zm0 z8GCqi-qdrT*6t4b=e$0AjP5@TBEsbCTux`Nb?-X4a`Bh_vB6KUD)rArK&XUUk)n+( zmoEXZtGA5)(k4RIYQeDV88bR!(JkB9m)bq#7F+z&angI7r0JelXp}E-vbE*(3oDL5nh~sb!!L&1y}akhtzj*pA!6|PlJ5nUtK&j1$1r4 zj6$i?n@k-2AVHvIy@p4Lw%*0Y&Hj$Z&s9!6fB=Tj(avQ??wnE3Tnhpd(z{ee{wVO9 zoa(4%Own>*CJPPl*zDcA-pd&0mxkm#ejtBpW~PrD<%{U9Wbd7z*emzHx3ws3(#;v@ zMavgDXNPU)xMQ*i6wzKS@IkO4q?nLb0Ntt+&I^srb*q{=xCbu`BV3hfXn`SXT=dU# zq1*y|josqPMIMs;{w)ruYwZo3b@o_2lSd52=+Q6Tu(Q@DIxhkObaJ{U=j3{d!{CT- z<(rIDxQHRpO*v|PrCupoxs@NG_bs-ju@M72KUhd~als`#54_A4P>l8dQ#eSSYY)8K zXgnh^bmU-Muh}iSZd?TugD_U=R;{v0F+Yug0~QSLHsVo!Ll;|$NiWUz9vjcM&KRG5 zE!l7ND#X!sTiC*L>}gS|f|r2T!}+f}iMjEI_f*>>oJnK+YHS5FYLXN>K46*%Y;>NA z1Xpekna1vfZU&1^Y8@rWYBV|xOO=`SqS{9Zx^Vj(4WW@PZaCF>@r>~Sf!&m2$K~-~ zNn^fXmJbACeOVObK(A$ZBYXNtNjGolr7pEtJ!gFY9A&k_{8E2f@BHDf#}OC#d-Y?8U5Z8vM0EUlkbB+-bZ%7K~^w0x!=?`-oVJ^nZq)2{>5qAQn}>Qs+;pE zCJ~rT?%BAdKtAY$&KkADLThinBvqVr8R>_*Cl-!r?ux%qT-f1cC|Uq*aHaPiIAtrS z1>H)<_#e4?KfPpZ_xWXZQ1|^jYMP@fSYF|D`gEretNwBF@UjK=rel`w)&9Ac zC+O-9r^UNxJfj=z!2D}?dQ-dnqL8O6ju|B!Z(B7lJE#l?SwS8ymj(&-TKr#@5)S(OL_K@mV&~w<~SY=K&zp5 z8Wi=9+xddZh7yuB>~%HP^ydkBfUT;nJoI-AFXw8H`DPcA*U)rm1SMU68y8G_({IzF zV3T^}4y8I;Y!{1fsapXt2R_yg`21#0HxC23SJ@#WNI%3A*rh@iOLWTk_KY3h-04vo zPY(sO=H$$MK|eX!a2D#eqt>1V~g)xc4C`Ddg6V+KPY_mO|Jr_k> zGGk3!L^L;NFH`#8#CoEjTxD@p2;28*lumsROkS_mnKTE;Z?b(%U|pw=ZqhkCkJsov z?m8S6>cz>Y$Lo2rSX6W!PAa4?yi@FPh+kx8Ymf7L=GE@vhP8N+_RI{^nu3|NdBLw= zIjEXXfsE8Wn5XACM&)2wZOe#AvT=Dh51NldiaYXR=cenbO#0VYgNq!!?y4j{veA|c zfxsyBY!*`&ivw${oWh;d9+RSzyMH|{W_lpe0P#MHtf6c7mK3kgi599`!R}};aQ;;x zpo5y@lKrto73fZB*7U3`k7@OU*pP%w`GS!UO#|f+r6cCi61LVwqyF4$9Nz*}nMTTniT@A*`(U-xl z_8>I8s~gJ=Md{`oNgOF&z-L3v->_cV`HRAv2eQ>bwBM-_Px-}g0J$oFgaEKK(PF^) zwhR?ko;^Q;mOyx$<7>zdeLb_eH}o{3ibisz(;xR6R^;}ygIS72kUSV{Sgy6LCC61ad?ehA8%TCgYD81n45 zLjvdfw0_B-MIH^pc1XF0eS70M4Ic%1u^%_qA5?={lU~y-N-ot7wC8BT$7ZTN_Bvv% z`;uqHx?5jg^Odo43UV&{Z`E244MjK>mA;P`D#(d>Vvkc8D$&8f6JK>|$}vXVJ9W~Z zz)xF0SRGq`P@=J|=-mI|K%w~_H@J8Y5TSOLbO!lM1q5j4ZVc2YlE1mL%60R9+6)F_ z{?5Jze8z`p0n*+3wR^uB09Zb)WZ!b$=EW1N7a*1$tS1nScwM+G|34s zAWCAvbk>$xkJb8vXI^Y)XJ;O8kQ(M%iX%fe9uc>y2&5H=)^~Y;42_ z_ceZM&mzFVtfEs))FO{dg8b=yL^H?@(nL~*XIU{ zIRXj%#hZL7Vt;f1yyRb+2R)9|1MQnzOB2ZWo+XhRqY&BnT1)rcl9eXx43hVfi}03! z8>V2`{5{9aUs8o}Y-d9c?NQQb(J5aY@@uWu!dl;ORP~9T927=>b!SqY`w76G0{A^` zS0P=zNQD37mjv2-B;K1~RaW702xflh`(uHqs_6vaUxNM~!7D(IYBk>7-bgCihrv}J zo;y(S1`>I6obB68%Y(DxiTn!!eeUd=? z{37aiWQTdE_xa_|Qc0<*`{-UOGfwGg$OpJTe<%ek?)-H#YR7C9{#=4k>R85>72rq8 z!W-zr^}K}WrsF;xboLG<$sX!|&&WJFE7Q8mMjcJ~050~07b&~fIl&K+06bHlCh@bW zylb3!oZ09`4wyVpr!C#*DX8(s~oQCltYX| zzaVbBA;E6K2H848oRn?UR^VVS*z?`Tuk1Stvd)tqaRYo&jK4Of@h561y+Iss z(aTGE|Aa9A4`ytB{=nPl*{hk?k_>MpY%gY8vxQp;r@;>%b&ysQ8D z7UADu29LVp--n-#h7qIZj1lx$d-7xaFw!hevmWy8?;%}Vh?P%cZ8Mx5R^y6P zl>>r=g@t$S3<;4pP?isVrY%Bapa56T8vM*Afaoz#z`waVqW+)GMV7#^(SqpgW<>8o zDT$|4l5LLlFCYdNT0n(2z*Uxy$1e>e7x-%C%^hQ>NobdnLns16WEB_SN*Sxx{OpB) zzao^oc^J22^p3Icy(#h~;Ey$3cdS+(1Az7>R?X@{G;F)SVvrxvarvqz$z-+Wg1 z-#1Dbx{RRLh>q)9&>ncupM>EV9od}$6cqH->+wyUIci|(EyPFc=Dmegp^0hD^;)$b zG`@Q(b{R4PhyUzc#^Igh%~sfkew+*EgJBn4#4DYi;onYSjbGdD3W6>5j_9W0g|S=L9=hc+SZd6-M70zpac5VXR|VaEo$=T zUmB3ol<4gOSDZ9f6BQtIfZM}ye6;^JjsB;l{NHuc;t*t??9SsuPe&7#U{+Sxke*%c zK;=xVaIWX!N15P3oidZ8wwjgs4ZR0tWZbpzv6D1e2*KGL#ZyCFWs>d+R>UEzIi^Z) z>6`-aP*GtWjnNj&L)QKCpbWVhz#x7kH^ukLLb6gg$}@2kjYn(gD^igK%aj7o;xg*j zz`-zvpxP_gq8SZzYk3L!?1qd~n0%@09Dfi~1W3zue-cs5xmj_V! z;0wHv)Jp@&(@$nk-^F~glFbM!W1nWiRzqG{IeDfEAHkDUe`rsrHum`mT|$1{KlX}g z-rU&pUffN0#=ml@b$ANSl1j-0Jw2P{NDa@dh6E$nw|;c~eTi5aSO48I#VB#3Dda;A znL>!^Ee~u2-V5_Xh#$9Yl;~sENS(4+|7ZClbExsyq~_h(f%m6 zq&iySnkqP?fa%{oZMFDM?g(S&HKxtk*9wVbTfxbdcUS(F^8g-Z!_&@$R8$;oi%qt_ ziYmsckE2V*4|vgs?1o7&EKK&MXDei;{LPd+vbUrYj6V{=kx~xl`O{ej>4=59pdpoL zA0LYlZV!!8KRXDN#N+Mkkkj~W=2P42Z5z^Hm?0=A)^M z&+Bq`mmgmwqX1~su3!R4)O!uqqGNG@(kY)wL;VFsF1Gq>1H}6&VibNVwv7CaR@Ip+ z`zk;dDCoj0z!mCyNUx(3x~n4(R90q?`M)BlyY<$og4Dj)UX1}^o85i+^vhka5TQ`DwqvzkK2Ka;fuZo)4NU}D7dM~H znNmhlJx?2|01BUm@WJI|7Uv^E@(C+ZznOlQ2kn1oH8IZ=iOGj~TTfKE#`@0x4}tJw zt$!WxKQ;kHPo$5cI46|xaq=vqj9#bb$Kr84u}A^foGA*#X@0z@*O0r~K|Ec4+nFVpcH*CdiFL1v(yEdm~u(Pqv$^WJJ^MCc;1XZ@w zsMs5O3!er2AAOJ-_8IfPp&gMWM)=piynpd0c{ZP!8twn2cl^r2T%q6Hj(CF}2)d8F z5;ob{=7|1BhqPe+iS>^}fC>G334s@{_qgA<#rSRztqvM692#f`%nN zW6p|Gi{{U@1sr%K;rqg>3l6m<$29hVc>k>a<8lLdz8uOkwUlzW6Y+@hwR7KwMzT5& zaSj%3J;0IBI@AlyY@Xc$iHPenDP3V~)!P#qPxr%^`%1sh0+7FuY)6;J5AiBc$HfNtJ2hP~9D+%m zj{y;mXwEK$I<2hDzlp#g35DV}9#9f0L*GFa{|+ww`*u~oxDGlCkxCp%dOMv;AvArB ztF{pZceS5<^Z^hzM z#~1|3;IXlm3%S4Cg_Il<%XO8IOF9XWy+lxuDs}-?Yq5MU4)k;=R_SIm_cyU;OP@EW zf#lt9`x5v%B3kU3XkUkc7alh!t5PRQ8_$BfxcjNTe+=&Rx_N%@$}Lf_%I6@E)xK?@ z((WZ1c8fQ7N4wr1$0ON|Tt@;xCvkGdW-s51Hg7f;W)Gx|$af1f0eT;ZrN4NKtDSiC z#gtZbO@0s5C>hxtHQl+>T1j4KeOY%8EAxSqvfT~w5yYH^I%Ldmwogd*zrK38os?P7>VtAcO1ga zz5Xhu+7{EIE~cC*X49_MgZO;waABFK57U>_(?)vKV7h-`pur&Ux9yY|XOmgX>z5#B z!qW~f!tg3N#uuBnhicB$w|pCiq;Pi*_a()&$4SdFPbYpJo1c~LI%exV6G&~~d(>Ia z9f+qc``tj$>3<_g*MqaNBW(4|NV?t6pe%zD{MilnEmj2@{1L-$9`J3CiAN!p2n!SY z(q{1C`d&*aEh1~tuQ0g@@!*79+ntwROphEq z%%{YV;ey9{|56%Fddo5#12X8v*4F)rzZHOkdk43-Xh<-T>wcR@hoP(A6k(frUk>K2 zc=w);cZD2goWSjceT<7?oHLa{we3X4Z4wC?so{shYcV$QegVjJ5dtoUjjSy4^OM@f zx+aHi4`l1w;Fn#{nJ!BkRC{qcB4ETd-JPLZ-^jOOjuqu@;SQCEk%Bl$me-VEPe?G1 zgqLHP8^CNGS7~eo(HmU1xSmPRwsCfdKL~#A(R|})MHhAX^?Z~ybLsC^KrPPM$AL93 zAnMxv%KxRZwR-`pJvcEA`3^qSY^yYK*W?Ky9>C;08?-d8b2wli&wDXwAnbdu_i-z5 z?4;%KoL=&t=UdreJVWm99CY>tNT5u0CsWCWRNu);nQTnmIN#)ZAX;j$-b~xW$8(og zBNJ5vrG*AjEmmiN=A0omIj@VpS(%W1CUxG;7R7>KgSEd$f`YkG4J4M;UwGVbX%ilW z;^@(Edy207>?%Ly*L^nb*%u0|ERG)MnA35ae7D%$>_fG=M(!Tk*(+E@TQYtkGe5-` zi0-o*QY>^BldZKMaZM@{FhR`P*?`#AZ5tq?)|t)uVS-3A0wIv9FH;9S~e=+qusHvEi&a>sNA z$Y`+`fc7C4)PG!N(oxob!dlI5$t#ES6LibEBDUSQzR_sDS5!1ktK7LPKB9EbLH%fRP<%@UjeW^x#d!Zn0fXbpH zCy6LDQR;dMetvr^^h&W{rpO4ncO^f9qz<%yTI_yitEAC%VhDxb zL(N3 zuL*iqA40p>{v4VGA6>uK&iXK@^_pl4Vp)-~X?1-tRRp^rL0^+_W|2huW(5w1hZ8fE z=i&xi$ZwDS)pB-q=}viD*%M+{Ij}z>DZ6~3MYY2i)*G(&uN%qTLoC*4-uu9_wegox zC!Z}M4jS%uEMz|Vlxh&lyLFa;5If3T)l5%{Z%Oxlg0DX&(lO$Q2|>5FF(8?G(JLM` z!#H{-LgoDqhLhO16fBEguP!XI*M|flK1rc9tM_9_Q(OpXw1v)! zx77CX&y>wVYcBPcY(BxoxJtp{?w+52q%2PejIs8=Ce~=flEsv5mOfS9L;7YfS^YG2 zH%m31wU?}1xEvL~8Wryyg^v1wChokj*D#>+{O|9{(uLT zcxXP}jGm4&X6w*ekCUK^cxT=a%M=r!d>CNdKvkuMQ@geGZ?tQKI2s}vb9=Iz-QM2A zZGLbtFUmez!Alq~UN3_K<~+QVNu1tiB#<{Uko0bx=-z%k_Pz-IfM-MIE809t5 z`rC+mv2~~)`FTDj50fSi7`^R7*tw2xF~ITGL{~a3fCtSOy)L;T^<&sQ`jB^R+n83t z2X5um<()QyrFP@#s$-??6AVrev3o^DlP8>{1L~~QpgIA+J(-$zh(}lMG$)zgBhO-& zQiOxyMOp`FNe*R=plm+H)Y|7MyjX)51>ghk9l=J2QQ4y7JTWf8%`4I?01 zX#Id<5skBO8Wmd{TCvu8I5(vM&!KfB}^^l7E zs@R{$lAwMoRT-;hub%!^4PIR~Wo|%O3O~@Thg~e`YGG35BB-?UK&zPdk{k zN9<#URqvgQ4FR9-mwGKRBED&4znoLpH~M8|QANpHpYmyiui>=2E!=fH?H!5b_`PsG z(ocBdK+v>YM0QRaow~64AZ4HLD~yC7{vcQaXWQkt4`-^@19SYPC6gOCszH*=m+;_C zKB5EtSobO5kU+Mfk3pvN_{`BcJEl7oz;o+RvF}ZddNonRH2X13(vdv=JhJx(`tXOa zD}^|Q-E+C(a)CE&nl;B1J*N*Q0eP&?!mnqzuEdiZVh9Cp4E2! zW_njCEZLnbQ2DS3?*F!k$!0!%EJNeP)X-{$lfGD>2o==-N1Qf^J9JvBeLW#%)u% zp|t!p-zGcC84av|X&M_vvqkIX^_P>=tacJ3RAj@kZ@J8u>GE!bUuu!aKRfvsme9?7 zu*`-Dd9&7cMV1uh#!XfHEx;nlnAada9f(&^6qzVB0zQr+k4Q=Vdzbo4fSm|j=d^$I zro6w2AcGzQ1Ecx~`svBbisaSPPTSJdziS6d$&>Gf+hbHRUF8N8lyeud3omn#8dtJ#9)zsVk34!hmR$c8f1gb; z%M_kZPqP~4c`miAjlkZ+En0?1Bl7iMk4dVWt1z81e6( zMj+kNhiZ{>F#{m(EO8DOdIwgC{(`1;jKeu2^p`qMl;tsFJv?k2 znI-H?LIaKIOa5y7>cyTDLiS%(K{BAGAczWwr(k%89A>*df_qF7aHuXGwc-DO2Um#c zZ+8Mk{A)AsJLpnwUGG{a8-HnfT8?_lOUCnj>R36?X16jQzN%#E417pFmt%n~yMu1p z-kx}K<|yNV|0I3!aT$pkw?v*P!C0ujwGrfuIwO2l3717hoMFS}GY!t2VW~!+?+TQm zdi1ULD@!@Nb@US+;QHt8Yd+|dP(3eY1p;GuUY*^OpAbd@R$I%y3~ylnFN-d{}c9 zb4T}Q4iusCAixNdWtBW6@g~L%uT2GxXQ|3Z8uOWN|Eq!wO2T{^}xz>Q&_JsZ#7JeJKDrA?=cmjpGPVi)| z)F;A=7OOFAZ1}HvqA&{Hn!Lodh_~fN=Tl}LZNiwJBb>duc;MZBeM2kuY!Z7dzH^-+ zA4na#r)>dy3z;nyFVkas*(H8AVu17F!&RZ9_q?51LN`8Lo1{-C`g)=>-YgOF{x%{kktk%P%0jI>SVLsy+A z?@|IoLpl-r=2f_m`)FG9O?aHyY2y`BrU4ouMy2k;Ms!Wy;Jc8MH1~`O`$Lq6Ga7ZE zz6Ht4E<0#);WblfT^$AT9&{I`yK4Z8>s!!K0(`PydhRvBnx1yHr_2Zev_al?l%!0u zP5;~u;1M3WLTSmqteec1Yn7bv-Cp2`kzB12nS>WV96sTnvp9I_BD`^%Xx=W8a{^y^ zJ-F&{JjWbbiF>TVj7&(a%*dY#e#@3X8i5j{)3rTYirqV4@V#GO!6mW}XD?76sQyFo z2bj8j+X&n|pL#1opHV<;68xU+mvVPcxRZju2Gct1oc@j1F4j&hIG*uzQFZDfVhNQ1 zE_=GLXLz(1+iVisy^wUq)AOm#>9lh!u$U{DCx|0zi{27q{y)o2}Z{TsjXWr5{D6B-dacV-i_;DTq&)J-df7K;&#Uwhw~m@6gqFV zd8s*na(MUsqtLQUolpHu!b@!HURuCoIw69mY2XvA8q;_N;C_f*<8E z=FNTCacC{8uZ+gr8Ag$NyLhpW)a=2#MrH1e!Eld(o?g+yL>fr zoN_EA5JRjdEy1atr8?N<&2~LUfg^jbfk=?RRv^ObpI?jgK6g_~54mH6kYcd3&aM=g zz^$fT&*cDaZH46CbfuGM&%5;oLuab3ww~3A>GyOXI$2m(Q(6szS5la6m|$On_}P3_ zzrSch{`(9QxMbysg@64hYK*DLBfB2Cu-;1R0;ku#__mTv6xW$cA=bdb~xW7C`nO}MikB;t4e!(?jb#j?g1wNnenwbeKMCo?M zJT;N&dg%Z67~S3oM^_&NTb+yh%sS6G4m`FxZSL#*@}Re78PNoQJQ{yLL3cu2Qs4ZOrLeKr9f6(7%A>z7c&8^a zWt1H8TEHM8tIH^oZ%irl%0B&~q-0-bs-QNvn4_S0YWvKYaP`e*#Ux(00TtKmOWw!# zA|$?ooLjts*{__n`->6d~+Z5uT#6|RjbM|CkudO%Oox6&1-Mz?_u%y!5N*5 z22D-oA3lq;WoA}+AF3CPkAz2SDT}m-cJ~gFqoF!|{6{QRe4Y7)5FO9w1ix7C?uUK9 zeg$3gp_-6HyrCCupfZ+0)XC z3O7Ma8}Gty3Dpp>X90o97rK}hJ3$WmTp6!2Zl5oFYmv28K2iERFlh?uIN9A8qK8|K zAN{50Lw}1dFg@VlarIKkZZrDDuZl0rgCv1z&TYRIWhBhp>;8ni<^Hi@F_JfZp$YzJ z+<3wCB%N(zYo49h;(EPLQa~rqvNJ9Im%Emg(KcxF7)1hc@95^-nZgI^7a5%r9jT|l z!j}5l;F)bKJi&f6P08d#=JuV$G4GWZ`*veE8>U?n7PJx^7z2`JOC3k7c+n=67Dmvs&DCy)TEeNgMovG3_V$Qr2kA<3i@lr zePnrqPC=pujjL#V{J$6Vy`EQhZX3Q=bg{Kr$=l>;zs|xP9o3 z%pN0VO3<;VvK&Co7$bGA^lmSTuKFzd*?xljxlVt>V1wPfAk*~*=k`>mGLE?Ty$PMD zKi%W^nW=ZaywEj_s(mB06}7c7@e*)V$Yr$t)syxMI+1{VhHN|^AH1`+|A(=+3W#Hg zwm@+PcXx;21P|`+!JS~i-QC?KxD(vnCAdp)cOTs0P0qddeY~&tIXzw7)!kLqz4uys zEjAqD?0#V1W>6=B$;1}TWO;4|!noT8na%SqbTojZ6jm2=TAWT=C=I<;YTq60&Kcn* zamVVnsl3R7u4cDYM&t9DXsa-SP61C{i?O~CP9MIs5Dt&N%YPFv-XBE2Xzs1HLeY&} zL+EI}Aj_5wD={%|^{WGj$H`0X^xC`En^=R?Nt(0s~pSw-hXg{f*Q` zm%DO8)?G3hlo5LNe$UlKA z&qc^9nwSf@=j{X5)9ozE0pl`cC|{!?lLMk0N^r6fFyIS?P-8Ha__)|)hpg>@4LTtjrm6e&L9P>l8F{dbPzQ53Tv z&yXreU5Q<%thrhJ(I>lxh$dy7>7VoxxRDIq5n}*LQWxptxm@qIksjK58)LUlTFhvU zYVljWikQFyl$|dnnl}#%*a^`pK3c%$NOblXijuJewJjcNcp4q^v^mfPPS1|(Y7sS+ zmo)iHHjARz?&PD}aq|*$JAoOWJ(qs?+ice9HHViH^V^LUVXvI}FHWbIHEwOCp$!%Y zwnQ*y$6olRc(YQQ0?K3bQxbmk`K#Pu9+GsoYi9j7q{Gf9ydY{$(OlxLojDT-$m&aX zyBu&sh=4&9>lMm-5{^VP zn=C{X2JtXJYg1~Fa8$!oW)`-oxToRxUzkkd6!arOZ05a3@-ah0#bM5O)J;>Mxcz~T zAHt=50$`A~=T9&`j9I-brz3BNJ|4!Ke&3Xb;&=`C9EReQ$OMU1-Fq*Zm>^$_kE$MO z!&NlQAGSM068r3;d^@`v-r5oRlS@g^`(FME0P*)GW28{82^mIw}#P4M3{ocDX~%ysM4l3@Ok zO6*fX7>Ddf5(mG)TvkxKUG7vwbJ%bJoX>zeIPtN*ZiuY=9A!T}&yel=vHu!KtAgCF z`GN6U1vE421N9U^Szdb=mym@yJQ@WW3hrz6Z;x%*^e(9W73Z}Rk46Gf$vj1~imPsTz;P+Dy;n~=9yp>;sNi3B{77s#M#HSyHit}ac_ zpI>nDp?_>C%CIBj##s0G?72E$?nX6>+6uq?y;xuL+$U!CzI6g8Dc^mk;#t3tkv3o0 zB*V46;JeP%cyM?clc8h7Coz+GMIwxc%xrwMa2u_>Kk1W4`QeG1bZc}upkc8!WLNx3 ztg_JKQ$ba63tQb`r-OM=|I(vlop3As;ya04_St)VOuQeAVNUPfZgVBjutc-1^7BM7 zro%v_$NQt2{WZcXK3=6VE%)#d0+vB^X&iORVv}FGheAwK3`!vD5&P2DJ63#H_%68k zP?SpPq?i(89GP-No;4MjU-;;Av*Sf*j~Kb^m{gIm4d(cbelgj~pEB?&MLtwHA)8Vy zh1~Uot@6`_N&@LTjO={Ko9Pl&K-2|Ba$OPNn8^qy9 zYw_hl!7!JT>k;TuJ~<4Xb=!cOcJ-B-V59+=jH ziBpfj7|5JI@5Loc0TUv$M+8qNm{3}}J3*pD#ULVx?{M~lWY%FY^y7r~N#t)docVuE zRrD$3Lzq>0pT>_=DhjOS+AR@v*R_onZ%7>2P7q;`2_lpg>tUTTU4PRu40Vg04Hp)e z3CYL@#In76oZ%t!tvh7gRLFm9(d+f74D6vu;WOLirL0dx7euu>r)T?p{+)Sx5#BqD zU0uM;D~A_XrMV_=CdP;sV`=ohRlf9xD=scInM3Nzfc6y2W=9M$!Z^0J!8jhGLa5E& z2>lJmuD|wgw1_aTlspRG=*PE&S!}`4MR^Jnzcc9)>p%9iD`;UKLVuv*|vX}cCQ(~F9!wrI@y zs(_uQZnT+cS192GCta#Yc36W1=y}B>6!6AHLK>90M{#Bnrw$r@0|^{Ntc1uOEXE&K zeSJVHFwF z-}Nu-Zw8@kH--O+roa4=?rR@#T&Cgyuc!9xk z4W7%^dg#5TZBlJ~tygXMCa+=ju2HzmuTx+q83+=_G*GV+adviY`1pkA@66RJS%Sj9 zwk6vNYc;cm_%0)qPRD`O9SjKMgIAgq9HLdY1PxBHkx-(&ooUO?Q}OrzaVislLgEmeu_qx+jld+HCN=Co-|2cH_!G zq+y6N{BtwR)?_y4u?$|2B{{8AbY4E>3W8MW!WZ$~#Ur!5>W<66cPcnRX5G-u4bR=*p=q#O^!CZxNgf$ zAR$C=Fkmq976UkwoOC~?k1$i5JnPV#Zb8Um+HH}DNlw}@%54}*juRz{E3&K$K|*1D zsY;ZPk=|=4*PkW1b}|Gd8(t$K*U4YfV@vQvu6OeIq*opG)1-a92A3_kG#C@+2OScZ zxV~(!>F)GvimzqZwjeVvFA=iPsEv3)JFOE4(rDEn_JKc1Td)fiaiG_s- z>hB-)gnESWAUP=oV*UV}EnlLZYQ3;#$d`hLb)MF`&pVNGvc}4j81+~MDd}&}!}z_^ z8w6EZde`gpPS<~ zu&1x=wSLIfZDA2UUvavnSS^#>wWz`qAe*g={TiU!4CLAVBB;=3e=P}S-U;R~rSxtf zWGSX)vOZ9GHvLgxnFw(q&E~E}d{r!y^5uIu14f%++W0$L<)b54fWAUXDRGi^0YtIK z%9B~2UqX@=jJX>uABzdh!_l~jG$oS(6b-BwrZlqq=Q|2;3_~$rGS?PBj2^p9ys@)$ z7!x=_Xsy|Xjxv=VaY{PQYr@d^X@)F-tiY81^hQ`2Q{&Y!Tm|Wsm;e5?*{;U+XFHh) zDz*Rl7Q;^T%8gz;He@=eM`~s5H|;85)TiC+@_A{hVQ$u`o*?TA4I0VwRlK0Ue%;|cBj2+6Dm5_G|1J?*y47$g4e`TiXWyNm7!hY9);37QjGBs%OOb~f^u_gGJJ6B^1OJq@B08}SatjGN{pCD-B) zg2-e7m{9pQv#lkKji$W+xpuutHiX_}psDr8&v^9i*g>4@MmGaD@47>FecczqGcvhj zspKqAg#@y5Sy)3eBp^sWwwCv4msDL7z=v;%6%7ZBRN9xP0qcnBTQcID5A*Rw8X{-( zpJmI4olmtvMxF0Vg8-|+3}*Csa)l!n5c&?Sq#sGQ_2IgxoAhsNG_%`ncEad=F6n#8 zcYXe5(}{st9!sGwu1#ik_~K4YOBG=$LogoN(vjPl4)axE1vlCRGBrl#>l3j#1L~s2 ziBn*L-EU5OMnm!}W%QVT6uJcqGVypB9|efHYXnZ)38uyz=eW=@3Ucgkn0;fql52}G zp!oaNt5huWeIP^7uUk!9d#qGXS9hk#N@JrQgnQmB3=BZR!NDn|X7YPAzjUcB=E*@U zry2N;+Fgp`dQ187QQ>r7tLDsgrrXMa++Ge(CVqX*JTPW=?q;KBA|DwBRZ_Ewg3@Zu z$KY5lPqoP1H;R*UVNA1w?myw}r$y_}?%$Z%oG(nrVMVsEFwU~xp}2hsk7prSeO}nx znV~>51={a{SeU311alXa31*|*As7;ts-$u&cV!DA&|vtSeqT)KfvO@Jk1T$^z9+f} z5l+>?b@f^0)S~IbB-1kB#EeD;OrqH}xis}M{(q}`R|i~BCCIngppA<53cKr{n-qaf zmo39jcatrCeX3Z4YI@_53gJK551qZ1a4UKs_Z>sR!uAd`?fwFW=_x6pOifMy0ayhJ z%wOB}y$6#BM*u^}#C#*SBWOA;w%KC0ps}kxOL3LjZ1;Wu8l=$>Ai=>c72ZnEP?k4;Ew0nb2M=k*EEyi275qy71_khvxgN2`-EdcfS3 zY`Zv^X+TX#GcG^B)xHj1M)Mmw%@N5~N_Zle-(}Xy92^F)Y40k?;)4ELx9LHO`+d`e zw>C8E_oWO#H}+3Ek*M89K{<-M(&u{dUXZzO7z>p>6%CCO&G^O!(caW&IXwnz;70K6 za&R0cg`&bPGRbTT8E%LD4#a1;O@bPr0wh!UDFLWhLQsJ-fYQGsLvyFY!o>~$Za!_y z+X1ABOA++Q-BDF>L#=?>Yn9cMHSTc9g4&eN;4`B>>Y;CF^ z5U-`8JcRa+Fa^~)U+~2dHJ(UyJgXxcbi%20_~?T~L4~LJ7&Vp4DEnaM(tveDi$p;zk%qX#X41EI=>iFT4=$IR)=jMxInihQqEnPZh&X^4 z8fDx=H81(Sk^mN!fg%m1F{UPjD~#2LC5+vN!y!M%>opa0gb}UG+gi2my#mS-k(XL`!a6}T;xH^jUEE})KWAzUhDBkJ>X^DdxiY$jC`AX!|(I` z4TgL>Y61#^`30&GJ{jRFu;9cW`9`v3eGA2BPe4>i$bYkWu=z7W#)n@!vfQV4->3M! zW)?lga;!N8C~i6bcysf6AVQLIKvA`&_{blxKh3^fN~Yy(kLcUo4P5`1w^Pn`Yl<0< zeyAZ9=ytxH(3O6;uh_TZ=qUTtAP3G1JGtT5jBRA1XYXyM2R}~_@Pvfkk9QX(iP+Sz zFkcyDjn@aqax7S$lH@zJjc#C0a-)0+uG^#M>u={?XTw5^ON`4jx|23zZR<$UdBWP2 zM9QxCq=C{aCdQCCxcQoVCMw`d$cBYPG;RQ^WZX^XGk(mUqs+XBZE2}NH?&~7BWUXg zYI6r904dJ+WCS#&luEn)HQskXtlVGvqFC{nPHmoVH{K8|TsSnCY3j#>bt}{FWxPh^AJ@B6OU^(7Ig_b0CBlv9k~6#E z#1iSq=K^l#pPZE8FuLb}Hj)+D%d#cJ=8xYv?~7 z1)sHU7aBH3Vi63qF`D)DU(@2m#3vShMYMd)n+W zOr)Yp%Fq}^AOaHxJVBD(<8hu1o8t1Z$Oux0b|w|LU9rfazM6%lfv6o4t97o(J$G$# zwV@l(So`oa4WvLJ)kiRDdAJ^|S*v&P7e66pu|Nba*~F<8WS9E;^pII3{^M0Ft3crN z;Z7zU_7Ipmek)gdpJx|^(`XlbnQtcvUiJ7{O{pPQ)Sw|IeaI<~PWuiVKzXB+l@H&t z4Bb9N)^9(6Xhb}6@$lF_6Iwf$axiKRuBkpTka}%dF8<2O%6;I`n8V#vs-+4|Po%$2 zFP0b5nG=~VqkN=|Ls6Ehbd;5-o2*a5b9VTZ_0@-jCkWwyyski8koX*{*?`@>r;xky(qm2>7xonj@`C+;11x+a)zvuC{I10 zX<|+(aA0}R(_655`JP8xvPHuklRuV|1eJep=?FTUc3Y2$NrFK86I*fn)sps;JANQd zQ{q-+h>+Du9EjENK=`t;N}QZnlwr-F-3XX3RkUMYHggU=rx4W{m!zCppqGNjxI&*qvUW zUKt-;K_w);f^jq5%Y;g57VEriY5+MnJg%^Gz2}K)R;hq4JRLnKhAiXbdNt(Ngsi2y z*P48}u=M@AcL##+=LQ3Afe+d|lrcm+9=Ey1Lfv-+%6@yc6HZgR>DoE(*!v@R#o* z#%!KQM4f_7>;Q%IHodO8mW~DBz$lcjBvs7JN^F0_iK5vzSY2L6p&YdM_)?c znb`i(DZRT{Ynf4DN zO|o^|uBOn75wRUfdX7_t0iuJLB6dm{`#7Dc$*|L(b!d+AZj%FW=AHEbcrXVDrE(|f zTI61(Y{&-WSg3!~p}Zq-S*^sogv94}izIn(lL?u30?UBKW7z219Ij)kp7G+O*C0CO zo}%<^6lHg{3gXBU=Oi>M@uN7#`~jGk={gQ8HcEF~JP}i3b+oHzd;fFfd}>?q1;KLW z;hzDci2!D@Kw9`gnpq$^lsc3aF)=YHNy6T`H1AnrI7#@Y+dgW+nB-NtEc*%@J20^E zEAL2w+P<>qjaohO#1F%yd`3W=OsWvBTbF(*U3<+Kit|rnT~1~qjub?ELer(QjkO0^Ue%A5w$^VXwbJE zpU0XFKH)+?PRjk6Z6|RQcr?WM3B;$~ER-}lQ#uRdQAal}o zWVT2B1$v4sCR3$usse+Iqw>>3eu#H_R>rW>v@hCyg{I)I(1Rt@KlW;3Ku??#Q^%xy zmNhSA)Mgc;Tgo{b1?l1FbM3}X;kNTvgXhhm)IYElt2;xZr-x&{GU_x{quV;wX=eQ% z!yAn+VH||d0(2E=@x`0fAt`i5=q!sK=vmhC3=+^s0D~Z7AozY#SM=)&v{m9b@+}KI zn{sPc!VWV+7-YimF0V(BA!aCfFFDNwYWLu>fec+=6&*TI9OOdnUz|m=j6Oqk2nyp! zYI+sCJ?5?viTjNsF5jvE3wKhz_cLoQ3Tf%oxD-zXB@!~Ck#-{EIXB*x0^7K0Q#<42 zdSkPF8n(7f5+206GaQlpmvltfC&BvpF4qf0FTQ~N@ve)lXW+M@;ZIlthTQxXY49J7 z8+c#u(tag^J^)Jq<-h5ad$IobN0dkmP)iYcTV_&-|0YAc6Ww*n5F{QBIH^I`_MQ3s)w2LA9JK`i+69C~;8(4=#z79I&@|jd)ei-w zPMnDCij{5zZ7tr$kgCTJejTz+R8ZNa|jqF2c66;}9=GFFN4aMN)uEgjM2gWrM_ zUo!`mVDrI`&1z6|DFdq{_XSwpgMGTCQ~T&O*G`3RL(jbT{*dk@A{sZoPYEMk1>s)F z-Z^I3vha)U_;RR8jA%cph$MqzF**|v$H#(ypk6+~pCOQmWrQ3KN6sHR!Z1o!N1|6l z6|>_Twz5e9PjDOIIk;&aC@WdK?++&_$1bjdml5~z0D$O#>ie^Z#p-7Zt9u&bYO1!@ zVz*>L`1bthJ+)8B$2ppLRGM2O64uOk;2g|%yqa@h3v~90RlMTUj5ON0K_zL7t)IB^ zo9yive{=u3?}{J+M*5^8!)>^5n^0sOiMf5h(C~hLIPl6w3GgO#3qF^$Zoc+(29sdb z{s;4N9MhRs;_Q?EfmV3lkE9bffKUaByC~_UhG%3Z%S%nd8MGe?2eLT2F`R>2o`9;B ze-;w`b{T2eGJcF=Hh!2ZeuEJ~CpD99*FcbEuCtltgzNS_UYXy0{|d!Q2CiKKs(A>V zjG`PU5kKezYxpYO#GRYAc6={V3$;b+@f6|e@(g9PFs29;M>VtNH$g3#I9h8~2_=uz|z+9XyzL~Ngh;ON&{5IxkUSVJ4xO=M8>JBA6iBj#8~UhIdfdx^4LbocoOtWwS79ru=aIKMQ&D^`!RxF2H?o& ztJC#QukW-U0eJ*?Vd6-vahVH33E`bx(`H~1(2MR)#;Wrgr1EM(%+XS%H%Tl)uE&?T z^d+-U^~wsR`!j-@BKhg`54@aT*rcyblWc3gG`zF#6 zBp6!>H`k+=^0|=HjYvPvR~lT#GuV*Rl~f^tA&@0dELISgjA$eTa^J$OP3mDl1|NM_ zzYrfH(J@>meTsSzjcf2Rkf4Qma}$iPy!GH_Aq{#%ZaSkpiZhF$m`tyv9I^qwoVxZI zaG7W6Lpr^nulv4dx90>)Dw%h&;Y{a9h>LJ-^i~$&P)ZA_i_R=2lX|PR6J7Amnm7i(TTPbFO4k+ju`K6M?si8XBqe)PUFpOk98C>qV*Ka|(0si+DRk-^bTUXcpOg zS-O+bHWk}LWoKlh-CHQ5ALJ z9P+1J!{{5Su^kqRm-okqRjA$)`OFeX1_+j7db0MHBw7QlP?)4r+*N zog>=(D$%xC$0Mt(1l6*>%-q;N@{d(Pj6}8LTAwFfnZ;;9B6-)yA<4NT^Q!mlgc<7T zxJ2J8s?NCBPkqt6XIm5cuUpic!=K3`G%)CPHr3_}$lMb$Rv{C?7?L+ymgLSWj*RI7 zDtAkv^n|*VW<-rVW0#2NcN3)e&$6?tIlqoI1D{Se|7^vXx`+T9^E z=C-&^nVkF3KR-NZm5W0PwJ3sFSW?m z_z`+1B%8!XXb{7VpaVfGM6^7Jrlb=+#0(ZqN&FL{9tu>HS#SVl)=%~d@=&mWF`RyJ z85~jc`t{xSOjYt)S)p7W{M>QL?myuD=K)m@WnCrdwDr@^Q(sO>s~uT7aAQiUXgWVc z+F^u-Ki^2;`n4M^0=Bme)xLi>dJjr4tC8JKNlXkpJ^gvMa|SPsC@mbDir#KZvKTdh z6_6^Gvb$aEGEqqcDd&$X?f>0g2~~0J)oV}JwY%DSY^8w@Yet+6T3G&kNYimX&-F9PBX*`M zCPe*7P=Pl$&m$0^Cy|b= z&VhF%-Xr|_ivQ6B(A9{73g_X)|J?kpt`1tB$GEw-0e+L0x?y+&dp%JfU}|3Yn_wq*lK>_O~!1~QC=Ibz=@%){@PQ^y)M>>D>)2nP#bLZw-~ z@?B3f{--Y=e^kIHhRC1b$r2>dtz?HS6; zZX1kAM4k^{2mdtZPYB`}ynPq-ciqxI*-$G!C8?egg4|w?^~MRBSg#93}|$l>b+1mAo5mrq6}j$dC0s>or?J|@2b;FDX$QQ zGT>_dN+cjXo{7;9p&)+t{qmHdRGO&8;CAci_og|OdpmeY>GNChIYZ8B2lp7XE+6>x z)apSMniJ)5h9I>Fl)*Pem!GY(vA^i)u8*HpSZ(#^e z2kzjh?@vkcJtkycg~e>syxTXfraihBXQ}1}$@5ldg9YoGX{g>PN*RVLkxY64$+>8% zZ*LrKa><}oC|OS>$cm^xxmPsutWY3#_(fkbwxtnw| zL8iv(v_fJsaDy{uwcQdhNxhFIL?c39GnVCuq@z8|adM?JNz%WBsFX|7{#MEZ_ZZ>t z7^HI0Ec8Xe%#qKL&%fbq<_>ZP_JcvsAC$!jsqt$DbnAP&5QFl{cQ<=`d$TPdIfl;2 zNchg%L#r>rD@qHU%Tx1hIglk;)UXVNwd*ByhL9~1vL4ysrFw|$U+&Tl?!f?4P{Dc% zU}w7A@?&(Bvy-nLyxWbXHoZw5`r5!Rj9-Mc`r)4JUSxgy|KMSArVc0HZVv$CZ)VtP zGqd`HD(P%BmF7fMhNWOOHv5Ep;UnKfm5sQd=K_|VZvHy?#XpjX)Fm4G8B=pkKeIS@ zLj_0NX$P?spEdqA&=Uw_{L?6P;=DYEr23bnv}`RP^z@Ua)#xXpCWa}%0Mnj?XEaQ{ zMXdiT4`DZ;AKUu(pvxC;J&?8wc`IA8Q4U#AS-rm2BBMPM8{yLq=^LS+m`<4EMdFXF z8V3o5Vi-x1cC5v#s%DRk4`LxLTqR%l-wKuEk4CwC52H&W>C=`FESVZLG~oIdo}Psp zB^Azz;*5yAK!yS$g*t`!2m#6#2zcXMeavmfp$kBs`%fB)vd?Ucx(nD&g z-CT!`x@lR@=XGVpC7OO?gv5PqT~Zq$+N#w<6muPyjK2@X?oWQr+Za9!WiGx2C6nix zFfk;6qLb0P3kaJWt~|79*DlL)3nCh$_<&ttaoHNUZwA(U$!T1kONr`xo%*8PZ(<$d zl!vUEOpRAm4aQl(_-BUKsH)Jr-@ zO{d7-s5w_Z%6uZP@{3iin0z$t-I*y!+vAQSfc+kO*(j<+-(7J?=krW8vzLFuE!7Wz z?pSHI(XSInZM=2JSmY@SEmfxB5Ut-i#B@@VO_IaQSVBD!p5t#7KTzqlAMw}ia)xhJ zaKVm}!4lAhn$5bBr_#{d5mmeWmcW7|s3nQi@&)dCN&R>+(e+m^eojykPK+habJAE>;`$|NAN*FUyiY*oKxr z%X})LcH%FZhvqJfc|LWP4y{GDZr`=-U1{dnn-=^`{Ht+^IP*uyfQ~`j5l){dW1QIH;b|m2(er`|AAdC6q1tM&+u+?-jNUgOn zhe$Y?W1KC;J*u=DBun6ytOj~>PPM;Ce-j+>sG?O9U& z)knKO?`5IKj%bWM?0;YE;9epSJ0B+)HkGg6TbXuRvcZq)_iJc3!I(>m?iWw{vl9#fT0BF@#4bLB;`%N>Y?Xeg1OPJ zIH>G>Y_Ch`%81KZ8k>2U9)+eWL6BG792zm;4f(VHzn@B2*ts?l4*7aYN}72(hX*Gi zNDz#4NfLhv`8p=Ck_Frff;}uD&I+;zA!TWv8#C;ivAS`W{QU>qLW8yBxpPr z=%6}c`QuqXuAWHt2N1rzqQmjV`n;wK$!4wj;FgJrNnKRagw-JJ8>-+#hz@1B=sCus zpxX*{=3hxL_QG7>=oDdDr!HWRr>TXR(fn@h?+@_|Ul3Eb8S;K?W(*+{J6>_veGKWs zdHW9$Q3r5bVZb_31wIN)fgaI}55|h#r&;{j@Vonor(A}9JKZts zF?!+YwRdR^_IpZ-g|Z%UjFHX7a?;x|Gd85AganKX*Lt+W<3@1e`A=k{ve(B#&R02p z;O?;Hm}+#^lEX}lZYXym+V0>F+lTh#hv~ofk;}|%dC8Mr zQA)6;A|<=El_yAa#yyo~J!M^F(B5=LGH_ZVjaih0tfs#*s=E?AxY2ans0+8edI&aP z8!|{Q3JZ&W!sxcJWOY5wba4ZpoVdqNQG0~fM4Pw1`F(&JNKhC**Slz2w`|Bu!|C_g zyu~Lvh7RBeYYN$$=Ufd5nEO8K)^mj8g)lpIWB#j3C^`(R>D!oQ0lH%poA(Icd?@bh zZ$rRx!6NJ1c=4l@a<=qx-MW=+_d8_883ZLNtzE#j>3==)n<~*aa=U|Wt#xA6?Ihe8 zJf(heJfFOIU!D{+NBH~sf~e!$k&OG2DIW(JpwWl3W!O{-+a3&Epz#EjM~k!O$Zv19 zX6X!nzkN_`!euLCvv_VO2a7_?-p0Vkw|;nk!OJBR`TLih^GejK*-6P39uQ73JLp9h z4M+hja5hDH^+hBI9jnadT;seCl$)yVHGWBDmNMr#fuYhS=jmu&fic?YnBLPm!P;$4{REIwGZTL{aN;=RM*fFYr! z$|U`TPE3}Ue5_D})$}B+^;LX(!F0k)W$qVdLo7i+Qdk)5&*4h(lQPL|{J*)P=_s$| z9e>B)r5RDXUdaIYPFbFY8lqih?{m6nFnrq3wPB$qYr&cNv2Oy|>9`RkU14FHir zSPpBT*>x@k$i?S#&;x_zI3ywN$;#+50$z4PJ=ea&91<*$q(%u4}dsQn7Zq7rgx{PqC#>sbdi0z8I6ut>&A>JzsWva+bJi+p8U zg*94wEf%hnPX(l2kr%ve85aYlKV2!8#_8RuwcX|Sr*PWz$PyG!Qs{VF@QYW@?90mG zF>Mkww4-L>8j88)GZslDs+Ve8a1EQf@wo0!!o!6OHzlWQiM%kIEVsr(rYa44lKsHH zR48jX!o+#2jEu2bbPQnp4a9v%-+WQS&BAjwGGt!ZS9f~i^|U8(>+D>6zINQB*+hb9 ztQm&M)37s$#`EiNcG%9GgfSixsvu)&P&+V3IcwLGG!zJp&V>i5)#^T`fAlo$b&=;> zO{UY^j#!_!D+OtRa&?_-I*`A>7|9^2;m#G%4QZwYH&hges=OXfB0Pm*6o>+W?+XYj zDtCdw)i^(*a7suk@H~a_e?B8Vf0jDW^&bY*0v_(dO&(X}(U^@#&5vA2C3Y{>UCVXj z`E3I27Ko#a(6Z71odS2>_*3A84goe4{S!2^eOoyB?FYVi-I2?BZ!I~|oUo&$hi%d@ ztgNd(Wgi3KLb7{B{MQ~UF56hIEuBcGqa&9JYGFEY1o#_iMMac%r;D<%N)E1D`FE04 z80!A*B~x^YJBE|ld78|MZf-fHv#WNEOn=OY`8^jZKev=LWG8UiSdCwybSbI80t3>P zaj3$7IqFS(ml@M$NVW~hN1!%dYkFsJW<#8a3r}eQkFG8F(8O&w9D7OmrquJHS#g@% zv&$`pQN(;Y>;<34q0o%HB?OOq zz@dVs6R&~uTgC2cf5kW^W|4QqhLzyZF%5E_Pp-zn3v$os2D6H6+7vB+ZmCYoQvA1s z9X1HYT@vA;tJyi=N-Bw8`PP-a9XHHIRQaC4UKPz&|BEQx`T_ZO+nB#8@3tq?tqOcBmPz$+Kh?$;xzH zJEthe_Nvk1jqdJoRgD|71-&T5FAWT3RStS(`thOU$3GRG$SqBpi@0r|?mpWEW8^Ec96mY) zqK%A*oVyt0cN`RtigQ}+MY?H0ddo4NG754M%tN|_sep{*Qg->=6FS)L+zmjhTgqPh zY7Zrss=7r-FuHSb>Bu%VJ9b$Gc7aKH7)1B!>9G}z|Ki`jKS3}AqwY@W28k|1S@P$<3xypEV1MyWV(Kj-ApS1~Q}= zOt{7GP2(dR4b)5w94S(6pd`Bv+N>gpZ*p0E7-htx$U?t{_9~#_48;spLR3amMX(4o zPVMSya6u@E`GjQ>@FeUKB}V+?nnd}<0bP6DJnpg#jh1Ky564??cIw_N>+M1v z%Iz|6%y$DgeCFGFeNQ-=7*-n&zC9VMeN+(=MIXk3-ezE{aE{QseP$fP56cWc*up$I zK&3&FgPt|ZX`z!U;4j~Y)3ufW;zOqF%S=Lm#%@PU;ikqOc!xURkuP>|G3e=LH>wFh zz=PmHqh46R0I6lJP-~)!+{1*Stbg&x_YbnfYO~k&u@9t-$eQu6w;&7P>+4h0%UWC) z^lx8GWJX<s z99{OO^8b#};p=cIt<|Tvyt9=0Av!E;n)Z_{Vb)jR3UuNZ2 z#P6N&EOrA^{d?SODGMOzJ{0QWvmydj2}9IOOvqv4j2o=hhT(cQrQ};#_(L9ERqt$z zdwig=1uOHudNiNELK@7KBrkteR80&chx* zf1c*a!WsmHk)Il8S?Cew$nsM0) ztZth{2cqM1cyQ*p+p~SVs!{R2WTzU9>vhC$M+IPUP&pF)D(R^QG?%hfGPunKzrDqK zvXLlypN6}oO-R@}lxe++Zi{VG2}Kju>F1h~noW|oE+UIvbqIvk!T4GAMmaZe8&HB2 ze_^9llzY&}xQpsspeo_Gt;*RmzHyY5RZs@zogntt@*sSbXh{vr3A$!&1<@K-bHdb# zFihVu$Fcg(dZdp!f0gHMk7M7vacc)sE(EB}IUJXyl&M%gWAP4y#8xECAYIa(d)IZd z9nSlm8#k6wHW3G9Ho^w_YUtZpdS!0tg|UKaI_0H-K9<~Uj{M4e`ACt?41paQP_d~) zy=zuviC_JMeEYQnYp999BEdFx;L${;!EA^&sGQVx-#C~=MP4_ZeVQRZ&!mvHYJZHCpa?ZN%XesVs2+@6s$DjPo(65?5QsWg&aHQs7U+K^yh#S?U-qfj3 zNy3aXtR`~(hgc6g=86NGMH77dj@8Z$KB7AqVWmu?$t0>Zv>R*~^IWtvTX>3Ie0~gA zY_n)Au1$|q{PU|Q_?;dqBh^L15mJCvUe_C0*N899#-S3I-T0v-I)|_d*oUOK>Vbaz zvt_%fzVAyHX$=P)Dg~X9TyH7|s5U9Bh6J+6l(647ceuMDalMf$NOK946Dd;}GgV8? zVo5ke_ioxvB{Z!UvM;F;1nSZsEYF4e7FMG=fLdsalDn zCJpucv?^Y}hSsE&pJmK6V&SIm`LcKVx1rs!@P0g7q!qH{M5D&{g`rXSecx9(nGRgd z(iLsBAL$4Wfp$mc7k)XT3G{0v!U#jsQ?uMCtv`_>ca*PBdx4%m^Pb=XO73x3qA|}@ z-tRs7^BuVwh*q4-YC$qC4)9o7@wvbzAly~t+Z_5nk(~cVFG+l>3#{!kAM6xjx-kk( z?`WVXxiQ#K*9{#o^$j7%pZ?jIEsPaezdDw7bYi!Q1+E>?8vOEbKDE@u4zoSeik2uD z4pl>Zzcc!>)IEnXXUg1fr~cL^5UCAbXk?mh$v?jdM^;O=gNLxKi(cXwytoA|iJj#ir z{8YoX&*HUWd)ooxR@v7s$g1IfCKZb=0I>=OO2I+PWGpmqI7FKfk)M8@xj1eppne_DB4<# z>LJE?V>)nqJTf%m>gcP#*D+L#)Ze0mAlp&bhtcpZ3i;U%^##=HArucX4z-q8KZ)it zyBsRUYCa~@v3Ugr!HOenQd%rV^zJk50I>&ZA+H;!0O`-jkIbTRvzi1~JtSI>*T8PK z$9$p8b|B0^ru)xNAxxT>Rsul5p{H$EL-y6a3uFav#Z%ZlG{E@a0JU?Xnp0V(L3nsRh3*gL2s* zL1=b%wlNwM7{^{LD3qP1Wt5-s%iAzsJOR2aRnMpfOXlXuk!!r)h07NqfL2=X6E>IE zE3dsj)te+b_4Ct}_>1D8@1^x^Mh{enXUi68Czsn-*PBYQx1nQi!x^%d2D;VhNgQ~~ zxzZ8VemXut59kK8hDc>Ox$)a#!T!;Ge!=;4_4_u#`shsKrxHv7fml^dcN%#}beqLr zs~7>yqLhBM&a3bM^oeX?9e!3R-+8ppSEC0P3Jtlfh{#OOuCVznJ4T-^7-C5|U^usu zqkP>!_-ijw>+PmkSdagW7*G~Mz(tj@)t{(E81+1A`wpAMnnnJt)O#l<7A5R4>y1~w zixRQLz5b|!Qn{?nyr;S`V9l_wFrDJ^Y+H=ePKsi6-MyQ1W^esB$44{}5~Q{veiSQ^ zY^Yyz_?O}=c-IeH5dXuJdw1@-&oTOhYmA#TzAtriE)fRyJsBx1zrYf+z)CE+YPE(% z4+x1!z$GS*=EZqA-tLtf@nH+8A!Ys9WLuPEivHKV^IR7zVPHT?Kv8O62X<-y3y`_UrZ$Z>LWr7EmQb5 zK}t+W_53a9TdF*&fQ$syDC4D05#KRZ_2T0Cl+d)M>V+REWxYD@M>MM|`Y>T^1U^R9 z&;N&BzkOVqt;!;gWRe)goOV)Ckx@{9c>XGs`w0G=e$^ceU0f>LB8<6?X3qMWmN(G9 zI6E3&6$g!p+5AZ_w4|FX`0;&Z^rj{p>%8Xns(bp5-|O7-#TK&sXg*($LQ3a~Y!)!C zi@kQ;uKQCW^WGY3QNo}^FQVQnINabtV$Hw3O5SHB5=?{*!M9*sOK35B0gi5yG-20qDw&aSR;wwj8H9V~X{ovkg?IZtZ%F|^{fBxkUC#1`;l znzKlhA}1b~J1KjgWi$&ARfC!e`TI4UE1yQs$6s+_@=wWfhND_(6B;&9K?dFM@~~Ik zhP7%S03Eh`i7bjPOX7bn5ki#g`$)B?NS)+CR~Rf$iyb8eIplD1BuJ9`_lp1ylgWS1 z%F&X=;&S}+yBuxu2N{&~{~Te1v)P{*wKt=x zkFTFc#Ml?a*5B7W=AEdO}2}(d%Y;aTWMN4j8?D>xULOaQa+0C(s_d{HUWn+4HQ2wvs zLGd}!742J9glW)cyTQ-bj~y=m^uwI;shz%_UncNcG*|Wg-X2#=$7G<9rS>R8mgD*; zt#&^nB11RMLJ^OrW<7rMkGXnt02#a3;}L;gb6*E-(=5w45;d~HE!dR+dB%&onci5x zaV@EOhz+{KTYH2P7G}e+HNXGEF^Hs^WA=Th1kj?`g?mN)75iEmi!CJIAZ3HtHHSC+ zclx4?PE4fo@m)#CtE2d=8sqrsxUpt}yH00s8n|36x#8CO>pm0fHH%6+?3)Di-?ln5 zFrNm7^2zn^Mb2}$)`_;z*5mj*MRm|$YV#%`Wsx?^oayIR1?Pp%H>U3zDR^aM4}vBm zg~7OVP1E1*8g^7Yx2_c1*{H9zI_yq3N98)bSYPmG+jJLZgRykh;pkehUjRNRV9}t6 zv?c!=BayC~7(tF74dJe^K19wK2|JKiMV??P(+9b|G8p;F@5XTF)fF6k#a?lAk6)+C zuA+XP`-!N#t0{HzV!Uh!eWT2CnkzHf*MCZ;ORlq?B%n=7T|e>%uf;A8CFlJ2lC!vQ z#{i#VE=x&vQjv7zV;HjewTJ`fPZ|~YF7B|ISx;^f7a)0&1V-T#)~u6Vb%MZtfR=I8 zabU-l(j>6C?UDs)b6SuOiJBU>tv04**I2O9k4{FesG2u8yzojD2!AF4=^E4`b?It*j zhsDuOzS>1Cva(FkxnWXzZf~Yz%(D!St?x@alKnu;q0(AH*c^<^wWUhu{5dbv zgXW7op)_Q#au`2$3&UniYxc)HV!Jqne~NuRAuYpoQlRtg(yfComKs1^6&IZGnFP7v z%fy#uhq$n)I&1x2Y(pQr4SXzaDgh4`F4bl*?`9GK0`D6<$-Mb|{GLom5neS0e`6=R z6PY7u>@=SnYtcE^>{(;s>Sgx zOQY?|*HWe?w5N15UN7~+GgLy#tbV`Zg+pVlrXSc>eKNWJTma;(7OScaJxPH0@IOo& zd#Hf3iDqPJJnnug*e3>Li|~b%Je>Ur&CMlfX9y=QiV}RsEx3r>a10_lYzjE&djEW^ ziD5F`P?H(wwD-Ef&sbizYlgoMDPQ&-@rX|OESXeb4|^RfaGjA>_cU4a)J|*Hfj<42oVK2$B zIMyy62#sz=GMW(u8g+S*a(7RT33;o2uyM}qCl$KtxvTXVx1O*Sz_M1e4Fz8pM509X zX>Xx(q_U*D@g!fHP!zq=*i0PW;fqS|ZpxiS1`y<+I7Y@5q+P1oPPzXAZp)K24|8 zJv}O)L}WbYm2IRbXYSP&1mPgSmrxb_C5s~I7L<|9KNf=zr~kFuk8>pWDXH;@gPwXvsPU@Kmn=|6CAHkb1yCue($$Np*m}s4+`s8=ZO{c<-Ke=KPU<)GCoL(u( zISXzfdJwxSYaS~`AG*mULCNjk2=@f3O(j9E^XF16t_5vjg4hsK1?y>AVPSyQn|JC{ zuqysUcF}-w%VoM_v}e7$yQx!K&wdAG6Bav_@p5OCz2lnM$toG%x00C$w7-hIHgI}cmvis95@?>9iV53WNBXL><>tn*JmK78Hu?i{Vj_j+78e2ZjF*W;{YDz zwFnB)Gvpc~FGJvm*>2IFQL1o%L(e`BrRE&2w1l2O#N}$pQzqlPYeI)Nh^YQV*T{3o z5hx>P#@j0$sv#?iUVp8B%RLK!;w<^_H5~&qBKRVHy+^(f>AGf)HdX!oC4#sJ86w?r z&z@0@CdaiN&ujEu4A*)y`>4ijgY1DQ-=OJ6)D-;;icQPoz&tV{O@C3Uo^jeUHnNV` zmP9>A)I||#Z!P5p<%7_UCFgIQ?jSph@O+brUw*5UpO=l7xTIeWk?lE?tCQyJ@)^~# zlLNj@?EV4el$BaoO4BM;^4E30d7eA#P5b!Tw^Ozh6*Ar|o_x$V8K`w-wXO09OhPs6 ze+#d65rOf#3&k*dwa(qzEt8eL5uFs43RN0J2!7{Z`%AY-zCK~I3B5+8%WT7 z$Cbwgtp7OlQ~FCHr7a;5&VGG_9{+Z{NF?D(tfA<1G#i&xwB!Ba-s~z-6_ybdthMa> zihuI(-eP&#)f}WL1zwNudfR?}Im)1FeVQj(WH85v$rn*?gDkMz{=w~g*VHP~cO$+c z+wLpym3Cm!xoQx_N!DcD$#X+XP_z&7Q5DHy$TPq}uVn%mG61lyrO_T##e=g5GVMqb zD>Of6qbn=xo;0nM871lenMT2iib-(M{>E*Y=l4sJkZ)LFb&HIQ85hq&>N^t#i3#4*$ui8-kw&h62_6 z1RPX=f#mLo?UyFRt6dDSl_sO;VD;M=Ol+%VJX?%=k%t)C5zM3Mjc@MKau zL9AzDr$rZdCPkSEeyaR(gF1*(VQ?N^_`Fjh_@$ev!1)!n0zdZ~H(U1Ckyivb+JxR; z^>=bB*}VhiIY~ZPc<*c9n&P;zu+28^tnIP#KRx!)v$4a6a6KXbP`Cju| zv)pIu;}@dlEu+o&^lhb|Uuv^u58o9Hel4ODwv-=BVh^E*E$$h5@0iiV5_o;(JWKm(vuXjh^K)&r{mMQDaYS$+{WS`P*9 zM<~F1k~3kfGe)4_{U(JQ>f7QljV`V5aw(34rX~~4({cwnyyTdaMeMPFi@g zA|m2W>_gCSi0}lDT)M0g{D?yAU`(O&?CIcXs2E&yevr0~wl=lU@->u<`|yTKaJy=F z$i@?$R51CuUXk&b0(o7Po-HvnrRTiHBLoSdN1{M~Qes1bjZuy7c zf)KL$g<6bXkw}f9dAu5bAnn$=`yOda#Z)mjTjM@)GO05M0FKWDNzAR2VE%RHNlSFO zC(7Yk)$N=XJBzv%b$5+40`__t1Dj_ldY0SCdFb`KF^HTh-$vSApDz-hojLGp(7;#1 z6+t?N?^StmL2;0Ri_e+*q|?6%ly%yiT^XOX?)O-u5$!va=wd)F#)0~snZv&ozF4wz zC1pp*jAMRpovNH#4IWWfSNa{T<}#2gJH)6lBpvIxp^sefd*R%}M67d+AkvK+DNTV} zs)a^A&5POR^=cUXU=R5IvcdU+6?Ba>%g?)g`uAJ}rkG=jS+_Zyy#TR_-0%ukmA^Ki z9ae)y?>4UGA;S3z<10ctY>qORAz^EZtNrGxp2&L3?baNS*len*oWaZfRgam3ByRs( zK!$-8%ksIbEXSE!qwi{3l+T{cQ2o$7S(I)dQG+#k#(oTmMvk3}Qr)u`IBAesN;_q7IswCUhPK!KCuvE+AY|h)TXGnNgT_~eA{@Q7YV=W=p~*@(^SyKt~>(+0&2~NKU5?D zIsCd_5G^criibC31DeN6{ zBjBa_d<~wlDjGmo&PYQN1j+m_5jhx^oo%87yz})$fxlk#;i#JH8(b z-{-~ioARj9p@rDLFyED0T>se1`V+=5L-mwDe3t&b(sElg<%^!+bM_l69T4HE8 zUAiQzie#}H*mu)uSW`9BcQS3HsQk2gya=)9cBFmx-*V)rEn-|IN4JiU0xe>76LCY@ zmo*|Nq$SLIav<9f5C46lk2l&tC(F51u_vh4I0Kd^A9e-VlG1sl9T21HDpp%i9s>oe zS4!1nv*jFNZIxJ1p~XA6!8B(;UaDGYI3S8`#7XoxE3r^9#_Q9W3AnZFz+};PKCa)@ z-CYxcPHjX`?CkA*3ocKpX1*|q1j3~jk@s8@0405VTBrQBLxCHhz|xu;S$Fpa&z+6M zt6X85E@mh=`&RW*3PT0hgqbubi9g4!`A!LS6+h%9s)8y>d7lSu%LQna53mS8WaE5t zP(jOrL)%xHJD=lZA*sU&qKPgNNcdUtW&kC=co8q=&6@&~#`t^K2wtfwKFMm)Ae{y0 z=(ZDQFvE=N%@Sv6bav!&7mI7@0cnZRKl7EETe@tQp%&1ewEO4|$k6d7Ym@r007S-^gec>OUrQ((pJR~;chTB4p(FsMtd(Wx^g zll`%v7Ah(#QL34VDd2@d|*;6y=D>%$5KX*+82P_R0# zl2R2B?Ec3qF4+$_b$SFx7o-4L_1RQ5+5Vnavgc}@A zQS{FDR~lZ`0FK1OJ#CiPm4&93QrK%-rSt~4%I$9iwaU3IzjvMFu-T%6r`8hS(5DZ4 zKNnv=<(;x$Mln?4*G7s1_mb?Z`-1m9q~Lunt3{Jp-MzV@kp@_zUnj>c)Qz8)@1`tI*NM^z^#9N)8U7pf8m0+}Af zb-v}L$V7@{qNrn@Xp>3}|~+xUi8}%>J7e5Qs3e(^Fl^ z2d^Y@F*@AzCunY@U->qPMqCRZ;1fIpssa|X)kvPu@V2paOxnsJ=gDm@Dv0y-1 z8Y}PnBG)>3PN}`are&GErh~t-G^qa|o>octA~FDZpnwr>A8u@#Ebi>eMJqITiY$RH zW^Rn;hhfjN&pss|h~#^9G(IwpO};U$aoA^X32c4jhOma+7));otAHzbE8FMPqj-qv zeAduCpm}BeEuM3END>2s);O?f&RgRCD5)?77hha1y{%+pdNEFmURN%BPp-sC>;0p{mhfI1Z26(`Oy_n@RLW3fR0jpCL{cN5`3LcQoeU_l`P^?-rdyxovn~q& zCb>34v*cQ}iJ4xLr%JPw4IY{XG2d>+sr0(Y{2ezefozDPQbEJAIu--0%WnWEdH;z< z$cv=-{!}s}%Axb}ks~^|i0!3f?wagM%AW?AMs8rf$jsCVjowoymQJbC{F@K*=`$0x zdZe>4zNf$f zD7LK&_(R}KQnli|E7y6yirRX3FI$=FqC*CGc4@8niVNM^zsHoBmgxp6E<|2xfI1S` z^O+V?;sJF(|EA(;YD($#5kKWiT#v2;X6!Q9(_S{q|Lg+;r3{9&pQz<}h7e_lkTo66 zY0CL8_+rZ`UuAD)=k`Bcy19oA*IIxE3^SgqUY?rehG1mS#s55$E$V8`+QP>|_ERb# z!#f;F!DmiW!-3mtX*21kV(fW+?*hToXHF+c7W1>Kna|tu_Y~ij9xyd~SqIBM>am!> z9Dfi>6r#utd}An9Ax9x5u_DH5z$Gh)B#66v_J86t1fKESLX=I$*F>v_ZXcf(3xj$c z6`|~3x$jf2>SXT8#XJX<$Tv{iYe8z!4>w2a%ERl}4pBk$q4a6s`-pKP_G*#03AOG4 zPml1E4LlpV*jidW{W?2Th$EHq3B}wIJ#N7bp?M@t{481oPj=oZykr9Xt$+5xe{MeT z(%d%l8RG;o+KtyqxQ9aCv`lHI8LTvbK-io;a$m+hs$(r1nXX+O7KT+OJL_P-7gKA{ zvrICRi|vMM0C^@;NOnk{I>D|s?^L(PD>3Y-82q5Byi&O?63G-FO} zuViX*@#DAhQ0EH8Xi~cX!@xHqqyP5#N2HUyeXVx=$Gkw1Fzz}n5S&>h*{6n4XF0$Z z$BjuE18U{JorpM%GV~@@Kd!uQHr3fBN78PvG-MX3jYCveOtR7K&>We7oxFb40zos@ zRCEtWJS&?voN>4U_Ny@!lmCnx50UJnXUOMr7Wr~A=iyDc9=S4ql|2zeySd_q8eVDI zvUcBgv%WWpwC4B8`@rDshuP-D={erS|I4@*?`gFD%f_%H{)c_ZL4W_3o*kL|4^-3W z`Io542@(DeQj4hY7XJ@E`xEsi+k0)Ety{_j{Q`9Jb>hdJ;(y!O<_bq6`Rhf+&=7dy zl(w)@9K5%?%UD-eC**%X_iqP2LQ>j8^Fy%1WW$^NjrNaSwZM+?&@>s;W%b_1|Kd3* zvsltF_Wz&H{ZAj4aXADL{>$(N+J1LXLKtD1nT=tkhR@}1&Zi~4CADYT-|RpLI#Q&B zuS9jbs7xtQx>+}D-4@h29gP}k{VvO7uj8B&7l@cIoCv9(xfDc+lN4A#mJ%r|=5xj6 zug*RhCq;cU+sI_HT`ethOuJSY@QJQ-r6cqq?#)#0{+8b$IHJ~D0;UI*%ths zm=I+XgOUS{MJ+6M9p~x}jS8ywJ@bxhdPx5$_o?fSE@#fUm@$0D{ySGl_l4)#hmUc|L9lH9HD3r1$sxtUs4z!#Mv#IYLfOr zo&x#?6l;_!xZWmYK+uYt@@!3P7(z@r*w|VX7KYlc9 zO&ncN=Knel=u16r4P(`-hx1?J!L7q_#|0^805l^T z0FUM5xA$KQYMPyRC@@&q8DUK%7>z6TXXOaL1Xu~aPGNog;i)uxGKN~cgN;uyi{_zu z!IaNs09+4tLXMhPhEFT_QO(VsW7~Lob+F$5p3@H7Z9gKQIV1-{h^>&3C}I$Kc`jhf z3Ph%Piq@RDQdedaMuQuGDZy|GKY$_&GN;COS#pcGm+nCzRd&3|Q^Qk9!9l!?NV596fN9OlB?0iS84`a1)YGl81YXKatK{+is< zzt6y{3tttG+y@v9>h&T+VFO!y`+Q(>G3w5Fnna@B?nyDNQ!O<~&pyjPOU1*1StLYu zyvU11Or9Y0P{kljfF!O$GE{9&wWQbo0jQ1`?=bHY$L1 zd>6vor}hHovq*`)cm_F;OztX1($%r`uiRXUTx0he^Yn+S7@wQHh{sM$Zfvev&!2Rr zU9wuRbmBHHusGESY-UN&=mPECIm#LM2Mtf92)il1`72QDzdG^zpLuqEW#2`eOx*gt zFgNjo^yedwNjLXdL@uuu;!K?RNgv&4Mw~iP0LoyDjT)zcZw&sMBl3t?orodm?k`p@4dyjz2k zYXJP`y^-fzJ;Dn#Cyk%161r^&E}wr95sFyy0Dw#VE#@Pq4|SUC&R7H@rkdd7_|Gk7 zgD5em@}+XEjrEqSw3hbG#lp0vv|QF75(cftL+_;F#;}+7FfgwByMPqU24PBr74`Mg z<##YJFpskv8@Z}vSaoYchML2BgJ&mT6@g+Z3;xgdJ>czeDQ|YExPhRDkH8{hiXacZ%u^RFRh|bC~_R zx0-S&Q8%)*+VaMaVe4F|ym5o!T(UWDm|IiGi=b_Q!^c08`2fb_tSpZ6wc(#LQ2X6g zhxsAuoqpuh3|&yUtx+CHdG!_;tElh6*1rWy=bs8h!S+(Ieo&r76?GSrs#5_YD_(QX zWzhLU77G+&c~dpPlaNFb_}9)Q|I-m+taVl_x{eQ2wzoFBygWozpV8F<&%H#QRbj=A zqBz&u^YSS%K(P8j%wa?RMAT-o2Gl0J9g2^Q<<-y=$03b;&j+Un@w*il!ANisGA_^^ zXX^x)y;-V+v`XS!GEY(x^Ux_jaLwM&B_n7|alv-C)kBF}o7;1&Q|O-3o+4!D8&LdY zo}b$bs_T)Rih`~Az1Qh{Z46+Uv(`-Pabu0GUDv>E2efQoq-{6zr~Kg({RzXLf-!jm zeR@w$v*ux>ES;sc|JWJ(V0e+u_EEBY4&A?Toc3H?7Mz|J3!3aMcfo6j3mbI1lC-S4 z3a}z3PR$8lt~r<8B>5bi#Bd{m&HX{qe>G4j2ras$ElB9iGNEnD#u7Hg7Depspg(78 zlnwks)PIHJ(Yb)HDygT%y3bSH?>-fZevMB+Hb^(70cO}vFr86_o>GNrYY&RS;&8t% za_Ari%b;%`b&+^OW()pXRMDb4o51DxPuMcopSRt8^NAhX!1pUxZ!Z@u%z!X2-!H+4 zX$;G$RoJx03?HKwDEQHLX1GO{>{6Wd*K?lXX*Fm~?WdOzC6lebMtLB=`LYwrZ$#AJ zotB|fK2hso3$LUGK=iq6x7L36K@_wqczz(uFG z>qcZDXWK_SQO>R3M)jG>G?>73if@C#QmoORXk#-Z^>KlD!Y|YA4?A#S8vZRvLAuDh8bNU|zcm-KyCTRnQ{r@3#~3 z+4>v2?{32NB#t$*D^Qpnz*lT7`KZVk$egCa7LG<9I%ltWH5#Am`p1%g^BwexyXKE( zhTcmR_Tltf^0bCjMA)zULkWjDpvq}X-*g?Csy0$igP;RlNx3~A_Hfi@97rWgHH7h>3p7rNb z)m8UTFOpY1bRymD%a4Jw*V5ZXsaaMKbrMd4Ms#8qiam6P4Vc)Rzhk=#hdH;O<96=-wHQYz0577kOW==eEPP=A0$+k07sQ^w z@-MZpH^aX0)nSArEsE^8qk*nHKZDn5o`R7H8*+lxPED?Pw=0g6Kz=S;8gKs4KPciQ zO^&O2$~1in9q4hI2U}EI+JpM98q8xe^P_hM4XmIvXWbHxtTxGBhZ5dhYkDi8F1>V_ zqeo^JcFQ`+4vn_H`JUXU3)5o+i8Tkk-kQ(4Ue)pCu)h467!lkbt`%+%!ls0Hr{)Mb zu-WY?1y?%MSy`mUuoy#lcAqGGXivb|$A}Xh7a+x*PM>8S;$oxw=T=H3u+I-F6ia8Y zudlBoK_gU@t_LKp{{(e?IV;RRh}F~${_&?)I7HUR^_Yy6OLCg-S{~%qlG?YPBX?2! zkxkK3`i9kuw>dmAfM{B+D83nW@$GZT?49oQ9a$u3`_pb79UTtHSHzH<9lKMQU!=z{>osw zuue})w@VFfvECAM1dV$}A(((m68hO&`NQLL!yTXe67-8wH1?Mp`|i`JP_$OIx?ztdkjYVQ~2(bFJ;qUs#^#8Vd=?GgQA zDf&g*P!d;Jh!}13WRf@~SpcIMv_o+u&hDQiJ2lu^F9?^GG0E4D+h=g$4>le{)N?So zWTj7+Z)Az5ap7^Oi}Bb(rg6c~0aNq?kG?`0blpz27Uq)t_xE-%e3f?FPwGmbzler? zUR8)8IG@y$=Yl_p{9X#fguF~dWQZ%>0rA;EU2N_%lOr)Z6vLll-iG&Lc0=J#E{jmr z@Nc+5>CY4ikBL9wYZWGh7%0ZDo&ti7PYgljX0NS1r~1V*J=?KSIP9JRY%7F*_| z`R1JcUI!d5He6Pw70CDWX9LN^*7?I*q}tEp$z#*Zy)UnCpHps2WgRm;hgHR7l!4V2 zf1F44jn2=`9PgTskB{|@RQl$Kj-9o7Lh@fWeQI<4jo{s^4wAsW&MMW3u%p=zB zX81nJr`zt1;>sQ`OglR=71wBO@GD}*ws@spISu(El-WLaAeINHFX3vRTMC~rFI|#J z$^snH3Am&QqHS@04MOOI@{|hbwjoTQ!-1`NN6h`K^Oh0&8)RQf&6%um6y~P$^-j{9inAH%{+xi0X zDX0N7ics>Yg1W$AzuU8<;Oo_ok8@fkw<$9&yK2PO*E3j$yqE_niaiIY`{v@e;)nIo zSlDD3xtrpTAJi;Mn-##RN9RU8#K9qaB){etuXbvXBBLaKl{rg9>fDB0A~uO1ZT4)e~-_n}UcR2*aNWEG#Dn9_xRoqBzvE z=n;&wBfLInQ(Yl_qG1CD#5=vcJAHAhAVI_S+PKq18~qmW3B24Q^F#}1tggC4Zu|r_ zcXw-<+(mG^LDzBt?Y1;5X^Iz!z`?*~zxhOKEP6_lpSkx^mk{nygfHP00G+{o;2!Y0 z73hPS&_c@aJ!$F_UpYjkyKF6i7C=j!PjdbiA>zaHaeq7Lu+EoGv@5hqj8sI3N5~Sz zsr?m2Ys4>dwK0fmeYi}{Tqk!Nhl zl2VKoR2Cbp#s6Bn55LQ*(jUe@s%tbh;MyH|WG1_plGNG-Tqn4i}tL&w?PlLPA?+bM3H;q=YSQ2bIZJ8BvF#<4YR zdLfXhDtoR?md4KPjL`wiDqz%lr{0Ujc;v5nRc86CTcAJ)&QM6_t0IHlFS=;Hy+pTI zG4;ny3UOq)=p%m@90?}kUw+U}ISnUJe#=Ju>4tuh`g%4foH$6jSkl34%!yU*bH?f( zAD|A$!x$Nb_q}%68@OeZL~9D&)j@N6i1p~_(=$4r?JXFO6eYW;xp3*Oy1mz%D#!wp z*~CC*8r823$x5}Om-xEoMJdpOgV>!Oijv?L+qKK*0N|p4?)NiaZllR#VKvL`yN{TW zhOKqIL4cDvO4Rg(D`3b;SguEzJru#3>R>B}Oy=Ze{wz7R?vp5vw>8 z<=uUSk0uMfc+qCwy9t=s_rutpq-#Vo5toc<_{r>bhLz?3$DzM8bbXTLQ9ThTRx=oZ(&i1!j;=wexkQV^37yYzPFoMTOlij6Ra6(ONrcr* z0;?7y6Yp%=E(D4}e$#M4y3g$7N5h<4O1J^<_%RP!v z&6Ae<$K2Tx=g$7OXXIqMsxb6d|4)+}5J5E6m@>XeLw%EF%XR$wXjS`_dg%e7@;AN? zN{kERh)9<^7{#`@e6u_J(fbMEV7IOUTzou(kJhZTY_y`1VW}6kM-73EKkk0gi55ek zzg}p=@d6i1VG2ek&_X_vDxsZN^OwwT@+IPsCZ?kFrgOYdxaa_L3FRBJp5g}*FaOU8D$wXTO94M79<7^ErAN)XSg&DTGcR}Uei}jZ}R&4@@r`U15hKDTK?-qL(=KhueL+RVn9!-zdvuQ&Oc3fVLKciVt z57Nad%U2qItQgGn1#J6jH=8cQny^K4u7Cz+lt7~D$32~}9ePVWSmjY_>}3=y^ZA0R z0=Q2!jgrz_^V&q#;s9}G=U0q~gP&m_^YWzeWef^!chQ>{8G3->$nk7xS_Fw&B?Xz9 z0&KU)+UC%FlQ$Almoe&o`NA&^PzFE|ro9-cy?WrTXncXX`jY|R9j7a(DnKupL2=tM zdQrtze#P7e*?J`5$g3);HokIW{~-7W_n%`MCFw|FUUxMj>ljt*(%hV*!Q7C^-Q&F@ z)+tuvgS&eAE-iMzy(p~1iE}RX)w5^hiziQ7c5(}X>sFMo4jw19_a48@PA43~5%ul% zw?K$sTYuiv_-|2r*bNZyov9Y#%-)9CG|wsO(){h<&pN|8c{yY~DR3W9H0ZX4yX|>* zg0j{5gi}{|DHnv8e&|#fnbxy}^|y?jb?Qfu;O8=Nyw|0ZCEcA+KLDBJvxls^5ncI- z{a=PoqO1fslc^fn#Pr$V(GAzrCXNNDzh4djvB3iZaFp|<(1iSsk$KSR(+3LuUN%eN zc%!8Fm?1-7v$4!Y>lp@O9``Q9WX%$#lNin(t3E&Rkjm8kBxwejOkRBzK`OJ|ncV>;93ebrIMOEfKSYBY< zW9g0B0!Ap2^-XD=$M26_W zN_T%CWpZ9XY{-eU0m5oPxRm3-=oDh@e;M9p$Ab0dY@#F@8TOx#GTXfV3z;>?YRi%COerU$5QL1z$jrHg_M0qlBHc|Wx8z*rIF%MU>pf;!-9q(N5tXdL^|t1& zx2-r`=Itj{Zne1oS_~E8xcjVZpG8b*WXV+%WX(Bcrwn7ofW{ZNX&25pDH-PYYmTKf z91L0fs?7V87P!e^iv!W%&=m;0rJHr&qA{@;)pILOT7+O^G%Vx71Pe~o&B&_^Z7s(# z#6C$SOJU1QH(unjU(Js=V~r7i$BKJ5vw7nd$+t{;m2?<&@3%@2NWnWF{EOAHv#nX< z79D^^jV*K3m1*PUKSE$i3|(ZC#o43?ot#d->cw zxZK?Kegz{YVbHq^Qk(4` z%d9L#M(WC9^d>g4J4*LB{NSka$Z(Q%=x9PBoFZ3eJbSE|r#2ze>(+vifyBDf6$X$2 zrQn`#!Xv{*NNH^wV~a!jqM3cs<>FBt&fWyq2Nc}`%vE}paqQugHqo%S_%A`M&?lwO z24^8WU`N?xmcE~nQI;B@c(E|0I$L{7AqOCBa=aAE4+x`aD;a8u=(OD%%)pR5`*_#F zY(lG9j4gw-#KmfVHt}zY){&v^i@V5v4zXBZxTkmPN{lT*4%0rhZg$rjAL5o`UGhKp zY4>qxxnu@s){=-T7 z%Re2a2)XPz!JH0#sYt|8DhW55XfTg{M(`Uz`-EOY?=qI-w0{xUALQ6iVguRDHt;#7 zKq&!9M`Bnj{oH~(9HY9Rii?nx|1dDO010pC<%S$D(v&VE;5OR;PE*kT;4gy}>HktO z+6k$DbIRJ$T8#XL>L#HQ<=QC&FhN~`zb1m8O^mc!q@;6zQBu=*KBxB;KN4#hGq(pH zx)XEBlG)<6*yM=StVSJ6<0ZY(JO;RhY3HdXyCKY}ay9ToE9lLsz1*V4N=d+)dA@pM z&@whv9_zb@78;C9i}bQPOY!cb_JGWTx!gfYSqxQm zEwHMu_4>(sKk)20@Q0j3@1dYcad-Iod`-?u^ifToq7cFLt0Hak#P3RI*KyFdBd59@ zvrXYz!grRMe&6%{za^^F;rHj^%KqHlW`m%&+aJU28<&4$WDUEzv7>l(129>5QS>Zee{)@eD|kemQ}2!HF(Dks}H38dW3_~99_>oWV>rLaBY zNQFIzsSn^(WppcvYl)2MNI@5u!*R#H?5c70GLyPlQ(t30%*csimypq1rSZlY^*jBV zGwo?vSMR5D-FqE93mZn$r*;~M_SX3L_~FzigoU5Hp-jtN8a#mXepcw%TFyo+G82eY^f|X z257Mls1cUa)(DYu*T^sBnWc{iEDwDpycwhW-j6dqkkD^K)6y7J$a7-n4DP`_+DRAE z@+Bp6Na@X3#WGqv#mnK^Cd&f$qcdL|YPe~J#hYBHbAa~gJWSvCk=COQIFVnbIPgX_ zG<6zR5Z_n%a~s<$Ufcb1ogWZvrVHgq&euBB)zmhVhnx&GqVi`g%#GH?mlnx~Zv!dQ zRqeCfu|)Eb_i7&V3R_V?An426TPbBvyiV||`e^ZIzd_21QbR9Ug?2bcnI0t?s(FPd z+oyTrjR^sS6DbPVxuk;)tPn-uml4T{lSB-C?2l9iQZZp&Jv3%1#WuSBQhjouV$da? z*=u0zbz1dG*vxP|&&X(1`QR!;^_OMEzAzswScFS!Gv*k4R!C%+PsC3|D&tdo7!QzZ zz*~#*IGHxkdUL76`O8ST-6bTOE*EoHo_gy}xp5BoS|Z;m*FGWk9*`J2g-dJZK3lzX z2`Ui;2dII$RVW5$XpNPNgty4KkZ8@hWrpeu>CF`Rn+?F(@X0k15kE}t=S@N*u_jXL z;3--RZ_?HsRtTc`0j(;?w+{p84?(9X;G?@P;o|#*2pvtqOw^df#v*b96i5u4j0nQ5 zLP$v(KRW?7@lesm`wJMumS5)6;KMSX<5O-F5N29o|QL*9|ZhJu_R#{gk}-yuO878VvRNBL!< zC__{dqavAKA;Qme5Pwv7fPdKU#y3|#NQ6jxSU^%NvfSV6)d=CDw+W@!R@yPa8j2hr zQ@V*9;a%UpQb}Rwgw9;ws=n=x3OiB$f0VstP#j&< zEsVRn4=%xjdvFgBg1ZF`?hNkk5;Qn?(RCc+j8_j0w1%rJfW)fU%o9o|{u!+SnPx6WPPwdq@lNBma$=cV zKeJl`$=8J1e_pdpGnsZxRCDjldhVLUuwxjUdzD4zH^Hf}5k%@OU*4G+eCeI>-J zbHCnUdGd6gy9Q7hF1SLoJpEi|_n0+TsB!IF>6de}n+quQ^!a&p{8ZcY|~GJ*RUdUc{IQm0`v9p=}9LFzTOMLE8xBkVmLr2$NMDmRqW zC<4zt{(2oOBGp8FiH}ax;XzsQ)fPnWYhqQ~=0!BB3*Ur?t6(g!{i;ubU-dSaMVhK93N6LX4kpQ`=V+Y$jaZE%oA5kKqp!hduiwfM zZ$vlU-Hy;+a^EeO^*hJW?M~LJZvvgEAEHE^6>x}%iKoE}*u7C?#c{=}`@6b&{zzSy zW2XH)|6Br~Et41)T`nipe6_-uT}DptsCToWQEC#Js=ntjP3VH}-L!O89bK2VhJj5Z zM*DTYn`>5V46hFrWbOV$+trXVj3Plq8N8Bc|7ew=eq5;P<(U(RpuCa|Ze-cH@YW8k zH;r}R{rm+?!NQbZ#v$~!)lwQA?2U3(WZ6x&0$>H)E*s=3T`w9wo*d!P%_)scBZ1*Z z>Q+{tQW-1UF)25{Wov$v|H9`$e2%dbX{!Q(B9BsB+wdv=$nRwwJfU*MXlv_q)(d`2 zosU%Dm+9r1go30c9w3{ZV^))6;;Q@Q=fGk1i|04JTr$#PlL&nwPsS(8ZsHP5Rk>@0 z=RQ{>s3XDVF?~5Dt50neH#FqSEu5EZ2SJd|c#fB*Sof80m$A<){QLGk!M0$LmkBh) z?q}ARYU>eX!$WpUWrp`vAi|*{vKiDu(9Pe^oO6p*Y+dM*W)rQ~B^uw!r82QX_G-kJ zbs2hg?fj)@i8{)s+eNUuzC{fc_Z|dD70n-8NktO{YZ!Rrf=jwcJ>}-+x?gp}kF(6O zxN(~#ieVm#0A zEN1hPBZf2kY2dRsSplih+1;tjuMD4q-J*NkXX1|jUx`d7R&!EqLGG6O@)F~vv9H!k z9rd7D_s=;#jo0*Pe8Y~nXdHWyg6a4kdGG1zL}26rgP7{tQCyA%@F_xj#GmzG)enCG zSQ#MZLq5D&kASC;3&9gE*YCVLp;Ftlw0bzGquR*g5-3-DdI=3E6CZB9M&jvv@+bp# zihW=Y`z^IW>Y68dTmz}oU-TNg+V<+V8l3(4A=8XOzv)M2qCvIq-(u#AIK>-j@j$`+ zoJne1zuraNe;7mDcX;ENgg$%$>N0_8`$ta@YBa%o6>+K6Y1U^nrj=SS5Mv(j>-+f} zwkR!VkWsk*{lcAsg2G>EFpAyQ4V{G7P?LLZowSjM(=ax)6w8jA2OO4|TyyXU&OBtX zL(T{6HYC?cGG3v)Q1xJ1C7RZ$8JGhC_ea>3&qd7zK2pdL^KGRH*V<0wDGkmk41z58 zITRkj5EDqqQp(C0Vq#)Thw^wW(y;lmtS~VNi(BFOcd${=ulzZ9U(vp&2%q-bb8hPXBb#} zfCtl)0BByrp#DU0X?eoe8UgVZHM_5s^!V!#^s2gmT8Bcu&Kyliv|n>Tv&P`|g@$ik z=^A>Z>x$kaRh3V^&f}Z;NWr4sYC^N|FVV0BDnoAO1H=)kW5kFsaStPIys@`TyTy&? zdKb;ec2I`cGz(UFO}b!36sGaAo9{(^5mE-&25Jn=W6^i?Vtnn8KTGr?U}CmjA9Hb| z_H~};DtYup`mE5M%T)G5-csvR>xn4ETH*$D#EMDTDLF?*^}zQ(H3==CKX5M^^{+VJDTax4ZV0I;Ya;Pvp_wJu z7gt*Uj!SC{Z0+)J_a^(nfp|+ihbp|@gYr}_9jVfOOHY>FifG51PstGn)FYcARu$i! zkE(f|{XC|aWjh~vz^^tXR`z!VROmORpjNwK-s9qx{cPr!XSkZ4KBfOIz8>o(x8}jW zQWR6ruA?X*-?zY`6%>zY)t-Trfw5s-z5Uo&ZV(IdYNZ@Scl0>|$5&LetZE}MU zao&PqL&-mJc3nM&MU=vc|A{Q5){FnoYaoyrtU5rQ|EG;;SZMc2FdW|@)z_}g>F#$g zxU}|}g(#tV(DQCyF+!%Qe&|Lws*DdW#EX7;&-)lK2p&FHO9kv74yju+Zb6<|C5+Ae zUD?lr^f@i4X7Qnui426PycfC`n9?YXPc11pi5AxNIuqE2Hj&cs&}d*1Hm)~yK)=>B z$4k`|N+H`r(*jUJL?6t6ooGFs!=W&c(64aIu>9#EErW6yqY7W_wvK_Sch*GG-oC(iYz<{)&>Mhzcbz0UqO zqJ_qn3KYMJ^Lfhdg(cvt zCQeTyAmPr6(WOe7yYVtG5`da(1PvG7GOp^pqjrPAYpXy3r~K`DeY+TYWuoqr>J zFY>?=B}sGf*Pp`!e(#J5qj7f42tO^a*DO~QO&wk@6m<;&AM@Gd7V>)MB%ljiN*W#oD>2WkQ=LR(tBb1VT425#NlS}QKv2Yhi@$d*E+$(*3k`>( zT(zx$>{Kj)05#E_X2d-SbYXvj;qvV(D>LUsd?Lg{xlW z3Un>up_Y}eM)Z3zsV{}v`s!D`44J@0wasSB&#)4W{n6>g4J^+4vW`!&;kedy?SWI8 zZsk$#?qzNtTnov!f9oa=kI!p(&fc0-+OJK8u;XScQTpN)SL1RHM-Pu#zL=X_=2K_- z7gfUa6N;S9&W!_%dEXa5&OOHJyxdM3*N+GMnytXb$LFIlJ>NpEBvILZ&6IgH5*CsAjLu`ki;LmYi8AR7 zgW}lQT!O|)*|k=DZX|6g?%;j+gVLr_HZ_nQRCAovzkAy>nzIO)14)-QX+BY#JQ(C; zFj-=jZxrEBv0E1N_fj)`dS<(Elp79&2L$_s^6{>?wq^qy<8dd#o zk%5qbN82~%BmH5T}D6Jl$~sf+p`mt9}1XW?h4@JWFyUj&P6M3~EW zd{gN!J4vajp^MoaFlPQ6VXFlPq5YouN1eKlAcWuq^?+AHwT2^#N={S}hLF);F~iHM ziyr`k!&ToLWfs1D*dod9n@C0s!aaDJEF&Y&j>DKo!FB6OH|StV3gw zsa8NsqUDf=WCgymX6P4yQVMMizdD;G;hh<}I`wPoF-jg@1FI>!^t4e&UD=_ zZ(Ew}giFpcK{6R;xA+}nqi$WcSr}7J?MD=4ILBC6g~{dC#a`bguPF`YhET`^2>>6S z@KDmy0sItp!lyz&-WN|60~|y~S=G%;%9H)X@{M5GeS16%Qc_d^0C2Wc13eMP>K|8K z-t+km{jUG&k^D?(?Ph8owUuLQ`(ofD2ENa|Q&Ekwh^yqY{=pCg@VP?cnZvB~hle%q zt?XlE*UYtbYQ~H&l>G*m)k-1Vb}K)WW8UJWl_|dIp|ngI*FL|o?^kM>9t#_MA?Nw; ze`D~Ev6Sl~3X#>JG?ctihlhuYD=PMvvn6*@cyI<|C;oJ%6oC z_i%bwM+3e6W4gkoAZ(W1U@k5$iYqGyoi2esYnk}cm!@^0|HXRemz{lg?z=u!FW2-J zxNI4(+|>FU?YGq1dI|h3Fn!u+ElDRfsH6v;W)U<~WML*ZKmxtj^3+(kPI|$%wzf!b z9hBjk)`Iu%3T^H$#=0(t)WY0REuU89JKVh+%i^U)07}$!5=I)@EWorVwMA|cjhlU> zqrqb7Sh983ZuO;VBk|OC_6smD4D?&(fE#f}NvQ~fdz7f!JiyHw3upNaPA2#n6sFRc z$44)xZeS35aBzU;t&|w{^i=nH#f_L&JLr>T5$DHiBA}<$m06S35MvMnc}fjxC0d4M zh?mh0?2Dj|d|&C&3cRQgjY6EAaFb{s@DnGUB_ZfN3W zXpSR>*bTFO`?RV%Q~pm2m`t9w|NoLT;+;tb2Lr$TZ#udK!vp7t)I`=m2RMw1Us6$1V-ytN0$U!G`Hg#e9nQHlnmix= zUFCQVoQ1I@Y2?sc<|g`IlExsPl8|f8_+$z2qMxTl0{x%hnlZML@U2L}-|7*1R`MRe zq{yv%DDVgz1q#0Vnl=0TFT#ouh>e=GLXBZcB5!6Ip=XI4|B_V72QptVlB7phbOONN zU@#Z%&RwKtd>eyedQ3A)a;-2Sh4S^RtKE?V%*VHeAs{E1w153l_$M>!w5pRVRnH?! z<(+jVV`HNGjqMlW%vkbX47rDfRm;^K?RuA{rV!T~bq_@IzhnQ$b}(ILVs z_5GXJdiWfw$8*z$Oc;>`H4s73_70kAuQ zr;aIi)7J~HID2QuE5?O8LJodxm=EpQsW<4{ex{d$EI40=PhiDd&b#Oji}N!X!AVgM zfQcSad8(u|0^fvQNVAfz+nC|lsealj&4$GwcDvVxy#h?cO#@!XIt9o;Lj|btmeg39 zbs~V7kCreYiy~Nv)5I{EwpG4GsHn)8M&8XiP93g9mEo*PQW`gmKdkECdP9wq1qv*4 zw$f^-Qp(d}P;NBYWKnLU8pf4u)NiuPGb&HTi--`q9+uOuthXJR2mzaup7WhvoE`A0 z;j`rkL(}zvz|{BT{@VkeH>%0W$#IUP$cS+6)_3p5^>gJw3+-4M{=9c5W2>l?x6ISk z3y}4&@GCTJ5iopgEEyVVF~a=}QG0{m?#@1*XaZ5;=t_wL52qDGN%>mOR&Z6B55 z(6A)5A9!p*rhd9_sH)PKoy-0vaJh^62nV6Rv32g-NZ+6@JmtNE#E| z0vU8R)&o1XQ6eAf*vK`rPrUeuqD^7zuw>b;jmb5=s9Q9x$p}3t6 z6a>8I)A}RvS3$H%Ah-8td=}f*C@}Q;ru}W?9lb9zc9Uadv(1IWllH!EJE|9$z4ymp zQUXU~!FY08Aqd`m_pPG;Ye`On_vlA<&%rox^?Rs@`}>$4NYm*E18MT2iuISRrZkfm zcXu1kvi8TcuA1QBnh)R1$9rf|Vqtc~Lr$h0J>7@}A-hdbFDT>YG8dM&V6h;?S=u*| z>WT6i%QDWd9-H!{diMc9`+#T~tB zGv;DW$Pc!|>^s`(Gkva{i7z7pR!{DOtWRI3-{uLQj(Y_LYH#^Go*FzANcQ~avZB)j z`x0}EqqD1~l)&bz&<+PrB!NV|so3-}P&+5*%1LfkU1TJu>vHK8f*wnDlB5?Mh6{VbkVq+T z&%K-{S0J9M{6bDrH8cLRo<%uy9jbZbkjy~~tfmY6RAhn1rjDOwdAr`g!QePt zI?%SUQs|5A7(El0!sa_5q>4mmmKctl=?woKA4nH3o9m{Nc>?= zPd1P~Im%%W5J&i43affpn3CL#SjA{b-7d&!mO*h_&C$0#pOn!vFtCrHqoVc)q6-hD zGV8V6rGdVRyg7HQsg##&I{$Kg3jhA`o*z2ZsKc5%Z)fWvEgsL3P?0yn|L!)<2H>8* ze!c!$8knaIwL64gZT99_E}%TPFaHIz_Q8B@_s@#jkvpw)^X=UY(7ew1UUX+)PNt1N zBG_&dN(mi3Et3BcPO?YjHy&((bd5+p62YFb&TN42^Va!(c=;=e0)K%(iWa7K8ao9B zjYqO(vO(Zd5DYJtxBY|iTVz`(fBj!%q^=dB>(%kz@MS%&Z?gF=Sx|!tybw;KM56<#fm^p!RiC~ zC1gsXXA>+*fzo?Qt(!Ah0Cjg{>GiR2g^Coi-4QT#39e;tVRvO&TvPVKs9xO4)re&) zq6x{T5^p~Z%g)>R4W9H;G3bIJZ|Sgvt9kHlM(m^w=%rdA96*?C7^%tnpu81m~2*fHzy=XIIvCt zf@g~qW0g8~(C^xIsB?V^u?O0F`_AAvfX$K!e;?)gJP7$MFhrmdTp8$LUX%dNp(nYg z>HWd3y+EV^MRMh^#%3|=8LIM}A!3B<5@@s+U_^S+=tBG# zd7k5|j(;WnD9c0c`y63$aY^8-CjcQb+;JGP_sjF^ru6aawH(D+e)PtE%bJvPhjN@z zqsb}6cAgF^Crz93EvRW61o65O;V2`21Os|XR$ec}9Jx8i{;lN^jj?eAzlnAgIfQ4GiePKF!WV;-&*bJN@J{XhpKf%VQFui3cT6GinVcd1L_SFF%r6?W2 z8XpzVE;wvKO&!5HHh6Ooq6cMj25}wZJ0PFao8JG>)9lovrxfC@qNTN>;T|q#^Rw}d z$?j`+^e56v$c>JbO#Y_GcBXo}VMtZtjd!=v9RE$*0iY zfu&I_dfu;Qsog=;21ApRfxd6L$P6kj5&eE|&bovYZUs|S)+|YT4gMsD;-=|}FNr@C zLam|1wjY+hSP+w9Vb#nzpY6!nO!njN%1ZN}pD6je?l7L}{$KGkLZGkZ$3o$AzK z_=G>|@OUIOc;Y3n`FkTc+U8C>^W5bZYEZR&*fD9<&}hZQgzbL)I4(ZkcED-P;zG@L zGJ6BfXY)i)D}OZn(*P#W4;BK)cW1IY2VKKux_=H8yx-|83e zw0%q9dL?L@3N|onKH`E3?GHvvA9wKf`a?Pf#?}1OkOEEN9|VtL7OiLz9UtC<=zsBD znJJIl*M;%|zrQzX^k4RMc5bKGk>iii`M-LSL?;KaKN?Ny+0&kc$>XN5D0Y zb^w~DsU8~6F;v$e9SM=~O0Na+LxXps>TiW&;uL4x-wYYvCrZU2%ga0VzPS%X0q6LD zkqI!VIY-p?RUtJa*GmqHWV5OJxS@g#2_>JTV%~v}+w(h}j?@`{KWZMjbWMvV3Gb+o zFBvr@dP8a?OL-CAq0%maYTLbM?beHlVH2XbsH@Kb-%!9*vX$>LN3YR&qjcJpm@-h0V+cbvNzn9r;yD}KsodjB z#tgd@PRdX3s6)?g1|s*&`H2yJycb-&T{lwej=|v#< zpQZW1ZA*eSmew=jCS;QKF#kv1X0ac(6r;Bx5E-lCF31!DMVNn7;$jG;QBX1mAv|?| z^vI=XL!V~K3PB8#edt}Q#PPN?bY&>^S=DD7W7l{h1goK5-8LTnTu{B$iYsz(6nc{Y zG_B>gcdB&cuDz4tx00}304v^Jy$@i1dcAY-x+~v#@4xNP&9bj4XM|6=zi8V(Cz{w# zesic6^>9#6yjKCz&_(XkcO{uVba#Ri^`IeOFjM072Kw+1Tx@YxMU4ieMbeSOG?1A; z-ou)oD(Y-M)^#5mE-jlFAG7maui7(3ckSLlTPb!`;_WX*I{~nTFBSN^6C4Rc0a%)65$)@u*$^E`VCCmf0VRBTX^v(H9 zY$lS;xkumEPQY}&F60nCY(4Sq8RVB_1l_&K3eoYA5FKNLww8SLKqr`*mx(;XiPKaL zk|^heC&&p27>6(1ktknt!H`%Q4M2E-KkHUOEu>KihFDXhORv>_=ASxT5>a zd!t!?u=K_R4`Ajrvia=PO`dbeeeT-lSRQJuh^i2r3|z;YrWvfQwy1?^iZ`QsCEECdCYq+?Iy4N_# zkyKg90FnloYCm84cQaog-GYk7N8gh>g{0s4qi`KBrD zoRL(s_04fzpu-%N+QmRAM24WpXD^D!r21^CZ-yWDgV7_3ghHd$XD13rH}}lRI^w7I zUNI2v&Xry(o#s8ziX#~>n+6l+WeZL9jK2#SCx7ud(U$AC6SWNJ{oM1*da-6@oXvYv z6MLyaMU_HZDh+^|U$G0Xgcfy20#x2dZ3=T$f9gtM)+wBKP=1*co<><}@Www|sYeb$ zC5AgReM)niy!*ulh9BcA23Ni6iYs;{;LaE)#%g}&o1F$_yT9*Cyz>aF-M1t41E!{P zx8ehL;72R(?hymXlX^-a1i%a9dgJ-rdmY!8AoCu{I7@wb%N%k9F~qh8yUmLW6LN$A z@MfV>=lB4L0V4|D>NsWmF#qjYpdhmS*Gi5MO#vzOuQivQy6ayLa?TJKg8xp(2pWik zp!#=giU7;-Uq=igaj2+&9mP!kFF#iE%w`)9ce^!4$gkrftlJ(!7NJlaQGXjZAre5I zj=b@(>D$>F>u&+KC22QJ#X-)_j@Ux&?61GxBI+(fk0MLfl~Q%QiEm3R43q8QvE37n zO~>r`aE+xw>rOV2?#h93wu(CtO$bF5dT&-mChNdt*S*7Y^h$-0r?pk@{o?8dfHv~S zW?i$p{@VFa2C#N5n(W8F8D?!|UTC#D<6_dQc0}dF4BFZ9;60DY=-Mp8C3)S|O}r5e zfGDeMMaijniJuS=Q#lyRHk*CpF?)(ob4J5b&t;K8H@8of$H>7LNGT(3>+V#f($QxP z<6xE~2-qp}t+G`gZAPG)GoMyPm&Xr=wd<@}Zmxc`iaaUQ5*w#{SJ9;Un$K+ zv7p>XPp1v)u&`5D4l>{V3ghwuj)z>!GrNxk_#De;x5FGhpN$(c=GDb#UGZxdHZD}C zm8A|-buQfi(eSK!5&FF4*)y25W7w<88c3-pD+3sjCa0uIX)oWfOA0B$fRs6Jp<7w!6$GkQ4W|PPgck^Gbh@Xgu$uJX0x7hwMS1y&asNe z&?X52VupTz$9ho8h}8*k?%z_l2GWk96XwUwM%)jtEk5qc8kQ-c0zl@nTT}swuCE^b zzXxi0S?ExJ0mli%k5Hnp0^K&2ptHT-h>gyPyUeI*1u+~W8M&I-LV~13oxj7rIt?G% zc=s%sF1?N#HDsEUu4Uy@}*U1|4oZ>2j#}?VQH%-P?0k>8etMr=VpT`?0>3fTixcdVCvE*Y1AN z+j8&2g>mc^Uh$!V1;g5I_U`rG9l6tdHN^;C!ZXKj-VIyE@c50(`EA3pnJEjT+0Uve zCpx9?|Ma|sK{){+unI2`PMCkM;kVL*Q2`3QJiA;Sv>61~LlJ!3&D#S_K4BYcHdwuI zuvyR1uZtV})X)u*bdK_KAcaI?#rxalKt-j=Pk^MgjQ*+BsM+Ib=CfNn#zlYwyn?IK;>w7RVz6osgd;>gG+tF8D|xGwxo`rBS}Iel^Bdk-q`#7YrT<A0xBMA3>q{6Jm<(#z>0Yg&Qu=_e?4Orie}#J;RlZ zt+8Y_DQU55mnY=QHz0(K&;o)$!$EgpzneVepWhAj@muMiKL>?#%TtcyHZ3)Vr1L<% zlJq%|3ogO;c(-iVmo7U<|z&I(aLrtG7F2`+|!Yuy)6~WfFH9=GlQy3i?kmCf_*Q(4H zD8xw=UOxln9An@4E`DbC$hH>OWFm0u_j$A{`JtDP``)3b%c?sFWd2fw+^^C4dsO-R z^awrdmC3%BzEmGTPq%YbA1ah^J8C|*XRhijXX?0 zVC(zS_I(w8p=R^p;Q-xa2RV2$zv?_dG)t$OW&6-=do$axQv>+}6q5(vCyCb(%(~F= z9uPSgh;OJce_$hpra;QA9PuGm6dCAXs9DMB&Wsxz`}nTkB93E1!bt|cE@q1AZV_vl z#w+jD+ShQ@AbSxN?ml>)_JwV}k_9)v$f{ed{s4%`0HH%7O`it~!vK^q-h8=)8NRWj zcJm|+d9xePPP%+GYenCgu!4i8-*z|#9@z}FZ*QlqiKVD4%_&@uryTgLgBAChs@oq8 zampt#H!WtU{pLtp$*t{(uuXQti#D>z`E>+xTD0n3iYiTw89l$-rNPmqF@~HvEeca6 zt(W(*$kMDxVE#xSlvqZ)9(~+v4`-vv#ayr}i<2N2i21cTq4tT9kwTbBSu=v?#7g2i z_(>D(TrAmk;gO)!O4I672U~J#nW%FH+|Vdv;L(xAHf#d%fD!(-D(o0TD^|Dd0ADRx zLJ)pWzlNt2E#o56gy1wnFfvZ|CzlG0PAMt6~e_x+mm3@A2uv z5O%cJd3Y`NYD~wAToZ#P@-i~8^YdsLhN@f;`=Ff_61M)Uw{WTNhkN(FFM4_Yol9t7 z50Xi1HSr9drjjMaz~*kcxd0nJQ-y?2{xR}xA#4{)8#nw*jidAU90Y7w$(7i4_ieSH zcyfxQvPJYUF?|2NOTbl&4R56(pvk0~6$naEtJ+BGfx&Zyr7*A&7*FwC z_D#@(sUbcpT0br&VG6JUv_50t7z}miCu4YlEY%CSi(s#LG#+c#p}bH>&BLZ(@-PCEjtHQk^veH@r0prF`%i`gm5D~*^}B^DfP zalZ2J{Ck@I$0~pa@~CeE-9sVBfky%DpbRx4``V#>>)-`n&STTJEpERI7QHD3@dJ^+ zf3T)u#!1d_6X5ZU^elUh5{-(rGmXzM%n~InC9Ne#+vuyQ1ulHZi}ZEv)%LsnC^`GP zJWGfEGj-xTu>iTQ3TA`jxp4l&04(CA=iaGRyDyGDf##&N=!o)@C}(!l=H zsTSzu05<5Q6jxbL1D{C2qUa>s=;^(2BgC#7f%K#qf=HX0f;|P$;|!xl9)^_djIxI{ zO51*Wf3X8T5>|XM{4iJiK0;3Ki{J$EIxCJr>W)C|>+D!Oqn~ix&-!WP#vw>wtBt_4#p7f=Ogq2nKZBkAJo@8amP}^ zQM29djBBjW;z(5CD>1cYcaUcXQ?vbIa=RlM%vk_l##6Yxr&w-1?wM%`zJYPv6}jd> z=}-yWg(^8k)e{WEjXJdI=TnrWcw0T)lBea}=5y84-afnl<0w|DrYH|9A9(JwGQVL4 z(J{o{C03YJl{lltKk4gJM;BS2FyVb9UltHYg}?m*;}?n_sSvw6k*)fnlNa$Y8Y=yk zMp|Qs>#>DyjB-1vdJsMg&_=hhzC9rObQcjyi&j^>jYmen0W{nRBkDUUZR5k@peMws zEy;%_ewxQ74@3ZlIKXu39$O(QTBFTnbx4n0d@b$o)iGVU5fPveuAqmMHlm`9a{9Ul zXOZ0i`LTIiYU5oC(p(@>&o0UiA!Dqo*((-$M@Mk`{IJHzP9Nj+vG& ztkJg`^ci0EfFNx&MSeOF=%TOtW(*zGw=ftw^W9DZ&F-Nj^kVky<#^+2bJzG1y09sR z^6VU4ScQ&U8vxg9((^dpffLnv6BI4PE0t{@=tRqmZM;GVC**9qc}J9(qDswd;=T42 zaq4=-lZikIt(!aY&m`$?$K#MpjOCY(nL8BgBnbpRp1t|>l(PB11UlKt8FXQ6exU)py2CeK49|*s(PQ5di)8U*-L3zNqAKT`i+OeIp@&+q2&G zvxJ=Zasj|Vf%bGUKV2H9M{h|LFj!L5(o?G(QP|^c?^`!XBxev_GtRmt?6<-BLo}=G zj`gTVZ^hQu@A}g@{p-L9+LfS0PefVf~*M z*N-asx-oE!oQnEHQ=2gGK0pi43TplM`jJy0@L2v$uzPK(Sr`JzHXC!emHt<|+X-WH z_3ku(+2sN>`FGot45HEvtt=Vph8>2kq7T1g)xg#v9f>BUSDln=Qq<<7RDYly?Q#MO z9wOS)v(@Tn85h#bg*4`MB60Up?AP<&KV}oLtCOYg(0+rMSX=P)ec3>z%|m^)-me2n zjRz$UkO=2KkH$QBm%)@M(jqaLZmiha^h0a_qxINZpLXLueB(*+CPkG~sH2N;O~i-m zV*A{|I;Bfn3}Vu`KZ1-^P%$~Y$f&99M=BCTw@L4{qH|aVB+W~Ei!@}u#gh2tty`DG z(B~?Kzal8cq`__30W_FPBqDC1*|3)KZ&pw6yf^)|Es$=V$7U_%v;@#0-STtWN^o{C_N9oxHH-*mRplg7;cPUmW=ZNUZ497kAux$r zloS5QXbmmE;9h?pKU$a7xvx)FGd1p!5+V5uJjyyVj#0{&>-oZDv<=neU<$!V#^oo< zN?jR0K1h5c`W7~NKr4x?`#<1*@e+W8gFc3;UJDmkv z!YPpCKM0<;eAUw`9sChH;uzC2K!ct3QUL3w=<_?A_+dXJcF2W_>EZ$>k1u$^gn`NT48I)dbdi;zL%c;@}?Ew33A$`u$)MGNflKHm2oiZb&AW-o61|E zt0ehH3vf~?1KU^4Fm!%Qq-MlQTPwf*K4Mp_n!7ij%&uT$VhRciL#R%!)T|M6z;`|= ze`*=Yi^N!}q*{_&tn^g8zCTpTDs9!&LL`NT?pA+ZS*ed`5HT8Y`s(&#r~eT$Zt}lx zs>^mzrCt393abit;jc?AnqAOl<9kl!&$%9;Wddjk7d`{}?EJjh1`xRqO#xSRWV zq%P^}FH?<92`@Q{%7z45yv1N5t@SjGb9kY_h+G|fh=aojm8nxJuX3Q8EAbHlM!fTHr4{|%{`PZ#nrDfy(+%Mp>0 zfw|(LV(RL6LBYW_z}Y&t%MJUZDGGH1*{Nlu(=GFj`P-6G zc}K$U+Idy?SZr+UZCzQ!zQ>nZ;H+HwO@uT6$`<#d&x!vf+7wsdxEEzr-(u zR{6m>o6C8SEY9{2oy?MzDx$XWr%d+%Rw)WOaN>R0^=G2`I^+f>jLudfe-rzabZRF) zeTS55c)-+vRqIKr=S%HRT}-35_w*vKm*!ixuOHB-OgS3gyYd=adTUs!1YDSI0ok7r zCwETZG@qUp^#vz4Tv9h6reQAp2zft+f5tHl&zk#bFzV5@P@!|^GDzxnWNd6q&dt4G zEQDh&9YbOSO1AO6eO79xRrpnj9CHF?bl$369=gMH`^XA@OXt2V9<_^ih}h100fD(? z`Znp%{mZPsewBA%oo5HPGwn~{yVb|dyy_)z{6OnKUFdy_@}I^#GkFU_7FnOLB9fw+UuU<0VH%eazGelGsZElX= z=mT)jL+w1U6FR+83Jh4c+11(r6th~WPgc>mBpU!oU%eWel)goNdVhvm!0zAxYP*g82> zBACTGgzQ~nfsw?Es7512*$h8Bvq@pCD&izq4gNhOhPlAN{q2+dInY_Wcx_=ju#fZM@XtU)j9!xITphy7h_wTeqt>qa zeuTZ)nh{rKv)}b;4al~3sm{T3f?clGRqddYpQ^Gp8lCC>!h*vp$FgJ$k5%9^u;!&k zNle2p=);no-OyMgpBK6VNXGJ%grS{l_Ob+9Vk#uv%_2i{$|tA9IFZT$I`bDWEVREi z`_xu`F0BGzUVybkfw#jSBp!Odvo8ITCX;`Yxdv5SVjYxVtO6MtEZqxl-SMsbjSi4* zl!~Bx-%T{{8`k_tBw{3&2&9on?dI8sO;>3`NLYLAasb7*|J)DL(4zoY876mGf~pPjAb$tBk^)} zxd?8DZ)>h)j88Ri7k?t0atw9t_SX5{tIlf&L#E6_O!fNk!lP+zzN6$N_{!xXpd|eN z+~MLm!!yLi#m$32sL`XNr;Z~bce`_Xgj8DWV2szDoEfIDekO*JTYNc-kS4+GPjBqP`u z%rz;wOF?2DFrY12U$%-=PR&8?qG`yvy>0^W{{VFgj!BI6;lEJqp{4OP-I}qWtE!qu zUCt81qjcNKphYlBFU-S9rlm+oN*>F(Dg?MVyklgn5&uQY@#DSw%~BNq`dNW6?} zJ=}IQf8lYN4E42R2pt@Rmp`_85fjJVUViW7viuk>-$<_q@bLYWeSwvq!L=LI#izd1 z?|WpOt(3BUsR6skQTmmPjVX16ea{qYh-ZRsi(=7S_MpDs^5aer9AP~%$-k!g1 zhgv=-D8LO283> zEO4vEezi(=btpqxy0>;0l@et!col7YWpYg!B6d`Qpt20|GGMR!VM0N?`yt-~-&DMF zKL8=agxf%IZwJ|=BQJ!AB<)p*PAg(x6TQ&)kNZp8C}zKg>sM~4zCA;INi$r=)I~R3 z=eicD7lfTsuE$Wqv&Ereg0A|2SKVS3Ov%N8tPwQPhCVPyW(d@soeoc{f?0zs6Zti& zpOS{ni;|*o@mX%)FdLW?!*6&){^~cPE~b5;ywaL_D*Ctvo)x}38Hs#oipkbBp4`CK9%erj%F%tTggoM1H z?`3$=U}%n~`cM~}XPqbf^J0mnYfAAMG=%9oqsL?DCs{)?XJmP~q$#N+W%JS3*XUxw z>AG@KjJ=7ss*#I4LsGEsfIY{9=1L_ow+y(czGLf>JZGeLsv_Jx*38&YFD6Y<6C zsjIB##>2>C=VbmW2e#Je#}88K3LWO;TM#~(y%2%{8T5Uph_s27$9vC+sU2>{Cmi*`h z5v)OxtT@JkfGjrVI3>RBLx|mrG&~E2hP^9ZR{4DL`H(>mEh5+wZo!Gs8G0F-ZM`_& z8%zeqrJoNCK;jO7_0qYYgGzsJT0Os2*F&_}80mQizfK!6mLBULjR%+oMFzK#q#Y{J z??P<30?sivp?@fN#EW8f;4^*L(dA}h#Z~la|LlkU_0)#h_Pss_>;#1G((E%rAQiUi zt_`C0h-k#aZ*v4)w$zm?`6e>gIzF{T4w-Z{Rqrt1n=Ul`tYquH3yKtI?yjHQ#5RUt z_RlL*67#b)2!7sSUV_)@(Gva%zjS=01lXTAK{Q?_fi->F5xi7^%b?xb+L? zj#5V>$lDh*l=<<4c1zIkeoi$o;Y`)<)^Ax=3H2)?6!IZtZBh2OAuvN#l*yLm6Ht}W zGm3i|@LhG!-SK6qKMeBz=8?sNTo~U}5W#?<>Gw`Px%gt1|BT~p4X<_>D@yg?7a)#~ zBx=aPO8vC#z7-%)-Mt5PX^mbchU>b&QEde5#U9l+kK{Akx02qevw02t8;st_C|}0N zU+kG(n3|ejYCIYqFtpPttP?#b#=hNu`k*cgHhZF41?QC%R6R7Mi(k-A0RUtFYvRm%@2iQe|FdWZO0CujKr= zwxL|kAbJAB=EmGfm4@8Ypr9)^YhD{=6jq+w0cqn9UYTpPRDs z(&mSc-+cSGHu|udS{pIxTj-5t3K=z?i#Nu_D_*LErF1-_3t@ty2=eMh`n&#M6 zZ{yo79vE}eD|}5s-iC>$%g)VOfB2oNNcgr(TUXDiezwl^8L;mL6}f(GmwnC=!4r(Y zY2*yI48?6{4(?W3J9YKVeYT$)G8?bGU9GrE#*sJhDaTpg5KAUV7umg;Phx)Ap$d^D z9W_~8rm_YuuLCC>naU0AKp%eo=TXw>Ala?Q?@zj+G^GhVS^e;$h0(=Tvn~e+v`m^& zzd;GohhHf51U%s_*L$llmgONI*d4$=`UQ#Y)(MNz{DMx5w8+ z3nfCNjzzp}`m#Uf{H0f6xw7{R?@t4}vdQ4syY@nBr4@4obG`+H1?D|j*2=;f-D~*x zYwlI(RK3t{)*050idQcLuA6nYF>92dIOR0WrJ#;Gm#Nm?X@9wLl^BjEo z=#WrY`JWxPA6&V4d6v92I51jN*Kirgoqp=$uvd}qj48X8uBq@J=069HZ`TzL(KxhY z^--4@aXpP^UQXJba^fm;d%$;Pus*qF_u~zzX~2U5E~g!sCU52xn`^s8%;l=;UhcNn z8mFGb_Gp}&;Qg!Q%U1J^wUBiW6+&UG5st3B-nXxW?Yhv?e>plVEX;_p^=`-gytwl% zq1k(XOj>?N^6??=R>{2P+uz>Z>%OB8@}7bX*J`F7?)7Z<9ooy^%*qfxxbE=Y_HVBP zJnmX0a&fQw|LL^8f`v+eQ1bMYb>i!kZQgb7k^`>K0FDB=*zDpKdZ_g3$jr%BB}X=R zPul!&_Iee;W0zm8l3M&09C!*gy#3+{GWVu-IPnCFBu`eqd-BwV>P>sjD4f%H*A0$u zf8fHE$FcqAO4PmXPBZ20lbb(Y(0V?Ru6{1- HoD!M Date: Fri, 23 Aug 2024 12:58:28 +0100 Subject: [PATCH 2/6] Automatic changelog for PR #395 [ci skip] --- html/changelogs/AutoChangeLog-pr-395.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-395.yml diff --git a/html/changelogs/AutoChangeLog-pr-395.yml b/html/changelogs/AutoChangeLog-pr-395.yml new file mode 100644 index 0000000000..13aa656497 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-395.yml @@ -0,0 +1,8 @@ +author: "BonniePandora" +delete-after: True +changes: + - rscadd: "Added various condiment packets of powedered juices, milk & egg to the code" + - rscadd: "Added corresponding reactions for the new powdered substances where needed" + - rscadd: "Sprites for the condiment packets, some taken from Bay, others edited by me from Bay sprites" + - qol: "MRE's now contain a juice packet alongside their typical contents" + - maptweak: "Replaces the magic freezer and it's perishable contents with a locker full of the non-perishable replacements" \ No newline at end of file From 20c8b43079df401149a860d10fcbee74a5e8410c Mon Sep 17 00:00:00 2001 From: DexterDude Date: Fri, 23 Aug 2024 07:59:24 -0400 Subject: [PATCH 3/6] fixes to parachuting (#403) --- code/game/turfs/transit.dm | 4 ++++ code/modules/shuttle/shuttles/dropship.dm | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/code/game/turfs/transit.dm b/code/game/turfs/transit.dm index 11f3d50ce4..2e5396d0b1 100644 --- a/code/game/turfs/transit.dm +++ b/code/game/turfs/transit.dm @@ -261,6 +261,10 @@ shuttle_tag = DROPSHIP_TRIPOLI dir = SOUTH +/turf/open/space/transit/dropship/upp + shuttle_tag = DROPSHIP_UPP + dir = SOUTH + /turf/open/space/transit/south dir = SOUTH diff --git a/code/modules/shuttle/shuttles/dropship.dm b/code/modules/shuttle/shuttles/dropship.dm index 5819ede980..23bb364e85 100644 --- a/code/modules/shuttle/shuttles/dropship.dm +++ b/code/modules/shuttle/shuttles/dropship.dm @@ -142,6 +142,9 @@ dwidth = 4 dheight = 8 +/obj/docking_port/mobile/marine_dropship/upp/get_transit_path_type() + return /turf/open/space/transit/dropship/upp + /obj/docking_port/mobile/marine_dropship/cyclone name = "Cyclone" id = DROPSHIP_CYCLONE @@ -151,6 +154,9 @@ dwidth = 4 dheight = 8 +/obj/docking_port/mobile/marine_dropship/cyclone/get_transit_path_type() + return /turf/open/space/transit/dropship/cyclone + /obj/docking_port/mobile/marine_dropship/tornado name = "HLD-Tornado" id = DROPSHIP_TORNADO @@ -160,6 +166,9 @@ dwidth = 5 dheight = 9 +/obj/docking_port/mobile/marine_dropship/tornado/get_transit_path_type() + return /turf/open/space/transit/dropship/tornado + /obj/docking_port/mobile/marine_dropship/typhoon name = "CMD-Typhoon" id = DROPSHIP_TYPHOON @@ -169,6 +178,9 @@ dwidth = 5 dheight = 9 +/obj/docking_port/mobile/marine_dropship/typhoon/get_transit_path_type() + return /turf/open/space/transit/dropship/typhoon + /obj/docking_port/mobile/marine_dropship/tripoli name = "Tripoli" id = DROPSHIP_TRIPOLI @@ -178,6 +190,9 @@ dwidth = 4 dheight = 8 +/obj/docking_port/mobile/marine_dropship/tripoli/get_transit_path_type() + return /turf/open/space/transit/dropship/tripoli + /obj/docking_port/mobile/marine_dropship/alamo name = "Alamo" id = DROPSHIP_ALAMO From 1c263b9af27daee53c5a49a47cd13a72b70ff1bd Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Fri, 23 Aug 2024 13:02:00 +0100 Subject: [PATCH 4/6] Automatic changelog for PR #403 [ci skip] --- html/changelogs/AutoChangeLog-pr-403.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-403.yml diff --git a/html/changelogs/AutoChangeLog-pr-403.yml b/html/changelogs/AutoChangeLog-pr-403.yml new file mode 100644 index 0000000000..e5464ba85e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-403.yml @@ -0,0 +1,4 @@ +author: "DexterDude" +delete-after: True +changes: + - rscadd: "Added something" \ No newline at end of file From dddece95a81ec7f7c5d3fb893a7a5143f4a19056 Mon Sep 17 00:00:00 2001 From: private-tristan <54422837+private-tristan@users.noreply.github.com> Date: Fri, 23 Aug 2024 08:04:46 -0400 Subject: [PATCH 5/6] Ports TG stripping menu from upstream (#392) --- code/__DEFINES/strippable.dm | 30 + code/_macros.dm | 5 + code/_onclick/click_hold.dm | 5 +- code/_onclick/drag_drop.dm | 1 + code/datums/elements/strippable.dm | 536 ++++++++++++++++++ code/game/objects/items/misc.dm | 4 +- code/game/objects/items/weapons/twohanded.dm | 2 +- code/modules/asset_cache/asset_list.dm | 21 + code/modules/mob/living/carbon/carbon.dm | 17 - code/modules/mob/living/carbon/human/human.dm | 118 +--- .../living/carbon/human/human_stripping.dm | 272 +++++++++ .../mob/living/carbon/human/inventory.dm | 62 -- .../mob/living/carbon/xenomorph/XenoProcs.dm | 4 - .../mob/living/simple_animal/parrot.dm | 13 - code/modules/mob/mob.dm | 34 -- code/modules/projectiles/gun_attachables.dm | 4 +- colonialmarines.dme | 3 + icons/ui_icons/inventory/back.png | Bin 0 -> 1796 bytes icons/ui_icons/inventory/belt.png | Bin 0 -> 1596 bytes icons/ui_icons/inventory/collar.png | Bin 0 -> 2090 bytes icons/ui_icons/inventory/ears.png | Bin 0 -> 1688 bytes icons/ui_icons/inventory/glasses.png | Bin 0 -> 2017 bytes icons/ui_icons/inventory/gloves.png | Bin 0 -> 2107 bytes icons/ui_icons/inventory/hand_l.png | Bin 0 -> 2019 bytes icons/ui_icons/inventory/hand_r.png | Bin 0 -> 2017 bytes icons/ui_icons/inventory/head.png | Bin 0 -> 1854 bytes icons/ui_icons/inventory/id.png | Bin 0 -> 1940 bytes icons/ui_icons/inventory/mask.png | Bin 0 -> 1930 bytes icons/ui_icons/inventory/neck.png | Bin 0 -> 1852 bytes icons/ui_icons/inventory/pocket.png | Bin 0 -> 1831 bytes icons/ui_icons/inventory/shoes.png | Bin 0 -> 1817 bytes icons/ui_icons/inventory/suit.png | Bin 0 -> 2073 bytes icons/ui_icons/inventory/suit_storage.png | Bin 0 -> 1976 bytes icons/ui_icons/inventory/uniform.png | Bin 0 -> 1885 bytes tgui/packages/tgui/interfaces/StripMenu.tsx | 380 +++++++++++++ .../tgui/styles/interfaces/StripMenu.scss | 65 +++ tgui/packages/tgui/styles/main.scss | 1 + 37 files changed, 1322 insertions(+), 255 deletions(-) create mode 100644 code/__DEFINES/strippable.dm create mode 100644 code/datums/elements/strippable.dm create mode 100644 code/modules/mob/living/carbon/human/human_stripping.dm create mode 100644 icons/ui_icons/inventory/back.png create mode 100644 icons/ui_icons/inventory/belt.png create mode 100644 icons/ui_icons/inventory/collar.png create mode 100644 icons/ui_icons/inventory/ears.png create mode 100644 icons/ui_icons/inventory/glasses.png create mode 100644 icons/ui_icons/inventory/gloves.png create mode 100644 icons/ui_icons/inventory/hand_l.png create mode 100644 icons/ui_icons/inventory/hand_r.png create mode 100644 icons/ui_icons/inventory/head.png create mode 100644 icons/ui_icons/inventory/id.png create mode 100644 icons/ui_icons/inventory/mask.png create mode 100644 icons/ui_icons/inventory/neck.png create mode 100644 icons/ui_icons/inventory/pocket.png create mode 100644 icons/ui_icons/inventory/shoes.png create mode 100644 icons/ui_icons/inventory/suit.png create mode 100644 icons/ui_icons/inventory/suit_storage.png create mode 100644 icons/ui_icons/inventory/uniform.png create mode 100644 tgui/packages/tgui/interfaces/StripMenu.tsx create mode 100644 tgui/packages/tgui/styles/interfaces/StripMenu.scss diff --git a/code/__DEFINES/strippable.dm b/code/__DEFINES/strippable.dm new file mode 100644 index 0000000000..f62c4d6c1b --- /dev/null +++ b/code/__DEFINES/strippable.dm @@ -0,0 +1,30 @@ +// All of these must be matched in StripMenu.js. +#define STRIPPABLE_ITEM_HEAD "head" +#define STRIPPABLE_ITEM_BACK "back" +#define STRIPPABLE_ITEM_MASK "wear_mask" +#define STRIPPABLE_ITEM_EYES "glasses" +#define STRIPPABLE_ITEM_L_EAR "wear_l_ear" +#define STRIPPABLE_ITEM_R_EAR "wear_r_ear" +#define STRIPPABLE_ITEM_JUMPSUIT "w_uniform" +#define STRIPPABLE_ITEM_SUIT "wear_suit" +#define STRIPPABLE_ITEM_GLOVES "gloves" +#define STRIPPABLE_ITEM_FEET "shoes" +#define STRIPPABLE_ITEM_SUIT_STORAGE "j_store" +#define STRIPPABLE_ITEM_ID "id" +#define STRIPPABLE_ITEM_BELT "belt" +#define STRIPPABLE_ITEM_LPOCKET "l_store" +#define STRIPPABLE_ITEM_RPOCKET "r_store" +#define STRIPPABLE_ITEM_LHAND "l_hand" +#define STRIPPABLE_ITEM_RHAND "r_hand" +#define STRIPPABLE_ITEM_HANDCUFFS "handcuffs" +#define STRIPPABLE_ITEM_LEGCUFFS "legcuffs" + + +/// This slot is not obscured. +#define STRIPPABLE_OBSCURING_NONE 0 + +/// This slot is completely obscured, and cannot be accessed. +#define STRIPPABLE_OBSCURING_COMPLETELY 1 + +/// This slot can't be seen, but can be accessed. +#define STRIPPABLE_OBSCURING_HIDDEN 2 diff --git a/code/_macros.dm b/code/_macros.dm index 6c1f37b4bc..0e85827bc0 100644 --- a/code/_macros.dm +++ b/code/_macros.dm @@ -67,6 +67,11 @@ #define LAZYREMOVEASSOC(L, K, V) if(L) { if(L[K]) { L[K] -= V; if(!length(L[K])) L -= K; } if(!length(L)) L = null; } ///Accesses an associative list, returns null if nothing is found #define LAZYACCESSASSOC(L, I, K) L ? L[I] ? L[I][K] ? L[I][K] : null : null : null +///Performs an insertion on the given lazy list with the given key and value. If the value already exists, a new one will not be made. +#define LAZYORASSOCLIST(lazy_list, key, value) \ + LAZYINITLIST(lazy_list); \ + LAZYINITLIST(lazy_list[key]); \ + lazy_list[key] |= value; // Insert an object A into a sorted list using cmp_proc (/code/_helpers/cmp.dm) for comparison. #define ADD_SORTED(list, A, cmp_proc) if(!list.len) {list.Add(A)} else {list.Insert(FindElementIndex(A, list, cmp_proc), A)} diff --git a/code/_onclick/click_hold.dm b/code/_onclick/click_hold.dm index 996f7ed2bf..e972821615 100644 --- a/code/_onclick/click_hold.dm +++ b/code/_onclick/click_hold.dm @@ -97,9 +97,8 @@ /client/MouseDrop(datum/over_object, datum/src_location, over_location, src_control, over_control, params) . = ..() + if(over_object) + SEND_SIGNAL(over_object, COMSIG_ATOM_DROP_ON, src_location, src) if(src_location) SEND_SIGNAL(src_location, COMSIG_ATOM_DROPPED_ON, over_object, src) - - if(over_object) - SEND_SIGNAL(over_object, COMSIG_ATOM_DROP_ON, src_location, src) diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm index fff5e9200d..4dcc0d6468 100644 --- a/code/_onclick/drag_drop.dm +++ b/code/_onclick/drag_drop.dm @@ -7,6 +7,7 @@ */ /atom/MouseDrop(atom/over) if(!usr || !over) return + if(!Adjacent(usr) || !over.Adjacent(usr)) return // should stop you from dragging through windows spawn(0) diff --git a/code/datums/elements/strippable.dm b/code/datums/elements/strippable.dm new file mode 100644 index 0000000000..e0daaee74a --- /dev/null +++ b/code/datums/elements/strippable.dm @@ -0,0 +1,536 @@ +/// An element for atoms that, when dragged and dropped onto a mob, opens a strip panel. +/datum/element/strippable + element_flags = ELEMENT_BESPOKE | ELEMENT_DETACH + id_arg_index = 2 + + /// An assoc list of keys to /datum/strippable_item + var/list/items + + /// A proc path that returns TRUE/FALSE if we should show the strip panel for this entity. + /// If it does not exist, the strip menu will always show. + /// Will be called with (mob/user). + var/should_strip_proc_path + + /// An existing strip menus + var/list/strip_menus + +/datum/element/strippable/Attach(datum/target, list/items, should_strip_proc_path) + . = ..() + if (!isatom(target)) + return ELEMENT_INCOMPATIBLE + + RegisterSignal(target, COMSIG_ATOM_DROP_ON, PROC_REF(mouse_drop_onto)) + + src.items = items + src.should_strip_proc_path = should_strip_proc_path + +/datum/element/strippable/Detach(datum/source, force) + . = ..() + + UnregisterSignal(source, COMSIG_ATOM_DROP_ON) + + if (!isnull(strip_menus)) + QDEL_NULL(strip_menus[source]) + +/datum/element/strippable/proc/mouse_drop_onto(datum/source, atom/over, mob/user) + SIGNAL_HANDLER + if (user == source) + return + + if (over == source) + return + + var/mob/overmob = over + if (!ishuman(overmob)) + return + + if (!overmob.Adjacent(source)) + return + + if (!overmob.client) + return + + if (overmob.client != user) + return + + if (!isnull(should_strip_proc_path) && !call(source, should_strip_proc_path)(overmob)) + return + + var/datum/strip_menu/strip_menu + + if (isnull(strip_menu)) + strip_menu = new(source, src) + LAZYSET(strip_menus, source, strip_menu) + + INVOKE_ASYNC(strip_menu, PROC_REF(tgui_interact), overmob) + +/// A representation of an item that can be stripped down +/datum/strippable_item + /// The STRIPPABLE_ITEM_* key + var/key + + /// Should we warn about dangerous clothing? + var/warn_dangerous_clothing = TRUE + +/// Gets the item from the given source. +/datum/strippable_item/proc/get_item(atom/source) + +/// Tries to equip the item onto the given source. +/// Returns TRUE/FALSE depending on if it is allowed. +/// This should be used for checking if an item CAN be equipped. +/// It should not perform the equipping itself. +/datum/strippable_item/proc/try_equip(atom/source, obj/item/equipping, mob/user) + if ((equipping.flags_item & ITEM_ABSTRACT)) + return FALSE + if ((equipping.flags_item & NODROP)) + to_chat(user, SPAN_WARNING("You can't put [equipping] on [source], it's stuck to your hand!")) + return FALSE + if (ishuman(source)) + var/mob/living/carbon/human/sourcehuman = source + if(HAS_TRAIT(sourcehuman, TRAIT_UNSTRIPPABLE) && !sourcehuman.is_mob_incapacitated()) + to_chat(src, SPAN_DANGER("[sourcehuman] is too strong to force [equipping] onto them!")) + return + return TRUE + +/// Start the equipping process. This is the proc you should yield in. +/// Returns TRUE/FALSE depending on if it is allowed. +/datum/strippable_item/proc/start_equip(atom/source, obj/item/equipping, mob/user) + source.visible_message( + SPAN_NOTICE("[user] tries to put [equipping] on [source]."), + SPAN_NOTICE("[user] tries to put [equipping] on you.") + ) + + if (ismob(source)) + var/mob/sourcemob = source + sourcemob.attack_log += text("\[[time_stamp()]\] [key_name(sourcemob)] is having [equipping] put on them by [key_name(user)]") + user.attack_log += text("\[[time_stamp()]\] [key_name(user)] is putting [equipping] on [key_name(sourcemob)]") + + return TRUE + +/// The proc that places the item on the source. This should not yield. +/datum/strippable_item/proc/finish_equip(atom/source, obj/item/equipping, mob/user) + SHOULD_NOT_SLEEP(TRUE) + +/// Tries to unequip the item from the given source. +/// Returns TRUE/FALSE depending on if it is allowed. +/// This should be used for checking if it CAN be unequipped. +/// It should not perform the unequipping itself. +/datum/strippable_item/proc/try_unequip(atom/source, mob/user) + SHOULD_NOT_SLEEP(TRUE) + + var/obj/item/item = get_item(source) + if (isnull(item)) + return FALSE + + if (user.action_busy && !skillcheck(user, SKILL_POLICE, SKILL_POLICE_SKILLED)) + to_chat(user, SPAN_WARNING("You can't do this right now.")) + return FALSE + + if ((item.flags_inventory & CANTSTRIP) || ((item.flags_item & NODROP) && !(item.flags_item & FORCEDROP_CONDITIONAL)) || (item.flags_item & ITEM_ABSTRACT)) + return FALSE + + if (ishuman(source)) + var/mob/living/carbon/human/sourcehuman = source + if(MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_STRIPDRAG_ENEMY) && (sourcehuman.stat == DEAD || sourcehuman.health < HEALTH_THRESHOLD_CRIT) && !sourcehuman.get_target_lock(user.faction_group)) + to_chat(user, SPAN_WARNING("You can't strip items of a crit or dead member of another faction!")) + return FALSE + + if(HAS_TRAIT(sourcehuman, TRAIT_UNSTRIPPABLE) && !sourcehuman.is_mob_incapacitated()) + to_chat(src, SPAN_DANGER("[sourcehuman] has an unbreakable grip on their equipment!")) + return + + return TRUE + +/// Start the unequipping process. This is the proc you should yield in. +/// Returns TRUE/FALSE depending on if it is allowed. +/datum/strippable_item/proc/start_unequip(atom/source, mob/user) + var/obj/item/item = get_item(source) + if (isnull(item)) + return FALSE + + source.visible_message( + SPAN_WARNING("[user] tries to remove [source]'s [item]."), + SPAN_DANGER("[user] tries to remove your [item].") + ) + + if (ismob(source)) + var/mob/sourcemob = source + sourcemob.attack_log += text("\[[time_stamp()]\] [key_name(sourcemob)] is being stripped of [item] by [key_name(user)]") + user.attack_log += text("\[[time_stamp()]\] [key_name(user)] is stripping [key_name(sourcemob)] of [item]") + + item.add_fingerprint(user) + + return TRUE + +/// The proc that unequips the item from the source. This should not yield. +/datum/strippable_item/proc/finish_unequip(atom/source, mob/user) + +/// Returns a STRIPPABLE_OBSCURING_* define to report on whether or not this is obscured. +/datum/strippable_item/proc/get_obscuring(atom/source) + SHOULD_NOT_SLEEP(TRUE) + return STRIPPABLE_OBSCURING_NONE + +/// Returns the ID of this item's strippable action. +/// Return `null` if there is no alternate action. +/// Any return value of this must be in StripMenu. +/datum/strippable_item/proc/get_alternate_action(atom/source, mob/user) + return null + +/// Performs an alternative action on this strippable_item. +/// `has_alternate_action` needs to be TRUE. +/datum/strippable_item/proc/alternate_action(atom/source, mob/user) + +/// Returns whether or not this item should show. +/datum/strippable_item/proc/should_show(atom/source, mob/user) + return TRUE + +/// A preset for equipping items onto mob slots +/datum/strippable_item/mob_item_slot + /// The ITEM_SLOT_* to equip to. + var/item_slot + +/datum/strippable_item/proc/has_no_item_alt_action() + return FALSE + +/datum/strippable_item/mob_item_slot/get_item(atom/source) + if (!ismob(source)) + return null + + var/mob/mob_source = source + return mob_source.get_item_by_slot(key) + +/datum/strippable_item/mob_item_slot/try_equip(atom/source, obj/item/equipping, mob/user) + . = ..() + if (!.) + return + + if (!ismob(source)) + return FALSE + if (user.action_busy) + to_chat(user, SPAN_WARNING("You can't do this right now.")) + return FALSE + if (!equipping.mob_can_equip( + source, + key + )) + to_chat(user, SPAN_WARNING("\The [equipping] doesn't fit in that place!")) + return FALSE + if(equipping.flags_item & WIELDED) + equipping.unwield(user) + return TRUE + +/datum/strippable_item/mob_item_slot/start_equip(atom/source, obj/item/equipping, mob/user) + . = ..() + if (!.) + return + + if (!ismob(source)) + return FALSE + + var/time_to_strip = HUMAN_STRIP_DELAY + var/mob/sourcemob = source + + if (ishuman(sourcemob) && ishuman(user)) + var/mob/living/carbon/human/sourcehuman = sourcemob + var/mob/living/carbon/human/userhuman = user + time_to_strip = userhuman.get_strip_delay(userhuman, sourcehuman) + + if (!do_after(user, time_to_strip, INTERRUPT_ALL, BUSY_ICON_FRIENDLY, source, INTERRUPT_MOVED, BUSY_ICON_FRIENDLY)) + return FALSE + + if (!equipping.mob_can_equip( + sourcemob, + key + )) + return FALSE + + if (!user.temp_drop_inv_item(equipping)) + return FALSE + + return TRUE + +/datum/strippable_item/mob_item_slot/finish_equip(atom/source, obj/item/equipping, mob/user) + if (!ismob(source)) + return FALSE + + var/mob/sourcemob = source + sourcemob.equip_to_slot_if_possible(equipping, key) + +/datum/strippable_item/mob_item_slot/get_obscuring(atom/source) + return FALSE + +/datum/strippable_item/mob_item_slot/start_unequip(atom/source, mob/user) + . = ..() + if (!.) + return + + return start_unequip_mob(get_item(source), source, user) + +/datum/strippable_item/mob_item_slot/finish_unequip(atom/source, mob/user) + var/obj/item/item = get_item(source) + if (isnull(item)) + return FALSE + + if (!ismob(source)) + return FALSE + + return finish_unequip_mob(item, source, user) + +/// A utility function for `/datum/strippable_item`s to start unequipping an item from a mob. +/datum/strippable_item/mob_item_slot/proc/start_unequip_mob(obj/item/item, mob/living/carbon/human/source, mob/living/carbon/human/user) + var/time_to_strip = HUMAN_STRIP_DELAY + + if (istype(source) && istype(user)) + time_to_strip = user.get_strip_delay(user, source) + + if (!do_after(user, time_to_strip, INTERRUPT_ALL, BUSY_ICON_HOSTILE, source, INTERRUPT_MOVED, BUSY_ICON_HOSTILE)) + return FALSE + + return TRUE + +/// A utility function for `/datum/strippable_item`s to finish unequipping an item from a mob. +/datum/strippable_item/mob_item_slot/proc/finish_unequip_mob(obj/item/item, mob/source, mob/user) + if (!source.drop_inv_item_on_ground(item, force = (item.flags_item & FORCEDROP_CONDITIONAL))) //force if we can drop the item in this case + return FALSE + + if (ismob(source)) + var/mob/sourcemob = source + sourcemob.attack_log += text("\[[time_stamp()]\] [key_name(sourcemob)] has been stripped of [item] by [key_name(user)]") + user.attack_log += text("\[[time_stamp()]\] [key_name(user)] has been stripped of [key_name(sourcemob)] of [item]") + + // Updates speed in case stripped speed affecting item + source.recalculate_move_delay = TRUE + +/// A representation of the stripping UI +/datum/strip_menu + /// The owner who has the element /datum/element/strippable + var/atom/movable/owner + + /// The strippable element itself + var/datum/element/strippable/strippable + + /// A lazy list of user mobs to a list of strip menu keys that they're interacting with + var/list/interactions + +/datum/strip_menu/New(atom/movable/owner, datum/element/strippable/strippable) + . = ..() + src.owner = owner + src.strippable = strippable + +/datum/strip_menu/Destroy() + owner = null + strippable = null + + return ..() + +/datum/strip_menu/tgui_interact(mob/user, datum/tgui/ui) + . = ..() + ui = SStgui.try_update_ui(user, src, ui) + if (!ui) + ui = new(user, src, "StripMenu") + ui.open() + + +/datum/strip_menu/ui_assets(mob/user) + return list( + get_asset_datum(/datum/asset/simple/inventory), + ) + +/datum/strip_menu/ui_data(mob/user) + var/list/data = list() + + var/list/items = list() + + for (var/strippable_key in strippable.items) + var/datum/strippable_item/item_data = strippable.items[strippable_key] + + if (!item_data.should_show(owner, user)) + continue + + var/list/result + + if(strippable_key in LAZYACCESS(interactions, user)) + LAZYSET(result, "interacting", TRUE) + + var/obscuring = item_data.get_obscuring(owner) + if (obscuring != STRIPPABLE_OBSCURING_NONE) + LAZYSET(result, "obscured", obscuring) + items[strippable_key] = result + continue + + var/obj/item/item = item_data.get_item(owner) + if (isnull(item)) + if (item_data.has_no_item_alt_action()) + LAZYINITLIST(result) + result["no_item_action"] = item_data.get_alternate_action(owner, user) + items[strippable_key] = result + continue + + LAZYINITLIST(result) + + result["icon"] = icon2base64(icon(item.icon, item.icon_state, frame = 1)) + result["name"] = item.name + result["alternate"] = item_data.get_alternate_action(owner, user) + + items[strippable_key] = result + + data["items"] = items + + // While most `\the`s are implicit, this one is not. + // In this case, `\The` would otherwise be used. + // This doesn't match with what it's used for, which is to say "Stripping the alien drone", + // as opposed to "Stripping The alien drone". + // Human names will still show without "the", as they are proper nouns. + data["name"] = "\the [owner]" + + return data + +/datum/strip_menu/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if (.) + return + + . = TRUE + + var/mob/user = ui.user + + switch (action) + if ("equip") + var/key = params["key"] + var/datum/strippable_item/strippable_item = strippable.items[key] + + if (isnull(strippable_item)) + return + + if (!strippable_item.should_show(owner, user)) + return + + if (strippable_item.get_obscuring(owner) == STRIPPABLE_OBSCURING_COMPLETELY) + return + + var/item = strippable_item.get_item(owner) + if (!isnull(item)) + return + + var/obj/item/held_item = user.get_held_item() + if (isnull(held_item)) + return + + if (!strippable_item.try_equip(owner, held_item, user)) + return + + LAZYORASSOCLIST(interactions, user, key) + + // Yielding call + var/should_finish = strippable_item.start_equip(owner, held_item, user) + + LAZYREMOVEASSOC(interactions, user, key) + + if (!should_finish) + return + + if (QDELETED(src) || QDELETED(owner)) + return + + // They equipped an item in the meantime + if (!isnull(strippable_item.get_item(owner))) + return + + if (!user.Adjacent(owner)) + return + + strippable_item.finish_equip(owner, held_item, user) + if ("strip") + var/key = params["key"] + var/datum/strippable_item/strippable_item = strippable.items[key] + + if (isnull(strippable_item)) + return + + if (!strippable_item.should_show(owner, user)) + return + + if (strippable_item.get_obscuring(owner) == STRIPPABLE_OBSCURING_COMPLETELY) + return + + var/item = strippable_item.get_item(owner) + if (isnull(item)) + return + + if (!strippable_item.try_unequip(owner, user)) + return + + LAZYORASSOCLIST(interactions, user, key) + + var/should_unequip = strippable_item.start_unequip(owner, user) + + LAZYREMOVEASSOC(interactions, user, key) + + // Yielding call + if (!should_unequip) + return + + if (QDELETED(src) || QDELETED(owner)) + return + + // They changed the item in the meantime + if (strippable_item.get_item(owner) != item) + return + + if (!user.Adjacent(owner)) + return + + strippable_item.finish_unequip(owner, user) + if ("alt") + var/key = params["key"] + var/datum/strippable_item/strippable_item = strippable.items[key] + + if (isnull(strippable_item)) + return + + if (!strippable_item.should_show(owner, user)) + return + + if (strippable_item.get_obscuring(owner) == STRIPPABLE_OBSCURING_COMPLETELY) + return + + var/item = strippable_item.get_item(owner) + if (isnull(item) && !strippable_item.has_no_item_alt_action()) + return + + if (isnull(strippable_item.get_alternate_action(owner, user))) + return + + LAZYORASSOCLIST(interactions, user, key) + + // Potentially yielding + strippable_item.alternate_action(owner, user) + + LAZYREMOVEASSOC(interactions, user, key) + +/datum/strip_menu/ui_host(mob/user) + return owner + +/datum/strip_menu/ui_status(mob/user, datum/ui_state/state) + . = ..() + + if (isliving(user)) + var/mob/living/living_user = user + + if ( + . == UI_UPDATE \ + && user.stat == CONSCIOUS \ + && living_user.body_position == LYING_DOWN \ + && user.Adjacent(owner) + ) + return UI_INTERACTIVE + +/// Creates an assoc list of keys to /datum/strippable_item +/proc/create_strippable_list(types) + var/list/strippable_items = list() + + for (var/strippable_type in types) + var/datum/strippable_item/strippable_item = new strippable_type + strippable_items[strippable_item.key] = strippable_item + + return strippable_items diff --git a/code/game/objects/items/misc.dm b/code/game/objects/items/misc.dm index ea0168453c..d4c9c13b58 100644 --- a/code/game/objects/items/misc.dm +++ b/code/game/objects/items/misc.dm @@ -56,13 +56,13 @@ ..() if(!gripped) user.visible_message(SPAN_NOTICE("[user] grips [src] tightly."), SPAN_NOTICE("You grip [src] tightly.")) - flags_item |= NODROP + flags_item |= NODROP|FORCEDROP_CONDITIONAL ADD_TRAIT(user, TRAIT_HOLDS_CANE, TRAIT_SOURCE_ITEM) user.AddComponent(/datum/component/footstep, 6, 35, 4, 1, "cane_step") gripped = TRUE else user.visible_message(SPAN_NOTICE("[user] loosens \his grip on [src]."), SPAN_NOTICE("You loosen your grip on [src].")) - flags_item &= ~NODROP + flags_item &= ~(NODROP|FORCEDROP_CONDITIONAL) REMOVE_TRAIT(user, TRAIT_HOLDS_CANE, TRAIT_SOURCE_ITEM) // Ideally, this would be something like a component added onto every mob that prioritizes certain sounds, such as stomping over canes. var/component = user.GetComponent(/datum/component/footstep) diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index be7571fa84..36e0ea702a 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -101,7 +101,7 @@ w_class = SIZE_HUGE icon_state = "offhand" name = "offhand" - flags_item = DELONDROP|TWOHANDED|WIELDED + flags_item = DELONDROP|TWOHANDED|WIELDED|CANTSTRIP /obj/item/weapon/twohanded/offhand/unwield(mob/user) if(flags_item & WIELDED) diff --git a/code/modules/asset_cache/asset_list.dm b/code/modules/asset_cache/asset_list.dm index 8e19a19053..b887cff60c 100644 --- a/code/modules/asset_cache/asset_list.dm +++ b/code/modules/asset_cache/asset_list.dm @@ -341,3 +341,24 @@ GLOBAL_LIST_EMPTY(asset_datums) if (!item_filename) return . = list("[item_filename]" = SSassets.transport.get_asset_url(item_filename)) + +/datum/asset/simple/inventory + assets = list( + "inventory-glasses.png" = 'icons/ui_Icons/inventory/glasses.png', + "inventory-head.png" = 'icons/ui_Icons/inventory/head.png', + "inventory-neck.png" = 'icons/ui_Icons/inventory/neck.png', + "inventory-mask.png" = 'icons/ui_Icons/inventory/mask.png', + "inventory-ears.png" = 'icons/ui_Icons/inventory/ears.png', + "inventory-uniform.png" = 'icons/ui_Icons/inventory/uniform.png', + "inventory-suit.png" = 'icons/ui_Icons/inventory/suit.png', + "inventory-gloves.png" = 'icons/ui_Icons/inventory/gloves.png', + "inventory-hand_l.png" = 'icons/ui_Icons/inventory/hand_l.png', + "inventory-hand_r.png" = 'icons/ui_Icons/inventory/hand_r.png', + "inventory-shoes.png" = 'icons/ui_Icons/inventory/shoes.png', + "inventory-suit_storage.png" = 'icons/ui_Icons/inventory/suit_storage.png', + "inventory-id.png" = 'icons/ui_Icons/inventory/id.png', + "inventory-belt.png" = 'icons/ui_Icons/inventory/belt.png', + "inventory-back.png" = 'icons/ui_Icons/inventory/back.png', + "inventory-pocket.png" = 'icons/ui_Icons/inventory/pocket.png', + "inventory-collar.png" = 'icons/ui_Icons/inventory/collar.png', + ) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 4ea2f35aa6..2a419eddf1 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -399,23 +399,6 @@ bodytemperature = max(bodytemperature, BODYTEMP_HEAT_DAMAGE_LIMIT+10) recalculate_move_delay = TRUE - -/mob/living/carbon/show_inv(mob/living/carbon/user as mob) - user.set_interaction(src) - var/dat = {" -
[name]
-

-
Head(Mask):
[(wear_mask ? wear_mask : "Nothing")] -
Left Hand: [(l_hand ? l_hand : "Nothing")] -
Right Hand: [(r_hand ? r_hand : "Nothing")] -
Back: [(back ? back : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/tank) && !( internal )) ? " Set Internal" : "")] -
[(handcuffed ? "Handcuffed" : "Not Handcuffed")] -
[(internal ? "Remove Internal" : "")] -
Refresh -
Close -
"} - show_browser(user, dat, name, "mob[name]") - /** * Called by [/mob/dead/observer/proc/do_observe] when a carbon mob is observed by a ghost with [/datum/preferences/var/auto_observe] enabled. * diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 350bcec3e8..c394431c72 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -13,7 +13,7 @@ create_reagents(1000) if(!real_name || !name) change_real_name(src, "unknown") - + AddElement(/datum/element/strippable, GLOB.strippable_human_items, TYPE_PROC_REF(/mob/living/carbon/human, should_strip)) . = ..() prev_gender = gender // Debug for plural genders @@ -270,49 +270,6 @@ return TRUE return FALSE - - -/mob/living/carbon/human/show_inv(mob/living/user) - if(ismaintdrone(user)) - return - var/obj/item/clothing/under/suit = null - if(istype(w_uniform, /obj/item/clothing/under)) - suit = w_uniform - - user.set_interaction(src) - var/dat = {" -
[name]
-

-
(Exo)Suit: [(wear_suit ? wear_suit : "Nothing")] -
Suit Storage: [(s_store ? s_store : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(s_store, /obj/item/tank) && !( internal )) ? " Set Internal" : "")] -
Back: [(back ? back : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/tank) && !( internal )) ? " Set Internal" : "")] -
Head(Mask): [(wear_mask ? wear_mask : "Nothing")] -
Left Hand: [(l_hand ? l_hand : "Nothing")] -
Right Hand: [(r_hand ? r_hand : "Nothing")] -
Gloves: [(gloves ? gloves : "Nothing")] -
Eyes: [(glasses ? glasses : "Nothing")] -
Left Ear: [(wear_l_ear ? wear_l_ear : "Nothing")] -
Right Ear: [(wear_r_ear ? wear_r_ear : "Nothing")] -
Head: [(head ? head : "Nothing")] -
Shoes: [(shoes ? shoes : "Nothing")] -
Belt: [(belt ? belt : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(belt, /obj/item/tank) && !internal) ? " Set Internal" : "")] -
Uniform: [(w_uniform ? w_uniform : "Nothing")] [(suit) ? ((suit.has_sensor == UNIFORM_HAS_SENSORS) ? " Sensors" : "") : null] -
ID: [(wear_id ? wear_id : "Nothing")] -
Left Pocket: [(l_store ? l_store : "Nothing")] -
Right Pocket: [(r_store ? r_store : "Nothing")] -
- [handcuffed ? "
Handcuffed" : ""] - [legcuffed ? "
Legcuffed" : ""] - [suit && LAZYLEN(suit.accessories) ? "
Remove Accessory" : ""] - [internal ? "
Remove Internal" : ""] - [istype(wear_id, /obj/item/card/id/dogtag) ? "
Retrieve Info Tag" : ""] -
Remove Splints -
-
Refresh -
Close -
"} - show_browser(user, dat, name, "mob[name]") - /** * Handles any storage containers that the human is looking inside when auto-observed. */ @@ -428,9 +385,6 @@ /mob/living/carbon/human/Topic(href, href_list) - if(href_list["refresh"]) - if(interactee&&(in_range(src, usr))) - show_inv(interactee) if(href_list["mach_close"]) var/t1 = text("window=[]", href_list["mach_close"]) @@ -475,76 +429,6 @@ what = usr.get_active_hand() usr.stripPanelEquip(what,src,slot) - if(href_list["internal"]) - - if(!usr.action_busy && !usr.is_mob_incapacitated() && Adjacent(usr)) - attack_log += text("\[[time_stamp()]\] Has had their internals toggled by [key_name(usr)]") - usr.attack_log += text("\[[time_stamp()]\] Attempted to toggle [key_name(src)]'s' internals") - if(internal) - usr.visible_message(SPAN_DANGER("[usr] is trying to disable [src]'s internals"), null, null, 3) - else - usr.visible_message(SPAN_DANGER("[usr] is trying to enable [src]'s internals."), null, null, 3) - - if(do_after(usr, POCKET_STRIP_DELAY, INTERRUPT_ALL, BUSY_ICON_GENERIC, src, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) - if(internal) - internal.add_fingerprint(usr) - internal = null - visible_message("[src] is no longer running on internals.", null, null, 1) - else - if(istype(wear_mask, /obj/item/clothing/mask)) - if(istype(back, /obj/item/tank)) - internal = back - else if(istype(s_store, /obj/item/tank)) - internal = s_store - else if(istype(belt, /obj/item/tank)) - internal = belt - if(internal) - visible_message(SPAN_NOTICE("[src] is now running on internals."), null, null, 1) - internal.add_fingerprint(usr) - - // Update strip window - if(usr.interactee == src && Adjacent(usr)) - show_inv(usr) - - - if(href_list["splints"]) - if(!usr.action_busy && !usr.is_mob_incapacitated() && Adjacent(usr)) - if(MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_STRIPDRAG_ENEMY) && (stat == DEAD || health < HEALTH_THRESHOLD_CRIT) && !get_target_lock(usr.faction_group)) - to_chat(usr, SPAN_WARNING("You can't strip a crit or dead member of another faction!")) - return - attack_log += text("\[[time_stamp()]\] Has had their splints removed by [key_name(usr)]") - usr.attack_log += text("\[[time_stamp()]\] Attempted to remove [key_name(src)]'s' splints ") - remove_splints(usr) - - if(href_list["tie"]) - if(!usr.action_busy && !usr.is_mob_incapacitated() && Adjacent(usr)) - if(MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_STRIPDRAG_ENEMY) && (stat == DEAD || health < HEALTH_THRESHOLD_CRIT) && !get_target_lock(usr.faction_group)) - to_chat(usr, SPAN_WARNING("You can't strip a crit or dead member of another faction!")) - return - if(w_uniform && istype(w_uniform, /obj/item/clothing)) - var/obj/item/clothing/under/U = w_uniform - if(!LAZYLEN(U.accessories)) - return FALSE - var/obj/item/clothing/accessory/A = LAZYACCESS(U.accessories, 1) - if(LAZYLEN(U.accessories) > 1) - A = tgui_input_list(usr, "Select an accessory to remove from [U]", "Remove accessory", U.accessories) - if(!istype(A)) - return - attack_log += text("\[[time_stamp()]\] Has had their accessory ([A]) removed by [key_name(usr)]") - usr.attack_log += text("\[[time_stamp()]\] Attempted to remove [key_name(src)]'s' accessory ([A])") - if(istype(A, /obj/item/clothing/accessory/holobadge) || istype(A, /obj/item/clothing/accessory/medal)) - visible_message(SPAN_DANGER("[usr] tears off \the [A] from [src]'s [U]!"), null, null, 5) - if(U == w_uniform) - U.remove_accessory(usr, A) - else - if(HAS_TRAIT(src, TRAIT_UNSTRIPPABLE) && !is_mob_incapacitated()) //Can't strip the unstrippable! - to_chat(usr, SPAN_DANGER("[src] has an unbreakable grip on their equipment!")) - return - visible_message(SPAN_DANGER("[usr] is trying to take off \a [A] from [src]'s [U]!"), null, null, 5) - if(do_after(usr, get_strip_delay(usr, src), INTERRUPT_ALL, BUSY_ICON_GENERIC, src, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) - if(U == w_uniform) - U.remove_accessory(usr, A) - if(href_list["sensor"]) if(!usr.action_busy && !usr.is_mob_incapacitated() && Adjacent(usr)) if(MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_STRIPDRAG_ENEMY) && (stat == DEAD || health < HEALTH_THRESHOLD_CRIT) && !get_target_lock(usr.faction_group)) diff --git a/code/modules/mob/living/carbon/human/human_stripping.dm b/code/modules/mob/living/carbon/human/human_stripping.dm new file mode 100644 index 0000000000..fbf6fb5ce4 --- /dev/null +++ b/code/modules/mob/living/carbon/human/human_stripping.dm @@ -0,0 +1,272 @@ +GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list( + /datum/strippable_item/mob_item_slot/head, + /datum/strippable_item/mob_item_slot/back, + /datum/strippable_item/mob_item_slot/mask, + /datum/strippable_item/mob_item_slot/eyes, + /datum/strippable_item/mob_item_slot/r_ear, + /datum/strippable_item/mob_item_slot/l_ear, + /datum/strippable_item/mob_item_slot/jumpsuit, + /datum/strippable_item/mob_item_slot/suit, + /datum/strippable_item/mob_item_slot/gloves, + /datum/strippable_item/mob_item_slot/feet, + /datum/strippable_item/mob_item_slot/suit_storage, + /datum/strippable_item/mob_item_slot/id, + /datum/strippable_item/mob_item_slot/belt, + /datum/strippable_item/mob_item_slot/pocket/left, + /datum/strippable_item/mob_item_slot/pocket/right, + /datum/strippable_item/mob_item_slot/hand/left, + /datum/strippable_item/mob_item_slot/hand/right, + /datum/strippable_item/mob_item_slot/cuffs/handcuffs, + /datum/strippable_item/mob_item_slot/cuffs/legcuffs, +))) + +/mob/living/carbon/human/proc/should_strip(mob/user) + if (user.pulling == src && user.grab_level == GRAB_AGGRESSIVE && (user.a_intent & INTENT_GRAB)) + return FALSE //to not interfere with fireman carry + return TRUE + +/datum/strippable_item/mob_item_slot/head + key = STRIPPABLE_ITEM_HEAD + item_slot = SLOT_HEAD + +/datum/strippable_item/mob_item_slot/back + key = STRIPPABLE_ITEM_BACK + item_slot = SLOT_BACK + +/datum/strippable_item/mob_item_slot/mask + key = STRIPPABLE_ITEM_MASK + item_slot = SLOT_FACE + +/datum/strippable_item/mob_item_slot/mask/get_alternate_action(atom/source, mob/user) + var/obj/item/clothing/mask = get_item(source) + if (!istype(mask)) + return + if (!ishuman(source)) + return + var/mob/living/carbon/human/sourcehuman = source + if (istype(sourcehuman.s_store, /obj/item/tank)) + return "toggle_internals" + if (istype(sourcehuman.back, /obj/item/tank)) + return "toggle_internals" + if (istype(sourcehuman.belt, /obj/item/tank)) + return "toggle_internals" + return + +/datum/strippable_item/mob_item_slot/mask/alternate_action(atom/source, mob/user) + if(!ishuman(source)) + return + var/mob/living/carbon/human/sourcehuman = source + if(user.action_busy || user.is_mob_incapacitated() || !source.Adjacent(user)) + return + if(MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_STRIPDRAG_ENEMY) && (sourcehuman.stat == DEAD || sourcehuman.health < HEALTH_THRESHOLD_CRIT) && !sourcehuman.get_target_lock(user.faction_group)) + to_chat(user, SPAN_WARNING("You can't toggle internals of a crit or dead member of another faction!")) + return + + sourcehuman.attack_log += text("\[[time_stamp()]\] Has had their internals toggled by [key_name(user)]") + user.attack_log += text("\[[time_stamp()]\] Attempted to toggle [key_name(src)]'s' internals") + if(sourcehuman.internal) + user.visible_message(SPAN_DANGER("[user] is trying to disable [sourcehuman]'s internals"), null, null, 3) + else + user.visible_message(SPAN_DANGER("[user] is trying to enable [sourcehuman]'s internals."), null, null, 3) + + if(!do_after(user, POCKET_STRIP_DELAY, INTERRUPT_ALL, BUSY_ICON_GENERIC, sourcehuman, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) + return + + if(sourcehuman.internal) + sourcehuman.internal.add_fingerprint(user) + sourcehuman.internal = null + sourcehuman.visible_message("[sourcehuman] is no longer running on internals.", max_distance = 1) + return + + if(!istype(sourcehuman.wear_mask, /obj/item/clothing/mask)) + return + + if(istype(sourcehuman.back, /obj/item/tank)) + sourcehuman.internal = sourcehuman.back + else if(istype(sourcehuman.s_store, /obj/item/tank)) + sourcehuman.internal = sourcehuman.s_store + else if(istype(sourcehuman.belt, /obj/item/tank)) + sourcehuman.internal = sourcehuman.belt + + if(!sourcehuman.internal) + return + + sourcehuman.visible_message(SPAN_NOTICE("[sourcehuman] is now running on internals."), max_distance = 1) + sourcehuman.internal.add_fingerprint(user) + +/datum/strippable_item/mob_item_slot/eyes + key = STRIPPABLE_ITEM_EYES + item_slot = SLOT_EYES + +/datum/strippable_item/mob_item_slot/r_ear + key = STRIPPABLE_ITEM_R_EAR + item_slot = SLOT_EAR + +/datum/strippable_item/mob_item_slot/l_ear + key = STRIPPABLE_ITEM_L_EAR + item_slot = SLOT_EAR + +/datum/strippable_item/mob_item_slot/jumpsuit + key = STRIPPABLE_ITEM_JUMPSUIT + item_slot = SLOT_ICLOTHING + +/datum/strippable_item/mob_item_slot/jumpsuit/get_alternate_action(atom/source, mob/user) + var/obj/item/clothing/under/uniform = get_item(source) + if (!istype(uniform)) + return null + return uniform?.accessories ? "remove_accessory" : null + +/datum/strippable_item/mob_item_slot/jumpsuit/alternate_action(atom/source, mob/user) + if(!ishuman(source)) + return + var/mob/living/carbon/human/sourcemob = source + if(user.action_busy || user.is_mob_incapacitated() || !source.Adjacent(user)) + return + if(MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_STRIPDRAG_ENEMY) && (sourcemob.stat == DEAD || sourcemob.health < HEALTH_THRESHOLD_CRIT) && !sourcemob.get_target_lock(user.faction_group)) + to_chat(user, SPAN_WARNING("You can't strip a crit or dead member of another faction!")) + return + if(!sourcemob.w_uniform || !istype(sourcemob.w_uniform, /obj/item/clothing)) + return + + var/obj/item/clothing/under/uniform = sourcemob.w_uniform + if(!LAZYLEN(uniform.accessories)) + return FALSE + var/obj/item/clothing/accessory/accessory = LAZYACCESS(uniform.accessories, 1) + if(LAZYLEN(uniform.accessories) > 1) + accessory = tgui_input_list(user, "Select an accessory to remove from [uniform]", "Remove accessory", uniform.accessories) + if(!istype(accessory)) + return + sourcemob.attack_log += text("\[[time_stamp()]\] Has had their accessory ([accessory]) removed by [key_name(user)]") + user.attack_log += text("\[[time_stamp()]\] Attempted to remove [key_name(sourcemob)]'s' accessory ([accessory])") + if(istype(accessory, /obj/item/clothing/accessory/holobadge) || istype(accessory, /obj/item/clothing/accessory/medal)) + sourcemob.visible_message(SPAN_DANGER("[user] tears off [accessory] from [sourcemob]'s [uniform]!"), null, null, 5) + if(uniform == sourcemob.w_uniform) + uniform.remove_accessory(user, accessory) + return + + if(HAS_TRAIT(sourcemob, TRAIT_UNSTRIPPABLE) && !sourcemob.is_mob_incapacitated()) //Can't strip the unstrippable! + to_chat(user, SPAN_DANGER("[sourcemob] has an unbreakable grip on their equipment!")) + return + sourcemob.visible_message(SPAN_DANGER("[user] is trying to take off \a [accessory] from [source]'s [uniform]!"), null, null, 5) + + if(!do_after(user, sourcemob.get_strip_delay(user, sourcemob), INTERRUPT_ALL, BUSY_ICON_GENERIC, sourcemob, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) + return + + if(uniform != sourcemob.w_uniform) + return + + uniform.remove_accessory(user, accessory) + +/datum/strippable_item/mob_item_slot/suit + key = STRIPPABLE_ITEM_SUIT + item_slot = SLOT_OCLOTHING + +/datum/strippable_item/mob_item_slot/suit/has_no_item_alt_action() + return TRUE + +/datum/strippable_item/mob_item_slot/suit/get_alternate_action(atom/source, mob/user) + if(!ishuman(source)) + return + var/mob/living/carbon/human/sourcemob = source + for(var/bodypart in list("l_leg","r_leg","l_arm","r_arm","r_hand","l_hand","r_foot","l_foot","chest","head","groin")) + var/obj/limb/limb = sourcemob.get_limb(bodypart) + if(limb && (limb.status & LIMB_SPLINTED)) + return "remove_splints" + return + +/datum/strippable_item/mob_item_slot/suit/alternate_action(atom/source, mob/user) + if(!ishuman(source)) + return + var/mob/living/carbon/human/sourcemob = source + if(user.action_busy || user.is_mob_incapacitated() || !source.Adjacent(user)) + return + if(MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_STRIPDRAG_ENEMY) && (sourcemob.stat == DEAD || sourcemob.health < HEALTH_THRESHOLD_CRIT) && !sourcemob.get_target_lock(user.faction_group)) + to_chat(user, SPAN_WARNING("You can't remove splints of a crit or dead member of another faction!")) + return + sourcemob.attack_log += text("\[[time_stamp()]\] Has had their splints removed by [key_name(user)]") + user.attack_log += text("\[[time_stamp()]\] Attempted to remove [key_name(sourcemob)]'s' splints ") + sourcemob.remove_splints(user) + +/datum/strippable_item/mob_item_slot/gloves + key = STRIPPABLE_ITEM_GLOVES + item_slot = SLOT_HANDS + +/datum/strippable_item/mob_item_slot/feet + key = STRIPPABLE_ITEM_FEET + item_slot = SLOT_FEET + +/datum/strippable_item/mob_item_slot/suit_storage + key = STRIPPABLE_ITEM_SUIT_STORAGE + item_slot = SLOT_SUIT_STORE + +/datum/strippable_item/mob_item_slot/id + key = STRIPPABLE_ITEM_ID + item_slot = SLOT_ID + +/datum/strippable_item/mob_item_slot/id/get_alternate_action(atom/source, mob/user) + var/obj/item/card/id/dogtag/tag = get_item(source) + if(!ishuman(source)) + return + var/mob/living/carbon/human/sourcemob = source + if (!istype(tag)) + return + if (!sourcemob.undefibbable && (!skillcheck(user, SKILL_POLICE, SKILL_POLICE_SKILLED) || sourcemob.stat != DEAD)) + return + return tag.dogtag_taken ? null : "retrieve_tag" + +/datum/strippable_item/mob_item_slot/id/alternate_action(atom/source, mob/user) + if(!ishuman(source)) + return + var/mob/living/carbon/human/sourcemob = source + if(user.action_busy || user.is_mob_incapacitated() || !source.Adjacent(user)) + return + if(MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_STRIPDRAG_ENEMY) && (sourcemob.stat == DEAD || sourcemob.health < HEALTH_THRESHOLD_CRIT) && !sourcemob.get_target_lock(user.faction_group)) + to_chat(user, SPAN_WARNING("You can't strip a crit or dead member of another faction!")) + return + if(!istype(sourcemob.wear_id, /obj/item/card/id/dogtag)) + return + if (!sourcemob.undefibbable && !skillcheck(user, SKILL_POLICE, SKILL_POLICE_SKILLED)) + return + var/obj/item/card/id/dogtag/tag = sourcemob.wear_id + if(tag.dogtag_taken) + to_chat(user, SPAN_WARNING("Someone's already taken [sourcemob]'s information tag.")) + return + + if(sourcemob.stat != DEAD) + to_chat(user, SPAN_WARNING("You can't take a dogtag's information tag while its owner is alive.")) + return + + to_chat(user, SPAN_NOTICE("You take [sourcemob]'s information tag, leaving the ID tag")) + tag.dogtag_taken = TRUE + tag.icon_state = "dogtag_taken" + var/obj/item/dogtag/newtag = new(sourcemob.loc) + newtag.fallen_names = list(tag.registered_name) + newtag.fallen_assgns = list(tag.assignment) + newtag.fallen_blood_types = list(tag.blood_type) + user.put_in_hands(newtag) + + + +/datum/strippable_item/mob_item_slot/belt + key = STRIPPABLE_ITEM_BELT + item_slot = SLOT_WAIST + +/datum/strippable_item/mob_item_slot/pocket/left + key = STRIPPABLE_ITEM_LPOCKET + item_slot = SLOT_STORE + +/datum/strippable_item/mob_item_slot/pocket/right + key = STRIPPABLE_ITEM_RPOCKET + item_slot = SLOT_STORE + +/datum/strippable_item/mob_item_slot/hand/left + key = STRIPPABLE_ITEM_LHAND + +/datum/strippable_item/mob_item_slot/hand/right + key = STRIPPABLE_ITEM_RHAND + +/datum/strippable_item/mob_item_slot/cuffs/handcuffs + key = STRIPPABLE_ITEM_HANDCUFFS + +/datum/strippable_item/mob_item_slot/cuffs/legcuffs + key = STRIPPABLE_ITEM_LEGCUFFS diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 22deabce45..871a2cd376 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -504,68 +504,6 @@ /// Final result is overall delay * speed multiplier return target_delay * user_speed -/mob/living/carbon/human/stripPanelUnequip(obj/item/interact_item, mob/target_mob, slot_to_process) - if(HAS_TRAIT(target_mob, TRAIT_UNSTRIPPABLE) && !target_mob.is_mob_incapacitated()) //Can't strip the unstrippable! - to_chat(src, SPAN_DANGER("[target_mob] has an unbreakable grip on their equipment!")) - return - if(interact_item.flags_item & ITEM_ABSTRACT) - return - if(interact_item.flags_item & NODROP) - to_chat(src, SPAN_WARNING("You can't remove \the [interact_item.name], it appears to be stuck!")) - return - if(interact_item.flags_inventory & CANTSTRIP) - to_chat(src, SPAN_WARNING("You're having difficulty removing \the [interact_item.name].")) - return - target_mob.attack_log += "\[[time_stamp()]\] Has had their [interact_item.name] ([slot_to_process]) attempted to be removed by [key_name(src)]" - attack_log += "\[[time_stamp()]\] Attempted to remove [key_name(target_mob)]'s [interact_item.name] ([slot_to_process])" - log_interact(src, target_mob, "[key_name(src)] tried to remove [key_name(target_mob)]'s [interact_item.name] ([slot_to_process]).") - - src.visible_message(SPAN_DANGER("[src] tries to remove [target_mob]'s [interact_item.name]."), \ - SPAN_DANGER("You are trying to remove [target_mob]'s [interact_item.name]."), null, 5) - interact_item.add_fingerprint(src) - if(do_after(src, get_strip_delay(src, target_mob), INTERRUPT_ALL, BUSY_ICON_GENERIC, target_mob, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) - if(interact_item && Adjacent(target_mob) && interact_item == target_mob.get_item_by_slot(slot_to_process)) - target_mob.drop_inv_item_on_ground(interact_item) - log_interact(src, target_mob, "[key_name(src)] removed [key_name(target_mob)]'s [interact_item.name] ([slot_to_process]) successfully.") - - if(target_mob) - if(interactee == target_mob && Adjacent(target_mob)) - target_mob.show_inv(src) - - -/mob/living/carbon/human/stripPanelEquip(obj/item/interact_item, mob/target_mob, slot_to_process) - if(HAS_TRAIT(target_mob, TRAIT_UNSTRIPPABLE) && !target_mob.is_mob_incapacitated()) - to_chat(src, SPAN_DANGER("[target_mob] is too strong to force [interact_item.name] onto them!")) - return - if(interact_item && !(interact_item.flags_item & ITEM_ABSTRACT)) - if(interact_item.flags_item & NODROP) - to_chat(src, SPAN_WARNING("You can't put \the [interact_item.name] on [target_mob], it's stuck to your hand!")) - return - if(interact_item.flags_inventory & CANTSTRIP) - to_chat(src, SPAN_WARNING("You're having difficulty putting \the [interact_item.name] on [target_mob].")) - return - if(interact_item.flags_item & WIELDED) - interact_item.unwield(src) - if(!interact_item.mob_can_equip(target_mob, slot_to_process, TRUE)) - to_chat(src, SPAN_WARNING("You can't put \the [interact_item.name] on [target_mob]!")) - return - visible_message(SPAN_NOTICE("[src] tries to put \the [interact_item.name] on [target_mob]."), null, null, 5) - if(do_after(src, get_strip_delay(src, target_mob), INTERRUPT_ALL, BUSY_ICON_GENERIC, target_mob, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) - if(interact_item == get_active_hand() && !target_mob.get_item_by_slot(slot_to_process) && Adjacent(target_mob)) - if(interact_item.flags_item & WIELDED) //to prevent re-wielding it during the do_after - interact_item.unwield(src) - if(interact_item.mob_can_equip(target_mob, slot_to_process, TRUE))//Placing an item on the mob - drop_inv_item_on_ground(interact_item) - if(interact_item && !QDELETED(interact_item)) //Might be self-deleted? - target_mob.equip_to_slot_if_possible(interact_item, slot_to_process, 1, 0, 1, 1) - if(ishuman(target_mob) && target_mob.stat == DEAD) - var/mob/living/carbon/human/human_target = target_mob - human_target.disable_lights() // take that powergamers -spookydonut - - if(target_mob) - if(interactee == target_mob && Adjacent(target_mob)) - target_mob.show_inv(src) - /mob/living/carbon/human/drop_inv_item_on_ground(obj/item/I, nomoveupdate, force) remember_dropped_object(I) return ..() diff --git a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm index 8d3367ee68..d00b08f183 100644 --- a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm +++ b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm @@ -261,10 +261,6 @@ move_delay = . - -/mob/living/carbon/xenomorph/show_inv(mob/user) - return - /mob/living/carbon/xenomorph/proc/pounced_mob(mob/living/L) // This should only be called back by a mob that has pounce, so no need to check var/datum/action/xeno_action/activable/pounce/pounceAction = get_xeno_action_by_type(src, /datum/action/xeno_action/activable/pounce) diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index f1452d95c2..78c96bbbb7 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -110,19 +110,6 @@ /* * Inventory */ -/mob/living/simple_animal/parrot/show_inv(mob/user as mob) - user.set_interaction(src) - if(user.stat) return - - var/dat = "
Inventory of [name]

" - if(ears) - dat += "
Headset: [ears] (Remove)" - else - dat += "
Headset: Nothing" - - user << browse(dat, text("window=mob[];size=325x500", name)) - onclose(user, "mob[real_name]") - return /mob/living/simple_animal/parrot/Topic(href, href_list) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index c2cf6402ed..13c47719a7 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -372,25 +372,6 @@ SIGNAL_HANDLER reset_view(null) -/mob/proc/show_inv(mob/user) - user.set_interaction(src) - var/dat = {" -


[name] -

-
Head(Mask): [(wear_mask ? wear_mask : "Nothing")] -
Left Hand: [(l_hand ? l_hand : "Nothing")] -
Right Hand: [(r_hand ? r_hand : "Nothing")] -
Back: [(back ? back : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/tank) && !( internal )) ? text(" Set Internal", src) : "")] -
[(internal ? text("Remove Internal") : "")] -
Empty Pockets -
Refresh -
Close -
"} - show_browser(user, dat, name, "mob[name]") - return - - - /mob/proc/point_to_atom(atom/A, turf/T) //Squad Leaders and above have reduced cooldown and get a bigger arrow if(check_improved_pointing()) @@ -448,21 +429,6 @@ update_flavor_text() return - -/mob/MouseDrop(mob/M) - ..() - if(M != usr) return - if(usr == src) return - if(!Adjacent(usr)) return - if(!ishuman(M) && !ismonkey(M)) return - if(!ishuman(src) && !ismonkey(src)) return - if(M.is_mob_incapacitated()) - return - if(M.pulling == src && (M.a_intent & INTENT_GRAB) && M.grab_level == GRAB_AGGRESSIVE) - return - - show_inv(M) - /mob/proc/swap_hand() hand = !hand diff --git a/code/modules/projectiles/gun_attachables.dm b/code/modules/projectiles/gun_attachables.dm index 0c6da6f973..6f972bdeb8 100644 --- a/code/modules/projectiles/gun_attachables.dm +++ b/code/modules/projectiles/gun_attachables.dm @@ -2445,7 +2445,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/stock/smg/collapsible/brace/apply_on_weapon(obj/item/weapon/gun/G) if(stock_activated) - G.flags_item |= NODROP + G.flags_item |= NODROP|FORCEDROP_CONDITIONAL accuracy_mod = -HIT_ACCURACY_MULT_TIER_3 scatter_mod = SCATTER_AMOUNT_TIER_8 recoil_mod = RECOIL_AMOUNT_TIER_2 //Hurts pretty bad if it's wielded. @@ -2456,7 +2456,7 @@ Defined in conflicts.dm of the #defines folder. icon_state = "smg_brace_on" attach_icon = "smg_brace_a_on" else - G.flags_item &= ~NODROP + G.flags_item &= ~(NODROP|FORCEDROP_CONDITIONAL) accuracy_mod = 0 scatter_mod = 0 recoil_mod = 0 diff --git a/colonialmarines.dme b/colonialmarines.dme index d5e035d6d2..fa6152a276 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -101,6 +101,7 @@ #include "code\__DEFINES\stamina.dm" #include "code\__DEFINES\stats.dm" #include "code\__DEFINES\status_effects.dm" +#include "code\__DEFINES\strippable.dm" #include "code\__DEFINES\STUI.dm" #include "code\__DEFINES\subsystems.dm" #include "code\__DEFINES\surgery.dm" @@ -481,6 +482,7 @@ #include "code\datums\elements\light_blocking.dm" #include "code\datums\elements\mouth_drop_item.dm" #include "code\datums\elements\poor_eyesight_correction.dm" +#include "code\datums\elements\strippable.dm" #include "code\datums\elements\suturing.dm" #include "code\datums\elements\yautja_tracked_item.dm" #include "code\datums\elements\bullet_trait\damage_boost.dm" @@ -1911,6 +1913,7 @@ #include "code\modules\mob\living\carbon\human\human_dummy.dm" #include "code\modules\mob\living\carbon\human\human_helpers.dm" #include "code\modules\mob\living\carbon\human\human_movement.dm" +#include "code\modules\mob\living\carbon\human\human_stripping.dm" #include "code\modules\mob\living\carbon\human\inventory.dm" #include "code\modules\mob\living\carbon\human\life.dm" #include "code\modules\mob\living\carbon\human\login.dm" diff --git a/icons/ui_icons/inventory/back.png b/icons/ui_icons/inventory/back.png new file mode 100644 index 0000000000000000000000000000000000000000..736b9d64bf997fe7d6874db93e079c83b187ebdc GIT binary patch literal 1796 zcmbVNe{2&~9KSMfimXGNBy7{n%z2oji zyN=<)U^xB|L~scZ!em4UlVC(8BLWKO3?fl7s!q+Kk)RO4I2~h4@Lkt7peT{c-Mx43 zectE$`+MD*}V%TP&qCODdLpJQjiBlNLb2e;cv72;DcF@FE zMrBYNt@5(bX4cAKOBSPxA~YlrfXbi|AsABVhz*PL(r~UV6BrtYsLeL4OcRLKyFI8~ zlmTiskT^?{6k1|67|lgR7E2*YkrYXgC4`a0DT*e|bg>CdTo{xlbAGzUu{0qIe%Y`l zRh4Lh2#3Rlu*o3G0m5jtS_zUOC<=!NTxkudOau=pc}WHbP*|ClR9+0B8YANqTT~kc zHJvg+kW#cECE+IMFe1W8gwa51CdGjqo5D#gaxgBOV+jxh0tl%J#2QmrsYz5trAho3 z>eTi<0-$T%?v#xC>LLg!5sK57>{9OltgHeGEgHbc$qzN}#y<{R;XWT*f?J9~5oakjvSx}(o_C0Bin1exGN^Js;s~EZY#6J>A8=S=nSW>xOwop$03`j7yqJP1qF)U&GAIi`Z#^*Y z2&g=v73`E9#NSPf@7-10NjU5n+BDUw;76+2fe`F)GHhjM?&QM`soUXllzHpV4E0=l zv9omcruNU@>s~RKbIg6=z>ad_*sG45!396j+&-NzfRv>o)f7p4hsfxBK`rA3&<_meuKVpDuml?VK>* z8+)^Bj{mpSoA=A(>*ubTw)ClvBP&+V7@X9dR&ZonbNT#U-PH-DKW)$t27XWFeebTcbvF1+{EzN z#W%h0?;BrMm-c(ZP=;{o$yYKw19_9t-36D-=GXcwZj9d9qkn5jW?R;$J*!(swEvXL LS>-rV-nii}bGmM* literal 0 HcmV?d00001 diff --git a/icons/ui_icons/inventory/belt.png b/icons/ui_icons/inventory/belt.png new file mode 100644 index 0000000000000000000000000000000000000000..1be89d450a8f4d38ccf9a37072687406042faa4b GIT binary patch literal 1596 zcmbVMU1%Id9KRgbP}4T}P%T)f)2+0Aba!X>lDq8CYfSI1cURpQ(t{+THgmgkcS~+} zw!53|-BGA%sZvDr!GNL#E#iYIRuPHfgTX3=RxuB1C4zz$9}2}h2$9yJv-d@+)nb>O z-TC;<@BjTjF*2Ol&~r~uC=}X|%ce%z9|U7ZA4M891+3Eo5vr!m(4o+-!K#h5DdK?wDH&FR`}N~bIAG`rZmeI0s+}Zd zBU^XK{`zoUt50c)&JFGcyQ+v0n8d@NYE~>4RTEr;7qNM;Epng%@um{oP#_SDt0N#u z9Rgwkl+6*b;YK~!h2DL!IhzoSuOK?onrU|Cq zp|#wWo0!AIDz-&QfPqO3pssar_Ow%J2-h`{RES9|&t+JtgSE@lqi&i03w7uC1_8{q zs@jopQ(a86Bf|C4hnN{HhujqH=4&<)M~O?P9gU<9F*UaZ*4QZN5bRMWPidtcsFAkH zK$Zmv?jJKOo%-$rt1gff_DF(bQImKW1Yr}ZQr#%l{sCnHX0H^x z0m@QF#~!{VSl3XIIwocY8zwFh(Y8t)=(rIjX@xpWFw-u&dOw#;jySYvRM>$#n%M(# z>10e&VliG8q=vexigK3gVM`;qRDxs95e!2|FdiiZy-(w%Sd8$R+*jbSrWN@30Erf* zf}|@^+`gZp+H{Zt?fd%wy#JVEuoA?T+vW)hGsqp3HCz_eTB~&SlY^~U#Q=?TL0AjQ zAi-%t{E5!BwvF5NK$F%l6Gr+UdC`QqwCMTRAwwnRty|`u$dng@f^FI%{@ujJ*{b4h z!&%1&rkz&B7M*5CEY{&1*2*HuxffU){34ec%8#GDGW&hcr*Qo<*G^r2>-Y6rE`Qnm zLv82LGnXDYz7$#d{G*?WB9b=UTY2%1!xyr1r$2ab$G%AF;o!ZxQN5UX*&IH$u;sqo z!n6F!%DMT;KR;ZveJ(k5xOD2fr(Rzi3m^Msc4lj}>%2X&d;a>|#^V>aFI>5Bvg=a% z>2LPp@Ee1p*EWY=n?HEu&gHM3yV||>%vt}g_kTWcQl44-(GO2V3NI}^|KzK0^2^sH z^zFM7na9(a^UC7s$(0kY9GLvtpLyaO2f|0TE=P9su3NY1y?t*7{XLf+PQ9~d^5|b_ CA`k5V literal 0 HcmV?d00001 diff --git a/icons/ui_icons/inventory/collar.png b/icons/ui_icons/inventory/collar.png new file mode 100644 index 0000000000000000000000000000000000000000..71803b1b6c6b535c4a0d706240fdd4da64227962 GIT binary patch literal 2090 zcmbVNYiQk69FH3t+q#WCzH|d6q(eHkb93^(iM{LE-f1h|u5`s!aj=td(wMnMxhYZbeJ-yWs;R%xPHYs{RPWb)8=K}9JIpLsIfQ4{?l)S;& zh#Z(59>cQ}*mQ*6J$z5qVgx=(5MTAnL2OlXLXFpA>-4oK@HI#>krVn-hx~Y9gdd<0 z;q?pz7($sh%#5U~YBsx@m!S+rXowO7vTQ-!(iFaN2+UjLxYlU?(S|SfloLux5?Z2I zsZ=r*B}1d4D4C`yLRpk$zz`sw2@+HVLEP13$dedHUYK|^;8R9q)2SpUFs1bn{IEqE z#Emqugo#xYic$uqA=Q8mZsEeIs9baIV3CxGPl6<7SgC~#OEjTzi7rFk`h152mfAw0 z$H1iH^r+LL!cmm`+8Q?3-pXyV7VvYak*hq0tznPr&#`P- zCRtb2fI~D4P*!CZL=ccQ*+s~Wo-(9E&Zt2Se3m!O?t_8A#|YwbYiH$HdV%KWL+RBs;+37Y3MTP z5!2CNM)j#{vsSQ9Y-SJKtZoCFs5US)HfULe5JQn|?CM&Zb&aPkL%h3QCXZEV&`b5t zH2fYQlPv{&t-~#Z)5*;VIBi+t2#wd?64kx0JT~krCBjJW(#m!3F?Ev)ib!9Pb;3PI zMO;=q4W>!dCO-BWab z15l5B$rQDZ@c&6sBmKC9f+AttjVPqS)Vii#eDS}1QTx{R6K}%V&X6u!TM~O{ZE7T7 z)DhdVw(MGQhHZCOhw^=6yeGe;QIX0YyO)9-@bEw<78Lx#<}rTyFM!ZvH9iK z?d@le8Mn}m%iWd7AHH~f#V3pVZ|r{P`v(`!ym)Hm=}U{-_!F<9^H)k2x$>1SxEp;V zA8uaM*3ZpvS=8ibj+c5?o+j6Ba^aWn8J7>u&ENDU&s{kE{?Vs@y128G|Mc+MBTxSP zcL#Uk!q&aLA9Kg)^V?pz`gLy22X7bVPHvjJ+W*6fPT1SMi9d4c(BN;Yy8klPL1)*( yFMEG{u5)e&n0+m?fVjo4PAz`(k224_`&q|Xqw?Le{FQV!AKEvZKi_}&g?|BkKCR0D literal 0 HcmV?d00001 diff --git a/icons/ui_icons/inventory/ears.png b/icons/ui_icons/inventory/ears.png new file mode 100644 index 0000000000000000000000000000000000000000..e9a8f3c23c4bf20a2269121cef3797d04f616ea4 GIT binary patch literal 1688 zcmbVNZEVzJ9PcUU#vJM(f=**8L588Pch|eC6t-RG?vmZSjgxJJ59`|JcHORhy0+Wh zEg@`EjKn3z@L`KAX2v)IALdI)kT739D8wicC5VX<2bc&L!xw{LbLi9C-DN0Bq)Gd{ z{hr_d{oj4@=ElkukFCHktTGyrTG5ERZ`pn5YYz_ohK6!8(qUs*#VYspV6RWC#jxd% zXo+^GJ=P>BP^V-Sb^$7@n+T0zTef9QS?L81-UYffLnN*p|CqovRV3Q{F(zh)K}w4Z zT44KNb3z&HRYEGUZ7aSdD~};0X}V~F zZkA{byWl3|Fgh!nG)pnANqL~ElyGLhmCg%S6&j?04h+XeShj>UQ_z8S3jPaq>G&1_ z$hEOpNycq;(e;uD+i4g;W)vK9TeO|XnSgEuHte?)&@h11T<=@RA#aFib-W2}as^m+nWy;kX5pS{fbL zt&R0~v?0v1A)Y5Wip{GViwRM~c4R{VQAs3_b0|$y1%I+j<$}OZ@@kSN1FA1b23em< zvT}e)@;-)Vyh`!D1eJa_1&a68|9Ss8OG70nr|+7_Elf9egotLNsOAc#vmNvmW@!!2 zr;8vfZW)M#;>I7SL}6RIYY!~aW>Nr={zqOc!fcpyGO`8gx{g6By>HiAr^e_PyuFVk<|OhxQ&DS+lxj z=7l}g(%8)xBhCeKX4zQJyKjviQiY~cHsN6W#$z+O=W$*FS|2#i*{JkHsA7rWS2z$MH v_WAn{i(d{$uIGBO)xU2{Z*4o*iM{d5mDXP$-o54{_umn1XqKkyJ4gNk667+U literal 0 HcmV?d00001 diff --git a/icons/ui_icons/inventory/glasses.png b/icons/ui_icons/inventory/glasses.png new file mode 100644 index 0000000000000000000000000000000000000000..6e6f1ad098f6d52ccdd7001ae68b001ad0e497c9 GIT binary patch literal 2017 zcmb_dZD<@t7~Y7fHZc@z3&kIH-6(0r-JRXrZ*sQjT}%$W7?W#r{)l#VclK`0?MHSu zxyxZO7AuPSLlmWL8c-A}QjJLQM=1td3kpRLwD|pjC@3acmDYdGUha;<0xr(l(RSh?oUgKZS~R ze>FhE)q$K*9Wzvu+IA<|UD2=s2St#qI3+jKDoLtlSHtbNo2AGaBpORnJ+VVFpB*Gq zUVuo60ki=CPs%F8NrIp#caS{b0Sjc712oTTK+?nnS-&XkEif%@D1BGm7ye69#VGPM zmMxddOgX`LL4oB|Rb>Is@;r?ZbU5WkutK|GXTw4og+^fek?px;Y!T|-M3kg3)1?p` zziHMD>uJIXV=K^SIR?Zb)qtka#Q76Jspi}?SX4p|a-$GqxhB>xdXX0vy;V#%hyUdO zr#72y`dE>R<1}4_QST%Uqn?lz(P3`NN9+&^y@|j;y_1+`XB>^Mr2+&aFUWabsZprG z24#}x89;6sv0c+Ehg+9TKxr7EB!#QS(I7!{Y7U4Rr)mj>2C@dg5;W_Xwl#GT6c?Bi zH383D2E~#wVFWJ=HVw`40te!NZ3h+*>$?StY^G65c_lBvjxoE$^8QRJH5ho7UBUz5 zP~Q$R)0>hwRg!3);c9fVSuNv+5p)fdNhc|s9LBay4IvIDWI?BeL_()k9rIQ!L8WED zLzxpe(-efp{Iq9G#1d%CH}QN`=M`R2O|!pTchM@W)+QB`P37CAa03No#m7NlhZCPYOxfu!h- z&@ZAMZ$v;7g@#VAhI&1%MiIINg!fdI`Y*v;i4s?-!-b3P{|knVx6&nru@{Q3Hnwcr z#f7YO;k`U=HV+Z}(>#Wdi}MuVLuQ@&(EIp+I+IEFy^_53)m=Mxe#*X;pKgus`Av_KTW^`! z{LPlzPCpKg{IT_u*$p4flFpg2*57n<=BtI#^W!ZK%-jtYUhnMx@sVo}zqB|{s?%@I z=et0DrsemOH-A~|8h@Eq-hSrfthM`vX}49W-hS%*!HrMv8rgop=v#Z^)bWK=8@lgX z9R1;l_2IeEuaExp-Pw=#ztc4a`iSw~f9V|`JpB2I2f6k+qJ3`q*=yEq-n*yA TGWHM0hj6BMApORU-FyE5goTfO literal 0 HcmV?d00001 diff --git a/icons/ui_icons/inventory/gloves.png b/icons/ui_icons/inventory/gloves.png new file mode 100644 index 0000000000000000000000000000000000000000..2c8a16cbdb7afb31597ca4d51d3fd42a97b80d74 GIT binary patch literal 2107 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 Sb@s0yL@L=gm^j}%{^mc4t&ljBz1!V& z?WT)!`~izG;`|i`1|pj9kA^s1LWU?Brjls!|os4x!GSXZ?K`H1eY6eCV#Kz4<1IT^QCQ~q@>H+HF^v4vbDgkPTH^#<{ zAk3Q2Z*eX^)fn>UdgixMW#pbf~PmeVb%7@$hL5*|C#3`Le8c3*&McMOur zSPvOQCL{$HOUo?FlRnYK2_BE%-$wE*&oZo!;aHmIC03BUZnAt)*qW)NrFf{LYzuz{ zsH|-p62lY<1y{lCLS}~HL{Vf|p5b{KBWP<-w?UECt>y|t2wJkK8n%jb(qRNCl(z#E zR=VJVW>jf)s~jdAFs29$hI6rwOC_KpS8+z(%$1BQG6Qo^gSu^DELX)ES!5$Ci6l29d8UNXhL8kGl5X9 zlBk}FWRmAyEZMR{)fH5*S{H4AAz;G*g|o)dtefV<1nZSJQS!KH)+e#-0yKscH9h!0 zC{8fv!{}?ExMUPygPVdCSxO^Q1K43z0~yE|dWIsaVU&U>hfHi3t8*`&j|PK1CQ7S0 zykNyUw~*0rP~b#Cpm`Tpk{gRjQQfkEF2iUjK;huHR8^5YP;q-bUXJz)P@z*k4^M+s zilqe}C{U2yZm7V@{t%M$P6<@@D|kOhi@Y}tA?@*skQRL&K>JfZmUeRjulUo7->dj4 z`?s1ZK7t^3+dR&}bZSS6s20xZVEO25hyCSIP9;m_A_3Vs1_4TT@(&fNJgqJffm`!n zfwqu^nDhp9u>iAB+AaVSwr6m(Zd!NDa^fv8aAWDWmb_)8Utg!UBfT6}IScd*#66Xv z9A_A(`z$1dxjtW|wMCt(0>|yo8CLr){-}0tsAFmq_hovYIY$sRHPKLeBKg^$ug}+y zvW+9dU!8gE#a)NblC6&%>za)3-u2}hO>;XZ&vvP6;2$q-{dQpb>fga_duNkZ9;&_n zr`q1b{k3mRJ-BnYv)|e~5!^%(V>K<(2VZZyukn?c`8^{?H+&dARAc>k&q&=zW1qKu zb7-*c!rhZZZ`-+F{%P(%PE3y|S6aveowbp_hTmy=e{`o>G$ad+p{6MZf^W!NAlmMsgAX$I-fbwapvTT_t!MSXzSXezwJ4`@5qt! zktz1lu@zc=_nYDM>O>BWp1Ab#11sm(|6JQU((vqf Y!~Q}vd?9@Lob!i^hPy-WZFze1KQT;ZSpWb4 literal 0 HcmV?d00001 diff --git a/icons/ui_icons/inventory/id.png b/icons/ui_icons/inventory/id.png new file mode 100644 index 0000000000000000000000000000000000000000..4469591d36f52d65a994e06e2ce963ad6120374d GIT binary patch literal 1940 zcmb_dOKjXk7y1@p#u{?J>5K z-7FjshlHY>I8}%Pf(u*_aNq(`Ri#KAsT7Wgs$4)w<&hkE3*&v56q2-xuw>78=9~Zd z{qtX0n4cXPerlNGxRLT)X_1Y5_C7qszDc{i$A(kU+~tJh9yy)81Kj%`oZ+~k&;80$ zy5wAdm&VMJ+K*M*9*I+hy)dzW z$t@JgiUcy3IzSiaxM($Qbd3TpzNhY=QOgT_oTvrap>UM?0FV(R$~wvjB(p6AQcMMJR+LsTWD zW3J=Ca+stj#H3uZ1r{91_g$zKbY1g2B5JDXimIYx(KL}Fx~>OQk08S|%>MZj#j6|C@ZBy#v=SOJrw>-R0RdZzAj`Z$l(xaf(@! zd13U&JFG#yTP{simQLZj`}-5ylhuuv9@>J-I|E?mP4d&L?c3LX=B`e@_S@d+y&K?- zFChP^|CsZ~ttNK?#oIgAzPtLwqfh_x*49_n^41;Bokhtr(&p&y=EmTVKK#!0yJxRR zo6^Mi*~#5=++X{*w-@X)jh9<>bNTznza4z#$(uh6d_3~r&6!_68JziMklXn%*!}3s SjX$%#S)QIReRh8N?Y{ws0&39! literal 0 HcmV?d00001 diff --git a/icons/ui_icons/inventory/mask.png b/icons/ui_icons/inventory/mask.png new file mode 100644 index 0000000000000000000000000000000000000000..82e51089379638169f03a711e11b1a6312d06ba4 GIT binary patch literal 1930 zcmbVN4Qvxt9KSBv0$U&mP6!Kf-i)B(dLR8*ds&BDyN?FDEnCe-LbhG+UfavsyW8Du z{U8R=kp}t=)l@>ju$g zPd)0C6o6WdB+ii}jh5Jrl+|pu*|wlGNs|OwLQo`5(+p{4EG9I4VbGew`MJQv_KPBoWmaS)bIY zIWVYn!G*A#r4`k5m|(z&C@T|`k3}SWR=qJ95Dh?;Iu#C7c0rlNx;HZ8Q~;|< zidT|CnMBoRB%?HKB+<=Hg2+n|_4!2`fQ!|D1A|$kaMFZRb}wmRC_7`a;$#U!k_%9e z#0&n||DZ6zG{soVcR^vv@T|r@6wGssUsA#>bXW+p0YJ!N07J83WSmk+QlMd|&a`;m z?R3^Fl3xhH1+}5N0(Dn9t(4tr#c3mzlI!s>Zc)`(kppg*1B1aa3Ifki6lb9*s|6=1 zK;ytI-7Y~O_++0G3_NUgxWTv|R(Ac(=^ zc9naZ$1lEHSN9sZuIJA~wXg5nAD^YWC$7}L`16kha&0AA&!G3Gm7m16X9GE|djE$TrAB-9Pn(gh~k!;N$S(UUOkN?Y~#53 z&fN83LvncIhl$qrzyGZ}nTr@#4mgjBy?4Gnh9re;eQ)&LuHtuG>N%6>Zt<>?4-OW# z{Bi7quTPE^7OlOu^S$rpkM1e*@1Ja``lw+3r>WVMgA*mY{(XDqhW@v7SJt`)E81TD E4>iM=I{*Lx literal 0 HcmV?d00001 diff --git a/icons/ui_icons/inventory/neck.png b/icons/ui_icons/inventory/neck.png new file mode 100644 index 0000000000000000000000000000000000000000..78ad3ce3b1c7d608523bea7f3b8ea62fcc789924 GIT binary patch literal 1852 zcmbVNeQ4Zd7|+I5+Rmv^=Imf2W*=^>N#5jgxhC87V|TaqWY-?;K`RvJd&zruv3Gf6 zlIvZobgfWX{}KfUIzeS_BFwF9D(YY#;&g7v91a|;%*qhPX4xO=A0jf}ThI`1J_O99*^6!j{{6TJYR_C)0MXhM?t|ipl z?>tFS%dZ=Wez!liOVx0WgE~$ku9&k3nxeM17A>d^B9~60v|$FB+b2#jw4n!?K7S0v ztPsi=og+5t9qCGFBZHcvGp#N3_M%D%a>#{rF_$$RwHRbdyee6HuX% z`(trBgl$C29AGs7L^_~wf-FhR%}uljM8JapF922)RUoT=A6@=2#G9?B)SmFpvM=%! zWHPR6sXSjO6u5$q!*-e%6h+~I$crLN5Uew7y0FNa&iV>N7&)44SgwIh+GB)CoOgo^ zQ92hw&Z^RyPB~2^VSEuT8SG*wgBPK$ zZvV#tNo_1v^|7FqT(0WEaU(+{jB-L2L_3LL3-LY3!FgLlks%^;y%&w8hHL~~Y$q_z zRtgobNTx-R1N7!T!_;xX*)q=ng`tar45^yH0v{_V3E)>npprERr~u4CV^}v*!~cVl z0t*3EB9`-@q-AvI!ux`CO-*4t2T8z24yF-rnQ4Zurcn*yEVhYbqRuz}eKZt`+c;%p z$%fO@v4f6ALb9O9GAnXINp38rMoq_sriP;7AVZSF8HTRvq9mmJffOssP-caI1X!pi zlWf2bL|sb;BtL)^`!Lq>UJF$0bz%=SO;>z^!pc%oVxb~6v(1u3=oB3yKk`FCNLB2+ zZG#*^n0;s-?_hepqjnk&sp@d~==7o&%d4zGm)eEM@{U1}(Y*R2ohiRI7RbPZMKDKO z$RI*`kG`0LIXLAOppDwoBwP3GJAN_o4jj6-^am^6BGT{f(}$5>POFxIW*U*1$}?Ut zyf=O3io)MruhQPUNmYT9@#ih8bC*0+CpR()wN2*o#e=_pM`rq+Xt+JmKQX&6`si2S zk;qHEH+oameq8wa zui%ogzN;7Byxu@geB{`QE2sC2Czo=?t7~i9_q1*LqV0t8#ybD88{MD$b}@C~7w6}v z=-u0Drj~X5G;n^y*73$a51c$Qk-j!N>6}V^7Tq70*KPQKn%R5uj&HfXHgqk&d*^um z`{VWJF1;|duekcTqo*4ZY?E!A9XTdMh@B0>wbcK)Xc>a}t0rPNTB>(^b literal 0 HcmV?d00001 diff --git a/icons/ui_icons/inventory/pocket.png b/icons/ui_icons/inventory/pocket.png new file mode 100644 index 0000000000000000000000000000000000000000..f42399dca0f57aee93ea1c8890690e1cb09eb643 GIT binary patch literal 1831 zcmbVNe`wrP98YWKX-9`+!ba!DBdxH3xxA!F?h<-#-Q9I};&ol`pyxzvE_rtsddW+Z zw0A8-y5e9(|58zKLzrX!rJaJ(O$Ceo;U9MYh-2;kbIL$jw<=bOO!Vb?chuQ#V}T?u z?|t6q`}zKO-%R)S9d2uFZ>1=zEt!Z7kT>w}#~vk5cVglX@_O7(yx>yQ)*b%cM7?`v z7e#IP$;f2AZ0dPM!)8#`aSjD5rcKZk)qS91tJ*N~Kn@iQD?;D?;wu^$dW0SnQ!r&m zQPD_DI4C{Qm(eDMHCd+*JPW!j3L!9&r-F)EvRtJSp{u+K8T->L4XO}tI70XM20=E} z52DyXKng-egOCRyImk(Z5Dq^Bc*sK*hFA_VJg-1W5xYR`qKP#}&npA5-kL4)6`_ls zXDcjQE|-Jlt{`>_EGNq{3wf638G>Nkam!OHjOBLJ8DhxQ9K-euYyqE9&EZimLKCHH zE|_+M)^clMA^~G7s?Bmi=(|(}>RJP5k2=yAR)Q#o; z7$Bidr5ZLi)MA4Y$fU-)x%B(<5E3Q z{dLKJ=YtUJ8#F8(m)-sAHlUd5p$JW~#xbyq;p7Yy6;4(JnSmh%!Zm0L>qdV3e^8QO zF07DDuZNP7(N#~qFId-B}RpE?y@+{nuoyCzCz7^mfm-DfmSE z(gzo#7bmZ`!?T}XiS5QepPx_c4)h*-?tJIc`>)NOUAnVVi6$uU+w|4tePGMjl|3!v zm!JOS#7gPUk91?C`^a!^+l{|=&IRJ%y*zc(OE2tY!T!Mazu$S}rEmVurUN&6Ps{}N z0%+bc-Wxg@XXaPf$vrQAe5-xe?2eHiPoFz}>dURKpFUbX^@eyg6rcU}hvP>NZeJa4 ze`@Z`a?4vr)}<4d7yoIx-MrBGX4@s|SXb+O>(Dzh^7c>jtIgM@?VGQpdl#B#2Dz1M q=O#a!%XVH^Js6q#aIq!OvE1}zYpnU}3!ixYuPhnwi_IJwn)(+_K2}r! literal 0 HcmV?d00001 diff --git a/icons/ui_icons/inventory/shoes.png b/icons/ui_icons/inventory/shoes.png new file mode 100644 index 0000000000000000000000000000000000000000..d20f7ef4d10615f467b90ca65fbaaf85b49fd4ec GIT binary patch literal 1817 zcmbVNZEVzJ96yjPz}#47G`=LHD-lp^`?Po0yEfd|xI4E?=(vn?oQ^Ph?bExuYoF3~ zyW44^A!;NVrzVa?x5Pjq#18}w(I8QL`Q``02SsDXhdGplM3g9M2);bMmuBJygr>bd zeV*U*`~Utg&;RzP`+Hkg-@iH#2(+g95(D^6c+bja{OeRIzv0&^tM73q5NNr}dzJ;> zoW3^@XqwkESvMP`Ut@R4lp3Xuz=z?5%6L-NYpP9TeDS797sG`w}roA zWWjYUkzq=u5?u=Vbf^x=9S1wbgv#!CAfR1A8ma8L^@EGMB8g*kN zR$6nxuzXt6sfP&%j48_&!_vTWsR~pTA7_o)#j0^tVPFv&&~zP)WqqtwKrV6$XbEb6 z`9B75XeG(Fv8Wcq@J%>watyms56GfuCo^tAW&k>9)K*|}49i^Sd1Hxj8_F)SGYAzM ziApyl6C6haV&hKTR8h%!Xu$@UkX;xfan@K01SwX?fUw94VmL&BhzLLpDj`+Z#{UP! z31*`r&eB3CE*VvJ<(q<4MbwaO$k<`skn@nS%sff>VHD%2h-_>as|zliPsQVD8)~QBM73N*S@DiRj8we*LzS#g>x)F-);y@u zmI@G)-k>gOFb8RFNw#569!Kk@b;m3v-jT;{EdAD!w}kZT>-2V{*Tbq5WHS$OPi08Y z8OG~AwWKiD=c~H5pi?#AxczxUzwhD?zjH$qQ`@*N@9vmCk9+!TD$$e4e(}>AQp>*X z_80zo?Vg!y8$U`k&3t+M*ukO6gC7S z*>i>Cr#8Jim%Zcb3$qj9(>?1ie6wQqT4&*E$J%e#|B^cL!KMfIUuv3Wnh#t)^z_i7 z+>1y5ZtiLueSX`Dsn5Re-aYkj`mIlfcbywdc8xTh{#0{rZW!=brHXyi&>j#L=yL_WcWGY*4lU literal 0 HcmV?d00001 diff --git a/icons/ui_icons/inventory/suit.png b/icons/ui_icons/inventory/suit.png new file mode 100644 index 0000000000000000000000000000000000000000..e9c48e8069f75f8d3c100e570f4e18b4bd543697 GIT binary patch literal 2073 zcmb_dZEO@p7~a+^LTQ6WB?Q0LZ37zF-Pygn-R|0xws(cQ*sHZYp#1P-Z+7l()4Sbu zciX%6hqi=h{9!_DqKN_09|W`l^20PGn4s1wIbw|(v5CQ8V`2!zl8RztqR!q|3ba5P zFWKAKnP=XQ=Y8g#H@Z5v*Vk^WB?zKE5)O6aH|ajBSK)tqXy___tue#9ZGu>PpZio1 z@9y6~5UWmTv0kS)+95+D!zii|M@%kbVl+WCZ_Sws>_ZM2M@dZ&Q1howQ>3N_s9pXj zh?+r^(!xU)>KW>c!J$4Vsnph|$>yAl4P=m`khx4+x8+=bD%h3r*qvr6vH)@V0#vK( zknD|ikwL>kq`&|g0>G1^#BhSo*VMFyDsiLV z2~arFVhS0vVpg|HG-1NnoMN&Z1KgAfKowSSX1|p#I9DNy(kO#;$HrK$f;CfyW7sKU z8Pk>J>l|QeqtS|wC1c5CDlTlNeE_FXB4kOl9UC+e+l_3a--4)p0EgM&W@E}h3n`9a z#S9}|E>u@JWRm9@Kt8@p(^VsDKe1>73Mmc>P`GLw4ZJib#eiStB$*dzAj$v~p;1HC z5`#BEae*-uh}S`}WK_jbZVOhSoG`46f)my3$Gj_9_d=nzFh0Sc4DXqqZZ67Y#gKs4_Y{4_85 z5_FR!A{uZ|5#n9}055h_sF)lwV81JY@_rTXhtMlZekjs$2>i6y?-Oas$E&m$S9o4k zMb!tz^8RNn4Ie=zy<$7=!F07Fhcz2lb+B}FdeF*%O|y=D~Y?#93iI14j#)N9@w|z?ba{+FE-|K-n!BA&BCK^jUB%<3=cds z{MWgeO~RF(WZrW*|Kow#Lz`RFhkH)FlAdH+cVFnKZk+jg_>AYh^Wfm$#J`>sSEm-P z)y&N;H0D1z{QNV&cg#yw`6nM(J=#D{c|M<*tp2utwr&1oQ~uKF7V&;(r+wt5BH6NXvTtD{ljA#AX?;rflv+%>YacXSGh%o=^npFMB zIC1T%iDScm3|>f9kFNVP{pZLxp4hL$%*^JWQ`JB1zdQWdw!L$2ewY|tJ6reqQAm&c j^UGzXp>8}IHaw3U@oi|xPxlVEmv^MSGjzP|r9J-vG{UPI literal 0 HcmV?d00001 diff --git a/icons/ui_icons/inventory/suit_storage.png b/icons/ui_icons/inventory/suit_storage.png new file mode 100644 index 0000000000000000000000000000000000000000..9722eb10297ab295a9c9248c58ac4426acad96c4 GIT binary patch literal 1976 zcmbVN4Q$j@9PcKF$Ry73kp)F+(W#mJysus19OG_mm#kxsBbH=jI17MkNcJf#{sd3||_I0#Os4q5>u=MkkJlC<(saZWlnlLX))oLYo<+|Jr%>SX@OdQBYNZ3J!LX_8tL>Y^twr_eaOJDqUqLMfW6RPiea|n zaxi3uggRbS;}nq8Fr-p(4WTh?L1jtMwrY@Wgoc{XMOfW}WX`j^(RiN@fvM_2RgFy~ zs$oJh&T$lj-@9B^BsFQ=cisl*2PX6qC~GXq*h$tCWSl(f;T>+0aq|o_4i!{Mj;c>g?yw2YkK;U5&^w zv|u#WEW!iTJ{Rk8xk!#;vvLK24=9ES6cGmeUIGP&l4XgH0J}3%;S7^Z#8W|v5^^zY z=iFpOWbK?Nh8YJ3CieSPF=3U!#C{3wce+^UVx3Ns16&0uIUJDm0Kk&r3bzCq07N^J zx4%S}(Gdi(>*lczrd2z9t!$vIw&sq`Qn)5JiphAkTzDW_$G}U7R{o(x3+{c*DQlI@`YbY?rMh=y+yiYsbo+cby-b9i86TiX^P6Il1y<2&s;qAdsC zewYrFjP|Fx+E+{&EUmORBnBQ_7%kzn>1#);zFBv8*8a5{<3}bBbYt(99)5Axqn*cg z-M(pd+2N7jmlY1}c&Ga_$FUvLUmG?_x;>J4sc^+{ScMJte_-D{?ZB4iGodfA*ZU6r zG)E6Es>8RRrT#cGEzS5l^1uupDt=|O^-2)B}8=| sI?4@>B@1q@R%>UL?QyPJ+=b1o^uDokjEDRFvi_}s>U#gSMXT5U2WnlQ>i_@% literal 0 HcmV?d00001 diff --git a/icons/ui_icons/inventory/uniform.png b/icons/ui_icons/inventory/uniform.png new file mode 100644 index 0000000000000000000000000000000000000000..292b3324b5bd9b0a82a56fb0de737bfcd3e58bcc GIT binary patch literal 1885 zcmbVNZEO=|9KQ`&wl%{s38KU0xP8F4dtKk|ps=moOVN%}8dnIIUGJW@=X&=Xcek}` zGO~@BI46z|OF*5*7-K?W*glZ>!4EFZ511trG$9(IVu&a~nK2E~7}4jtwi&oNLX+z~ zFTdya|NUQ{|BZ)xy6S2luf;H|F4!H2pf_$m)m7-<%;oavRik$wGBM2Yi2YPxZ%%K+ zu#MN0Xv~U*o);vjQlbpwfXb>mLSxwOy;)t9`hkVVK~m9t#L~x~5V#`yh+bES3F&^2 zQo3^nIGF2+O1XZCmx;Z5@ZDJf5vaft@vNHGOd;zd3cLau+sib87a&%@k7%>?rgEUZqW|;`fma%#YTF^|vHK@zm zcNsvT4TZ`!R@I`aWfP{=F^JqK24q#V86DCA9RVgBFeK11h-5a~-spng0HOtrD1_-! zqQWJ~ILA>8{$#JB$uMI+wc-E>h!*e>C~GXqw2&+xWn2Qw3-;6_Fw8PE1Z5>L^dBfn zFvke2^DZbV8CkT%b-}VEB%q;+$YDhllYrK>B!QR1DEMI-8ptqG*Rpaw==X;Wm{8Ja z!;Eyb5(ox-1PTtND6-&XT#_fwu%yT71;|-voaDW3 zne<8`%fwk%+{2X52cR@ymq6*fTsYs-B1s93Bi+~e{}JXf;6 z-%!vM6w?pPV_!_Wc7$%lL|GjwUY&#BSaFnA@Itu=qGVqKA0gTK2QpDyR#uI`{dllU zn@Isg`agBC3^QTE%7_MNOQLA4TX*zY;!SaIJ?Zz8yfviXTc-~qy%<(0C2C24dMZuW z&d_%ESxyRlZ@vn9D>_vPj@q9+EcabBDR*w5A!-Bl<)arr-;ZGxcrefwjm`ghI<#qw zsqf?`lfPjvwn<}WPR(9U5$Vscac#?ypFiC&bhhfb8}CLBFHD9Tw!%?sPg8hTbmCg< zX2Y$T;Y?@E2bqP~*N;}tR4wj2^WEDR|M%vRkso*DjAPAHeZTlCw@DI0L z9OOR-92eLl(-Q}JM~3t7UA&Zyyz*N0Ur%po(A%fxdYT^F{Dvc0nHOqn^*hH;IxZ}Z zUfyUm&U~|Ne!M#5Xr-<+R#j-bsKZ|@e7GU4-dGx4d?@hk?7oLn=b!kf`Rdit#mS}7 z+I;uOrfK;4)K_n*P0!3tHqPI9=fw3{U+Zv1HGK8UnZEk^mwz~PGIDMzAB)ak*>QH~ w+^stC_Hpj$pM2ux$f?FI`2Owd`R^;~OMm=yKJ~)(Y5M~h?C1%cYwsKT7f3W~>i_@% literal 0 HcmV?d00001 diff --git a/tgui/packages/tgui/interfaces/StripMenu.tsx b/tgui/packages/tgui/interfaces/StripMenu.tsx new file mode 100644 index 0000000000..6790d17a29 --- /dev/null +++ b/tgui/packages/tgui/interfaces/StripMenu.tsx @@ -0,0 +1,380 @@ +import { range } from 'common/collections'; +import { BooleanLike } from 'common/react'; + +import { resolveAsset } from '../assets'; +import { useBackend } from '../backend'; +import { Box, Button, Icon, Image, Stack } from '../components'; +import { Window } from '../layouts'; + +const ROWS = 5; +const COLUMNS = 6; + +const BUTTON_DIMENSIONS = '64px'; + +type GridSpotKey = string; + +const getGridSpotKey = (spot: [number, number]): GridSpotKey => { + return `${spot[0]}/${spot[1]}`; +}; + +const CornerText = (props: { + readonly align: 'left' | 'right'; + readonly children: string; +}): JSX.Element => { + const { align, children } = props; + + return ( + + {children} + + ); +}; + +type AlternateAction = { + icon: string; + text: string; +}; + +const ALTERNATE_ACTIONS: Record = { + remove_splints: { + icon: 'crutch', + text: 'Remove splints', + }, + + remove_accessory: { + icon: 'tshirt', + text: 'Remove accessory', + }, + + retrieve_tag: { + icon: 'tags', + text: 'Retrieve info tag', + }, + + toggle_internals: { + icon: 'mask-face', + text: 'Toggle internals', + }, +}; + +type Slot = { + displayName: string; + gridSpot: GridSpotKey; + image?: string; + additionalComponent?: JSX.Element; + hideEmpty?: boolean; +}; + +const SLOTS: Record = { + glasses: { + displayName: 'glasses', + gridSpot: getGridSpotKey([0, 1]), + image: 'inventory-glasses.png', + }, + + head: { + displayName: 'headwear', + gridSpot: getGridSpotKey([0, 2]), + image: 'inventory-head.png', + }, + + wear_mask: { + displayName: 'mask', + gridSpot: getGridSpotKey([1, 2]), + image: 'inventory-mask.png', + }, + + wear_r_ear: { + displayName: 'right earwear', + gridSpot: getGridSpotKey([0, 3]), + image: 'inventory-ears.png', + }, + + wear_l_ear: { + displayName: 'left earwear', + gridSpot: getGridSpotKey([1, 3]), + image: 'inventory-ears.png', + }, + + handcuffs: { + displayName: 'handcuffs', + gridSpot: getGridSpotKey([1, 4]), + hideEmpty: true, + }, + + legcuffs: { + displayName: 'legcuffs', + gridSpot: getGridSpotKey([1, 5]), + hideEmpty: true, + }, + + w_uniform: { + displayName: 'uniform', + gridSpot: getGridSpotKey([2, 1]), + image: 'inventory-uniform.png', + }, + + wear_suit: { + displayName: 'suit', + gridSpot: getGridSpotKey([2, 2]), + image: 'inventory-suit.png', + }, + + gloves: { + displayName: 'gloves', + gridSpot: getGridSpotKey([2, 3]), + image: 'inventory-gloves.png', + }, + + r_hand: { + displayName: 'right hand', + gridSpot: getGridSpotKey([2, 4]), + image: 'inventory-hand_r.png', + additionalComponent: R, + }, + + l_hand: { + displayName: 'left hand', + gridSpot: getGridSpotKey([2, 5]), + image: 'inventory-hand_l.png', + additionalComponent: L, + }, + + shoes: { + displayName: 'shoes', + gridSpot: getGridSpotKey([3, 2]), + image: 'inventory-shoes.png', + }, + + j_store: { + displayName: 'suit storage item', + gridSpot: getGridSpotKey([4, 0]), + image: 'inventory-suit_storage.png', + }, + + id: { + displayName: 'ID', + gridSpot: getGridSpotKey([4, 1]), + image: 'inventory-id.png', + }, + + belt: { + displayName: 'belt', + gridSpot: getGridSpotKey([4, 2]), + image: 'inventory-belt.png', + }, + + back: { + displayName: 'backpack', + gridSpot: getGridSpotKey([4, 3]), + image: 'inventory-back.png', + }, + + l_store: { + displayName: 'left pocket', + gridSpot: getGridSpotKey([4, 4]), + image: 'inventory-pocket.png', + }, + + r_store: { + displayName: 'right pocket', + gridSpot: getGridSpotKey([4, 5]), + image: 'inventory-pocket.png', + }, +}; + +enum ObscuringLevel { + Completely = 1, + Hidden = 2, +} + +type Interactable = { + interacting: BooleanLike; +}; + +/** + * Some possible options: + * + * null - No interactions, no item, but is an available slot + * { interacting: 1 } - No item, but we're interacting with it + * { icon: icon, name: name } - An item with no alternate actions + * that we're not interacting with. + * { icon, name, interacting: 1 } - An item with no alternate actions + * that we're interacting with. + */ +type StripMenuItem = + | null + | Interactable + | (( + | { + icon: string; + name: string; + alternate: string; + } + | { + obscured: ObscuringLevel; + } + | { + no_item_action: string; + } + ) & + Partial); + +type StripMenuData = { + items: Record; + name: string; +}; + +const StripContent = (props: { readonly item: StripMenuItem }) => { + if (props.item && 'name' in props.item) { + return ( + + ); + } + if (props.item && 'obscured' in props.item) { + return ( + + ); + } + return <> ; +}; + +export const StripMenu = (props) => { + const { act, data } = useBackend(); + + const gridSpots = new Map(); + for (const key of Object.keys(data.items)) { + const item = data.items[key]; + if (item === null && SLOTS[key].hideEmpty) continue; + gridSpots.set(SLOTS[key].gridSpot, key); + } + + return ( + + + + {range(0, ROWS).map((row) => ( + + + {range(0, COLUMNS).map((column) => { + const key = getGridSpotKey([row, column]); + const keyAtSpot = gridSpots.get(key); + + if (!keyAtSpot) { + return ( + + ); + } + + const item = data.items[keyAtSpot]; + const slot = SLOTS[keyAtSpot]; + + let alternateAction: AlternateAction | undefined; + + let content; + let tooltip; + + if (item === null) { + tooltip = slot.displayName; + } else if ('name' in item) { + alternateAction = ALTERNATE_ACTIONS[item.alternate]; + tooltip = item.name; + } else if ('obscured' in item) { + tooltip = `obscured ${slot.displayName}`; + } else if ('no_item_action' in item) { + tooltip = slot.displayName; + alternateAction = ALTERNATE_ACTIONS[item.no_item_action]; + } + + return ( + + + + + {alternateAction !== undefined && ( + + )} + + + ); + })} + + + ))} + + + + ); +}; diff --git a/tgui/packages/tgui/styles/interfaces/StripMenu.scss b/tgui/packages/tgui/styles/interfaces/StripMenu.scss new file mode 100644 index 0000000000..d2c867c0ac --- /dev/null +++ b/tgui/packages/tgui/styles/interfaces/StripMenu.scss @@ -0,0 +1,65 @@ +@use '../base.scss'; + +$background-color: rgba(0, 0, 0, 0.33) !default; + +.StripMenu__cornertext_left { + position: relative; + left: 2px; + text-align: left; + text-shadow: 1px 1px 1px #555; +} + +.StripMenu__cornertext_right { + position: relative; + left: -2px; + text-align: right; + text-shadow: 1px 1px 1px #555; +} + +.StripMenu__iconbox { + height: 100%; + width: 100%; + -ms-interpolation-mode: nearest-neighbor; + vertical-align: middle; +} + +.StripMenu__obscured { + text-align: center; + height: 100%; + width: 100%; +} + +.StripMenu__itembox { + position: relative; + width: 100%; + height: 100%; +} + +.StripMenu__contentbox { + position: relative; +} + +.StripMenu__itembutton { + position: relative; + width: 100%; + height: 100%; + padding: 0; +} + +.StripMenu__itemslot { + position: absolute; + width: 32px; + height: 32px; + left: 50%; + top: 50%; + transform: translateX(-50%) translateY(-50%) scale(0.8); + opacity: 0.7; +} + +.StripMenu__alternativeaction { + background: rgba(0, 0, 0, 0.6); + position: absolute; + bottom: 0; + right: 0; + z-index: 2; +} diff --git a/tgui/packages/tgui/styles/main.scss b/tgui/packages/tgui/styles/main.scss index b51e602746..639365e0e3 100644 --- a/tgui/packages/tgui/styles/main.scss +++ b/tgui/packages/tgui/styles/main.scss @@ -80,6 +80,7 @@ @include meta.load-css('./interfaces/common/Dpad.scss'); @include meta.load-css('./interfaces/common/ElectricalPanel.scss'); @include meta.load-css('./interfaces/TacticalMap.scss'); +@include meta.load-css('./interfaces/StripMenu.scss'); // Layouts @include meta.load-css('./layouts/Layout.scss'); From 45c1aa2a9c82d0586faa80434f7e116c6a653b0e Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Fri, 23 Aug 2024 13:10:33 +0100 Subject: [PATCH 6/6] Automatic changelog for PR #392 [ci skip] --- html/changelogs/AutoChangeLog-pr-392.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-392.yml diff --git a/html/changelogs/AutoChangeLog-pr-392.yml b/html/changelogs/AutoChangeLog-pr-392.yml new file mode 100644 index 0000000000..ce0259e43b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-392.yml @@ -0,0 +1,4 @@ +author: "private-tristan" +delete-after: True +changes: + - rscadd: "ports TG strip menu" \ No newline at end of file