code:
/**
 *
 * @param {App.Entity.SlaveState} slave
 * @returns {DocumentFragment}
 */
App.Interact.fondleDick = function(slave) {
	const node = new DocumentFragment();
	let r = [];

	const {
		He, His,
		he, his, him
	} = getPronouns(slave);

	r.push(`You call ${him} over so you can fondle ${his}`);
	if (slave.dick === 1) {
		r.push(`tiny dick`);
	} else if (slave.dick === 2) {
		r.push(`cute dick`);
	} else if (slave.dick === 3) {
		r.push(`dick`);
	} else if (slave.dick === 4) {
		r.push(`big dick`);
	} else if (slave.dick === 5) {
		r.push(`impressive dick`);
	} else if (slave.dick === 6) {
		r.push(`huge dick`);
	} else if (slave.dick === 7) {
		r.push(`gigantic dick`);
	} else if (slave.dick === 8) {
		r.push(`titanic dick`);
	} else if (slave.dick === 9) {
		r.push(`absurd dick`);
	} else if (slave.dick === 10) {
		r.push(`inhuman dick`);
	} else {
		r.push(`hypertrophied dick`);
	}
	r.push(`and`);
	if (slave.scrotum > 0) {
		if (slave.balls === 0) {
			r.push(`soft scrotum.`);
		} else if (slave.balls === 1) {
			r.push(`tiny balls.`);
		} else if (slave.balls === 2) {
			r.push(`cute balls.`);
		} else if (slave.balls === 3) {
			r.push(`balls.`);
		} else if (slave.balls === 4) {
			r.push(`large balls.`);
		} else if (slave.balls === 5) {
			r.push(`huge balls.`);
		} else {
			r.push(`monstrous balls.`);
		}
	} else {
		r.push(`soft perineum.`);
	}

	if (slave.vaginaTat === "tribal patterns") {
		r.push(`The tattoos on ${his} abdomen certainly draw attention there.`);
	} else if (slave.vaginaTat === "lewd crest") {
		r.push(`The crest on ${his} abdomen invokes lewd thoughts, after all.`);
	}

	if (slave.dick !== 0) {
		if (slave.piercing.vagina.weight > 1) {
			r.push(`Metal glints all up and down ${his} cock.`);
		} else if (slave.piercing.vagina.weight === 1) {
			r.push(`Metal glints at the head of ${his} cock.`);
		}
	}

	if (slave.fetish === "mindbroken") {
		r.push(`Like a doll, ${he} dumbly remains still, watching your hands move towards ${him} without any real interest. You gently trace your fingers along ${his} ${dickDesc()} before taking it gently in one hand and tenderly stroking your hand along its`);
		strokeAndSqueeze();
		if (!canAchieveErection(slave)) {
			r.push(`${His} dick remains flaccid as it cannot get stiff and you continue tenderly stroking ${his} soft dick but, ${he} does not respond.`);
		} else {
			r.push(`${His} prick stiffens like a rod in your hands and you continue your expert strokes along the erect shaft but, except for the cockmilk leaking out of ${his} dick, ${he} does not respond.`);
		}
		r.push(`Since ${he} is mindbroken, ${his} responses to you are purely physiological and your actions have no affect on ${him} mentally. You leave your toy for one of your other slaves to clean and maintain.`);
	} else if (isAmputee(slave)) {
		r.push(`Since ${he}'s a quadruple amputee, ${he}'s yours to use as a human finger toy. While ${he}'s lying there helpless, you move your hands towards ${him}. You gently trace your fingers along ${his} ${dickDesc()} before taking it gently in one hand and tenderly stroking your hand along its`);
		strokeAndSqueeze();
		if (!canAchieveErection(slave)) {
			r.push(`${His} dick remains flaccid as it cannot get stiff and you continue tenderly stroking ${his} soft dick but, except for the cockmilk leaking out of ${his} dick, ${he} does not respond.`);
		} else {
			r.push(`${His} prick stiffens like a rod in your hands and you continue your expert strokes along the erect shaft but, except for the cockmilk leaking out of ${his} dick, ${he} does not respond.`);
		}
		r.push(`Soon, ${his} movements indicate that ${he} is orgasming. ${He} shudders and leaks ${his} cockmilk as ${he} orgasms in your hand,`);
		if (canSee(slave)) {
			r.push(`looking at`);
		} else {
			r.push(`facing`);
		}
		r.push(`you as you stop moving your hands. You leave your toy for one of your other slaves to clean and maintain.`);
	} else if (slave.fetish === "submissive" && slave.fetishStrength > 60 && slave.fetishKnown === 1) {
		r.push(`${He} comes submissively over, smiling a little submissive smile, and points ${his} dick towards you. You gently trace your fingers along ${his} ${dickDesc()} before taking it gently in one hand and tenderly stroking your hand along its`);
		strokeAndSqueeze();
		standardStiffy();
		r.push(`Soon, ${his} movements indicate that ${he} is orgasming. ${He} shudders and leaks ${his} cockmilk as ${he} orgasms in your hands before submissively avoiding your gaze as you get cleaned up.`);
	} else if (slave.devotion < -20) {
		r.push(`${He} clearly dislikes the thought of getting ${his} dick fondled by you. ${His} lower lip quivers with trepidation as ${he} watches your hands move towards ${him}. ${He} has no choice but to obey if ${he} wants to avoid punishment. ${He} gasps and shakes as you gently trace along ${his} ${dickDesc()} before taking it gently in one hand and tenderly stroking your hand along its`);
		strokeAndSqueeze();
		standardStiffy();
		r.push(`${He}`);
		if (hasAnyArms(slave)) {
			r.push(`grabs your wrist with ${his} ${hasBothArms(slave) ? `hands` : `hand`}`);
		} else {
			r.push(`jostles against your arm`);
		}
		r.push(`and tries to stop it from moving but is unable to and despite ${his} resistant pulling against you. ${He} bites ${his} lip but ${he} cannot help but moan. Soon ${he} shudders and leaks ${his} cockmilk as ${he} orgasms in your hands. ${He} looks at you shamefully as you stop moving your hands and get cleaned up.`);
	} else if (slave.fetish === "masochist" && slave.fetishStrength > 60 && slave.fetishKnown === 1) {
		r.push(`${He} hurriedly comes over to you, to stand between you and your desk. You lean over while ${he} lies down upon it, face-up, with ${his} dick pointed towards you. ${He} gasps when you slap ${his} ${dickDesc()} with your hand. You firmly grab it and tightly squeeze it with your fingers, stroking your hand along its shaft.`);
		if (slave.balls > 0) {
			r.push(`Simultaneously, you slap ${his} ${ballDesc()} with your other hand.`);
		}
		r.push(`You firmly wrap your fingers, thumb and palm around ${his} dick, rhythmically stroking along with both hands, starting slow but gradually increasing the speed of your movements. You occasionally squeeze and pinch the tip and head of ${his} dick between your fingers and thumb.`);
		standardStiffy();
		r.push(`Your rough play leaves red marks on ${his} breasts and nipples and ${he} becomes even more aroused. Soon, ${his} movements indicate that ${he} is orgasming. ${He} shudders and leaks ${his} cockmilk as ${he} orgasms in your hands. ${He} rubs the marks on ${his} dick and balls with ${his} hands, an ecstatic look on ${his} ${slave.skin} face. ${He} looks at you longingly as you get cleaned up, hungry for more.`);
	} else if (slave.devotion <= 20) {
		r.push(`${He} obeys silently, standing in front of you as you move your hands towards ${him}. You gently trace your fingers along ${his} ${dickDesc()} before taking it gently in one hand and tenderly stroking your hand along its`);
		strokeAndSqueeze();
		standardStiffy();
		r.push(`${He}`);
		if (canSee(slave)) {
			r.push(`looks into your eyes`);
		} else {
			r.push(`faces you`);
		}
		r.push(`furtively while ${he}`);
		if (hasAnyArms(slave)) {
			r.push(`grabs your ${hasBothArms(slave) ? `wrists` : `wrist`} with ${his} ${hasBothArms(slave) ? `hands` : `hand`},`);
		} else {
			r.push(`moves ${his} hips ever so slightly,`);
		}
		r.push(`moving to match your hand movements. ${He} moans and shudders, leaking ${his} cockmilk as ${he} orgasms in your hands. ${He} dutifully looks at you as you stop moving your hands and get cleaned up.`);
	} else {
		r.push(`${He} devotedly comes over and gives you an impassioned kiss. ${He} smiles and points ${his} dick towards you. You gently trace your fingers along ${his} ${dickDesc()} before taking it gently in one hand and tenderly stroking your hand along its shaft`);
		strokeAndSqueeze();
		standardStiffy();
		r.push(`${He} begs you not to stop. Soon, ${he} moans and ${his} movements indicate that ${he} is about to orgasm. ${He} shudders and leaks ${his} cockmilk as ${he} orgasms in your hands. ${He} looks at you passionately as you stop moving your hands and get cleaned up.`);
	}
	App.Events.addParagraph(node, r);
	return node;

	function ballDesc() {
		if (slave.scrotum === 0) {
			return `soft skin beneath ${his} base and ${his} butthole`;
		} else if (slave.balls === 1) {
			return `tiny balls`;
		} else if (slave.balls === 2) {
			return `small balls`;
		} else if (slave.balls === 3) {
			return `balls`;
		} else if (slave.balls === 4) {
			return `big balls`;
		} else if (slave.balls === 5) {
			return `lemon-sized balls`;
		} else if (slave.balls < 10) {
			return `fist-sized balls`;
		} else {
			return `hypertrophied balls`;
		}
	}

	function dickDesc() {
		if (slave.dick === 1) {
			return `tiny dick`;
		} else if (slave.dick === 2) {
			return `cute dick`;
		} else if (slave.dick === 3) {
			return `dick`;
		} else if (slave.dick === 4) {
			return `big dick`;
		} else if (slave.dick === 5) {
			return `impressive dick`;
		} else if (slave.dick === 6) {
			return `huge dick`;
		} else if (slave.dick === 7) {
			return `gigantic dick`;
		} else if (slave.dick === 8) {
			return `titanic dick`;
		} else if (slave.dick === 9) {
			return `absurd dick`;
		} else if (slave.dick === 10) {
			return `inhuman dick`;
		} else {
			return `hypertrophied dick`;
		}
	}

	function strokeAndSqueeze() {
		if (slave.balls > 0) {
			r.push(`shaft, while simultaneously cupping ${his} ${ballDesc()} with your other hand.`);
		} else {
			r.push(`shaft.`);
		}
		r.push(`You firmly wrap your fingers, thumb and palm around ${his} dick, rhythmically stroking along with both hands, starting slow but gradually increasing the speed of your movements. You occasionally squeeze the tip and head of ${his} dick between your fingers and thumb.`);
	}

	function standardStiffy() {
		if (canAchieveErection(slave)) {
			r.push(`${His} prick stiffens like a rod in your hands and you continue your expert strokes along the erect shaft.`);
		} else {
			r.push(`${His} dick remains flaccid as it cannot get stiff and you continue tenderly stroking ${his} soft dick.`);
		}
	}
};


