From df19931edbde5b386f7269cf1ddd4df74d377b68 Mon Sep 17 00:00:00 2001 From: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Date: Sun, 6 Apr 2025 15:20:13 -0500 Subject: [PATCH] Hunger bar is now animated and updates as you eat (#90446) ## About The Pull Request Hunger bar is now dynamic rather than 4 static sprites Hunger bar now accounts for food you have yet to metabolize, meaning it updates as you eat https://github.com/user-attachments/assets/06269da7-f07d-4738-98b2-ca6bde8ba0fe Other changes: - Adds a hunger tier between hungry and starving ## Why It's Good For The Game Overeating happens so often simply because this bar is trash, so let's give it some love ## Changelog :cl: Melbert fix: All humans no longer have a baseline "75" ghost nutrition (which means you can eat more) qol: Hunger bar update! It's now dynamic and updates as you eat. qol: Adds a hunger tier between hungry and starving (for mood) /:cl: --- code/__DEFINES/living.dm | 2 + code/__DEFINES/mobs.dm | 1 + code/_onclick/hud/hud.dm | 2 +- code/_onclick/hud/screen_objects.dm | 158 +++++++++++++----- code/datums/components/food/edible.dm | 1 + code/datums/elements/food/foodlike_drink.dm | 1 + code/datums/mood.dm | 8 +- code/datums/mood_events/needs_events.dm | 4 + .../mob/living/carbon/human/init_signals.dm | 4 +- code/modules/mob/living/carbon/life.dm | 27 +-- code/modules/mob/living/life.dm | 24 ++- code/modules/mob/mob.dm | 17 +- .../organs/internal/stomach/_stomach.dm | 4 +- icons/hud/screen_gen.dmi | Bin 112255 -> 112185 bytes 14 files changed, 182 insertions(+), 71 deletions(-) diff --git a/code/__DEFINES/living.dm b/code/__DEFINES/living.dm index 6721ad28997..920b8054445 100644 --- a/code/__DEFINES/living.dm +++ b/code/__DEFINES/living.dm @@ -10,6 +10,8 @@ * update_body_parts() is going to be called ONE time once everything is done. */ #define STOP_OVERLAY_UPDATE_BODY_PARTS (1<<2) +/// Nutrition changed last life tick, so we should bulk update this tick +#define QUEUE_NUTRITION_UPDATE (1<<3) /// Getter for a mob/living's lying angle, otherwise protected #define GET_LYING_ANGLE(mob) (UNLINT(mob.lying_angle)) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 433a26c6278..772125facc7 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -242,6 +242,7 @@ #define NUTRITION_LEVEL_WELL_FED 450 #define NUTRITION_LEVEL_FED 350 #define NUTRITION_LEVEL_HUNGRY 250 +#define NUTRITION_LEVEL_VERY_HUNGRY 200 #define NUTRITION_LEVEL_STARVING 150 #define NUTRITION_LEVEL_START_MIN 250 diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 837c3eb16ee..aec20020c3e 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -97,7 +97,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list( var/atom/movable/screen/stamina var/atom/movable/screen/healthdoll/healthdoll var/atom/movable/screen/spacesuit - var/atom/movable/screen/hunger + var/atom/movable/screen/hunger/hunger // subtypes can override this to force a specific UI style var/ui_style diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 9bcc565f1d9..ff312bb15ca 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -925,26 +925,30 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/splash) icon_state = "stamina0" screen_loc = ui_stamina -#define HUNGER_STATE_FAT 2 -#define HUNGER_STATE_FULL 1 -#define HUNGER_STATE_FINE 0 -#define HUNGER_STATE_HUNGRY -1 -#define HUNGER_STATE_STARVING -2 +#define HUNGER_STATE_FAT 5 +#define HUNGER_STATE_FULL 4 +#define HUNGER_STATE_FINE 3 +#define HUNGER_STATE_HUNGRY 2 +#define HUNGER_STATE_VERY_HUNGRY 1 +#define HUNGER_STATE_STARVING 0 /atom/movable/screen/hunger name = "hunger" icon_state = "hungerbar" - base_icon_state = "hungerbar" screen_loc = ui_hunger mouse_opacity = MOUSE_OPACITY_TRANSPARENT /// What state of hunger are we in? - VAR_PRIVATE/state = HUNGER_STATE_FINE + VAR_PRIVATE/state + /// What was the last fullness we recorded? + VAR_PRIVATE/fullness /// What food icon do we show by the bar var/food_icon = 'icons/obj/food/burgerbread.dmi' /// What food icon state do we show by the bar var/food_icon_state = "hburger" /// The image shown by the bar. VAR_PRIVATE/image/food_image + /// The actual bar + VAR_PRIVATE/atom/movable/screen/hunger_bar/hunger_bar /atom/movable/screen/hunger/Initialize(mapload, datum/hud/hud_owner) . = ..() @@ -955,14 +959,18 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/splash) if(!ishuman(hungry) || CONFIG_GET(flag/disable_human_mood)) screen_loc = ui_mood // Slot in where mood normally is if mood is disabled + // Burger next to the bar food_image = image(icon = food_icon, icon_state = food_icon_state, pixel_x = -5) food_image.plane = plane food_image.appearance_flags |= KEEP_APART // To be unaffected by filters applied to src food_image.add_filter("simple_outline", 2, outline_filter(1, COLOR_BLACK, OUTLINE_SHARP)) underlays += food_image // To be below filters applied to src - SetInvisibility(INVISIBILITY_ABSTRACT, name) // Start invisible, update later - update_appearance() + // The actual bar + hunger_bar = new(src, null) + vis_contents += hunger_bar + + update_hunger_bar(instant = TRUE) /atom/movable/screen/hunger/proc/update_hunger_state() var/mob/living/hungry = hud?.mymob @@ -970,61 +978,129 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/splash) return if(HAS_TRAIT(hungry, TRAIT_NOHUNGER) || !hungry.get_organ_slot(ORGAN_SLOT_STOMACH)) + fullness = NUTRITION_LEVEL_FED state = HUNGER_STATE_FINE return - if(HAS_TRAIT(hungry, TRAIT_FAT)) + fullness = NUTRITION_LEVEL_FAT state = HUNGER_STATE_FAT return if(HAS_TRAIT(hungry, TRAIT_GLUTTON)) + fullness = NUTRITION_LEVEL_VERY_HUNGRY state = HUNGER_STATE_HUNGRY // Can't get enough return - switch(hungry.nutrition) - if(NUTRITION_LEVEL_FULL to INFINITY) + fullness = round(hungry.get_fullness(only_consumable = TRUE), 0.05) + switch(fullness) + if(1 + NUTRITION_LEVEL_FULL to INFINITY) state = HUNGER_STATE_FULL - if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FULL) + if(1 + NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FULL) state = HUNGER_STATE_FINE - if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) + if(1 + NUTRITION_LEVEL_VERY_HUNGRY to NUTRITION_LEVEL_HUNGRY) + state = HUNGER_STATE_FINE + if(1 + NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_VERY_HUNGRY) state = HUNGER_STATE_HUNGRY if(0 to NUTRITION_LEVEL_STARVING) state = HUNGER_STATE_STARVING /atom/movable/screen/hunger/update_appearance(updates) + update_hunger_bar() + return ..() + +/// Updates the hunger bar's appearance. +/// If `instant` is TRUE, the bar will update immediately rather than animating. +/atom/movable/screen/hunger/proc/update_hunger_bar(instant = FALSE) var/old_state = state - update_hunger_state() // Do this before we call all the other update procs - if(state == old_state) // Let's not be wasteful - return + var/old_fullness = fullness + update_hunger_state() + if(old_state != state || old_fullness != fullness) + // Fades out if we ARE "fine" AND if our stomach has no food digesting + var/mob/living/hungry = hud?.mymob + if(alpha == 255 && (state == HUNGER_STATE_FINE && abs(fullness - hungry.nutrition) < 1)) + if(instant) + alpha = 0 + else + animate(src, alpha = 0, time = 1 SECONDS) + // Fades in if we WERE "fine" OR if our stomach has food digesting + else if(alpha == 0 && (state != HUNGER_STATE_FINE || abs(fullness - hungry.nutrition) >= 1)) + if(instant) + alpha = 255 + else + animate(src, alpha = 255, time = 1 SECONDS) + + if(old_state != state) + // Update filter around the bar + if(state == HUNGER_STATE_STARVING) + if(!get_filter("hunger_outline")) + add_filter("hunger_outline", 1, list("type" = "outline", "color" = "#FF0033", "alpha" = 0, "size" = 2)) + animate(get_filter("hunger_outline"), alpha = 200, time = 1.5 SECONDS, loop = -1) + animate(alpha = 0, time = 1.5 SECONDS) + + else if(old_state == HUNGER_STATE_STARVING) + remove_filter("hunger_outline") + + // Update color of the food + if((state == HUNGER_STATE_FAT) != (old_state == HUNGER_STATE_FAT)) + underlays -= food_image + food_image.color = state == HUNGER_STATE_FAT ? COLOR_DARK : null + underlays += food_image + + // Update hunger bar + if(old_fullness != fullness) + // instant if invisible OR if instant is set + hunger_bar.update_fullness(fullness, alpha == 0 || instant) + +/atom/movable/screen/hunger_bar + icon_state = "hungerbar_bar" + screen_loc = ui_hunger + vis_flags = VIS_INHERIT_ID | VIS_INHERIT_PLANE + /// Mask + VAR_PRIVATE/static/icon/bar_mask + /// Gradient used to color the bar + VAR_PRIVATE/static/list/hunger_gradient = list( + 0.0, "#FF0000", + 0.2, "#FF8000", + 0.4, "#f0f000", + 0.6, "#00FF00", + 0.8, "#46daff", + 1.0, "#2A72AA", + 1.2, "#494949", + ) + /// Offset of the mask + VAR_PRIVATE/bar_offset + /// Last "fullness" value (rounded) we used to update the bar + VAR_PRIVATE/last_fullness_band = -1 + +/atom/movable/screen/hunger_bar/Initialize(mapload, datum/hud/hud_owner) . = ..() - if(state == HUNGER_STATE_FINE) - SetInvisibility(INVISIBILITY_ABSTRACT, name) + var/atom/movable/movable_loc = ismovable(loc) ? loc : null + screen_loc = movable_loc?.screen_loc + bar_mask ||= icon(icon, "hungerbar_mask") + +/atom/movable/screen/hunger_bar/proc/update_fullness(new_fullness, instant) + new_fullness = round(new_fullness / NUTRITION_LEVEL_FULL, 0.05) + if(new_fullness == last_fullness_band) return - - else if(invisibility) - RemoveInvisibility(name) - - if(state == HUNGER_STATE_STARVING) - if(!get_filter("hunger_outline")) - add_filter("hunger_outline", 1, list("type" = "outline", "color" = "#FF0033", "alpha" = 0, "size" = 2)) - animate(get_filter("hunger_outline"), alpha = 200, time = 1.5 SECONDS, loop = -1) - animate(alpha = 0, time = 1.5 SECONDS) - + last_fullness_band = new_fullness + // Update color + var/new_color = gradient(hunger_gradient, clamp(new_fullness, 0, 1.2)) + if(instant) + color = new_color else - remove_filter("hunger_outline") - - // Update color of the food - if((state == HUNGER_STATE_FAT) != (old_state == HUNGER_STATE_FAT)) - underlays -= food_image - food_image.color = state == HUNGER_STATE_FAT ? COLOR_DARK : null - underlays += food_image - -/atom/movable/screen/hunger/update_icon_state() - . = ..() - icon_state = "[base_icon_state][state]" + animate(src, color = new_color, 0.5 SECONDS) + // Update mask + var/old_bar_offset = bar_offset + bar_offset = clamp(-20 + (20 * new_fullness), -20, 0) + if(old_bar_offset != bar_offset) + if(instant || isnull(old_bar_offset)) + add_filter("hunger_bar_mask", 1, alpha_mask_filter(0, bar_offset, bar_mask)) + else + transition_filter("hunger_bar_mask", alpha_mask_filter(0, bar_offset), 0.5 SECONDS) #undef HUNGER_STATE_FAT -#undef HUNGER_STATE_FULL #undef HUNGER_STATE_FINE +#undef HUNGER_STATE_FULL #undef HUNGER_STATE_HUNGRY #undef HUNGER_STATE_STARVING +#undef HUNGER_STATE_VERY_HUNGRY diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm index 8faf32fef56..a5e96335c19 100644 --- a/code/datums/components/food/edible.dm +++ b/code/datums/components/food/edible.dm @@ -501,6 +501,7 @@ Behavior that's still missing from this component that original food items had t var/fraction = 0.3 fraction = min(bite_consumption / owner.reagents.total_volume, 1) owner.reagents.trans_to(eater, bite_consumption, transferred_by = feeder, methods = INGEST) + eater.hud_used?.hunger?.update_hunger_bar() bitecount++ checkLiked(fraction, eater) diff --git a/code/datums/elements/food/foodlike_drink.dm b/code/datums/elements/food/foodlike_drink.dm index e83468d68a1..e8f6cf49f9e 100644 --- a/code/datums/elements/food/foodlike_drink.dm +++ b/code/datums/elements/food/foodlike_drink.dm @@ -38,6 +38,7 @@ return source.attack(user, user) + user.hud_used?.hunger?.update_hunger_bar() /datum/element/foodlike_drink/proc/can_keep_drinking(obj/item/reagent_containers/source, mob/living/user) if(QDELETED(source) || user.get_active_held_item() != source) diff --git a/code/datums/mood.dm b/code/datums/mood.dm index 5d2e70ec2de..08d493ada1c 100644 --- a/code/datums/mood.dm +++ b/code/datums/mood.dm @@ -128,8 +128,10 @@ add_mood_event(MOOD_CATEGORY_NUTRITION, /datum/mood_event/fed) if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED) clear_mood_event(MOOD_CATEGORY_NUTRITION) - if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) + if(NUTRITION_LEVEL_VERY_HUNGRY to NUTRITION_LEVEL_HUNGRY) add_mood_event(MOOD_CATEGORY_NUTRITION, /datum/mood_event/hungry) + if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_VERY_HUNGRY) + add_mood_event(MOOD_CATEGORY_NUTRITION, /datum/mood_event/hungry_very) if(0 to NUTRITION_LEVEL_STARVING) add_mood_event(MOOD_CATEGORY_NUTRITION, /datum/mood_event/starving) @@ -339,7 +341,9 @@ msg += "[span_info("I'm not hungry.")]
" if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED) msg += "[span_info("I could use a bite to eat.")]
" - if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) + if(NUTRITION_LEVEL_VERY_HUNGRY to NUTRITION_LEVEL_HUNGRY) + msg += "[span_warning("I'm feeling hungry.")]
" + if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_VERY_HUNGRY) msg += "[span_warning("I feel quite hungry.")]
" if(0 to NUTRITION_LEVEL_STARVING) msg += "[span_boldwarning("I'm starving!")]
" diff --git a/code/datums/mood_events/needs_events.dm b/code/datums/mood_events/needs_events.dm index 66f930fa784..96f35708a36 100644 --- a/code/datums/mood_events/needs_events.dm +++ b/code/datums/mood_events/needs_events.dm @@ -17,6 +17,10 @@ /datum/mood_event/hungry description = "I'm getting a bit hungry." + mood_change = -3 + +/datum/mood_event/hungry_very + description = "I'm hungry!" mood_change = -6 /datum/mood_event/starving diff --git a/code/modules/mob/living/carbon/human/init_signals.dm b/code/modules/mob/living/carbon/human/init_signals.dm index a425a5c279f..8e6465cf0f3 100644 --- a/code/modules/mob/living/carbon/human/init_signals.dm +++ b/code/modules/mob/living/carbon/human/init_signals.dm @@ -51,7 +51,7 @@ /mob/living/carbon/human/proc/on_fat(datum/source) SIGNAL_HANDLER - hud_used?.hunger?.update_appearance() + hud_used?.hunger?.update_hunger_bar() mob_mood?.update_nutrition_moodlets() if(HAS_TRAIT(src, TRAIT_FAT)) @@ -68,7 +68,7 @@ overeatduration = 0 remove_traits(list(TRAIT_FAT, TRAIT_OFF_BALANCE_TACKLER), OBESITY) else - hud_used?.hunger?.update_appearance() + hud_used?.hunger?.update_hunger_bar() mob_mood?.update_nutrition_moodlets() /// Signal proc for [COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED] to check if an item is suddenly too heavy for our pockets diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 3f81b193d0d..d7471e6b7b3 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -686,22 +686,29 @@ //Stomach// /////////// -/mob/living/carbon/get_fullness() - var/fullness = nutrition +/mob/living/carbon/get_fullness(only_consumable) + . = ..() var/obj/item/organ/stomach/belly = get_organ_slot(ORGAN_SLOT_STOMACH) if(!belly) //nothing to see here if we do not have a stomach - return fullness + return . - for(var/bile in belly.reagents.reagent_list) - var/datum/reagent/bits = bile - if(istype(bits, /datum/reagent/consumable)) - var/datum/reagent/consumable/goodbit = bile - fullness += goodbit.get_nutriment_factor(src) * goodbit.volume / goodbit.metabolization_rate + for(var/datum/reagent/bits as anything in belly.reagents.reagent_list) + // hack to get around stomachs having 5u stomach lining reagent ugugugu + var/effective_volume = bits.volume + if(belly.food_reagents[bits.type]) + effective_volume -= belly.food_reagents[bits.type] + if(effective_volume <= 0) continue - fullness += 0.6 * bits.volume / bits.metabolization_rate //not food takes up space + if(istype(bits, /datum/reagent/consumable)) + var/datum/reagent/consumable/goodbit = bits + . += goodbit.get_nutriment_factor(src) * effective_volume / goodbit.metabolization_rate + continue + if(!only_consumable) + continue + . += 0.6 * effective_volume / bits.metabolization_rate //not food takes up space - return fullness + return . /mob/living/carbon/has_reagent(reagent, amount = -1, needs_metabolizing = FALSE) . = ..() diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 59bc1a9f4d8..374de84bb27 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -63,6 +63,11 @@ handle_wounds(seconds_per_tick, times_fired) + if(living_flags & QUEUE_NUTRITION_UPDATE) + mob_mood?.update_nutrition_moodlets() + hud_used?.hunger?.update_hunger_bar() + living_flags &= ~QUEUE_NUTRITION_UPDATE + if(stat != DEAD) return 1 @@ -97,18 +102,19 @@ /** * Get the fullness of the mob * - * This returns a value form 0 upwards to represent how full the mob is. - * The value is a total amount of consumable reagents in the body combined - * with the total amount of nutrition they have. - * This does not have an upper limit. + * Fullness is a representation of how much nutrition the mob has, + * including the nutrition of stuff yet to be digested (reagents in blood / stomach) + * + * * only_consumable - if TRUE, only consumable reagents are counted. + * Otherwise, all reagents contribute to fullness, despite not adding nutrition as they process. + * + * Returns a number representing fullness, scaled similarly to nutrition. */ -/mob/living/proc/get_fullness() +/mob/living/proc/get_fullness(only_consumable) var/fullness = nutrition // we add the nutrition value of what we're currently digesting - for(var/bile in reagents.reagent_list) - var/datum/reagent/consumable/bits = bile - if(bits) - fullness += bits.get_nutriment_factor(src) * bits.volume / bits.metabolization_rate + for(var/datum/reagent/consumable/bits in reagents.reagent_list) + fullness += bits.get_nutriment_factor(src) * bits.volume / bits.metabolization_rate return fullness /** diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 97f92018200..ec5463b40dd 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1448,11 +1448,15 @@ return nutrition = max(0, nutrition + change) - hud_used?.hunger?.update_appearance() /mob/living/adjust_nutrition(change, forced) . = ..() - mob_mood?.update_nutrition_moodlets() + // Queue update if change is small enough (6 is 1% of nutrition softcap) + if(abs(change) >= 6) + mob_mood?.update_nutrition_moodlets() + hud_used?.hunger?.update_hunger_bar() + else + living_flags |= QUEUE_NUTRITION_UPDATE ///Force set the mob nutrition /mob/proc/set_nutrition(set_to, forced = FALSE) //Seriously fuck you oldcoders. @@ -1460,11 +1464,16 @@ return nutrition = max(0, set_to) - hud_used?.hunger?.update_appearance() /mob/living/set_nutrition(set_to, forced) + var/old_nutrition = nutrition . = ..() - mob_mood?.update_nutrition_moodlets() + // Queue update if change is small enough (6 is 1% of nutrition softcap) + if(abs(old_nutrition - nutrition) >= 6) + mob_mood?.update_nutrition_moodlets() + hud_used?.hunger?.update_hunger_bar() + else + living_flags |= QUEUE_NUTRITION_UPDATE ///Apply a proper movespeed modifier based on items we have equipped /mob/proc/update_equipment_speed_mods() diff --git a/code/modules/surgery/organs/internal/stomach/_stomach.dm b/code/modules/surgery/organs/internal/stomach/_stomach.dm index f682a167ac3..53258eec7d2 100644 --- a/code/modules/surgery/organs/internal/stomach/_stomach.dm +++ b/code/modules/surgery/organs/internal/stomach/_stomach.dm @@ -384,7 +384,7 @@ /obj/item/organ/stomach/on_mob_insert(mob/living/carbon/receiver, special, movement_flags) . = ..() - receiver.hud_used?.hunger?.update_appearance() + receiver.hud_used?.hunger?.update_hunger_bar() RegisterSignal(receiver, COMSIG_CARBON_VOMITED, PROC_REF(on_vomit)) RegisterSignal(receiver, COMSIG_HUMAN_GOT_PUNCHED, PROC_REF(on_punched)) @@ -393,7 +393,7 @@ var/mob/living/carbon/human/human_owner = stomach_owner human_owner.clear_alert(ALERT_DISGUST) human_owner.clear_mood_event("disgust") - stomach_owner.hud_used?.hunger?.update_appearance() + stomach_owner.hud_used?.hunger?.update_hunger_bar() UnregisterSignal(stomach_owner, list(COMSIG_CARBON_VOMITED, COMSIG_HUMAN_GOT_PUNCHED)) return ..() diff --git a/icons/hud/screen_gen.dmi b/icons/hud/screen_gen.dmi index c38725e43e4335e9b4bb766673884ecead2b1e54..f77266a28f167ff97f4e2acc1443cca04bc7e194 100644 GIT binary patch delta 23455 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