code:
/**
 *
 * @param {App.Entity.SlaveState} slave
 * @returns {DocumentFragment}
 */
App.Interact.fMarry = function(slave) {
	const {
		His, He,
		his, he, him, himself, wife, girl, women
	} = getPronouns(slave);
	const {title: Master, say: say} = getEnunciation(slave);
	const el = new DocumentFragment();
	let r = [];
	const belly = bellyAdjective(slave);
	const relSlave = getSlave(slave.relationshipTarget);
	const {
		he2, him2, his2
	} = getPronouns(relSlave ? relSlave : {pronoun: App.Data.Pronouns.Kind.plural}).appendSuffix("2");
	const {
		hisP
	} = getPronouns(V.PC).appendSuffix("P");
	const groom = V.PC.title === 1 ? `groom` : `bride`;
	const {
		HeA, HisA,
		heA, hisA, himA, girlA, himselfA, womanA, loliA
	} = getPronouns(assistant.pronouns().main).appendSuffix("A");
	let reactionType;
	r.push(`You tell ${slave.slaveName} that you're going to marry ${him}. (A proposal, of course, would be inappropriate, even in so enlightened a place as your arcology.)`);
	if (slave.fetish === Fetish.MINDBROKEN) {
		r.push(`${He} doesn't react.`);
		reactionType = 0;
	} else if (slave.devotion+slave.trust >= 175) {
		r.push(`You're not exactly lacking in ways to make`);
		if (slave.physicalAge > 30) {
			r.push(`${women}`);
		} else {
			r.push(`${girl}s`);
		}
		r.push(`burst into tears, but this one is unusually effective. When ${he}'s gotten ${himself} under control again,`);
		if (!hasAnyArms(slave)) {
			r.push(`looking somewhat embarrassed that ${he} can't wipe ${his} own tears`);
		} else {
			r.push(`distractedly cuffing away ${his} tears`);
		}
		r.push(`and consciously breathing deeply,`);
		if (canTalk(slave)) {
			r.push(`${he} ${say}s,`);
			if (slave.relationship !== 0) {
				if (slave.relationship === -1) {
					r.push(Spoken(slave, `"I promise I'll try to stop sleeping around so much."`));
				} else if (slave.relationship === 4) {
					r.push(Spoken(slave, `"I'll have to break up with ${relSlave.slaveName}... I'll try to let ${him2} down gently, ${he2}'ll understand."`));
				} else if (slave.relationship === 3) {
					r.push(Spoken(slave, `"${relSlave.slaveName} will miss having sex with me, but ${he2}'ll understand."`));
				} else if (slave.relationship > 0) {
					r.push(Spoken(slave, `"I'll have to stop hanging out with ${relSlave.slaveName}; I'm sure ${he2}'ll understand."`));
				} else {
					r.push(Spoken(slave, `"I've been waiting for this day! I'm so happy!"`));
				}
				r.push(`${He} continues,`);
			}
			r.push(Spoken(slave, `"Thank you, ${Master}. I am going to do my best to be a`));
			if (slave.fetishKnown === 1 && slave.fetishStrength > 60) {
				if (slave.fetish === Fetish.SUBMISSIVE) {
					r.push(Spoken(slave, `perfect submissive ${wife} to you,`));
				} else if (slave.fetish === "cumslut") {
					r.push(Spoken(slave, `perfect oral ${wife},`));
				} else if (slave.fetish === "humiliation") {
					r.push(Spoken(slave, `hot ${wife} for you,`));
				} else if (slave.fetish === "buttslut") {
					r.push(Spoken(slave, `perfect little anal ${wife},`));
				} else if (slave.fetish === "boobs") {
					if (slave.boobs > 800) {
						r.push(Spoken(slave, `perfect big-boobed`));
					} else {
						r.push(Spoken(slave, `perfect-boobed`));
					}
					r.push(Spoken(slave, `${wife}`));
				} else if (slave.fetish === "pregnancy") {
					r.push(Spoken(slave, `perfect barefoot breeding ${wife},`));
				} else if (slave.fetish === "dom") {
					r.push(Spoken(slave, `perfect, you know, sharing ${wife} with other slaves,`));
				} else if (slave.fetish === "sadist") {
					r.push(Spoken(slave, `perfect ${wife} to use on other slaves,`));
				} else if (slave.fetish === "masochist") {
					r.push(Spoken(slave, `good, beaten ${wife},`));
				} else {
					r.push(Spoken(slave, `good ${wife},`));
				}
			} else {
				r.push(Spoken(slave, `good ${wife},`));
			}
			r.push(Spoken(slave, `${Master}. Oh, thank you, ${Master},"`), `${he} blubbers, and starts crying again.`);
		} else if (!hasAnyArms(slave)) {
			r.push(`${he} painstakingly mouths ${his} thanks, since ${he} cannot speak or use hands to sign.`);
			if (slave.relationship !== 0) {
				r.push(`${He} struggles to tell you`);
				if (slave.relationship === -1) {
					r.push(`that ${he}'ll try to be less of a slut.`);
				} else if (slave.relationship === 4) {
					r.push(`that ${he}'ll try to let ${his} lover ${relSlave.slaveName} down gently.`);
				} else if (slave.relationship === 3) {
					r.push(`that ${he}'ll try to let ${his} FWB ${relSlave.slaveName} down gently.`);
				} else if (slave.relationship > 0) {
					r.push(`that ${he}'ll have to stop hanging around ${relSlave.slaveName}.`);
				} else {
					r.push(`that ${he} has never been happier.`);
				}
			}
		} else {
			r.push(`${he} shakily signs ${his} thanks twice in a row before breaking down again.`);
			if (slave.relationship !== 0) {
				r.push(`${He} regains composure enough to continue signing out`);
				if (slave.relationship === -1) {
					r.push(`that ${he}'ll try to be less of a slut.`);
				} else if (slave.relationship === 4) {
					r.push(`that ${he}'ll try to let ${his} lover ${relSlave.slaveName} down gently.`);
				} else if (slave.relationship === 3) {
					r.push(`that ${he}'ll try to let ${his} FWB ${relSlave.slaveName} down gently.`);
				} else if (slave.relationship > 0) {
					r.push(`that ${he}'ll have to stop hanging around ${relSlave.slaveName}.`);
				} else {
					r.push(`that ${he} has never been happier.`);
				}
			}
		}
		r.push(`Despite ${his} devotion and trust, ${he} is still a slave, and probably knows that ${his} position could always change. This brings ${him} one step closer to true permanence, and ${he} knows it.`);
		reactionType = 1;
	} else if (slave.devotion < -20 && slave.trust > 20) {
		r.push(`You're not exactly lacking in ways to make`);
		if (slave.physicalAge > 30) {
			r.push(women);
		} else {
			r.push(`${girl}s`);
		}
		r.push(`burst into tears, but this one is surprisingly effective. It seems ${slave.slaveName} does not want to marry you, if ${his} prolonged, anguished sobbing is anything to go by. However, ${he} would have to be a fool to think there's any way out of it.`);
		if (canTalk(slave)) {
			r.push(`${He} ${say}s,`, Spoken(slave, `"Please ${Master}, I don't want to`));
			if (slave.fetishKnown === 1 && slave.fetishStrength > 60) {
				if (slave.fetish === Fetish.SUBMISSIVE) {
					r.push(Spoken(slave, `be your little submissive fucktoy,`));
				} else if (slave.fetish === "cumslut") {
					r.push(Spoken(slave, `be your cum sucker,`));
				} else if (slave.fetish === "humiliation") {
					r.push(Spoken(slave, `be stripped bare and shown off,`));
				} else if (slave.fetish === "buttslut") {
					r.push(Spoken(slave, `have things shoved up my butt,`));
				} else if (slave.fetish === "boobs") {
					r.push(Spoken(slave, `have my tits teased every night,`));
				} else if (slave.fetish === "pregnancy") {
					if (canGetPregnant(slave)) {
						r.push(Spoken(slave, `get knocked up by you,`));
					} else {
						r.push(Spoken(slave, `be your pregnant toy,`));
					}
				} else if (slave.fetish === "dom") {
					r.push(Spoken(slave, `have to rule your sissy dick,`));
				} else if (slave.fetish === "sadist") {
					r.push(Spoken(slave, `spank your ass,`));
				} else if (slave.fetish === "masochist") {
					r.push(Spoken(slave, `get beaten by you,`));
				} else {
					r.push(Spoken(slave, `stay in your nice room,`));
				}
			} else {
				r.push(Spoken(slave, `stay in your nice room,`));
			}

			r.push(Spoken(slave, `${Master}. You're a terrible person, ${Master},"`), `${he} blubbers, and starts crying again.`);
			if (slave.relationship !== 0) {
				if (slave.relationship === -1) {
					r.push(Spoken(slave, `"I'll never be satisfied by just you!"`));
				} else if (slave.relationship === 4) {
					r.push(Spoken(slave, `"I love ${relSlave.slaveName}, not you ${Master}! You'll never be as good as ${him2}!"`));
				} else if (slave.relationship === 3) {
					r.push(Spoken(slave, `"But I like having sex with ${relSlave.slaveName}, not you ${Master}! You'll never be as good as ${him2}!"`));
				} else if (slave.relationship > 0) {
					r.push(Spoken(slave, `"But I like spending time with ${relSlave.slaveName}, ${he2}'s so much nicer to be around than you, ${Master}."`));
				} else {
					r.push(Spoken(slave, `"I need you in my life, ${Master}, so why don't you bend down like the bitch you are and`));
					if (slave.dick > 0) {
						r.push(`suck my dick,`);
					} else if (slave.vagina > -1) {
						r.push(`eat me out,`);
					} else {
						r.push(`lick my ass,`);
					}
					r.push(`${Master}?"`);
				}
			}
		} else if (!hasAnyArms(slave)) {
			r.push(`${he} painstakingly mouths ${his} displeasure, since ${he} cannot speak or use hands to sign.`);
			if (slave.relationship !== 0) {
				if (slave.relationship === -1) {
					r.push(`${He} desperately tries to explain that you'll never satisfy ${him}.`);
				} else if (slave.relationship === 4) {
					r.push(`${He} desperately tries to explain that ${his} love, ${relSlave.slaveName}, is better than you'll ever be.`);
				} else if (slave.relationship === 3) {
					r.push(`${He} desperately tries to explain that ${his} lover, ${relSlave.slaveName}, satisfies ${his} far better than you can.`);
				} else if (slave.relationship > 0) {
					r.push(`${He} desperately tries to explain ${his} friend, ${relSlave.slaveName}, is so much more enjoyable to be around than you.`);
				} else {
					r.push(`${He} wiggles ${his} nethers at you, as if trying to tell you to do something.`);
				}
			}
		} else {
			r.push(`${he} shakily makes a rather rude hand gesture before crying more.`);
			if (slave.relationship !== 0) {
				if (slave.relationship === -1) {
					r.push(`${He} also makes it clear that you'll never satisfy ${him}.`);
				} else if (slave.relationship === 4) {
					r.push(`${He} also makes it clear that ${his} love, ${relSlave.slaveName}, is better than you'll ever be.`);
				} else if (slave.relationship === 3) {
					r.push(`${He} also makes it clear that ${his} lover, ${relSlave.slaveName}, satisfies ${him} far better than you can.`);
				} else if (slave.relationship > 0) {
					r.push(`${He} also makes it clear ${his} friend, ${relSlave.slaveName}, is so much more enjoyable to be around than you.`);
				} else {
					r.push(`On top of the prior gesturing, ${he} adds another, lewder one involving you and ${his} crotch.`);
				}
			}
		}
		r.push(`Despite ${his} "fortune", ${he} is still a slave, and undoubtedly knows that ${his} position could easily change should you tire of ${him}. ${His} tears may not all be genuine either, you have a feeling ${he} may be trying to take advantage of you.`);
		reactionType = 2;
	} else if (slave.devotion < -20) {
		r.push(`You're not exactly lacking in ways to make`);
		if (slave.physicalAge > 30) {
			r.push(`${women}`);
		} else {
			r.push(`${girl}s`);
		}
		r.push(`burst into tears, but this one is unusually effective. It seems ${slave.slaveName} does not want to marry you, if ${his} prolonged, anguished sobbing is anything to go by. However, ${he} would have to be a fool to think there's any way out of it. You lean in and whisper that`);
		if (slave.fetishKnown === 1 && slave.fetishStrength > 60) {
			if (slave.fetish === Fetish.SUBMISSIVE) {
				r.push(`${he}'ll make the perfect submissive ${wife} for you dominate.`);
			} else if (slave.fetish === "cumslut") {
				r.push(`${he}'ll make the perfect oral ${wife} for your`);
				if (V.PC.dick > 0 && V.PC.vagina >= 0) {
					r.push(`dick and pussy`);
				} else if (V.PC.dick > 0) {
					r.push(`cock`);
				} else {
					r.push(`pussy`);
				}
				r.push(`to enjoy.`);
			} else if (slave.fetish === "humiliation") {
				r.push(`${he}'ll make a hot ${wife} for you to parade around naked.`);
			} else if (slave.fetish === "buttslut") {
				r.push(`${he}'ll make the perfect little anal ${wife}`);
				if (V.PC.dick > 0) {
					r.push(`to keep your dick warm.`);
				} else {
					r.push(`stick things in.`);
				}
			} else if (slave.fetish === "boobs") {
				r.push(`${he}'ll make the`);
				if (slave.boobs > 800) {
					r.push(`perfect big-boobed`);
				} else {
					r.push(`perfect-boobed`);
				}
				r.push(`${wife} for you to bury your head into.`);
			} else if (slave.fetish === "pregnancy") {
				r.push(`${he}'ll make the perfect barefoot breeding ${wife}.`);
				if (V.PC.dick > 0 && canGetPregnant(slave)) {
					r.push(`You poke ${him} with your erection, letting ${him} know what ${he}'s in for.`);
				}
			} else if (slave.fetish === "dom") {
				r.push(`${he}'ll make the perfect dominant ${wife} to force upon ${his} closest friends.`);
			} else if (slave.fetish === "sadist") {
				r.push(`${he}'ll make the perfect cruel ${wife} to force upon ${his} closest friends.`);
			} else if (slave.fetish === "masochist") {
				r.push(`${he}'ll make a good, beaten ${wife}.`);
			} else {
				r.push(`${he}'ll make a good ${wife}.`);
			}
		} else {
			r.push(`${he}'ll make a good ${wife}.`);
		}
		if (canTalk(slave)) {
			r.push(Spoken(slave, `"${Master}. Please, ${Master}, don't make me do this. I don't want this!"`), `${he} blubbers, and starts crying again.`);
			if (slave.relationship !== 0) {
				if (slave.relationship === -1) {
					r.push(Spoken(slave, `"I need a new dick in me every night! How can I be satisfied like this?!"`));
				} else if (slave.relationship === 4) {
					r.push(Spoken(slave, `"I love ${relSlave.slaveName}! Please don't split us up ${Master}! I'll be a good ${girl}, ${Master}, please!"`));
				} else if (slave.relationship === 3) {
					r.push(Spoken(slave, `"I love playing around with ${relSlave.slaveName}! Please don't split us up ${Master}! I'll be a good ${girl}, ${Master}, please!"`));
				} else if (slave.relationship > 0) {
					r.push(Spoken(slave, `"But I like spending time with ${relSlave.slaveName}! Please don't split us up ${Master}! I'll be a good ${girl}, ${Master}, please!"`));
				} else {
					r.push(Spoken(slave, `"I need you in my life, ${Master}, but not like this, please?"`));
				}
			}
		} else if (!hasAnyArms(slave)) {
			r.push(`${He} painstakingly pleads with you, since ${he} cannot speak or use hands to sign.`);
			if (slave.relationship !== 0) {
				if (slave.relationship === -1) {
					r.push(`${He} desperately tries to explain that ${he} needs multiple partners.`);
				} else if (slave.relationship === 4) {
					r.push(`${He} desperately begs you to not separate ${him} from ${his} love, ${relSlave.slaveName}.`);
				} else if (slave.relationship === 3) {
					r.push(`${He} desperately begs you to not separate ${him} from ${his} lover, ${relSlave.slaveName}.`);
				} else if (slave.relationship > 0) {
					r.push(`${He} desperately begs you to not separate ${him} from ${his} friend, ${relSlave.slaveName}.`);
				} else {
					r.push(`${He} desperately begs you to not marry ${him}, despite ${his} emotional connection with you.`);
				}
			}
		} else {
			r.push(`${He} desperately struggles to plead with you before breaking down again.`);
			if (slave.relationship !== 0) {
				if (slave.relationship === -1) {
					r.push(`${He} tries to explain that ${he} needs multiple partners.`);
				} else if (slave.relationship === 4) {
					r.push(`${He} begs you to not separate ${him} from ${his} love, ${relSlave.slaveName}.`);
				} else if (slave.relationship === 3) {
					r.push(`${He} begs you to not separate ${him} from ${his} lover, ${relSlave.slaveName}.`);
				} else if (slave.relationship > 0) {
					r.push(`${He} begs you to not separate ${him} from ${his} friend, ${relSlave.slaveName}.`);
				} else {
					r.push(`${He} begs you to not marry ${him}, despite ${his} emotional connection with you.`);
				}
			}
		}
		r.push(`You leave ${him} to weep and consider ${his} fate. Despite ${his} "fortune", ${he} is still a slave, and undoubtedly knows that ${his} position could easily change should you tire of ${him}.`);
		reactionType = 2;
	} else {
		r.push(`${He} doesn't really react to this. By no means does ${he} want to be your ${wife}, but ${he}'s obedient enough to know that you are in charge. You leave ${him} to ${his} business, and go back to yours.`);
		if (slave.relationship !== 0) {
			if (slave.relationship === -1) {
				r.push(`${He} sighs at the realization that ${he} won't be allowed to be so promiscuous and will have to learn to focus ${his} attention on you.`);
			} else if (slave.relationship === 4) {
				r.push(`${He} sighs at the realization that ${he}'ll have to stop seeing ${his} love, ${relSlave.slaveName}.`);
			} else if (slave.relationship === 3) {
				r.push(`${He} sighs at the realization that ${he}'ll have to stop spending so much time with ${his} lover, ${relSlave.slaveName}.`);
			} else if (slave.relationship > 0) {
				r.push(`${He} sighs at the realization that ${he}'ll have to stop spending so much time with ${his} friend, ${relSlave.slaveName}.`);
			} else {
				r.push(`Deep down, ${he} dreamed of this. But now that it's happening ${he} can't shake the feeling of regret.`);
			}
		}
		reactionType = 3;
	}
	App.Events.addParagraph(el, r);
	r = [];

	r.push(`${capFirstChar(V.assistant.name)} prompts you for wedding`);
	if (V.assistant.personality <= 0) {
		r.push(`instructions.`);
	} else {
		r.push(`instructions, ${hisA}`);
		if (V.assistant.appearance === "monstergirl") {
			r.push(`monster${girlA} avatar appearing in a surprisingly conventional surplice that covers ${himA} up decently. All except for ${hisA} horns, which protrude from under the headpiece.`);
		} else if (V.assistant.appearance === "shemale") {
			r.push(`shemale avatar appears in a collar patterned to look like a minister's, and absolutely nothing else, stroking ${himselfA} with anticipation.`);
		} else if (V.assistant.appearance === "amazon") {
			r.push(`amazon avatar wearing a tribal shaman's cape and carrying a medicine stick adorned with all sorts of little charms and baubles.`);
		} else if (V.assistant.appearance === "businesswoman") {
			r.push(`business${womanA} avatar looking rather severe in a minister's collar.`);
		} else if (V.assistant.appearance === "fairy") {
			r.push(`fairy avatar looking incredibly silly, dressed in an oversized, disheveled priest's robes and looking rather smug about it.`);
		} else if (V.assistant.appearance === "pregnant fairy") {
			r.push(`fairy avatar looking incredibly silly, dressed in an oversized, disheveled priest's robes stretched tight by ${hisA} pregnant belly and looking rather smug about it.`);
		} else if (V.assistant.appearance === "goddess") {
			r.push(`goddess avatar completely unchanged, since ${heA} considers ${hisA} usual form perfectly appropriate for a marriage.`);
		} else if (V.assistant.appearance === "hypergoddess") {
			r.push(`goddess avatar completely unchanged, since ${heA} considers ${hisA} usual form perfectly appropriate for a marriage.`);
		} else if (V.assistant.appearance === "loli") {
			r.push(`${loliA} avatar looking surprisingly mature in a minister's collar. Though, ${heA} would rather be the flower ${girlA} in this wedding.`);
		} else if (V.assistant.appearance === "preggololi") {
			r.push(`${loliA} avatar looking surprisingly mature in a minister's collar. Though, ${heA} would rather be the flower ${girlA} in this wedding.`);
		} else if (V.assistant.appearance === "schoolgirl") {
			r.push(`school${girlA} avatar looking willfully absurd in a minister's collar and ${hisA} usual short plaid skirt.`);
		} else if (V.assistant.appearance === "angel") {
			r.push(`angelic avatar looking, well, angelic in ${hisA} usual garb with an added minister's collar.`);
		} else if (V.assistant.appearance === "cherub") {
			r.push(`angelic avatar looking absurd in ${hisA} oversized robe, complete with wing-holes, and minister's collar.`);
		} else if (V.assistant.appearance === "incubus") {
			r.push(`demonic avatar completely unchanged, since ${heA} considers ${hisA} usual form perfectly appropriate for a marriage, though ${heA} has made sure to be fully erect for the wedding.`);
		} else if (V.assistant.appearance === "succubus") {
			r.push(`demonic avatar wearing nothing but a minister's collar. ${HeA} has brought several marital aids along with ${himA} to tease the bride and groom with.`);
		} else if (V.assistant.appearance === "imp") {
			r.push(`demonic avatar looking absurd in ${hisA} oversized robe, complete with wing-holes, and minister's collar.`);
		} else if (V.assistant.appearance === "witch") {
			r.push(`witchy avatar looking rather formal in a fine robe and minister's collar.`);
		} else if (V.assistant.appearance === "ERROR_1606_APPEARANCE_FILE_CORRUPT") {
			r.push(`twitching avatar completely unchanged, sans a bulbous ring of flesh around ${hisA} neck that sort of resembles a minister's collar.`);
		} else {
			r.push(`symbol appearing in white.`);
		}
	}
	App.Events.addParagraph(el, r);
	const planned = () => {
		if (V.weddingPlanned === 1) {
			return `a straightforward ceremony`;
		} else if (V.weddingPlanned === 2) {
			return `an orgiastic ceremony`;
		} else if (V.weddingPlanned === 3) {
			return `an impregnation ceremony`;
		}
	};

	const events = [
		new App.Events.Result(`Just redesignate ${him} as your slave wife`, designate),
		new App.Events.Result(`Have your assistant marry ${him} to you`, marryNow),
	];
	events.push(new App.Events.Result(null, null, `Invite prominent citizens to a wedding: `));
	if (V.cash > 10000) {
		if (V.weddingPlanned === 0 || V.weddingPlanned === 1) {
			events.push(new App.Events.Result(`Straightforward ceremony`, straightforward, `This will cost ${cashFormat(10000)}`));
		} else {
			events.push(new App.Events.Result(null, null, `You are already hosting ${planned()} and cannot host a straightforward ceremony`));
		}
		if (slave.vagina !== 0 && slave.anus !== 0) {
			if (V.weddingPlanned === 0 || V.weddingPlanned === 2) {
				events.push(new App.Events.Result(`Orgiastic ceremony`, orgiastic, `This will involve the slave having sex with a very large number of citizens, and will cost ${cashFormat(10000)}`));
			} else {
				events.push(new App.Events.Result(null, null, `You are already hosting ${planned()} and cannot host an orgiastic ceremony`));
			}
		}
		if (isFertile(slave) && V.PC.dick !== 0) {
			if (V.weddingPlanned === 0 || V.weddingPlanned === 3) {
				events.push(new App.Events.Result(`Impregnation ceremony`, impregnation, `This will involve you impregnating the slave, and will cost ${cashFormat(10000)}`));
			} else {
				events.push(new App.Events.Result(null, null, `You are already hosting ${planned()} and cannot host an impregnation ceremony`));
			}
		}
	} else {
		events.push(new App.Events.Result(null, null, `You cannot afford an elaborate ceremony`));
	}
	App.Events.addResponses(el, events);
	return el;

	function designate() {
		let r = [];
		const el = new DocumentFragment();
		r.push(`You order ${V.assistant.name} to simply redesignate ${slave.slaveName} as your slave ${wife}.`);
		if (V.assistant.personality <= 0) {
			r.push(`"Slave redesignated," it responds immediately. The thing is done.`);
		} else {
			if (V.assistant.appearance === "monstergirl") {
				r.push(`${HisA} avatar snaps ${hisA} fingers and shrugs off ${hisA} surplice, revealing ${hisA} tentacle hair, pale skin, and cocks once more.`);
			} else if (V.assistant.appearance === "shemale") {
				r.push(`${HisA} avatar snaps ${hisA} fingers and starts to masturbate more energetically.`);
			} else if (V.assistant.appearance === "amazon") {
				r.push(`${HisA} avatar gives ${hisA} medicine stick a shake.`);
			} else if (V.assistant.appearance === "businesswoman") {
				r.push(`${HisA} avatar snaps ${hisA} fingers.`);
			} else if (V.assistant.appearance.includes("fairy")) {
				r.push(`${HisA} avatar claps ${hisA} hands twice, looking a bit disappointed at the lack of celebration.`);
			} else if (V.assistant.appearance.includes("goddess")) {
				r.push(`${HisA} avatar makes a complex hand gesture, looking beatific.`);
			} else if (V.assistant.appearance.includes("loli")) {
				r.push(`${HisA} avatar claps ${hisA} hands together.`);
			} else if (V.assistant.appearance === "schoolgirl") {
				r.push(`${HisA} avatar snaps ${hisA} fingers and gives a little twirl.`);
			} else if (V.assistant.appearance === "angel") {
				r.push(`${HisA} avatar spreads ${hisA} wings and arms and emits a flash of light.`);
			} else if (V.assistant.appearance === "cherub") {
				r.push(`${HisA} avatar claps ${hisA} hands together, emitting a burst of light.`);
			} else if (V.assistant.appearance === "incubus") {
				r.push(`${HisA} avatar flicks the tip of ${hisA} penis and blows ${hisA} load towards the both of you.`);
			} else if (V.assistant.appearance === "succubus") {
				r.push(`${HisA} avatar starts to masturbate furiously and orgasms lewdly.`);
			} else if (V.assistant.appearance === "imp") {
				r.push(`${HisA} avatar claps ${hisA} hands together, emitting a burst of darkness.`);
			} else if (V.assistant.appearance === "witch") {
				r.push(`${HisA} avatar pulls out ${hisA} spell book and attempts a spell to bind you two; ${heA} manages to conjure a large ring around ${himselfA}, pinning ${hisA} arms to ${hisA} sides.`);
			} else if (V.assistant.appearance === "ERROR_1606_APPEARANCE_FILE_CORRUPT") {
				r.push(`${HisA} avatar splits open to reveal a number of tentacles and wraps them around each other.`);
			} else {
				r.push(`${HisA} symbol flashes.`);
			}
			r.push(`"Done," ${heA} says.`);
		}
		if (slave.relationship > 0) {
			slave.relationshipTarget = 0;
			relSlave.relationship = 0;
			relSlave.relationshipTarget = 0;
		}
		if (slave.devotion+slave.trust >= 175) {
			if (slave.relationship > 0) {
				r.push(`Both ${him} and ${his} ex are <span class="devotion dec">disappointed</span> that their relationship had to end and <span class="trust dec">worry</span> for each other's future.`);
				if (slave.relationship === 4) {
					relSlave.devotion -= 5;
					relSlave.trust -= 5;
				} else if (slave.relationship === 3) {
					relSlave.devotion -= 3;
					relSlave.trust -= 3;
				} else {
					relSlave.devotion -= 1;
					relSlave.trust -= 1;
				}
			}
		} else if (slave.devotion < -20) {
			if (slave.relationship === -1) {
				r.push(`${He} <span class="devotion dec">hates</span> that ${he} has to be yours only and <span class="trust dec">fears</span> what will happen if ${he} strays.`);
				slave.devotion -= 40;
				slave.trust -= 40;
			} else if (slave.relationship === 4) {
				r.push(`Both ${him} and ${his} ex are <span class="devotion dec">resent</span> that their relationship had to end and <span class="trust dec">fear</span> for each other's future.`);
				relSlave.devotion -= 40;
				relSlave.trust -= 40;
				slave.devotion -= 40;
				slave.trust -= 40;
			} else if (slave.relationship === 3) {
				r.push(`Both ${him} and ${his} ex are <span class="devotion dec">resent</span> that their relationship had to end and <span class="trust dec">fear</span> for each other's future.`);
				relSlave.devotion -= 30;
				relSlave.trust -= 30;
				slave.devotion -= 30;
				slave.trust -= 30;
			} else if (slave.relationship > 0) {
				r.push(`Both ${him} and ${his} ex are <span class="devotion dec">resent</span> that their relationship had to end and <span class="trust dec">fear</span> for each other's future.`);
				relSlave.devotion -= 20;
				relSlave.trust -= 20;
				slave.devotion -= 20;
				slave.trust -= 20;
			}
		} else {
			if (slave.relationship === -1) {
				r.push(`${He} <span class="devotion dec">dislikes</span> that ${he} has to be yours only and <span class="trust dec">worries</span> what will happen if ${he} strays.`);
				slave.devotion -= 10;
				slave.trust -= 10;
			} else if (slave.relationship === 4) {
				r.push(`Both ${him} and ${his} ex are <span class="devotion dec">resent</span> that their relationship had to end and <span class="trust dec">worry</span> for each other.`);
				relSlave.devotion -= 20;
				relSlave.trust -= 20;
				slave.devotion -= 20;
				slave.trust -= 20;
			} else if (slave.relationship === 3) {
				r.push(`Both ${him} and ${his} ex are <span class="devotion dec">are saddened</span> that their relationship had to end and <span class="trust dec">worry</span> for each other.`);
				relSlave.devotion -= 10;
				relSlave.trust -= 10;
				slave.devotion -= 10;
				slave.trust -= 10;
			} else if (slave.relationship > 0) {
				r.push(`Both ${him} and ${his} ex are <span class="devotion dec">are disappointed</span> that their relationship had to end and <span class="trust dec">worry</span> for each other.`);
				relSlave.devotion -= 5;
				relSlave.trust -= 5;
				slave.devotion -= 5;
				slave.trust -= 5;
			}
		}
		slave.relationship = -3;
		App.Events.addParagraph(el, r);
		if (V.PC.slaveSurname && slave.slaveSurname !== V.PC.slaveSurname) {
			App.Events.addResponses(el, [new App.Events.Result(`Give ${him} your surname`, () => {
				const el = new DocumentFragment();
				const r = [];
				slave.slaveSurname = V.PC.slaveSurname;
				const hears = canHear(slave) ? "hears" : "understands";
				r.push(`You also command ${V.assistant.name} to rename your new slave wife ${slave.slaveName} ${slave.slaveSurname}.`);
				if (slave.fetish === Fetish.MINDBROKEN) {
					r.push(`The new Mrs. ${slave.slaveSurname} ${hears} this, of course, and shows no reaction. Like many things, names mean nothing to ${him} now.`);
				} else if (slave.devotion+slave.trust >= 175) {
					r.push(`The new Mrs. ${slave.slaveSurname} ${hears} this, of course, and breaks down again. Being brusquely redesignated as your slave ${wife} was such a sterile experience that ${he} wasn't sure it was real, and hearing that ${he}'s to take your surname <span class="trust inc">reassures ${him}</span> that it is. Not to mention, ${he} might be a ${SlaveTitle(slave)}, but ${he}'s still a ${girl}, and hearing that ${he} wouldn't get a decent wedding did disappoint ${him}, but this makes up for it. You might not be all that expressive, but <span class="devotion inc">${he}'s your wife,</span> and that's what matters to ${him}.`);
					slave.devotion += 5;
					slave.trust += 5;
				} else if (slave.devotion < -20 && slave.trust > 20) {
					r.push(`The new Mrs. ${slave.slaveSurname} ${hears} this, of course, and scoffs audibly. <span class="devotion dec">${He}'ll remember ${his} name, even if you try to take it away.</span> ${He} can't hide <span class="devotion dec">${his} annoyance</span> that you couldn't even spring for a fancy wedding.`);
					slave.devotion -= 10;
				} else if (slave.devotion < -20) {
					r.push(`The new Mrs. ${slave.slaveSurname} ${hears} this, of course, and breaks down again. Not only have you taken ${his} hand, but now also ${his} name; <span class="devotion inc">${he}'s yours now,</span> nothing ${he} thinks can change that.`);
					slave.devotion += 5;
				} else {
					r.push(`The new Mrs. ${slave.slaveSurname} ${hears} this, of course, and nods acceptingly. Being trusted with your surname <span class="trust inc">reassures ${him}</span> that ${he} must mean something to you, though ${he} is a <span class="devotion dec">little disappointed</span> by the lack of a wedding, however.`);
					slave.devotion--;
					slave.trust += 5;
				}
				App.Events.addParagraph(el, r);
				return el;
			})]);
		}

		return el;
	}

	function marryNow() {
		let r = [];
		const el = new DocumentFragment();
		r.push(`You order ${slave.slaveName} to go change into bridal lingerie.`);
		if (reactionType === 0) {
			if (canWalk(slave) || (canMove(slave) && slave.rules.mobility === "permissive")) {
				r.push(`${He} hurries off, still crying. When ${he} returns, ${he}'s wearing`);
			} else {
				r.push(`${He} is helped out, still crying. When ${he} is returned, ${he}'s wearing`);
			}
		} else if (reactionType === 1) {
			r.push(`${He} is helped out, completely unaware of ${his} pending marriage. When ${he} is returned, ${he}'s wearing`);
		} else if (reactionType === 2) {
			if (canWalk(slave) || (canMove(slave) && slave.rules.mobility === "permissive")) {
				r.push(`${He} shuffles off, still sobbing. When ${he} returns, ${he}'s wearing`);
			} else {
				r.push(`${He} is helped out, still sobbing. When ${he} is returned, ${he}'s wearing`);
			}
		} else {
			if (canWalk(slave) || (canMove(slave) && slave.rules.mobility === "permissive")) {
				r.push(`${He} hurries off to fulfill your orders. When ${he} returns, ${he}'s wearing`);
			} else {
				r.push(`${He} is helped out to get dressed. When ${he} is returned, ${he}'s wearing`);
			}
		}
		if (slave.vagina === 0) {
			r.push(`white, since ${he}'s a virgin.`);
		} else if (slave.pregKnown === 1) {
			r.push(`light pink, since ${he} is pregnant.`);
		} else if (slave.vagina < 0 && slave.anus === 0) {
			r.push(`white, since ${he}'s an anal virgin.`);
		} else if (slave.vagina < 0 && slave.boobs > 500) {
			r.push(`electric blue, since ${he}'s a shemale.`);
		} else if (slave.vagina < 0) {
			r.push(`pale blue, since ${he}'s a sissy slave.`);
		} else if (slave.dick > 0) {
			r.push(`hot pink, since ${he}'s a futa slave.`);
		} else {
			r.push(`light pink, since ${he}'s an experienced sex slave.`);
		}
		r.push(`A flimsy veil covers ${his} head and shoulders.`);
		if (slave.boobs > 4000) {
			r.push(`On such short notice, no bridal bra for boobs of ${his} size was available, so ${he}'s topless. Not a tragedy.`);
		} else if (slave.boobs > 1200) {
			r.push(`${His} lacy bridal bra just barely restrains ${his} huge boobs, leaving the tops of ${his} areolae visible.`);
		} else if (slave.boobs > 400) {
			r.push(`${His} lacy bridal bra flatters ${his} pretty breasts.`);
		} else {
			r.push(`${His} lacy bridal bra flatters ${his} pretty chest.`);
		}
		if (slave.bellyPreg >= 600000) {
			r.push(`${His} expansive, squirming pregnant belly makes ${his} bridal wear particularly obscene.`);
		} else if (slave.bellyPreg >= 1500) {
			r.push(`${His} ${belly} pregnant belly protrudes out the front of ${his} bridal wear.`);
		} else if (slave.bellyImplant >= 1500) {
			r.push(`${His} ${belly} ${slave.bellyImplant}cc belly implant protrudes ${his} middle out the front of ${his} bridal wear.`);
		} else if (slave.bellyFluid >= 10000) {
			r.push(`${His} hugely bloated, ${slave.inflationType}-filled belly protrudes out the front of ${his} bridal wear.`);
		} else if (slave.bellyFluid >= 5000) {
			r.push(`${His} bloated, ${slave.inflationType}-stuffed belly protrudes out the front of ${his} bridal wear.`);
		} else if (slave.bellyFluid >= 1500) {
			r.push(`${His} distended, ${slave.inflationType}-belly protrudes out the front of ${his} bridal wear.`);
		}
		if (slave.chastityPenis === 1) {
			r.push(`${His} slave dick is hidden by its chastity cage.`);
		} else if (canAchieveErection(slave)) {
			if (slave.dick > 4 && slave.belly >= 5000) {
				r.push(`${He}'s hugely erect, with ${his} lacy g-string only serving to hold ${his} dick agonizingly pressed against the bottom of ${his} ${belly}`);
				if (slave.bellyPreg >= 3000) {
					r.push(`pregnant`);
				}
				r.push(`belly.`);
			} else if (slave.dick > 4) {
				r.push(`${He}'s hugely erect, with ${his} lacy g-string only serving to hold ${his} dick upright along ${his} belly.`);
			} else {
				r.push(`${His} erection tents the front of ${his} lacy g-string.`);
			}
		} else if (slave.dick > 0) {
			if (slave.dick > 10) {
				r.push(`${His} huge soft cock is allowed to dangle freely as no g-string could hope to contain it.`);
			} else if (slave.dick > 4) {
				r.push(`${His} big soft cock forms a lewd mass, stuffed into ${his} lacy g-string.`);
			} else {
				r.push(`${His} lacy g-string perfectly conceals ${his} soft dick.`);
			}
		} else {
			if (slave.clit > 1) {
				r.push(`${His} huge clit is quite hard, making ${him} shift uncomfortably as ${his} lacy g-string stimulates it.`);
			} else {
				r.push(`${His} lacy g-string is starting to look a bit moist in front.`);
			}
		}
		r.push(`${capFirstChar(V.assistant.name)} marries ${him} to you in a brief ceremony adapted for slaves and their owners. You place a`);
		if (hasAnyArms(slave)) {
			r.push(`simple steel ring on ${his} finger;`);
		} else {
			r.push(`chain with a simple steel ring around ${his} neck;`);
		}
		r.push(`${he} does not reciprocate, since this marriage does not bind you.`);
		if (V.assistant.personality <= 0) {
			r.push(`"The marriage protocol now requires you to`);
			if (V.PC.dick !== 0) {
				r.push(`fellate`);
				if (V.PC.vagina !== -1) {
					r.push(`and`);
				}
			}
			if (V.PC.vagina !== -1) {
				r.push(`perform cunnilingus on`);
			}
			r.push(`the ${groom}, ${V.assistant.name} orders ${him}, and ${he}`);
			if (reactionType === 0) {
				r.push(`only starts when you push ${his} head to your crotch.`);
			} else if (reactionType === 1) {
				r.push(`eagerly complies.`);
			} else if (reactionType === 2) {
				r.push(`reluctantly obeys.`);
			} else {
				r.push(`hurries to obey.`);
			}
		} else {
			const suckMy = () => {
				if (V.PC.dick !== 0) {
					r.push(`suck the ${groom}'s dick${(V.PC.vagina !== -1) ? ` and eat ${hisP} pussy` : ``}."`);
				} else {
					r.push(`eat the ${groom}'s pussy."`);
				}
			};
			const genericCompliance = () => {
				r.push(`The slave`);
				if (reactionType === 0) {
					r.push(`only starts when you push ${his} head to your crotch.`);
				} else if (reactionType === 1) {
					r.push(`eagerly complies.`);
				} else if (reactionType === 2) {
					r.push(`reluctantly obeys.`);
				} else {
					r.push(`hurries to obey.`);
				}
			};

			if (V.assistant.appearance === "monstergirl") {
				r.push(`"To consecrate the ceremony," ${V.assistant.name} concludes, "${slave.slaveName}, you will now`);
				suckMy();
				genericCompliance();
				r.push(`Pleased by the sight, ${V.assistant.name}'s avatar begins to play with ${hisA} dicks.`);
			} else if (V.assistant.appearance === "shemale") {
				r.push(`"To get this marriage started," ${V.assistant.name} concludes, "${slave.slaveName}, you will now`);
				suckMy();
				genericCompliance();
				r.push(`Pleased by the sight, ${V.assistant.name}'s avatar starts to jill off.`);
			} else if (V.assistant.appearance === "amazon") {
				r.push(`"To complete this ritual," ${V.assistant.name} concludes, "${slave.slaveName}, you will now`);
				suckMy();
				genericCompliance();
				r.push(`Pleased by the sight, ${V.assistant.name}'s avatar starts to jill off.`);
			} else if (V.assistant.appearance === "businesswoman") {
				r.push(`"To consecrate the marriage," ${V.assistant.name} concludes, "${slave.slaveName}, you will now`);
				if (V.PC.dick !== 0) {
					r.push(`fellate`);
				} else {
					r.push(`perform cunnilingus on`);
				}
				r.push(`the ${groom}." The slave`);
				if (reactionType === 0) {
					r.push(`only starts when you push ${his} head to your crotch.`);
				} else if (reactionType === 1) {
					r.push(`eagerly complies.`);
				} else if (reactionType === 2) {
					r.push(`reluctantly obeys.`);
				} else {
					r.push(`hurries to obey.`);
				}
				r.push(`Pleased by the sight, ${V.assistant.name}'s avatar sneaks a hand down ${hisA} suit skirt, blushing furiously.`);
			} else if (V.assistant.appearance === "fairy") {
				r.push(`"To seal the deal," ${V.assistant.name} concludes, "${slave.slaveName}, you gotta drink the ${groom}'s`);
				if (V.PC.dick !== 0) {
					r.push(`semen${(V.PC.vagina !== -1) ? ` and pussy juices` : ``}."`);
				} else {
					r.push(`pussy juices."`);
				}
				genericCompliance();
				r.push(`Pleased by the sight, ${V.assistant.name}'s avatar spreads ${hisA} legs while still hovering in the air and masturbates eagerly through ${hisA} half-worn robes.`);
			} else if (V.assistant.appearance === "pregnant fairy") {
				r.push(`"To seal the deal," ${V.assistant.name} concludes, "${slave.slaveName}, you gotta drink the ${groom}'s`);
				if (V.PC.dick !== 0) {
					if (V.PC.vagina !== -1) {
						r.push(`semen and pussy juices."`);
					} else {
						r.push(`semen."`);
					}
				} else {
					r.push(`pussy juices."`);
				}
				genericCompliance();
				r.push(`Pleased by the sight, ${V.assistant.name}'s pregnant avatar curls while still hovering in the air and masturbates eagerly around ${hisA} large belly.`);
			} else if (V.assistant.appearance === "goddess") {
				r.push(`"To consummate the marriage," ${V.assistant.name} concludes, "${slave.slaveName}, you must now`);
				if (V.PC.dick !== 0) {
					r.push(`drink the ${groom}'s seed."`);
				} else {
					r.push(`drink the ${groom}'s female juices."`);
				}
				genericCompliance();
				r.push(`${V.assistant.name}'s avatar looks on approvingly, cradling ${hisA} perpetual pregnancy.`);
			} else if (V.assistant.appearance === "hypergoddess") {
				r.push(`"To consummate the marriage," ${V.assistant.name} concludes, "${slave.slaveName}, you must now`);
				if (V.PC.dick !== 0) {
					r.push(`drink the ${groom}'s seed."`);
				} else {
					r.push(`drink the ${groom}'s female juices."`);
				}
				genericCompliance();
				r.push(`${V.assistant.name}'s avatar looks on approvingly, cradling ${hisA} massive perpetual pregnancy.`);
			} else if (V.assistant.appearance === "loli") {
				r.push(`"To consummate the marriage," ${V.assistant.name} concludes, "${slave.slaveName}, you should now`);
				if (V.PC.dick !== 0) {
					r.push(`suck the ${groom}'s cock${(V.PC.vagina !== -1) ? ` and lick ${hisP} cunny` : ``}."`);
				} else {
					r.push(`lick the ${groom}'s cunny."`);
				}
				genericCompliance();
				r.push(`${V.assistant.name}'s avatar sneaks a hand down ${hisA} dress, blushing furiously.`);
			} else if (V.assistant.appearance === "preggololi") {
				r.push(`"To consummate the marriage," ${V.assistant.name} concludes, "${slave.slaveName}, you should now`);
				if (V.PC.dick !== 0) {
					r.push(`suck the ${groom}'s lovely cock${(V.PC.vagina !== -1) ? ` and eat out ${hisP} cunt` : ``}."`);
				} else {
					r.push(`lick the ${groom}'s cunt."`);
				}
				genericCompliance();
				r.push(`${V.assistant.name}'s avatar attempts to sneak a hand down ${hisA} dress, but is thwarted by ${hisA} belly. ${HeA} instead openly rubs ${hisA} crotch through the front of ${hisA} dress, blushing furiously.`);
			} else if (V.assistant.appearance === "schoolgirl") {
				r.push(`"To get this marriage started," ${V.assistant.name} concludes, "${slave.slaveName}, the rules say you should now`);
				suckMy();
				genericCompliance();
				r.push(`Pleased by the sight, ${V.assistant.name}'s avatar starts to jill off.`);
			} else if (V.assistant.appearance === "angel") {
				r.push(`"To consummate the marriage," ${V.assistant.name} concludes, "${slave.slaveName}, you must now join ${PlayerName()} in their bedroom and consummate this marriage." The slave`);
				if (reactionType === 0) {
					r.push(`stares blankly.`);
				} else {
					r.push(`looks confused.`);
				}
				r.push(`"After the wedding ends, would be the time." ${V.assistant.name} says, covering ${hisA} face in embarrassment at the thought.`);
			} else if (V.assistant.appearance === "cherub") {
				r.push(`"To consummate the marriage," ${V.assistant.name} concludes, "${slave.slaveName}, you should`);
				if (V.PC.dick !== 0) {
					r.push(`suck the ${groom}'s cock${(V.PC.vagina !== -1) ? ` and lick ${hisP} pussy` : ``},`);
				} else {
					r.push(`lick the ${groom}'s pussy,`);
				}
				r.push(`in the privacy of ${PlayerName()}'s bedroom, of course." ${V.assistant.name} hides ${hisA} face in ${hisA} hands at the thought.`);
			} else if (V.assistant.appearance === "incubus") {
				r.push(`"To get this marriage started," ${V.assistant.name} concludes, "${slave.slaveName}, you will now`);
				suckMy();
				genericCompliance();
				r.push(`Enjoying the sight, ${V.assistant.name}'s avatar begins to furiously stroke its shaft.`);
			} else if (V.assistant.appearance === "succubus") {
				r.push(`"To get this marriage started," ${V.assistant.name} concludes, "${slave.slaveName}, you will now`);
				suckMy();
				genericCompliance();
				r.push(`Pleased by the sight, ${V.assistant.name}'s avatar pulls out a large dildo and begins ramming it into ${hisA} own pussy.`);
			} else if (V.assistant.appearance === "imp") {
				r.push(`"To get this marriage started," ${V.assistant.name} concludes, "${slave.slaveName}, you will now`);
				suckMy();
				genericCompliance();
				r.push(`Pleased by the sight, ${V.assistant.name}'s avatar hikes ${hisA} robe and vigorously rubs ${hisA} pussy.`);
			} else if (V.assistant.appearance === "witch") {
				r.push(`"To get this marriage started," ${V.assistant.name} concludes, "${slave.slaveName}, you will now`);
				suckMy();
				genericCompliance();
				r.push(`${V.assistant.name}'s avatar begins to fidget at the sight, having summoned a vibrator beforehand and accidentally linked it to your pleasure.`);
			} else if (V.assistant.appearance === "ERROR_1606_APPEARANCE_FILE_CORRUPT") {
				r.push(`"To get this marriage started," ${V.assistant.name} concludes, "${slave.slaveName}, you will now`);
				suckMy();
				genericCompliance();
				r.push(`${V.assistant.name}'s avatar begins to swell, drawing all its gained mass to its midsection. Its gravid middles splits vertically, allowing a new mass of flesh to fall to the floor, which quickly grows and reshapes itself into a spitting image of yourself. Meanwhile, the original twists into an image of ${slave.slaveName}. ${V.assistant.name}'s two avatars begin copying you and ${slave.slaveName}'s actions perfectly.`);
			} else {
				r.push(`"To get this marriage started," ${V.assistant.name} concludes, "${slave.slaveName}, the rules say you should now`);
				suckMy();
				genericCompliance();
				r.push(`With only a symbol to express ${hisA} approval, ${V.assistant.name} is forced to content ${himselfA} with spinning the symbol and making it glow in time with your new slave wife's efforts.`);
			}
			r.push(`"Done," ${heA} says when you climax. "Enjoy your`);
			if (slave.fetishKnown === 1 && slave.fetishStrength > 60) {
				if (slave.fetish === Fetish.SUBMISSIVE) {
					r.push(`submissive slave ${wife}!"`);
				} else if (slave.fetish === "cumslut") {
					r.push(`slave ${wife}'s mouth!"`);
				} else if (slave.fetish === "humiliation") {
					r.push(`exhibitionist slave ${wife}!"`);
				} else if (slave.fetish === "buttslut") {
					r.push(`slave ${wife}'s butthole!"`);
				} else if (slave.fetish === "boobs") {
					r.push(`slave ${wife}'s boobs!"`);
				} else if (slave.fetish === "pregnancy") {
					r.push(`breeder ${wife}!"`);
				} else if (slave.fetish === "dom") {
					r.push(`slave ${wife}'s aggression!"`);
				} else if (slave.fetish === "sadist") {
					r.push(`slave ${wife}'s sadistic tendencies!"`);
				} else if (slave.fetish === "masochist") {
					r.push(`slave ${wife}'s pain!"`);
				} else {
					r.push(`slave ${wife}!"`);
				}
			} else {
				r.push(`slave ${wife}!"`);
			}
		}
		if (slave.relationship > 0) {
			slave.relationshipTarget = 0;
			relSlave.relationship = 0;
			relSlave.relationshipTarget = 0;
		}
		if (slave.devotion+slave.trust >= 175) {
			if (slave.relationship > 0) {
				r.push(`${His} ex is <span class="devotion dec">disappointed</span> that their relationship had to end and <span class="trust dec">worries</span> for ${his2} love's future.`);
				if (slave.relationship === 4) {
					relSlave.devotion -= 5;
					relSlave.trust -= 5;
				} else if (slave.relationship === 3) {
					relSlave.devotion -= 3;
					relSlave.trust -= 3;
				} else {
					relSlave.devotion -= 1;
					relSlave.trust -= 1;
				}
			}
		} else if (slave.devotion < -20) {
			if (slave.relationship === -1) {
				r.push(`${He} <span class="devotion dec">hates</span> that ${he} has to be yours only and <span class="trust dec">fears</span> what will happen if ${he} strays.`);
				slave.devotion -= 40;
				slave.trust -= 40;
			} else if (slave.relationship === 4) {
				r.push(`Both ${him} and ${his} ex are <span class="devotion dec">resent</span> that their relationship had to end and <span class="trust dec">fear</span> for each other's future.`);
				relSlave.devotion -= 40;
				relSlave.trust -= 40;
				slave.devotion -= 40;
				slave.trust -= 40;
			} else if (slave.relationship === 3) {
				r.push(`Both ${him} and ${his} ex are <span class="devotion dec">resent</span> that their relationship had to end and <span class="trust dec">fear</span> for each other's future.`);
				relSlave.devotion -= 30;
				relSlave.trust -= 30;
				slave.devotion -= 30;
				slave.trust -= 30;
			} else if (slave.relationship > 0) {
				r.push(`Both ${him} and ${his} ex are <span class="devotion dec">resent</span> that their relationship had to end and <span class="trust dec">fear</span> for each other's future.`);
				relSlave.devotion -= 20;
				relSlave.trust -= 20;
				slave.devotion -= 20;
				slave.trust -= 20;
			}
		} else {
			if (slave.relationship === -1) {
				r.push(`${He} <span class="devotion dec">dislikes</span> that ${he} has to be yours only and <span class="trust dec">worries</span> what will happen if ${he} strays.`);
				slave.devotion -= 10;
				slave.trust -= 10;
			} else if (slave.relationship === 4) {
				r.push(`Both ${him} and ${his} ex are <span class="devotion dec">resent</span> that their relationship had to end and <span class="trust dec">worry</span> for each other.`);
				relSlave.devotion -= 20;
				relSlave.trust -= 20;
				slave.devotion -= 20;
				slave.trust -= 20;
			} else if (slave.relationship === 3) {
				r.push(`Both ${him} and ${his} ex are <span class="devotion dec">are saddened</span> that their relationship had to end and <span class="trust dec">worry</span> for each other.`);
				relSlave.devotion -= 10;
				relSlave.trust -= 10;
				slave.devotion -= 10;
				slave.trust -= 10;
			} else if (slave.relationship > 0) {
				r.push(`Both ${him} and ${his} ex are <span class="devotion dec">are disappointed</span> that their relationship had to end and <span class="trust dec">worry</span> for each other.`);
				relSlave.devotion -= 5;
				relSlave.trust -= 5;
				slave.devotion -= 5;
				slave.trust -= 5;
			}
		}
		slave.relationship = -3;
		App.Events.addParagraph(el, r);
		if (V.PC.slaveSurname && slave.slaveSurname !== V.PC.slaveSurname) {
			App.Events.addResponses(el, [new App.Events.Result(`Give ${him} your surname`, () => {
				const el = new DocumentFragment();
				const r = [];
				slave.slaveSurname = V.PC.slaveSurname;
				r.push(`You also command ${V.assistant.name} to rename your new slave wife ${slave.slaveName} ${slave.slaveSurname}.`);
				if (slave.fetish === Fetish.MINDBROKEN) {
					r.push(`Before you get too distracted, you tell your lovely new ${wife} that ${he}'s now to be known as ${slave.slaveName} ${slave.slaveSurname}. You are uncertain if it sunk in or not.`);
				} else if (slave.devotion+slave.trust >= 175) {
					r.push(`Before you get too distracted, you tell your lovely new ${wife} that ${he}'s now to be known as ${slave.slaveName} ${slave.slaveSurname}. It would be an understatement to say ${he}'s delighted. ${He}'s a good ${SlaveTitle(slave)}, but even ${he} has to retain a kernel of doubt about whether a marriage between an owner and a piece of property is really worth much. This <span class="trust inc">reassures ${him}</span> that it is. ${His} special day probably wasn't exactly like ${he} might once have imagined it, but ${he} obviously thinks it's been <span class="devotion inc">very nice,</span> all things considered.`);
					if (canTalk(slave)) {
						r.push(
							Spoken(slave, `"${slave.slaveName} ${V.PC.slaveSurname},"`),
							`${he} murmurs to ${himself} occasionally, smiling.`
						);
					}
					slave.devotion += 5;
					slave.trust += 5;
				} else if (slave.devotion < -20 && slave.trust > 20) {
					r.push(`Before you get too distracted, you tell your lovely new ${wife} that ${he}'s now to be known as ${slave.slaveName} ${slave.slaveSurname}. <span class="devotion dec">${He}'ll remember ${his} name, even if you try to take it away.</span>`);
					if (canTalk(slave)) {
						r.push(
							Spoken(slave, `"${slave.slaveName} ${V.PC.slaveSurname},"`),
							`${he} mutters to ${himself} occasionally; there is a distinct distaste to the way ${he} says it.`
						);
					}
					slave.devotion -= 10;
				} else if (slave.devotion < -20) {
					r.push(`Before you get too distracted, you tell your quivering new ${wife} that ${he}'s now to be known as ${slave.slaveName} ${slave.slaveSurname}. ${He} nods in terror. Not only have you taken ${his} hand, but now also ${his} name; <span class="hotpink">${he}'s yours now,</span> nothing ${he} thinks can change that.`);
					if (canTalk(slave)) {
						r.push(
							Spoken(slave, `"${slave.slaveName} ${V.PC.slaveSurname},"`),
							`${he} mutters to ${himself} occasionally, ${his} voice wavering as ${he} struggles to hold back the tears.`
						);
					}
					slave.devotion += 5;
				} else {
					r.push(`Before you get too distracted, you tell your lovely new ${wife} that ${he}'s now to be known as ${slave.slaveName} ${slave.slaveSurname}. ${He} nods acceptingly. ${He}'s a good ${SlaveTitle(slave)}, but ${he} has doubts about whether a marriage between an owner and a piece of property is really worth much. That doesn't matter, <span class="trust inc">it's worth something to ${him}.</span>`);
					if (canTalk(slave)) {
						r.push(
							Spoken(slave, `"${slave.slaveName} ${V.PC.slaveSurname},"`),
							`${he} murmurs to ${himself} occasionally${(canHear(slave)) ? ", listening to how it sounds" : ""}.`
						);
					}
					slave.trust += 5;
				}
				App.Events.addParagraph(el, r);
				return el;
			})]);
		}
		return el;
	}

	function straightforward() {
		V.weddingPlanned = 1;
		V.marrying.push(slave.ID);
		cashX(-10000, "event", slave);
		return `You order ${V.assistant.name} to invite deserving citizens to a straightforward ceremony for a slave being married to a slaveowner, and to make the arrangement. The wedding will take place during the upcoming week.`;
	}

	function orgiastic() {
		V.weddingPlanned = 2;
		V.marrying.push(slave.ID);
		cashX(-10000, "event", slave);
		return `You order ${V.assistant.name} to invite deserving citizens to an orgiastic ceremony for a slave being married to a slaveowner, and to make the arrangements. The wedding orgy will take place during the upcoming week.`;
	}

	function impregnation() {
		V.weddingPlanned = 3;
		V.marrying.push(slave.ID);
		cashX(-10000, "event", slave);
		return `You order ${V.assistant.name} to invite deserving citizens to a ceremony for a fertile slave being married to a slaveowner, and to make the arrangements. The wedding will take place during the upcoming week.`;
	}
};