code:
/**
 *
 * @param {App.Entity.SlaveState} slave
 * @returns {DocumentFragment}
 */
App.Interact.fondleVagina = function(slave) {
	const node = new DocumentFragment();
	let r = [];

	const {
		He, His,
		he, his, him, himself
	} = getPronouns(slave);

	const {title: Master, say: say} = getEnunciation(slave);

	r.push(`You call ${him} over so you can fondle ${his}`);
	if (slave.vagina > 3) {
		r.push(`gaping vagina.`);
	} else if (slave.vagina === 3) {
		r.push(`loose vagina.`);
	} else if (slave.vagina === 2) {
		r.push(`well-used pussy.`);
	} else if (slave.vagina === 1) {
		r.push(`tight pussy.`);
	} else if (slave.vagina === 0) {
		r.push(`virgin pussy.`);
	}

	if (slave.vaginaTat === "tribal patterns") {
		r.push(`The tattoos on ${his} abdomen certainly draw attention there.`);
	} else if (slave.vaginaTat === "lewd crest") {
		r.push(`The crest on ${his} abdomen invokes lewd thoughts, after all.`);
	}

	if (slave.devotion <= 20) {
		if (slave.clit === 1) {
			r.push(`${His} big clit peeks out from under its hood`);
		} else if (slave.clit === 2) {
			r.push(`${His} huge clit is impossible to miss`);
		} else if (slave.clit > 1) {
			r.push(`${His} pseudophallus-sized clit is soft`);
		} else if (slave.chastityPenis) {
			r.push(`${His} useless penis is properly caged`);
		} else if (slave.dick > 0) {
			r.push(`${His} dick is soft`);
		} else {
			r.push(`${His} pretty little clit is barely visible`);
		}
		r.push(`and`);
		if (slave.labia === 1) {
			r.push(`${his} lovely petals are quite inviting.`);
		} else if (slave.labia === 2) {
			r.push(`${his} prominent petals are inviting.`);
		} else if (slave.labia > 1) {
			r.push(`${his} labia are so large they present a slight obstacle to entry.`);
		} else {
			r.push(`${his} cute labia are barely noticeable.`);
		}
	} else {
		if (slave.clit === 1) {
			r.push(`${His} big clit peeks out from under its hood`);
		} else if (slave.clit === 2) {
			r.push(`${His} huge clit is impossible to miss`);
		} else if (slave.clit > 1) {
			r.push(`${His} pseudophallus-sized clit is soft`);
		} else if (slave.chastityPenis) {
			r.push(`${His} chastity cage is uncomfortably full`);
		} else if (canAchieveErection(slave)) {
			r.push(`${His} dick vies for attention`);
		} else if (slave.dick > 0) {
			r.push(`${His} soft dick dribbles excitedly`);
		} else {
			r.push(`${His} pretty little clit is ready for you,`);
		}
		r.push(`and`);
		if (slave.labia === 1) {
			r.push(`${his} lovely petals are moist with arousal.`);
		} else if (slave.labia === 2) {
			r.push(`${his} prominent petals bear a sheen of arousal.`);
		} else if (slave.labia > 1) {
			r.push(`${his} huge labia are almost dripping with arousal.`);
		} else {
			r.push(`${he}'s becoming moist.`);
		}
	}

	if (slave.piercing.vagina.weight > 1 && slave.piercing.genitals.weight > 0) {
		r.push(`${His} pierced lips and clit have ${his} nice and wet.`);
	} else if (slave.piercing.genitals.weight > 0) {
		r.push(`${His} pierced clit has ${him} nice and moist.`);
	}

	if (slave.vagina === 0) {
		if (slave.fetish === "mindbroken") {
			r.push(`${He} accepts your orders dumbly and presents ${his} virgin pussy to you,`);
			if (canSee(slave)) {
				r.push(`watching your hands move towards ${him}`);
			} else {
				r.push(`waiting`);
			}
			r.push(`without any real interest. You`);
			if (slave.balls >= 60) {
				r.push(`struggle to shove ${his} oversized nuts out of the way and`);
			} else if (slave.balls >= 30) {
				r.push(`struggle to lift ${his} oversized nuts and`);
			} else if (slave.balls >= 14) {
				r.push(`palm one of ${his} giant testicles and`);
			} else if (slave.balls >= 9) {
				r.push(`cup ${his} huge balls and`);
			} else if (slave.balls >= 5) {
				r.push(`lift ${his} big balls out of the way and`);
			} else if (slave.scrotum > 0) {
				r.push(`reach under ${his} dangling scrotum and`);
			}
			r.push(`gently trace along ${his}`);
			if (slave.labia === 1) {
				r.push(`lovely petals`);
			} else if (slave.labia === 2) {
				r.push(`prominent petals`);
			} else if (slave.labia > 1) {
				r.push(`huge labia`);
			}
			r.push(`with your outstretched fingers, strumming up and down the edges of ${his} pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally flick ${his}`);
			if (slave.clit === 1) {
				r.push(`erect clit`);
			} else if (slave.clit === 2) {
				r.push(`large clit`);
			} else if (slave.clit > 1) {
				r.push(`massive clit`);
			} else if (slave.chastityPenis) {
				r.push(`${his} cage`);
			} else if (canAchieveErection(slave)) {
				r.push(`${his} erection`);
			} else if (slave.dick > 0) {
				r.push(`soft dick`);
			} else {
				r.push(`pretty little clit`);
			}
			r.push(`and rub it with your fingertips as your hand nears it but outside of the pussy juices`);
			if (hasAnyLegs(slave)) {
				r.push(`trickling down ${his} leg,`);
			} else {
				r.push(`pooling beneath ${him},`);
			}
			r.push(`${he} does not respond. Since ${he} is mindbroken, ${his} responses to you are purely physiological and your actions have no affect on ${him} mentally.`);
		} else if (slave.devotion > 50) {
			r.push(`${He} accepts your orders happily and presents ${his} virgin pussy to you,`);
			if (slave.scrotum > 0) {
				r.push(`shifting ${his} balls out of the way and`);
			}
			if (canSee(slave)) {
				r.push(`watching your hands with eagerness.`);
			} else {
				r.push(`eagerly awaiting your touch.`);
			}
			r.push(`${He} gasps and quivers with pleasure as you gently trace along ${his}`);
			if (slave.labia === 1) {
				r.push(`lovely petals`);
			} else if (slave.labia === 2) {
				r.push(`prominent petals`);
			} else if (slave.labia > 1) {
				r.push(`huge labia`);
			} else {
				r.push(`cute labia`);
			}
			r.push(`with your outstretched fingers, strumming up and down the edges of ${his} pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements.`);
			if (hasAnyArms(slave)) {
				if (slave.fetish === "boobs") {
					r.push(`${He} fondles ${his} breasts and plays with ${his} nipples at the same time.`);
				} else if ((slave.fetish === "pregnancy") && slave.belly >= 1500) {
					r.push(`${He} strokes the curve of ${his} belly at the same time.`);
				}
			}
			r.push(`You occasionally`);
			if (slave.clit === 1) {
				r.push(`flick ${his} large clit and rub it with your fingertips`);
			} else if (slave.clit === 2) {
				r.push(`flick ${his} huge clit and rub it with your fingertips`);
			} else if (slave.clit > 1) {
				r.push(`flick ${his} massive clit and rub it with your fingertips`);
			} else if (slave.chastityPenis) {
				r.push(`caress ${his} chastity cage with your palm`);
			} else if (canAchieveErection(slave)) {
				r.push(`flick ${his} erection and give it a stroke`);
			} else if (slave.dick > 0) {
				r.push(`flick ${his} soft dick and rub it with your fingertips`);
			} else {
				r.push(`flick ${his} pretty little clit and rub it with your fingertips`);
			}
			r.push(`as your hand nears it. As ${he} becomes more aroused, ${he}`);
			if (hasAnyArms(slave)) {
				r.push(`grabs hold of your wrist lightly, moving ${his} hands along with the motion of your own.`);
			} else {
				r.push(`begins to move ${his} body to the rhythm of your motions.`);
			}
			r.push(`${His} pussy juices`);
			if (hasAnyLegs(slave)) {
				r.push(`run down ${his} leg`);
			} else {
				r.push(`pool beneath ${him}`);
			}
			r.push(`as ${he} begins to moan audibly${hasAnyLegs(slave) ? `, gently clamping your hand between ${his} thighs` : ``} as you continue to move your hand along ${his} pussy. ${He} moans loudly as ${he} shudders in orgasmic joy.`);
			if (!hasAnyArms(slave) && !canTalk(slave)) {
				r.push(`${He} does ${his} best to communicate love with ${his} ${App.Desc.eyesColor(slave)}.`);
			} else if (!canTalk(slave)) {
				r.push(`${He} signs that ${he} loves you.`);
			} else {
				r.push(
					Spoken(slave, `"I love you, ${Master},"`),
					`${he} ${say}s rapturously.`
				);
			}
		} else if (slave.devotion > 20) {
			r.push(`${He} accepts your orders without comment and presents ${his} virgin pussy to you,`);
			if (slave.scrotum > 0) {
				r.push(`shifting ${his} balls out of the way and`);
			}
			if (canSee(slave)) {
				r.push(`watching your hands with some slight trepidation.`);
			} else {
				r.push(`nervously anticipating your touch.`);
			}
			r.push(`${He} gasps as you gently trace along ${his}`);
			if (slave.labia === 1) {
				r.push(`lovely petals`);
			} else if (slave.labia === 2) {
				r.push(`prominent petals`);
			} else if (slave.labia > 1) {
				r.push(`huge labia`);
			}
			r.push(`with your outstretched fingers, strumming up and down the edges of ${his} pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally`);
			if (slave.clit === 1) {
				r.push(`flick ${his} large clit and rub it with your fingertips`);
			} else if (slave.clit === 2) {
				r.push(`flick ${his} huge clit and rub it with your fingertips`);
			} else if (slave.clit > 1) {
				r.push(`flick ${his} massive clit and rub it with your fingertips`);
			} else if (slave.chastityPenis) {
				r.push(`caress ${his} chastity cage with your palm`);
			} else if (canAchieveErection(slave)) {
				r.push(`flick ${his} erection and give it a stroke`);
			} else if (slave.dick > 0) {
				r.push(`flick ${his} soft dick and rub it with your fingertips`);
			} else {
				r.push(`flick ${his} pretty little clit and rub it with your fingertips`);
			}
			r.push(`as your hand nears it. ${His} pussy juices`);
			if (hasAnyLegs(slave)) {
				r.push(`run down ${his} leg`);
			} else {
				r.push(`pool beneath ${him}`);
			}
			r.push(`as ${he} begins to moan`);
			if (hasAnyArms(slave)) {
				r.push(`audibly, grasping your wrist with ${his} ${hasBothArms(slave) ? `hands` : `hand`} tightly`);
			} else {
				r.push(`audibly`);
			}
			if (hasAnyLegs(slave)) {
				r.push(`and clamping ${his} thighs together`);
			}
			r.push(`as you continue to move your hand along ${his} pussy. ${He} moans as ${he} shudders in an orgasm, almost embarrassed.`);
			if (canSee(slave)) {
				r.push(`${He} looks into your eyes expectantly.`);
			} else {
				r.push(`${He} pants expectantly, bracing for more.`);
			}
		} else if (slave.devotion >= -20) {
			r.push(`${He} clearly dislikes the thought of getting fondled by you. ${His} lower lip quivers with trepidation as ${he}`);
			if (canSee(slave)) {
				r.push(`watches your hands move towards ${him}.`);
			} else {
				r.push(`waits for your hand to touch ${him}.`);
			}
			r.push(`${He} has no choice but to`);
			if (slave.scrotum > 0) {
				r.push(`shift ${his} balls out of the way and`);
			}
			r.push(`obey if ${he} wants to avoid punishment. ${He} gasps and shakes as you gently trace along ${his}`);
			if (slave.labia === 1) {
				r.push(`lovely petals`);
			} else if (slave.labia === 2) {
				r.push(`prominent petals`);
			} else if (slave.labia > 1) {
				r.push(`huge labia`);
			} else {
				r.push(`cute labia`);
			}
			r.push(`with your outstretched fingers, strumming up and down the edges of ${his} pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally`);
			if (slave.clit === 1) {
				r.push(`flick ${his} large clit and rub it with your fingertips`);
			} else if (slave.clit === 2) {
				r.push(`flick ${his} huge clit and rub it with your fingertips`);
			} else if (slave.clit > 1) {
				r.push(`flick ${his} massive clit and rub it with your fingertips`);
			} else if (slave.chastityPenis) {
				r.push(`caress ${his} chastity cage with your palm`);
			} else if (canAchieveErection(slave)) {
				r.push(`flick ${his} growing erection and give it a stroke`);
			} else if (slave.dick > 0) {
				r.push(`flick ${his} soft dick and rub it with your fingertips`);
			} else {
				r.push(`flick ${his} pretty little clit and rub it with your fingertips`);
			}
			r.push(`as your hand nears it. ${His} pussy juices`);
			if (hasAnyLegs(slave)) {
				r.push(`run down ${his} leg`);
			} else {
				r.push(`pool beneath ${him}`);
			}
			r.push(`as ${he} begins to moan`);
			if (hasAnyArms(slave)) {
				r.push(`audibly, grasping your wrist with ${his} ${hasBothArms(slave) ? `hands` : `hand`} tightly`);
			} else {
				r.push(`audibly`);
			}
			if (hasBothLegs(slave)) {
				r.push(`and clamping ${his} thighs together`);
			}
			r.push(`as you continue to move your hand along ${his} pussy. ${He} moans as ${he} shudders in an orgasm, clearly embarrassed to end up in this position as ${he} loses control.`);
		} else {
			r.push(`As you anticipated, ${he} refuses to let ${himself} be groped by you. ${He} is unable to resist you, also as you expected, when you mention some of the alternatives. ${He} gasps and shakes as you gently trace along ${his}`);
			if (slave.labia === 1) {
				r.push(`lovely petals`);
			} else if (slave.labia === 2) {
				r.push(`prominent petals`);
			} else if (slave.labia > 1) {
				r.push(`huge labia`);
			} else {
				r.push(`cute labia`);
			}
			r.push(`with your outstretched fingers, strumming up and down the edges of ${his} pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements.`);
			if (hasAnyArms(slave)) {
				r.push(`${He} grabs your wrist with ${his} ${(hasBothArms(slave)) ? "hands" : "hand"}in an effort to stop you but ${he} is unable to stop your hand from moving for long.`);
			}
			r.push(`You occasionally`);
			if (slave.clit === 1) {
				r.push(`flick ${his} large clit and rub it with your fingertips`);
			} else if (slave.clit === 2) {
				r.push(`flick ${his} huge clit and rub it with your fingertips`);
			} else if (slave.clit > 1) {
				r.push(`flick ${his} massive clit and rub it with your fingertips`);
			} else if (slave.chastityPenis) {
				r.push(`caress ${his} chastity cage with your palm`);
			} else if (canAchieveErection(slave)) {
				r.push(`flick ${his} unwilling erection and give it a stroke`);
			} else if (slave.dick > 0) {
				r.push(`flick ${his} soft dick and rub it with your fingertips`);
			} else {
				r.push(`flick ${his} pretty little clit and rub it with your fingertips`);
			}
			r.push(`as your hand nears it. ${He}`);
			if (hasAnyArms(slave)) {
				r.push(`tightly grasps your wrist`);
				if (hasBothLegs(slave)) {
					r.push(`and`);
				}
			}
			if (hasBothLegs(slave)) {
				r.push(`clamps ${his} thighs together`);
			}
			if (!hasAnyArms(slave) && !hasBothLegs(slave)) {
				r.push(`squirms uncomfortably a little`);
			}
			r.push(`as you continue to move your hand along ${his} pussy. ${He} moans as ${he} shudders in an orgasm, gripping tighter and shamefully`);
			if (canSee(slave)) {
				r.push(`looking at`);
			} else {
				r.push(`facing`);
			}
			r.push(`you as you stop moving your hand.`);
		}
	} else if (slave.fetish === "mindbroken") {
		r.push(`Like a doll, ${he} dumbly remains still,`);
		if (canSee(slave)) {
			r.push(`watching your hands move towards ${him}`);
		} else {
			r.push(`waiting`);
		}
		r.push(`without any real interest. You`);
		if (slave.balls >= 60) {
			r.push(`struggle to shove ${his} oversized nuts out of the way and`);
		} else if (slave.balls >= 30) {
			r.push(`struggle to lift ${his} oversized nuts and`);
		} else if (slave.balls >= 14) {
			r.push(`palm one of ${his} giant testicles and`);
		} else if (slave.balls >= 9) {
			r.push(`cup ${his} huge balls and`);
		} else if (slave.balls >= 5) {
			r.push(`lift ${his} big balls out of the way and`);
		} else if (slave.scrotum > 0) {
			r.push(`reach under ${his} dangling scrotum and`);
		}
		r.push(`gently trace along ${his}`);
		if (slave.labia === 1) {
			r.push(`lovely petals`);
		} else if (slave.labia === 2) {
			r.push(`prominent petals`);
		} else if (slave.labia > 1) {
			r.push(`huge labia`);
		} else {
			r.push(`cute labia`);
		}
		r.push(`with your outstretched fingers, strumming up and down the edges of ${his} pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally flick ${his}`);
		if (slave.clit === 1) {
			r.push(`erect clit`);
		} else if (slave.clit === 2) {
			r.push(`large clit`);
		} else if (slave.clit > 1) {
			r.push(`massive clit`);
		} else if (slave.chastityPenis) {
			r.push(`${his} cage`);
		} else if (canAchieveErection(slave)) {
			r.push(`${his} erection`);
		} else if (slave.dick > 0) {
			r.push(`soft dick`);
		} else {
			r.push(`pretty little clit`);
		}
		r.push(`and rub it with your fingertips as your hand nears it. Except for the pussy juices`);
		if (hasAnyLegs(slave)) {
			r.push(`trickling down ${his} leg,`);
		} else {
			r.push(`pooling beneath ${him},`);
		}
		r.push(`${he} does not respond. Since ${he} is mindbroken, ${his} responses to you are purely physiological and your actions have no affect on ${him} mentally. You leave your toy for one of your other slaves to clean and maintain.`);
	} else if (isAmputee(slave)) {
		r.push(`Since ${he}'s a quadruple amputee, ${he}'s yours to use as a human finger toy. While ${he}'s lying there helpless, you move your hands towards`);
		if (slave.balls >= 60) {
			r.push(`${him} and struggle to shove ${his} oversized nuts out of the way.`);
		} else if (slave.balls >= 30) {
			r.push(`${him} and strain to lift ${his} oversized nuts out of the way.`);
		} else if (slave.balls >= 14) {
			r.push(`${him}, palming one of ${his} giant testicles to make way.`);
		} else if (slave.balls >= 9) {
			r.push(`${him}, cupping ${his} huge balls to keep them out of the way.`);
		} else if (slave.balls >= 5) {
			r.push(`${him}, lifting ${his} big balls out of the way in the process.`);
		} else if (slave.scrotum > 0) {
			r.push(`${him}, slipping under ${his} dangling scrotum in the process.`);
		} else {
			r.push(`${him}.`);
		}
		r.push(`You gently trace along ${his}`);
		if (slave.labia === 1) {
			r.push(`lovely petals`);
		} else if (slave.labia === 2) {
			r.push(`prominent petals`);
		} else if (slave.labia > 1) {
			r.push(`huge labia`);
		} else {
			r.push(`cute labia`);
		}
		r.push(`with your outstretched fingers, strumming up and down the edges of ${his} pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally`);
		if (slave.clit === 1) {
			r.push(`flick ${his} large clit and rub it with your fingertips`);
		} else if (slave.clit === 2) {
			r.push(`flick ${his} huge clit and rub it with your fingertips`);
		} else if (slave.clit > 1) {
			r.push(`flick ${his} massive clit and rub it with your fingertips`);
		} else if (slave.chastityPenis) {
			r.push(`caress ${his} chastity cage with your palm`);
		} else if (canAchieveErection(slave)) {
			r.push(`flick ${his} erection and give it a stroke`);
		} else if (slave.dick > 0) {
			r.push(`flick ${his} soft dick and rub it with your fingertips`);
		} else {
			r.push(`flick ${his} pretty little clit and rub it with your fingertips`);
		}
		r.push(`as your hand nears it. Soon ${he} shudders in an orgasm,`);
		if (canSee(slave)) {
			r.push(`looking at`);
		} else {
			r.push(`facing`);
		}
		r.push(`you as you stop moving your hand. You leave your toy for one of your other slaves to clean and maintain.`);
	} else if (slave.fetish === "submissive" && slave.fetishStrength > 60 && slave.fetishKnown === 1) {
		r.push(`${He} comes submissively over, smiling a little submissive smile, and points ${his} pussy towards you${(slave.scrotum > 0) ? `, shifting ${his} balls out of the way and` : ``}. You gently trace along ${his}`);
		if (slave.labia === 1) {
			r.push(`lovely petals`);
		} else if (slave.labia === 2) {
			r.push(`prominent petals`);
		} else if (slave.labia > 1) {
			r.push(`huge labia`);
		} else {
			r.push(`cute labia`);
		}
		r.push(`with your outstretched fingers, strumming up and down the edges of ${his} pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally`);
		if (slave.clit === 1) {
			r.push(`flick ${his} large clit and rub it with your fingertips`);
		} else if (slave.clit === 2) {
			r.push(`flick ${his} huge clit and rub it with your fingertips`);
		} else if (slave.clit > 1) {
			r.push(`flick ${his} massive clit and rub it with your fingertips`);
		} else if (slave.chastityPenis) {
			r.push(`caress ${his} chastity cage with your palm`);
		} else if (canAchieveErection(slave)) {
			r.push(`flick ${his} erection and give it a stroke`);
		} else if (slave.dick > 0) {
			r.push(`flick ${his} soft dick and rub it with your fingertips`);
		} else {
			r.push(`flick ${his} pretty little clit and rub it with your fingertips`);
		}
		r.push(`as your hand nears it. ${He} begs you not to stop as ${he}`);
		if (canSee(slave)) {
			r.push(`looks into your eyes`);
		} else {
			r.push(`faces`);
		}
		r.push(`expectantly as ${he} shudders in an orgasm.`);
	} else if (slave.devotion < -20) {
		r.push(`${He} tries to refuse, so you push the disobedient slave down`);
		if (canStand(slave)) {
			r.push(`over your desk`);
		}
		r.push(`as you move your hands towards ${him}. You gently`);
		if (slave.scrotum > 0) {
			r.push(`shift ${his} balls out of the way and`);
		}
		r.push(`trace along ${his}`);
		if (slave.labia === 1) {
			r.push(`lovely petals`);
		} else if (slave.labia === 2) {
			r.push(`prominent petals`);
		} else if (slave.labia > 1) {
			r.push(`huge labia`);
		} else {
			r.push(`cute labia`);
		}
		r.push(`with your outstretched fingers, strumming up and down the edges of ${his} pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. ${He}`);
		if (hasAnyArms(slave)) {
			r.push(`grabs your wrist`);
		} else {
			r.push(`twists and turns`);
		}
		r.push(`to try to stop you but ${he} is unable to. You occasionally`);
		if (slave.clit === 1) {
			r.push(`flick ${his} large clit and rub it with your fingertips`);
		} else if (slave.clit === 2) {
			r.push(`flick ${his} huge clit and rub it with your fingertips`);
		} else if (slave.clit > 1) {
			r.push(`flick ${his} massive clit and rub it with your fingertips`);
		} else if (slave.chastityPenis) {
			r.push(`caress ${his} chastity cage with your palm`);
		} else if (canAchieveErection(slave)) {
			r.push(`flick ${his} unwilling erection and give it a stroke`);
		} else if (slave.dick > 0) {
			r.push(`flick ${his} soft dick and rub it with your fingertips`);
		} else {
			r.push(`flick ${his} pretty little clit and rub it with your fingertips`);
		}
		r.push(`as your hand nears it, despite ${his} resistant pulling against you. ${He} bites ${his} lip but ${he} cannot help but moan and ${he} shudders in an orgasm. ${He}`);
		if (canSee(slave)) {
			r.push(`looks at you`);
		} else {
			r.push(`faces`);
		}
		r.push(`shamefully as you stop moving your hand.`);
	} else if (slave.devotion <= 20) {
		r.push(`${He} obeys silently,`);
		if (canStand(slave)) {
			r.push(`standing`);
		} else {
			r.push(`resting`);
		}
		r.push(`in front of you as you move your hands towards ${him}. You gently`);
		if (slave.scrotum > 0) {
			r.push(`shift ${his} balls out of the way and`);
		}
		r.push(`trace along ${his}`);
		if (slave.labia === 1) {
			r.push(`lovely petals`);
		} else if (slave.labia === 2) {
			r.push(`prominent petals`);
		} else if (slave.labia > 1) {
			r.push(`huge labia`);
		} else {
			r.push(`cute labia`);
		}
		r.push(`with your outstretched fingers, strumming up and down the edges of ${his} pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally`);
		if (slave.clit === 1) {
			r.push(`flick ${his} large clit and rub it with your fingertips`);
		} else if (slave.clit === 2) {
			r.push(`flick ${his} huge clit and rub it with your fingertips`);
		} else if (slave.clit > 1) {
			r.push(`flick ${his} massive clit and rub it with your fingertips`);
		} else if (slave.chastityPenis) {
			r.push(`caress ${his} chastity cage with your palm`);
		} else if (canAchieveErection(slave)) {
			r.push(`flick ${his} growing erection and give it a stroke`);
		} else if (slave.dick > 0) {
			r.push(`flick ${his} soft dick and rub it with your fingertips`);
		} else {
			r.push(`flick ${his} pretty little clit and rub it with your fingertips`);
		}
		r.push(`as your hand nears it. ${He}`);
		if (canSee(slave)) {
			r.push(`looks into your eyes`);
		} else {
			r.push(`faces you`);
		}
		r.push(`furtively while ${he}`);
		if (hasAnyArms(slave)) {
			r.push(`grabs your wrist with ${his} hand`);
			if (hasBothLegs(slave)) {
				r.push(`and`);
			}
		}
		if (hasBothLegs(slave)) {
			r.push(`squeezes ${his} thighs together`);
		}
		if (!hasAnyArms(slave) && !hasBothLegs(slave)) {
			r.push(`squirms a little`);
		}
		r.push(`as ${he} moans and shudders in an orgasm. ${He} dutifully`);
		if (canSee(slave)) {
			r.push(`looks at you`);
		} else {
			r.push(`faces`);
		}
		r.push(`as you stop moving your hand.`);
	} else {
		r.push(`${He} devotedly`);
		if (canMove(slave)) {
			r.push(`comes over and gives you an impassioned kiss. ${He}`);
		}
		r.push(`smiles${(slave.scrotum > 0) ? `, shifts ${his} balls to the side,` : ``} and points ${his} pussy towards you. You gently trace along ${his}`);
		if (slave.labia === 1) {
			r.push(`lovely petals`);
		} else if (slave.labia === 2) {
			r.push(`prominent petals`);
		} else if (slave.labia > 1) {
			r.push(`huge labia`);
		} else {
			r.push(`cute labia`);
		}
		r.push(`with your outstretched fingers, strumming up and down the edges of ${his} pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally`);
		if (slave.clit === 1) {
			r.push(`flick ${his} large clit and rub it with your fingertips`);
		} else if (slave.clit === 2) {
			r.push(`flick ${his} huge clit and rub it with your fingertips`);
		} else if (slave.clit > 1) {
			r.push(`flick ${his} massive clit and rub it with your fingertips`);
		} else if (slave.chastityPenis) {
			r.push(`caress ${his} chastity cage with your palm`);
		} else if (canAchieveErection(slave)) {
			r.push(`flick ${his} erection and give it a stroke`);
		} else if (slave.dick > 0) {
			r.push(`flick ${his} soft dick and rub it with your fingertips`);
		} else {
			r.push(`flick ${his} pretty little clit and rub it with your fingertips`);
		}
		r.push(`as your hand nears it. ${He}`);
		if (hasAnyLegs(slave)) {
			r.push(`squeezes ${his} thighs${hasBothLegs(slave) ? `s` : ``}`);
		} else {
			r.push(`pushes`);
		}
		r.push(`lightly against your hand as ${he} moans and shudders in orgasmic bliss. ${He}`);
		if (canSee(slave)) {
			r.push(`looks at you`);
		} else {
			r.push(`faces`);
		}
		r.push(`passionately as you stop moving your hand.`);
	}
	App.Events.addParagraph(node, r);
	return node;
};