code:
App.Interact.fSlaveSlaveAssChoosePartner = class extends App.Interact.BaseChoosePartnerRenderer {
	constructor(slave) {
		super(slave);
		this.intro = `Select the slave that will fuck ${this.slave.slaveName}'s ass.`;
		this.execute = App.Interact.fSlaveSlaveAss;
	}

	eligible(candidate) {
		return isSlaveAvailable(candidate) && (canPenetrate(candidate) || candidate.clit >= 4);
	}
};

/**
 * @param {App.Entity.SlaveState} slave
 * @param {App.Entity.SlaveState} rapist
 * @returns {DocumentFragment}
 */
App.Interact.fSlaveSlaveAss = function(slave, rapist) {
	const el = new DocumentFragment();
	let r = [];
	const {
		He, His,
		he, his, him, himself
	} = getPronouns(slave);

	const {
		He2, His2,
		he2, his2, him2, himself2, hers2, wife2
	} = getPronouns(rapist).appendSuffix("2");
	let incestMood;

	seX(slave, "anal", rapist, "penetrative");

	let dickSize;
	if (rapist.dick === 1) {
		dickSize = "pathetic";
	} else if (rapist.dick === 2) {
		dickSize = "tiny";
	} else if (rapist.dick === 3) {
		dickSize = "average";
	} else if (rapist.dick === 4) {
		dickSize = "big";
	} else if (rapist.dick === 5) {
		dickSize = "huge";
	} else if (rapist.dick === 6) {
		dickSize = "gigantic";
	} else if (rapist.dick === 7) {
		dickSize = "titanic";
	} else if (rapist.dick === 8) {
		dickSize = "absurd";
	} else if (rapist.dick === 9) {
		dickSize = "inhuman";
	} else {
		dickSize = "obscene";
	}

	const isIncest = areRelated(slave, rapist);

	r.push(`You take a look at the slave you selected.`);

	if (rapist.fetish === "dom" && rapist.fetishStrength > 20 && rapist.devotion >= -20) {
		r.push(`Since ${rapist.slaveName} loves to dominate others it's not hard to get ${his2}`);
		if (rapist.dick > 0) {
			r.push(`${dickSize} dick`);
		} else {
			r.push(`massive clit`);
		}
		r.push(`ready. ${His2}`);
		if (rapist.dick > 0) {
			r.push(`${dickSize} cock`);
		} else {
			r.push(`massive clit`);
		}
		r.push(`quickly swells to a throbbing erection at the prospect of forcing ${himself2} on another slave.`);
	} else if (rapist.fetish === "sadist" && rapist.fetishStrength > 20 && rapist.devotion >= -20) {
		r.push(`With the prospect of torturing another slave`);
		if (rapist.dick > 0) {
			r.push(`${his2} ${dickSize} cock swells to a throbbing erection in seconds.`);
		} else {
			r.push(`${his2} huge clit becomes fully engorged in seconds.`);
		}
	} else if ((rapist.fetish === "pregnancy" && rapist.fetishStrength > 20 && rapist.devotion >= -20) && rapist.dick > 0) {
		r.push(`With the prospect of raping another slave bareback, ${his2} ${dickSize} cock swells to a throbbing erection in seconds.`);
	} else if (rapist.attrXX > 65 && rapist.devotion >= -20) {
		r.push(`Since ${rapist.slaveName} likes sticking ${his2}`);
		if (rapist.dick > 0) {
			r.push(`${dickSize} penis`);
		} else {
			r.push(`massive clit`);
		}
		r.push(`in girls, ${he2} doesn't take much convincing.`);
	} else if (rapist.devotion > 50) {
		r.push(`Since ${rapist.slaveName} is devoted to you, ${he2}'ll eagerly fuck anything you tell ${him2} to fuck.`);
	} else if (rapist.devotion > 20) {
		r.push(`Since ${rapist.slaveName} is obedient, ${he2}'ll fuck anything you tell ${him2} to fuck.`);
	} else if (rapist.devotion >= -20) {
		r.push(`Since ${rapist.slaveName} does not resist your will, ${he2} should comply reasonably well. ${He2} has to work to get ${his2}`);
		if (rapist.dick > 0) {
			r.push(`${dickSize} penis`);
		} else {
			r.push(`massive clit`);
		}
		r.push(`hard despite ${his2} doubts, visibly disturbed that you are ordering ${him2} to fuck someone for your entertainment.`);
	} else {
		r.push(`Since ${rapist.slaveName} is unlikely to comply willingly, you simply restrain ${him2} and administer a massive dose of vasodilators, directly where they will do the most good. ${rapist.slaveName} writhes with the pain of the injection, which is compounded as ${his2}`);
		if (rapist.dick > 0) {
			r.push(`${dickSize} penis`);
		} else {
			r.push(`massive clit`);
		}
		r.push(`quickly reaches an agonizingly full erection.`);
	}

	if (isIncest) {
		r.push(`${rapist.slaveName} is well aware that ${he2} is about to rape`);
		if (rapist.father === slave.ID && rapist.mother === slave.ID) {
			r.push(`the slave that is both ${his2} mother and ${his2} father,`);
		} else if (slave.mother === rapist.ID || slave.father === rapist.ID) {
			r.push(`${his2} own ${relativeTerm(rapist, slave)},`);
		} else if (rapist.mother === slave.ID) {
			r.push(`${his2} own mother,`);
		} else if (rapist.father === slave.ID) {
			r.push(`the slave that fathered ${him2},`);
		} else {
			r.push(`${his2} ${relativeTerm(rapist, slave)},`);
		}
		if (rapist.sexualQuirk === "perverted" || rapist.behavioralQuirk === "sinful") {
			if (rapist.energy > 60) {
				r.push(`and seems quite aroused at just how`);
				if (rapist.sexualQuirk === "perverted") {
					r.push(`perverted`);
				} else {
					r.push(`sinful`);
				}
				r.push(`that is.`);
				if (canSee(rapist)) {
					r.push(`${rapist.slaveName}'s eyes seemed locked on ${slave.slaveName}'s inviting asshole, thoroughly aroused and waiting for your order.`);
				}
			} else {
				r.push(`but despite ${his2} conflicted feelings ${his2} arousal is clear.`);
			}
			incestMood = "Top";
		} else if (rapist.relationshipTarget === slave.ID && rapist.relationship > 2) {
			r.push(`but since ${he2}'s already in a sexual relationship with ${him}, it's only special because ${his2} ${getWrittenTitle(rapist)} is watching.`);
			incestMood = "Top";
		} else {
			if (rapist.devotion > 95) {
				r.push(`but ${his2} deep acceptance of slavery means ${he2} can't help but be eager to please everyone involved with ${his2} performance.`);
				incestMood = "Top";
			} else if (rapist.devotion > 60) {
				r.push(`but ${his2} experience as a slave means ${he2} can mostly ignore it and focus on sex.`);
			} else {
				r.push(`and is understandably disturbed.`);
			}
		}
	}

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

	r.push(`Next, you see to ${slave.slaveName}.`);

	if (isIncest) {
		r.push(`${slave.slaveName} is fully naked and`);
		if (canSee(slave)) {
			r.push(`looking up at`);
		} else {
			r.push(`waiting in front of`);
		}
		if (slave.father === rapist.ID && slave.mother === rapist.ID) {
			r.push(`the slave that is both ${his} mother and ${his} father,`);
		} else if (rapist.mother === slave.ID || rapist.father === slave.ID) {
			r.push(`${his} own ${relativeTerm(slave, rapist)},`);
		} else if (slave.mother === rapist.ID) {
			r.push(`${his} own mother,`);
		} else if (slave.father === rapist.ID) {
			r.push(`the slave that fathered ${him},`);
		} else {
			r.push(`${his} ${relativeTerm(slave, rapist)},`);
		}
		if (slave.sexualQuirk === "perverted" || slave.behavioralQuirk === "sinful") {
			if (slave.energy > 60) {
				r.push(`whose`);
				if (rapist.dick > 0) {
					r.push(`${dickSize} penis`);
				} else {
					r.push(`massive clit`);
				}
				r.push(`is standing firm above ${him}. ${He} seems indecently aroused, flushed and shivering in anticipation.`);
			} else {
				r.push(`but despite ${his} conflicted feelings ${his} growing arousal is clear as ${he}`);
				if (canSee(slave)) {
					r.push(`stares at`);
				} else {
					r.push(`imagines`);
				}
				r.push(`the`);
				if (rapist.dick > 0) {
					r.push(`${dickSize} penis`);
				} else {
					r.push(`massive clit`);
				}
				r.push(`that's soon going inside ${him}.`);
			}
			if (incestMood === "Top") {
				incestMood = "Both";
			} else {
				incestMood = "Bottom";
			}
		} else if (slave.relationshipTarget === rapist.ID && slave.relationship > 2) {
			r.push(`and seems calm and inviting to ${his}`);
			if (slave.relationship === 3) {
				r.push(`sex friend's`);
			} else if (slave.relationship === 4) {
				r.push(`lover's`);
			} else {
				r.push(`slave ${wife2}'s`);
			}
			if (rapist.dick > 0) {
				r.push(`${dickSize} penis`);
			} else {
				r.push(`massive clit`);
			}
			r.push(`that will be penetrating ${him}.`);
			if (incestMood === "Top") {
				incestMood = "Both";
			} else {
				incestMood = "Bottom";
			}
		} else {
			if (slave.devotion > 95) {
				r.push(`and ${his} deep acceptance of ${his} status as a slave has ${him} staring`);
				if (canSee(slave)) {
					r.push(`at`);
				} else {
					r.push(`blindly towards`);
				}
				r.push(`the`);
				if (rapist.dick > 0) {
					r.push(`${dickSize} penis`);
				} else {
					r.push(`massive clit`);
				}
				r.push(`above ${him} with a lusty smile.`);
				if (incestMood === "Top") {
					incestMood = "Both";
				} else {
					incestMood = "Bottom";
				}
			} else if (slave.devotion > 60) {
				r.push(`and if ${he} focuses, ${he} can forget the`);
				if (rapist.dick > 0) {
					r.push(`${dickSize} penis`);
				} else {
					r.push(`massive clit`);
				}
				r.push(`standing erect in front of ${him} belongs to someone related to ${him}.`);
			} else {
				r.push(`and is understandably disturbed,`);
				if (canSee(slave)) {
					r.push(`eyes glued to the`);
					if (rapist.dick > 0) {
						r.push(`${dickSize} penis`);
					} else {
						r.push(`massive clit`);
					}
					r.push(`throbbing before ${him}.`);
				} else if (canHear(slave)) {
					r.push(`listening to the heavy breathing of ${his} relative whose`);
					if (rapist.dick > 0) {
						r.push(`${dickSize} penis`);
					} else {
						r.push(`massive clit`);
					}
					r.push(`will be entering ${him} soon.`);
				} else {
					r.push(`imagining how the`);
					if (rapist.dick > 0) {
						r.push(`${dickSize} penis`);
					} else {
						r.push(`massive clit`);
					}
					r.push(`of ${his} relative will feel inside ${him}`);
				}
			}
		}
	}

	if (slave.fetish === Fetish.SUBMISSIVE && slave.fetishStrength > 60 && slave.fetishKnown === 1 && slave.anus === 0) {
		r.push(`${He} presents ${his} virgin asshole to ${rapist.slaveName} without protest. This act  breaks in ${his} asshole, and reminds ${him} of ${his} status as a submissive slave.`);
		slave.anus = 1;
		slave.devotion += 4;
		slave.fetishStrength += 1;
	} else if (slave.fetish === Fetish.SUBMISSIVE && slave.fetishStrength > 60 && slave.fetishKnown === 1) {
		r.push(`${He} smiles as ${he} lays back and presents ${his} asshole to ${rapist.slaveName}. ${He} openly enjoys submitting ${himself} for others to make use of.`);
	} else if ((slave.devotion > 20 && slave.anus === 0) ) {
		r.push(`${He} accepts your orders without comment and presents ${his} virgin asshole to ${rapist.slaveName}. ${He} gasps in shock when ${he} feels the`);
		if (rapist.dick > 0) {
			r.push(`${dickSize} dick`);
		} else {
			r.push(`massive clit`);
		}
		r.push(`enter ${him}. <span class="hotpink">${He} is broken to slavery</span> by this application of ${his} body, which naturally <span class="virginity loss">will break in ${his} asshole.</span>`);
		slave.anus = 1;
		slave.devotion += 10;
	} else if (slave.devotion >= -20 && slave.anus === 0) {
		r.push(`${He} is clearly unhappy at the idea of losing ${his} pearl of great price to ${rapist.slaveName}; this probably isn't what ${he} imagined ${his} first real sexual encounter would be like. Nevertheless, ${he} is broken to slavery by this application of ${his} body, which naturally will break in ${his} asshole.`);
		slave.anus = 1;
		slave.devotion += 4;
	} else if (slave.anus === 0) {
		r.push(`As you anticipated, ${he} refuses to give ${rapist.slaveName} ${his} virginity. Since ${he} is restrained, ${his} horrified tears and frightened begging are ${his} only signs of rebellion. Naturally, this cruel act will break in ${his} asshole.`);
		slave.devotion -= 5;
		slave.trust -= 5;
		slave.anus = 1;
	}

	if (isAmputee(slave)) {
		r.push(`You set ${his} limbless torso up for ${rapist.slaveName}.`);
	} else if (tooBigBreasts(slave)) {
		r.push(`You set ${him} up for ${rapist.slaveName}, face-down so the weight of ${his} tits pins ${him} helplessly in place.`);
	} else if (tooBigButt(slave)) {
		r.push(`You set ${him} up for ${rapist.slaveName}, face-down so the weight of ${his} giant ass pins ${him} helplessly in place and gives ${rapist.slaveName} a lovely cushion to thrust against.`);
	} else if (tooBigDick(slave)) {
		r.push(`You set ${him} up for ${rapist.slaveName}, face-up so ${he} is pinned under the weight of ${his} giant cock.`);
	} else if (tooBigBalls(slave)) {
		r.push(`You set ${him} up for ${rapist.slaveName}, face-down so the weight of ${his} giant balls anchor ${him} helplessly in place.`);
	} else if (slave.devotion < -20) {
		r.push(`${He} tries to refuse, so you restrain ${him} despite ${his} resistance to the idea of being raped by another slave.`);
	} else if (slave.devotion <= 20) {
		r.push(`${He} obeys your orders reluctantly, arranging ${himself} for anal sex despite ${his} obvious hesitation to be raped by another slave.`);
	} else if (slave.devotion < 10) {
		r.push(`${He} obeys your orders, arranging ${himself} for anal sex despite ${his} slight hesitation at the idea of being another's slave sex toy.`);
	} else {
		r.push(`${He} happily obeys your orders, getting ready to serve another slave.`);
	}

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

	if (slave.devotion < -20 && rapist.devotion < -20) {
		r.push(`Since you have two restrained slaves, it's up to you to do all the work. ${slave.slaveName} is tied up on the bed with ${his} asshole available, so you maneuver ${rapist.slaveName}'s`);
		if (rapist.dick > 0) {
			r.push(`${dickSize} dick`);
		} else {
			r.push(`strap-on`);
		}
		r.push(`into place. The two slaves make no further moves until you deal ${rapist.slaveName} a terrific swat across the ass and promise to give ${him2} more of the same until ${he2} gets going. ${rapist.slaveName} starts moving very slowly, barely prodding. After watching them mechanically go at it for a while, you use your leg to suddenly push ${him2} deep into ${slave.slaveName}, fully hilting ${him2} in one motion. You occasionally prod them with an electrical jolt to keep them going at a faster pace. Both slaves resent what you made them do for you and fear you'll make them do it again.`);
	} else if (rapist.devotion < -20) {
		r.push(`Since your dick slave is restrained, you order ${slave.slaveName} to present ${himself} on the bed, and then maneuver ${rapist.slaveName}'s`);
		if (rapist.dick > 0) {
			r.push(`${dickSize} dick`);
		} else {
			r.push(`strap-on`);
		}
		r.push(`into place. ${slave.slaveName} does ${his} best to hump ${himself} against the unwilling cock until you deal ${rapist.slaveName} a terrific swat across the ass and promise to give ${him2} more of the same until ${he2} gets going. ${He2} is still unenthusiastic, so you have ${him2} lie down and have ${slave.slaveName} ride ${himself} to orgasm. ${He2} resents what you made ${him2} do and fears you'll force ${him2} to do it again. Though ${slave.slaveName} accepts the situation, ${he} looks into ${rapist.slaveName}'s eyes with obvious apology.`);
	} else if (rapist.fetish === "dom" && rapist.fetishStrength > 20 && rapist.devotion > 20) {
		r.push(`${slave.slaveName} is tied and placed on the bed with ${his} asshole defenseless and available, and then you tell the randy ${rapist.slaveName} that it's all ${hers2}. The slave life has so affected ${rapist.slaveName} that ${he2} is quite eager to rape another slave for ${his2} pleasure. ${He2} penetrates ${him} immediately, fondling, pinching, and licking while pistoning away, fully enjoying ${his2} dominant role, edging ${his2} poor toy again and again and making ${him} beg for release.`);
		if (slave.fetish === "dom") {
			if (slave.devotion < -20) {
				r.push(`By the end of the day ${slave.slaveName}'s abused backdoor is`);

				if (rapist.dick > 0) {
					r.push(`dripping with cum,`);
				} else {
					r.push(`overflowing with juices,`);
				}
				r.push(`leaving ${him} horrified and disgusted at ${his} lack of control.`);
			} else {
				r.push(`By the end of the day ${slave.slaveName}'s abused backdoor is`);

				if (rapist.dick > 0) {
					r.push(`dripping with cum,`);
				} else {
					r.push(`overflowing with juices,`);
				}
				r.push(`leaving ${him} annoyed at ${his} lack of control, though ${he} still somewhat enjoyed ${himself}.`);
			}
		} else if (slave.fetish === Fetish.SUBMISSIVE) {
			if (slave.devotion < -20) {
				r.push(`By the end of the day ${slave.slaveName}'s abused backdoor is`);

				if (rapist.dick > 0) {
					r.push(`dripping with cum,`);
				} else {
					r.push(`overflowing with juices,`);
				}
				r.push(`leaving the submissive slave horrified that ${he} found the experience sexually satisfying.`);
			} else {
				r.push(`By the end of the day ${slave.slaveName}'s abused backdoor is`);

				if (rapist.dick > 0) {
					r.push(`dripping with cum.`);
				} else {
					r.push(`overflowing with juices.`);
				}
				r.push(`This sexual encounter is everything ${he} dreamed of, leaving ${him} utterly satisfied.`);
			}
		}
		r.push(`${rapist.slaveName} is lying next to ${him} on the bed in a state of obvious satiation and bliss.`);
	} else if (rapist.energy > 95 && rapist.devotion > 20 && slave.devotion < -20) {
		r.push(`${slave.slaveName} is tied and placed on the bed with ${his} asshole defenseless and available, and then you tell the randy ${rapist.slaveName} that it's all ${hers2}. The slave life has so affected ${rapist.slaveName} that ${he2} is quite eager to rape another slave, just for the perverted novelty of the act. ${His} high libido keeps ${him} going for a long time, bringing the helpless toy to one forced orgasm after another. By the end of the day ${slave.slaveName} is lying on the bed, all worn out, ${his} backdoor`);
		if (rapist.dick > 0) {
			r.push(`dripping with cum`);
		} else {
			r.push(`overflowing with juices`);
		}
		r.push(`to ${his} horror and resentment, while ${rapist.slaveName} is sleeping next to ${him} in a state of obvious satiation and bliss.`);
	} else if (slave.devotion <= 20 || rapist.devotion <= 20) {
		r.push(`You order ${slave.slaveName} onto the couch and tell ${rapist.slaveName} to get on with it. They fuck mechanically, gazing with roiling emotions into each other's eyes. They do seem to come to some sort of a non-verbal understanding on the necessity of getting it done, and there is no real unhappiness in either of them when they finish and disentangle themselves. As they clean themselves and exit, you notice ${rapist.slaveName} is looking a little more longingly at ${slave.slaveName}.`);
	} else if (slave.devotion <= 50 || rapist.devotion <= 50) {
		r.push(`You order ${slave.slaveName} and ${rapist.slaveName} to get on with it. They fuck mechanically at first, gazing with roiling emotions into each other's eyes. Eventually, they begin to enjoy the intimacy of the act, finding the shared pleasure between them comforting. They finish and resume life as slaves, the light of this intimacy diminishing, softening with ${rapist.slaveName}'s dick and dripping away with the contents of ${slave.slaveName}'s cum-filled asshole.`);
	} else {
		r.push(`The two slaves happily and eagerly get down to business. They take their time with foreplay, humping slowly and gazing into each other's eyes, exchanging kisses almost constantly. After a little while, ${slave.slaveName} looks over ${rapist.slaveName}'s shoulder to where you're sitting, the invitation clear in ${his} eyes. As soon as you stand to come over, they roll over without being ordered to`);
		if (canDoAnal(slave) && slave.anus > 0) {
			r.push(`present ${slave.slaveName}'s butthole.`);
		} else {
			r.push(`invite you into ${slave.slaveName}'s crowded asshole.`);
		}
		r.push(`You take up the offer and penetrate ${slave.slaveName} with your`);
		if (V.PC.dick > 0) {
			r.push(`dick.`);
		} else {
			r.push(`strap-on.`);
		}
		r.push(`With the added stimulus of penetrating a tight hole alongside ${his2} dear ${getWrittenTitle(rapist)}, ${rapist.slaveName} comes indecently hard, but nowhere near as hard as the completely overloaded ${slave.slaveName}. All of you collapse into an exhausted, happy pile of flesh.`);
	}

	seX(slave, "anal", rapist);

	if (canImpreg(slave, rapist)) {
		knockMeUp(slave, 25, 0, rapist.ID);
	}

	App.Events.addParagraph(el, r);
	return el;
};

repo_name: Ducati/fc

license: mit