repo_name: Fekenol/fc

license: mit


code:
/**
 *
 * @param {App.Entity.SlaveState} slave
 * @returns {DocumentFragment}
 */
App.Interact.forceFeeding = function(slave) {
	const node = new DocumentFragment();
	let r = [];

	const {
		He, His,
		he, his, him, himself, girl
	} = getPronouns(slave);

	let doMe;

	const belly = bellyAdjective(slave);
	if (slave.bellyAccessory !== "a support band") {
		slave.bellyAccessory = "none";
	}
	let isDone = slave.inflation-1;
	let pregDiscovery = 0;
	r.push(`You call ${him} over and ask ${him} to wait patiently for a moment.`);
	if (slave.fetish === "mindbroken") {
		r.push(`${He} shows no response as`);
	} else {
		r.push(`${He} barely has time to ponder why you called for ${him} when`);
	}
	r.push(`another slave carries in a pair of`);
	if (slave.inflation === 3) {
		r.push(`one gallon`);
	} else if (slave.inflation === 2) {
		r.push(`two liter`);
	} else {
		r.push(`one liter`);
	}
	r.push(`buckets overflowing with slave food. ${He} is going to eat it all and you're going to enjoy ${him} as ${he} does it.`);

	if (slave.inflation > 1 && slave.preg > 1) {
		r.push(`${He} looks nauseated by the`);
		if (canSee(slave)) {
			r.push(`sight`);
		} else if (canSmell(slave)) {
			r.push(`smell`);
		} else {
			r.push(`very existence`);
		}
		r.push(`of the food.`);
	} else if (slave.fetish === "submissive" && slave.devotion >= -20) {
		r.push(`${He} blushes at the thought of being forced to eat for another's amusement.`);
	} else if (slave.behavioralFlaw === "gluttonous" && slave.devotion >= -20) {
		r.push(`${He}'s awestruck that you approve of ${his} gluttony enough to present ${him} a feast.`);
	} else if (slave.behavioralFlaw === "gluttonous") {
		r.push(`${He}'s hesitant about your intent, but ${he} gives in as ${his} belly begins to growl at the`);
		if (canSee(slave)) {
			r.push(`sight`);
		} else if (canSmell(slave)) {
			r.push(`smell`);
		} else {
			r.push(`anticipation`);
		}
		r.push(`of ${his} waiting meal.`);
	} else if (slave.behavioralFlaw === "anorexic") {
		r.push(`${He} grimaces at the`);
		if (canSee(slave)) {
			r.push(`sight`);
		} else if (canSmell(slave)) {
			r.push(`smell`);
		} else {
			r.push(`thought`);
		}
		r.push(`of the food that will soon be going into ${him}. ${He} knows you won't let it come back up later.`);
	}

	if (canMove(slave)) {
		r.push(`You instruct ${him} to take a seat on your lap and open`);
		if (slave.fetish === "mindbroken") {
			r.push(`wide, but ${he} remains still and unresponsive. Talking to a broken mind is pointless.`);
		} else {
			r.push(`wide.`);
		}
		if (slave.devotion < -20) {
			r.push(`Opposed to the thought of being forced to eat all that food, ${he} tries to`);
			if (canWalk(slave)) {
				r.push(`step back,`);
			} else {
				r.push(`crawl away,`);
			}
			r.push(`but you catch ${him} and pull ${him} into your lap, wrapping an arm`);
		} else if (slave.fetish === "submissive") {
			r.push(`${He} meekly settles into your lap and shudders as ${he} feels your dominant hand wrap`);
		} else if (slave.behavioralFlaw === "gluttonous") {
			r.push(`${He} wastes no time getting into position with ${his} mouth agape as you wrap your hand`);
		} else if (slave.devotion <= 20) {
			r.push(`${He} complies without comment and settles ${himself} onto your lap, shuddering slightly as you wrap your arm`);
		} else if (slave.devotion <= 50) {
			r.push(`${He} hesitates but eventually settles onto your lap as you wrap your arm`);
		} else {
			r.push(`${He} eagerly settles ${himself} onto your lap as you wrap your arm`);
		}
	} else if (isAmputee(slave)) {
		if (slave.devotion < -20) {
			r.push(`${He}'s opposed to the thought of being forced to eat all that food, but as an amputee can do nothing about it. You heft ${him} onto your lap, wrapping an arm`);
		} else if (slave.fetish === "submissive") {
			r.push(`${He}'s opposed to the thought of being forced to eat all that food, but as an amputee can do nothing about it; not that ${he}'d go against your orders anyway. ${He} shudders with pleasure as you heft ${him} onto your lap, wrapping a dominant arm`);
		} else if (slave.behavioralFlaw === "gluttonous") {
			r.push(`${He} can't wait to chow down, but as an amputee can do nothing to get in position. ${He} shudders with anticipation as you heft ${him} onto your lap, wrapping an arm`);
		} else if (slave.devotion <= 20) {
			r.push(`${He}'s hesitant of being force-fed, but as an amputee can do nothing about it. You heft ${him} onto your lap, wrapping your arm`);
		} else if (slave.devotion <= 50) {
			r.push(`${He}'s mildly hesitant of being force-fed, but as an amputee can do nothing about it. You heft ${him} onto your lap, wrapping your arm`);
		} else {
			r.push(`${He} devotedly`);
			if (canSee(slave)) {
				r.push(`looks`);
			} else {
				r.push(`smiles`);
			}
			r.push(`at you as you heft ${him} onto your lap, wrapping your arm`);
		}
	} else {
		r.push(`You inform ${him} ${he}'ll be taking a seat on your lap and opening wide for ${his} meal.`);
		if (slave.devotion < -20) {
			r.push(`${He}'s opposed to the thought of being forced to eat all that food, but since ${he} is immobile, can't escape. You heft ${him} onto your lap, wrapping an arm`);
		} else if (slave.fetish === "submissive") {
			r.push(`${He} accepts your orders without question. ${He} shudders with pleasure as you heft ${him} onto your lap, wrapping a dominant arm`);
		} else if (slave.behavioralFlaw === "gluttonous") {
			r.push(`${He} eagerly tries to get to your lap faster. ${He} shudders with anticipation as you heft ${him} onto your lap, wrapping your arm`);
		} else if (slave.devotion <= 20) {
			r.push(`${He} complies without comment. You heft ${him} onto your lap, wrapping an arm`);
		} else if (slave.devotion <= 50) {
			r.push(`${He} hesitates for a moment, before demonstrating acceptance. You heft ${him} onto your lap, wrapping an arm`);
		} else {
			r.push(`${He} squirms with excitement as you heft ${him} onto your lap, wrapping an arm`);
		}
	}
	if (slave.fetish === "mindbroken") {
		r.push(`You reach out and wrap your arms`);
	}

	r.push(`around ${his}`);
	if (slave.weight > 190) {
		r.push(`immensely soft`);
	} else if (slave.belly >= 150000) {
		r.push(belly);
	} else if (slave.weight > 160) {
		r.push(`massive soft`);
	} else if (slave.weight > 130) {
		r.push(`giant soft`);
	} else if (slave.belly >= 1500) {
		r.push(belly);
	} else if (slave.weight > 95) {
		r.push(`huge soft`);
	} else if (slave.weight > 30) {
		r.push(`big soft`);
	} else if (slave.weight > 10) {
		r.push(`soft`);
	} else if (slave.muscles > 95) {
		r.push(`chiseled`);
	} else if (slave.muscles > 30) {
		r.push(`muscular`);
	} else if (slave.muscles > 5) {
		r.push(`firm, ripped`);
	} else {
		r.push(`firm, flat`);
	}
	if (slave.fetish === "mindbroken") {
		r.push(`belly, pulling ${him} into your lap.`);
	} else {
		r.push(`belly.`);
	}

	r.push(`You hold ${him} tight as you pull ${his} meal closer, dip in a cup and bring it to ${his} lips.`);
	if (slave.fetish === "mindbroken") {
		r.push(`It takes little effort to get ${him} to gulp down the contents`);
	} else if (slave.devotion < -20) {
		r.push(`${He} struggles in your lap and refuses to open ${his} mouth. You drop the cup back into the bucket and lean in close. You quickly clip ${his} nose shut, eliciting a panicked thrash from the ${girl}.`);
		if (hasAnyLegs(slave)) {
			r.push(`You warn ${him} that ${his} punishment will be severe if ${he} comes that close to kicking over the buckets again.`);
		}
		r.push(`With ${his} mouth forced open, you now have a clear avenue with which to pour the slave food into ${his} mouth. ${He} sputters as ${he} struggles to swallow with ${his} nose shut. After several cups, tears are streaming down ${his} face from the discomfort. Weeping, ${he} implores you to remove the clamp so that ${he} may drink like a good ${girl}.`);
	} else if (slave.fetish === "submissive") {
		r.push(`${He} submissively drinks the contents and readies ${his} lips for the next,`);
	} else if (slave.behavioralFlaw === "gluttonous") {
		r.push(`${He} hurriedly gulps down the contents and opens wide for the next,`);
	} else if (slave.devotion <= 20) {
		r.push(`${He} wordless drinks the contents,`);
	} else if (slave.devotion <= 50) {
		r.push(`${He} drinks the contents without hesitation,`);
	} else {
		r.push(`${He} happily downs the contents,`);
	}

	if (slave.fetish !== "mindbroken" && slave.devotion < -20) {
		r.push(`You readily comply and waste no time in bring cupful after cupful to ${his} lips.`);
	} else {
		r.push(`so you keep the cupfuls coming.`);
	}

	r.push(`You can feel ${his} ${slave.skin} belly swelling with ${slave.inflationType} as it pushes out against your hand. Once ${he} has downed two liters, you give ${his} bloated belly a slap, eliciting`);
	if (slave.fetish === "mindbroken") {
		r.push(`a small burp from the broken slave`);
	} else if (slave.devotion < -20) {
		r.push(`a shudder from the groaning slave`);
	} else if (slave.fetish === "submissive") {
		r.push(`a subtle belch that the moaning slave quickly apologizes for,`);
	} else if (slave.behavioralFlaw === "gluttonous") {
		r.push(`a subtle belch from the moaning slave`);
	} else if (slave.devotion <= 20) {
		r.push(`a small shudder from the bloated slave`);
	} else if (slave.devotion <= 50) {
		r.push(`a small hiccup that the overfilled slave immediately apologizes for,`);
	} else {
		r.push(`a cute burp from the bloated slave, followed by ${his} tongue running over ${his} lips`);
	}
	r.push(`and a little jiggle from ${his} gut.`);

	App.Events.addParagraph(node, r);
	r = [];

	if (slave.pregKnown === 0 && slave.preg > slave.pregData.normalBirth/13.33 && isDone > 0) {
		r.push(`As soon as the next helping enters ${him} you feel something is wrong. ${He} begins to heave,`);
		if (slave.fetish !== "mindbroken" && slave.devotion > 50) {
			r.push(`struggling to keep down the slave food, however ${he} shortly expels the entirety of ${his} stomach across the floor.`);
		} else {
			r.push(`shortly expelling the entirety of ${his} stomach`);
		}
		if (slave.fetish === "mindbroken") {
			r.push(`all over ${himself} and your lap.`);
		} else if (slave.devotion < -20) {
			r.push(`all over ${himself} and your lap.`);
		} else if (slave.fetish === "submissive") {
			r.push(`onto your floor.`);
		} else if (slave.behavioralFlaw === "gluttonous") {
			r.push(`all over ${himself} and your lap.`);
		} else if (slave.devotion <= 20) {
			r.push(`all over ${himself} and your lap.`);
		} else if (slave.devotion <= 50) {
			r.push(`across the floor.`);
		}
		r.push(`It didn't seem to be willful,`);
		if (slave.fetish === "mindbroken") {
			r.push(`not that much is with ${him}, but is still unacceptable.`);
		} else if (slave.devotion < -20) {
			r.push(`given how pathetically ${he} is cowering from your wrath, but is completely unacceptable.`);
		} else if (slave.fetish === "submissive") {
			r.push(`given how ${he} is begging to clean it up with ${his} tongue, but is completely unacceptable.`);
		} else if (slave.behavioralFlaw === "gluttonous") {
			r.push(`given how ${he} is in tears over the loss of such a meal, but is completely unacceptable.`);
		} else if (slave.devotion <= 20) {
			r.push(`given how ${he} is begging you to try again, but is completely unacceptable.`);
		} else if (slave.devotion <= 50) {
			r.push(`given how disappointed ${he} is in failing you, but is completely unacceptable.`);
		} else {
			r.push(`given how disappointed ${he} is in failing you, but is worrying. Such a good slave shouldn't do such bad things.`);
		}
		pregDiscovery = 1;
	} else {
		if (isDone > 0) {
			isDone--;
			r.push(`But ${he} isn't done`);
			if (slave.fetish === "mindbroken") {
				r.push(`yet.`);
			} else if (slave.devotion < -20) {
				r.push(`yet.`);
			} else if (slave.fetish === "submissive") {
				r.push(`yet, not that ${he} minds.`);
			} else if (slave.behavioralFlaw === "gluttonous") {
				r.push(`yet, much to ${his} delight.`);
			} else if (slave.devotion <= 20) {
				r.push(`yet, much to ${his} dismay.`);
			} else if (slave.devotion <= 50) {
				r.push(`yet, not that ${he}'d risk complaining.`);
			} else {
				r.push(`yet, not that ${he}'d complain about fulfilling your desires.`);
			}
			r.push(`More and more you feed ${him}; ${his} belly swelling ever larger and growing even heavier as ${he}`);
			if (slave.fetish === "mindbroken") {
				r.push(`guzzles`);
			} else if (slave.devotion < -20) {
				r.push(`painstakingly drinks`);
			} else if (slave.fetish === "submissive") {
				r.push(`diligently drinks`);
			} else if (slave.behavioralFlaw === "gluttonous") {
				r.push(`desperately sucks down`);
			} else if (slave.devotion <= 20) {
				r.push(`diligently drinks`);
			} else if (slave.devotion <= 50) {
				r.push(`diligently drinks`);
			} else {
				r.push(`diligently drinks`);
			}
			r.push(`the slave food. You reposition yourself to bet a better hold on ${his} bulging food baby. As ${he} passes the gallon mark, you give the swollen orb a good jiggle, eliciting`);
			if (slave.fetish === "mindbroken") {
				r.push(`a burp from the broken slave and tons of motion under your arm.`);
			} else if (slave.devotion < -20) {
				r.push(`a pained burp from the crying slave and tons of motion under your arm.`);
			} else if (slave.fetish === "submissive") {
				r.push(`a moan of arousal over your control and tons of motion under your arm.`);
			} else if (slave.behavioralFlaw === "gluttonous") {
				r.push(`a load hiccup, tons of motion under your arm, and a plea for more food.`);
			} else if (slave.devotion <= 20) {
				r.push(`a strained burp from the full slave and tons of motion under your arm.`);
			} else if (slave.devotion <= 50) {
				r.push(`a small hiccup, which the bloated slave immediately apologizes for, and tons of motion under your arm.`);
			} else {
				r.push(`a small sigh followed by a request for more, from the bloated slave and tons of motion under your arm.`);
			}
			App.Events.addParagraph(node, r);
			r = [];
		}
		if (isDone > 0) {
			if (slave.fetish === "mindbroken") {
				r.push(`${He} squirms a little in discomfort, but ${he} still has another gallon to go, so you continue feeding food into ${his} mouth.`);
			} else if (slave.devotion < -20) {
				r.push(`${He} squirms in discomfort, but ${he} still has another gallon to go and ${he} knows it. You remind ${him} of the ways you can torment ${him} in this state so you can continue feeding food into ${his} mouth without too much resistance.`);
			} else if (slave.fetish === "submissive") {
				r.push(`${He} gets comfortable as ${he} still has another gallon to go and ${he} knows it. Gulping, ${he} opens ${his} mouth in preparation, eager to obey ${his} dom.`);
			} else if (slave.behavioralFlaw === "gluttonous") {
				r.push(`${He} still has another gallon to go and ${he} knows it, so ${he} wastes no time in letting you know ${he}'s ready.`);
			} else if (slave.devotion <= 20) {
				r.push(`${He} begins to struggle when ${he} realizes ${he} still has another gallon to go. Gulping, ${he} opens up as another helping approaches ${his} mouth.`);
			} else if (slave.devotion <= 50) {
				r.push(`${He} still has another gallon to go and ${he} knows it, so ${he} tries ${his} best to get comfortable and give ${his} belly room to grow. Gulping, ${he} diligently opens up for the next serving.`);
			} else {
				r.push(`${He} still has another gallon to go and ${he} knows it, but if ${getWrittenTitle(slave)} wants ${him} to be stuffed like a turkey, ${he}'ll happily comply. ${He} wastes no time in opening up for your next helping.`);
			}
			r.push(`You can feel the pressure growing in ${his} middle as it fills out under your arm more and more. ${He}`);
			if (slave.fetish === "mindbroken") {
				r.push(`mechanically downs every sip you give ${him} with no concern for ${his} own health.`);
			} else if (slave.devotion < -20) {
				r.push(`struggles to down every sip you give ${him} and pants heavily whenever ${he} gets the chance.`);
			} else if (slave.fetish === "submissive") {
				r.push(`struggles to down every sip you give ${him} and pants heavily whenever ${he} gets the chance.`);
			} else if (slave.behavioralFlaw === "gluttonous") {
				r.push(`forces down every sip you give ${him} and pants heavily when ${his} mouth isn't full.`);
			} else if (slave.devotion <= 20) {
				r.push(`struggles to down every sip you give ${him} and pants heavily whenever ${he} gets the chance.`);
			} else if (slave.devotion <= 50) {
				r.push(`obediently downs every gulp you give ${him} and pants heavily between helpings.`);
			} else {
				r.push(`devotedly downs every gulp you give ${him} and catches ${his} breath, while being a tease, between helpings.`);
			}
			r.push(`Once the last of the slave food is in ${his} stomach, you give the firm globe a`);
			if (slave.devotion > 20) {
				r.push(`gentle`);
			}
			r.push(`slap, eliciting`);
			if (slave.fetish === "mindbroken") {
				r.push(`a large belch from the broken slave.`);
			} else if (slave.devotion < -20) {
				r.push(`a large belch and a glare from the straining slave.`);
			} else if (slave.fetish === "submissive") {
				r.push(`a large belch and a squeak of shame from the submissive slave.`);
			} else if (slave.behavioralFlaw === "gluttonous") {
				r.push(`a large belch and a content sigh from the bloated glutton.`);
			} else if (slave.devotion <= 20) {
				r.push(`a restrained gag from the overfilled slave.`);
			} else if (slave.devotion <= 50) {
				r.push(`a small hiccup from the overfilled slave, which ${he} immediately apologizes for.`);
			} else {
				r.push(`a large belch and a playfully stuck out tongue from the stuffed slave.`);
			}
			r.push(`${His} belly is as taut as a drum; you`);
			if (slave.devotion > 20) {
				r.push(`rub it some more`);
			} else {
				r.push(`pat it several more times`);
			}
			r.push(`as you appreciate its size.`);
			doMe = 1;
			App.Events.addParagraph(node, r);
			r = [];
		}
		r.push(`Knocking the empty buckets aside, you help ${his}`);
		if (slave.fetish === "mindbroken") {
			r.push(`hiccupping`);
		} else if (slave.devotion < -20) {
			r.push(`hiccupping`);
		} else if (slave.fetish === "submissive") {
			r.push(`hiccupping`);
		} else if (slave.behavioralFlaw === "gluttonous") {
			r.push(`hiccupping`);
		} else if (slave.devotion <= 20) {
			r.push(`heaving`);
		} else if (slave.devotion <= 50) {
			r.push(`hefty`);
		} else {
			r.push(`hefty`);
		}
		r.push(`bulk onto the couch to recover.`);
		if (slave.fetish === "mindbroken") {
			r.push(`After a few minutes of rest, and several glares from you when it appears ${his} meal might be coming back up,`);
		} else if (slave.devotion < -20) {
			r.push(`${He}`);
			if (canSee(slave)) {
				r.push(`looks in your eyes,`);
			} else {
				r.push(`faces you,`);
			}
			r.push(`as though almost demanding answers. ${He} looks apprehensive about what you will do next. After a few minutes of rest, and several glares from you when it appears ${his} meal might be coming back up,`);
		} else if (slave.fetish === "submissive") {
			r.push(`${He}`);
			if (canSee(slave)) {
				r.push(`looks in your eyes;`);
			} else {
				r.push(`faces you;`);
			}
			r.push(`a satisfied smile on ${his} face. ${He} almost looks sad that it's over, though ${his} gurgling middle says otherwise. After a few minutes of rest,`);
		} else if (slave.behavioralFlaw === "gluttonous") {
			r.push(`${He}`);
			if (canSee(slave)) {
				r.push(`looks in your eyes;`);
			} else {
				r.push(`faces you;`);
			}
			r.push(`a satisfied smile on ${his} face. ${He} almost looks sad that it's over, and ${his} stomach audibly grumbles its displeasure that no more food is working down ${his} throat. After a few minutes of rest,`);
		} else if (slave.devotion <= 20) {
			r.push(`${He} looks up at you quizzically, unsure about what you will do next. ${His} meal attempts to come back up on ${him} several times, but ${he} holds it down for fear of punishment should ${he} vomit. After a few minutes of rest,`);
		} else if (slave.devotion <= 50) {
			r.push(`${He} sighs contently, hoping you'll give ${him} more attention. ${His} meal attempts to come back up on ${him} several times, but ${he} dutifully holds it down. After a few minutes of rest,`);
		} else {
			r.push(`${He} sighs contently, hoping you'll give ${him} more attention. ${He} is proud to let you know that you could fit even more in ${him} if you wanted. After a few minutes of rest,`);
		}
		r.push(`you order ${him} to continue stuffing ${himself} to maintain ${his} current size until you say otherwise.`);
		if (slave.fetish !== "mindbroken" && slave.devotion >= -20 && slave.behavioralFlaw === "gluttonous") {
			r.push(`${He} squeals with glee at the order.`);
		}
		r.push(`You spend ${his} remaining time in recovery`);
		if (slave.fetish === "mindbroken") {
			r.push(`teasing ${his} belly until you tire of ${him} and send ${him} on ${his} way.`);
		} else if (slave.devotion < -20) {
			r.push(`tormenting ${his} gurgling belly until you tire of ${his} sobbing and send ${him} on ${his} way.`);
		} else if (slave.fetish === "submissive" && slave.devotion <= 20) {
			r.push(`toying with ${his} belly until you tire of ${his} moaning and send ${him} on ${his} way.`);
		} else if (slave.behavioralFlaw === "gluttonous" && slave.devotion <= 20) {
			r.push(`massaging ${his} stuffed belly until you tire of ${him} and send ${him} on ${his} way.`);
		} else if (slave.devotion <= 20) {
			r.push(`tormenting ${his} gurgling belly until you tire of ${his} groaning and send ${him} on ${his} way.`);
		} else if (slave.devotion <= 50) {
			r.push(`lavishing attention on ${his} gurgling belly, much to ${his} delight, until you tire of ${him} and send ${him} on ${his} way.`);
		} else {
			r.push(`playing with ${his} belly. ${He} joins you in the endeavor, happy that you are pleased with the`);
			if (doMe !== 1) {
				r.push(`outcome.`);
			} else {
				r.push(`outcome, but ${his}`);
				if (canSee(slave)) {
					r.push(`eyes tell`);
				} else {
					r.push(`face tells`);
				}
				r.push(`you ${he} wants more.`);
			}
			// Fuckings for devoted slaves.
			doMe = 1;
			let sexType;
			if (canDoVaginal(slave) && slave.vagina > 0) {
				sexType = "vaginal";
			} else if (canDoAnal(slave) && slave.anus > 0) {
				sexType = "anal";
			} else {
				sexType = "none";
			}
			if (sexType !== "none") {
				if (V.PC.belly >= 10000) {
					doMe = 0;
					r.push(`${His}`);
					if (sexType === "vaginal") {
						r.push(`pussy`);
					} else {
						r.push(`ass`);
					}
					r.push(`is under a lot of pressure from ${his} swollen middle and surely would feel amazing; it's even`);
					if (sexType === "vaginal") {
						r.push(`sopping wet for`);
					} else {
						r.push(`eagerly winking at`);
					}
					r.push(`you. Unfortunately, no matter how hard you try, you can't find a position that will accommodate both ${his} food-stuffed stomach and your own gravid middle. Sighing, you settle for ${his} mouth instead.`);
				} else {
					if (V.PC.dick !== 0) {
						r.push(`You're already rock hard so you`);
					} else {
						if (sexType === "vaginal") {
							r.push(`You don a strap-on and`);
						} else {
							r.push(`You don a strap-on, lube up,`);
						}
					}
					r.push(`pull ${his} legs apart,`);
					if (sexType === "vaginal") {
						r.push(`revealing ${his}`);
						if (slave.vaginaLube > 1) {
							r.push(`sopping wet,`);
						} else if (slave.vaginaLube > 0) {
							r.push(`moist,`);
						} else {
							r.push(`moist, relative to its usual dryness,`);
						}
						if (slave.vagina >= 10) {
							r.push(`devastated`);
						} else if (slave.vagina > 3) {
							r.push(`cavernous`);
						} else if (slave.vagina > 2) {
							r.push(`loose`);
						} else if (slave.vagina > 1) {
							r.push(`used`);
						} else {
							r.push(`tight`);
						}
						r.push(`pussy.`);
					} else {
						r.push(`and heft ${his} bulk up to reveal ${his}`);
						if (slave.anus > 3) {
							r.push(`gaping asshole.`);
						} else if (slave.anus > 2) {
							r.push(`loose anus.`);
						} else if (slave.anus > 1) {
							r.push(`used asshole.`);
						} else {
							r.push(`tight asshole.`);
						}
					}
					r.push(`${His} belly is putting so much pressure on it that`);
					const looseness = (sexType === "vaginal") ? slave.vagina : slave.anus;
					if (sexType === "vaginal" && looseness >= 10) {
						r.push(`you might be able to get some decent friction now.`);
						if (V.PC.dick !== 0) {
							r.push(`You can actually feel the sides of ${his} cunt as you slide in.`);
						} else {
							r.push(`You slide in like it's still nothing.`);
						}
					} else if (looseness > 3) {
						r.push(`you should be able to get a decent fuck out of it.`);
						if (V.PC.dick !== 0) {
							r.push(`You can't help but be amazed that you're getting some resistance as you slide in.`);
						} else {
							r.push(`You slide in like it's nothing.`);
						}
					} else if (looseness > 2) {
						r.push(`it won't feel so`);
						if (sexType === "vaginal") {
							r.push(`worn out.`);
						} else {
							r.push(`stretched.`);
						}
						if (V.PC.dick !== 0) {
							r.push(`${He} gives some nice resistance as you squeeze into ${him}.`);
						} else {
							r.push(`You squeeze in without problem.`);
						}
					} else if (looseness > 1) {
						r.push(`it'll feel positively tight.`);
						if (V.PC.dick !== 0) {
							r.push(`${His}`);
							if (sexType === "vaginal") {
								r.push(`pussy`);
							} else {
								r.push(`anus`);
							}
							r.push(`feels great, you practically had to squeeze in.`);
						} else {
							r.push(`You squeeze in with a little effort.`);
						}
					} else {
						r.push(`you'll barely be able to fit it in.`);
						if (V.PC.dick !== 0) {
							r.push(`${His}`);
							if (sexType === "vaginal") {
								r.push(`vagina`);
							} else {
								r.push(`rear`);
							}
							r.push(`is so tight you can barely get it in, but with a little work, you manage to squeeze into its tight confines. ${He}'s tighter than any`);
							if (sexType === "anal") {
								r.push(`anal`);
							}
							r.push(`virgin you've ever fucked.`);
						} else {
							r.push(`You have to`);
							if (sexType === "vaginal") {
								r.push(`lube up some,`);
							} else {
								r.push(`get a little rough,`);
							}
							r.push(`but eventually you manage to slide into ${his} extremely tight`);
							if (sexType === "vaginal") {
								r.push(`vagina.`);
							} else {
								r.push(`anus.`);
							}
						}
					}
					r.push(`Once you're hilted, you bring your hands to ${his} distended belly, eager to feel it move as you fuck ${him}.`);
					if (hasAnyArms(slave)) {
						r.push(`${His} own ${hasBothArms(slave) ? `join` : `joins`} yours atop the taut dome.`);
					}
					r.push(`Every thrust into the stuffed ${SlaveTitle(slave)} forces ${his} full middle to leap back before slamming into your stomach alongside a moaning groan. As you pick up the pace, ${he} begins to buck against you, adding even more motion to ${his} body. It doesn't take long for you to reach your peak and, after cumming, catch sight of ${his} own climax. Watching ${his} middle attempt to contract around the mass of slave food inside ${him} invigorates you for a second round.`);
					if (V.PC.balls >= 30) {
						r.push(`By the time you're done, ${he}'s positively massive; your copious seed flows out of ${him} in spurts as ${his} body desperately struggles to relieve the extra pressure your huge balls pumped into ${him}.`);
					}
					r.push(`Once you are spent,`);
					if (V.PC.balls >= 30) {
						r.push(`and ${he}'s forced out all your cum,`);
					}
					r.push(`you settle down beside ${him} and rest your head against ${his} belly; it almost feels like a water-filled pillow, albeit a little noisy. You and ${slave.slaveName} doze off together for a much needed nap. You don't get much rest; ${his} stomach's constant groaning and burbling keeps you up, so you send ${him} on ${his} way. ${He} blows you one last kiss and eagerly looks forward to next time.`);
					if (sexType === "vaginal") {
						r.push(VCheck.Vaginal(slave, 2));
					} else {
						r.push(VCheck.Anal(slave, 2));
					}
				}
			} else {
				doMe = 0;
			}
			if (doMe === 0) {
				if (V.PC.dick !== 0) {
					r.push(`You crawl onto the couch above ${his} head and lower your erect cock straight into ${his} waiting mouth. ${He} eagerly sucks you off, ${his} belly wobbling with every thrust into ${his} throat. You cum fast and hard into ${him}, a product of being on the edge during ${his} feeding;`);
					if (slave.behavioralFlaw === "gluttonous") {
						r.push(`${he} takes it like nothing and resumes sucking, ${his} gluttony showing no bounds.`);
					} else {
						r.push(`${he} swallows it promptly and keeps sucking. You'd swear ${he} was a glutton at this point.`);
					}
				} else {
					r.push(`You crawl onto the couch above ${his} head and lower your needy pussy straight onto ${his} outstretched tongue. ${He} eagerly eats you out, ${his} belly wobbling along to ${his} vigorous licking. You cum fast and hard onto ${him}, a product of being on the edge during ${his} feeding;`);
					if (slave.behavioralFlaw === "gluttonous") {
						r.push(`${he} laps it all up and resumes pleasuring you, ${his} gluttony showing no bounds.`);
					} else {
						r.push(`${he} laps it promptly and resumes pleasuring you. You'd swear ${he} was a glutton at this point.`);
					}
				}
				r.push(`Once you are spent, you slide down beside ${him} and rest your head against ${his} belly; it almost feels like a water-filled pillow, albeit a little noisy. You and ${slave.slaveName} doze off together for a much needed nap. You don't get much rest; ${his} stomach's constant groaning and burbling keeping you up, so you send ${him} on ${his} way. ${He} blows you one last kiss and eagerly looks forward to next time.`);

				seX(slave, "oral", V.PC, "penetrative", 2);
			}
		}
	}

	if (pregDiscovery === 1) {
		r.push(`Once you've managed to stop ${his} heaving and clean up, you decide to get to the root of this mess. While most of the tests come back normal, one in particular catches your eye; <span class="lime">${he} is pregnant${(slave.preg > slave.pregData.normalBirth/4) ? ` and surprisingly far along` : ``}.</span>`);
		deflate(slave);
		slave.pregKnown = 1;
	} else {
		if (slave.inflation === 3) {
			if (canWalk(slave) || (canMove(slave) && slave.rules.mobility === "permissive")) {
				r.push(`${He} gingerly leaves your office, massaging ${his} over-stuffed belly as ${he} goes.`);
			} else {
				r.push(`${His} belly wobbles heavily as ${he} is helped from your office.`);
			}
			r.push(`Being filled so full <span class="health dec">surely had negative effects</span> on ${his} health.`);
			healthDamage(slave, 10);
		} else if (slave.inflation === 2) {
			if (canWalk(slave) || (canMove(slave) && slave.rules.mobility === "permissive")) {
				r.push(`${He} gingerly leaves your office, massaging ${his} stuffed belly as ${he} goes.`);
			} else {
				r.push(`${His} belly wobbles heavily as ${he} is helped from your office.`);
			}
		} else if (slave.inflation === 1) {
			if (canWalk(slave) || (canMove(slave) && slave.rules.mobility === "permissive")) {
				r.push(`${He} gingerly leaves your office, massaging ${his} distended belly as ${he} goes.`);
			} else {
				r.push(`${His} belly wobbles as ${he} is helped from your office.`);
			}
		}
		if (slave.fetish === "mindbroken") {
			r.push(`You question if the broken ${girl} understood your commands, but relish the idea of force-feeding ${him} even more should ${he} fail you.`);
		}
	}

	SetBellySize(slave);
	App.Events.addParagraph(node, r);
	return node;
};