code:
/**
 * @typedef {object} geneData
 * @property {string} title
 * @property {string} abbreviation
 * @property {string} description
 * @property {boolean} [goodTrait]
 * @property {boolean} [requirements]
 * @property {boolean} [pubertyActivated]
 * @property {boolean} [restricted]
 */
/** @type {Map.<keyof FC.GeneticQuirks, geneData>} */
App.Data.geneticQuirks = new Map([
	["albinism",
		{
			title: "albinism",
			abbreviation: "alb",
			goodTrait: true,
			description: "lack of pigmentation"
		}
	],
	["gigantism",
		{
			title: "gigantism",
			abbreviation: "gnt",
			description: "extreme rate of growth during physical development"
		}
	],
	["dwarfism",
		{
			title: "dwarfism",
			abbreviation: "dwrf",
			description: "stunted rate of growth during physical development"
		}
	],
	["neoteny",
		{
			title: "neoteny",
			abbreviation: "ntny",
			description: "retention of childlike characteristics",
			get requirements() { return (V.seeAge === 1); },
			pubertyActivated: true
		}
	],
	["progeria",
		{
			title: "progeria",
			abbreviation: "progeria",
			description: "rapid bodily aging",
			get requirements() { return (V.seeAge === 1); },
			pubertyActivated: true
		}
	],
	["heterochromia",
		{
			title: "heterochromia",
			abbreviation: "hetchrom",
			goodTrait: true,
			description: "mismatched eye colors",
			restricted: true
		}
	],
	["androgyny",
		{
			title: "androgyny",
			abbreviation: "andr",
			description: "lack of natural hormone production"
		}
	],
	["pFace",
		{
			title: "perfect face",
			abbreviation: "pfce",
			goodTrait: true,
			description: "a naturally flawless face",
			restricted: true
		}
	],
	["uFace",
		{
			title: "hideous face",
			abbreviation: "ufce",
			description: "a naturally hideous face",
			restricted: true
		}
	],
	["potent",
		{
			title: "potency",
			abbreviation: "ptnt",
			goodTrait: true,
			description: "a heightened impregnation rate"
		}
	],
	["fertility",
		{
			title: "fertility",
			abbreviation: "fert",
			goodTrait: true,
			description: "a heightened rate of multiple birth"
		}
	],
	["hyperFertility",
		{
			title: "hyper fertility",
			abbreviation: "hfert",
			goodTrait: true,
			description: "an extremely heightened rate of multiple birth"
		}
	],
	["superfetation",
		{
			title: "superfetation",
			abbreviation: "supfet",
			description: "continued ovulation despite pregnancy"
		}
	],
	["polyhydramnios",
		{
			title: "polyhydramnios",
			abbreviation: "polyhyd",
			description: "abnormal production of amniotic fluid",
			get requirements() { return (V.dangerousPregnancy === 1); }
		}
	],
	["uterineHypersensitivity",
		{
			title: "uterine hypersensitivity",
			abbreviation: "uthyp",
			description: "pleasurable pregnancy and orgasmic birth"
		}
	],

	["macromastia",
		{
			title: "macromastia",
			abbreviation: "mmast",
			description: "an abnormal rate of breast growth",
			pubertyActivated: true
		}
	],
	["gigantomastia",
		{
			title: "gigantomastia",
			abbreviation: "gmast",
			description: "an abnormally high rate of breast growth",
			pubertyActivated: true
		}
	],
	["galactorrhea",
		{
			title: "galactorrhea",
			abbreviation: "rlact",
			description: "the onset of unexpected lactation",
			pubertyActivated: true
		}
	],
	["wellHung",
		{
			title: "large penile development",
			abbreviation: "bigd",
			goodTrait: true,
			description: "heightened penile development during puberty"
		}
	],
	["rearLipedema",
		{
			title: "rear lipedema",
			abbreviation: "lipe",
			description: "an abnormal rate of ass growth"
		}
	],
	["wGain",
		{
			title: "hyperleptinemia",
			abbreviation: "lepti+",
			description: "constant weight gain"
		}
	],
	["wLoss",
		{
			title: "hypoleptinemia",
			abbreviation: "lepti-",
			description: "constant weight loss"
		}
	],
	["mGain",
		{
			title: "myotonic hypertrophy",
			abbreviation: "myot+",
			description: "constant muscle gain"
		}
	],
	["mLoss",
		{
			title: "myotonic dystrophy",
			abbreviation: "myot-",
			description: "constant muscle loss"
		}
	],
	["twinning",
		{
			title: "twinning",
			abbreviation: "twns",
			description: "ova split when space permits",
			restricted: true
		}
	],
	["girlsOnly",
		{
			title: "girls only",
			abbreviation: "grls",
			description: "cannot bear male children",
			restricted: true
		}
	],
]);

/** @type {Map.<FC.GeneticMods|string, geneData>} */
App.Data.geneticMods = new Map([
	["NCS",
		{
			title: "induced NCS",
			abbreviation: "ncs",
			goodTrait: true,
			description: ""
		},
	],
	["rapidCellGrowth",
		{
			title: "rapid cell growth",
			abbreviation: "rcg",
			goodTrait: true,
			description: "elasticity (plasticity) treatment"
		},
	],
	["immortality",
		{
			title: "immortal",
			abbreviation: "imrtl",
			goodTrait: true,
			description: "slave stops aging. Can still die of other causes."
		},
	],
	["flavoring",
		{
			title: "flavored milk",
			abbreviation: "fmilk",
			goodTrait: true,
			description: "altered milk flavor"
		},
	],
	["aggressiveSperm",
		{
			title: "enhanced potency",
			abbreviation: "pot",
			goodTrait: true,
			description: "sperm optimization treatment"
		},
	],
	["livestock",
		{
			title: "production optimization",
			abbreviation: "lvstck",
			goodTrait: true,
			description: "production optimization treatment"
		},
	],
	["progenitor",
		{
			title: "progenitor",
			abbreviation: "prgntr",
			goodTrait: true,
			description: "breeding optimization treatment"
		},
	],
]);

App.Data.milk = {
	Flavors: [
		{value: "almond"},
		{value: "apricot"},
		{value: "banana"},
		{value: "blackberry"},
		{value: "blueberry"},
		{value: "caramel"},
		{value: "cherry"},
		{value: "chocolate"},
		{value: "cinnamon"},
		{value: "coconut"},
		{value: "coffee"},
		{value: "honey"},
		{value: "mango"},
		{value: "melon"},
		{value: "mint"},
		{value: "peach"},
		{value: "peanut butter"},
		{value: "pineapple"},
		{value: "raspberry"},
		{value: "strawberry"},
		{value: "vanilla"}
	]
};


code:
/**
 * @typedef {object} BrandStyle
 * @property {string} displayName The way the brand is displayed as a choice in the UI
 * @property {function(void):boolean} [requirements] Function to determine if a brand symbol can be used.
 */
/**
 * @typedef {Object.<string, BrandStyle[]>} BrandStyleList
 * How the brand is saved in the variable.
 */

/** @type {Object.<string, BrandStyleList>} */
App.Medicine.Modification.Brands = {
	personal: {
		"your personal symbol": {displayName: "Your slaving emblem"},
		"your initials": {displayName: "Your initials"},
	},
	dirtyWord: {
		"SLUT": {displayName: "SLUT"},
		"WHORE": {displayName: "WHORE"},
		"SLAVE": {displayName: "SLAVE"},
		"COW": {displayName: "COW"},
		"MEAT": {displayName: "MEAT"},
		"CUMDUMP": {displayName: "CUMDUMP"},
		"LOVER": {displayName: "LOVER"},
	},
	genitalSymbol: {
		"a pussy symbol": {displayName: "Pussy symbol"},
		"an anus symbol": {displayName: "Anus symbol"},
		"a penis symbol": {displayName: "Penis symbol"},
	},
	silhouettes: {
		"a lady silhouette": {displayName: "Lady"},
		"a princess silhouette": {displayName: "Princess"},
		"a queen silhouette": {displayName: "Queen"},
		"an angel silhouette": {displayName: "Angel"},
		"a devil silhouette": {displayName: "Devil"},
	},
	FS: {
		"a racial slur": {
			displayName: "Racial Slur",
			requirements: function(slave) {
				return (
					(FutureSocieties.isActive('FSSupremacist') && slave.race !== V.arcologies[0].FSSupremacistRace) ||
					(FutureSocieties.isActive('FSSubjugationist') && slave.race === V.arcologies[0].FSSubjugationistRace)
				);
			}
		},
		"how much sex $he needs per day": {
			displayName: "Scores",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSIntellectualDependency'));
			}
		},
		"$his average slave aptitude test scores": {
			displayName: "Scores",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSSlaveProfessionalism'));
			}
		},
		"the number of children $he has birthed": {
			displayName: "Birth Count",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSRepopulationFocus'));
			}
		},
		"a gender symbol": {
			displayName: "Gender Symbol",
			requirements: function(slave) {
				return ((FutureSocieties.isActive('FSGenderRadicalist')) || (FutureSocieties.isActive('FSGenderFundamentalist')));
			}
		},
		"$his own personal symbol": {
			displayName: "Personal Symbol",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSPaternalist'));
			}
		},
		"a chain symbol": {
			displayName: "Chain Symbol",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSDegradationist'));
			}
		},
		"a Vitruvian man": {
			displayName: "Vitruvian Man",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSBodyPurist'));
			}
		},
		"a scalpel": {
			displayName: "Scalpel",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSTransformationFetishist'));
			}
		},
		"$his virginity status": {
			displayName: "Virginity Status",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSYouthPreferentialist'));
			}
		},
		"$his sexual skills": {
			displayName: "Sexual Skill Info",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSMaturityPreferentialist'));
			}
		},
		"$his current height": {
			displayName: "Current height",
			requirements: function(slave) {
				return ((FutureSocieties.isActive('FSPetiteAdmiration')) || (FutureSocieties.isActive('FSStatuesqueGlorification')));
			}
		},
		"$his absolute minimum breast size": {
			displayName: "Breast Floor",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSSlimnessEnthusiast'));
			}
		},
		"$his absolute maximum breast size": {
			displayName: "Breast Ceiling",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSAssetExpansionist'));
			}
		},
		"$his highest weigh-in": {
			displayName: "Weight Record",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSHedonisticDecadence'));
			}
		},
		"a big helping of your favorite food": {
			displayName: "Favorite Food",
			requirements: function(slave) {
				return ((FutureSocieties.isActive('FSHedonisticDecadence')) && V.PC.refreshmentType === 2);
			}
		},
		"$his body product quality": {
			displayName: "Product Quality",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSPastoralist'));
			}
		},
		"$his deadlift record": {
			displayName: "Deadlift Info",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSPhysicalIdealist'));
			}
		},
		"a religious symbol": {
			displayName: "Religious Symbol",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSChattelReligionist'));
			}
		},
		"the crest of your Republic": {
			displayName: "Republican Crest",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSRomanRevivalist'));
			}
		},
		"the symbol of the Aztec gods": {
			displayName: "Seven Serpents",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSAztecRevivalist'));
			}
		},
		"the sigil of your Dynasty": {
			displayName: "Dynastic Sigil",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSEgyptianRevivalist'));
			}
		},
		"the Shogunate's mon": {
			displayName: "Mon",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSEdoRevivalist'));
			}
		},
		"a symbol of the Caliphate": {
			displayName: "Caliphate Symbol",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSArabianRevivalist'));
			}
		},
		"your Family Crest": {
			displayName: "Imperial Family Crest",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSNeoImperialist'));
			}
		},
		"your Imperial Seal": {
			displayName: "Imperial Seal",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSChineseRevivalist'));
			}
		},
		"fleur-de-lis": {
			displayName: "Fleur-de-lis",
			requirements: function(slave) {
				return (FutureSocieties.isActive('FSAntebellumRevivalist'));
			}
		}
	}
};

App.Medicine.Modification.Color = {
	Primary: [
		{value: "amber"},
		{value: "auburn"},
		{value: "black"},
		{value: "blazing red"},
		{value: "blonde"},
		{value: "blue-violet"},
		{value: "blue"},
		{value: "brown"},
		{value: "burgundy"},
		{value: "chestnut"},
		{value: "chocolate brown"},
		{value: "copper"},
		{value: "dark blue"},
		{value: "dark brown"},
		{value: "dark orchid"},
		{value: "deep red"},
		{value: "ginger"},
		{value: "golden"},
		{value: "green-yellow"},
		{value: "green"},
		{value: "grey"},
		{value: "hazel"},
		{value: "jet black"},
		{value: "neon blue"},
		{value: "neon green"},
		{value: "neon pink"},
		{value: "pink"},
		{value: "platinum blonde"},
		{value: "purple"},
		{value: "rainbow"},
		{value: "red"},
		{value: "sea green"},
		{value: "silver"},
		{value: "strawberry-blonde"},
		{value: "white"},
	],
	Pattern: [
		{value: "blue"},
		{value: "brown"},
		{value: "green"},
		{value: "grey"},
		{value: "orange"},
		{value: "pink"},
		{value: "purple"},
		{value: "red"},
		{value: "white"},
		{value: "yellow"},
	],
	Effect: [
		{value: "fading"},
		{value: "camouflage"},
		{value: "speckles"},
		{value: "blotches"},
		{value: "stripes"},
		{value: "veins"},
		{value: "highlights"},
		{value: "undercoloring"},
	],
};
/**
 * @typedef {object} hairStyle
 * @property {string} title
 * @property {FC.HairStyle} value
 * @property {number} [hLength]
 */

/**
 * @type {Object<string, hairStyle[]>}
 */
App.Medicine.Modification.hairStyles = {
	Normal: [
		{
			title: "Afro",
			value: "afro"
		},
		{
			title: "Braided",
			value: "braided"
		},
		{
			title: "Cornrows",
			value: "cornrows"
		},
		{
			title: "Curled",
			value: "curled"
		},
		{
			title: "Dreadlocks",
			value: "dreadlocks"
		},
		{
			title: "Eary",
			value: "eary"
		},
		{
			title: "In a bun",
			value: "bun"
		},
		{
			title: "In a messy bun",
			value: "messy bun"
		},
		{
			title: "in double buns",
			value: "double buns"
		},
		{
			title: "In a chignon",
			value: "chignon"
		},
		{
			title: "In a french twist",
			value: "french twist"
		},
		{
			title: "In a ponytail",
			value: "ponytail"
		},
		{
			title: "In pigtails",
			value: "tails"
		},
		{
			title: "Coiled",
			value: "drills"
		},
		{
			title: "Luxurious",
			value: "luxurious"
		},
		{
			title: "Messy",
			value: "messy"
		},
		{
			title: "Neat",
			value: "neat"
		},
		{
			title: "Permed",
			value: "permed"
		},
		{
			title: "Bangs",
			value: "bangs"
		},
		{
			title: "Hime cut",
			value: "hime"
		},
		{
			title: "Shaved sides",
			value: "strip"
		},
		{
			title: "Up",
			value: "up"
		},
		{
			title: "Half-Shaved",
			value: "undercut"
		},
		{
			title: "in a crown braid",
			value: "crown braid"
		},
		{
			title: "Single dutch braid",
			value: "dutch braid"
		},
		{
			title: "Double dutch braids",
			value: "double dutch braid"
		},
	],
	Cut: [
		{
			title: "Shaved",
			value: "shaved",
			hLength: 0
		},
		{
			title: "Trimmed short",
			value: "trimmed",
			hLength: 10
		},
		{
			title: "Buzzcut",
			value: "buzzcut",
			hLength: 1
		},
		{
			title: "Pixie cut",
			value: "pixie cut",
			hLength: 10
		},
		{
			title: "Bob cut",
			value: "bob cut",
			hLength: 15
		},
	],
};

App.Medicine.Modification.hLength = [
	{
		title: "Very short",
		hLength: 5
	},
	{
		title: "Short",
		hLength: 10
	},
	{
		title: "Shoulder length",
		hLength: 30
	},
	{
		title: "Long",
		hLength: 60
	},
	{
		title: "Very long",
		hLength: 100
	},
];

/**  the Hex codes for the added colors can be found in
 * @param {FC.ColorHex} codes
 */
App.Medicine.Modification.eyeColor = [
	{value: "amber"},
	{value: "amaranth"},
	{value: "amethyst"},
	{value: "aquamarine"},
	{value: "azure"},
	{value: "black"},
	{value: "blue"},
	{value: "brown"},
	{value: "citrine"},
	{value: "crimson"},
	{value: "emerald"},
	{value: "gold"},
	{value: "green"},
	{value: "hazel"},
	{value: "ivory"},
	{value: "jade"},
	{value: "orange"},
	{value: "pale-grey"},
	{value: "pink"},
	{value: "platinum"},
	{value: "onyx"},
	{value: "red"},
	{value: "ruby"},
	{value: "sapphire"},
	{value: "silver"},
	{value: "sky-blue"},
	{value: "turquoise"},
	{value: "white"},
	{value: "yellow"}
];

App.Medicine.Modification.eyeShape = [
	{value: "circular"},
	{value: "almond-shaped"},
	{value: "bright"},
	{value: "catlike"},
	{value: "demonic"},
	{value: "devilish"},
	{value: "goat-like"},
	{value: "heart-shaped"},
	{value: "hypnotic"},
	{value: "serpent-like"},
	{value: "star-shaped"},
	{value: "teary"},
	{value: "vacant"},
	{value: "wide-eyed"}
];

App.Medicine.Modification.naturalSkins = ["pure white", "ivory", "white", "extremely pale", "very pale", "pale", "extremely fair", "very fair", "fair", "light", "light olive", "tan", "olive", "bronze", "dark olive", "dark", "light beige", "beige", "dark beige", "light brown", "brown", "dark brown", "black", "ebony", "pure black"];
App.Medicine.Modification.catgirlNaturalSkins = ["white", "brown", "black", "red", "yellow", "black and white striped"];
App.Medicine.Modification.dyedSkins = ["camouflage patterned", "dyed blue", "dyed white", "dyed gray", "dyed black", "dyed green", "dyed pink", "dyed red", "tiger striped", "dyed purple", "clown"];
App.Medicine.Modification.naturalNippleColors = ["black", "brown", "dark brown", "ebony", "ivory", "light brown", "pale pink", "pink"];
App.Medicine.Modification.eyebrowStyles = new Set(["shaved", "straight", "rounded", "natural", "slanted inwards", "slanted outwards", "high-arched", "elongated", "shortened", "curved"]);
App.Medicine.Modification.eyebrowFullness = new Set(["pencil-thin", "thin", "threaded", "natural", "tapered", "thick", "bushy"]);
App.Medicine.Modification.pubicStyles = new Set(["waxed", "in a strip", "neat", "bushy", "bushy in the front and neat in the rear", "very bushy"]);
App.Medicine.Modification.armpitStyles = new Set(["waxed", "shaved", "neat", "bushy"]);
App.Medicine.Modification.hornColor = new Set(["golden", "copper", "red", "deep red", "green", "pink", "dark brown", "brown", "burgundy", "jet black", "black", "grey", "silver", "white", "blue-violet", "purple", "dark orchid", "sea green", "green-yellow", "dark blue", "blazing red", "neon green", "neon blue", "neon pink"]);
App.Medicine.Modification.faceShape = new Map([
	["normal", {
		desc: `faces have no impact on beauty; the slave's face affects beauty based on its attractiveness alone.`
	}],
	["exotic", {
		desc: `faces exaggerate the impact of facial attractiveness on beauty: being exotic will make an ugly face worse and a beautiful face better.`
	}],
	["sensual", {
		desc: `faces exaggerate the impact of facial attractiveness on beauty, but less than exotic faces do, and also add a small fixed bonus to attractiveness.`
	}],
	["cute", {
		desc: `faces add a larger fixed bonus to attractiveness.`
	}],
	["androgynous", {
		desc: `faces are moderately bad for attractiveness`
	}],
	["masculine", {
		// TODO desc: ``,
		get requirements() { return V.seeDicks !== 0; }
	}]
]);
App.Medicine.Modification.teeth = new Map([
	["normal", {
		get desc() {
			return App.UI.DOM.combineNodes(
				`teeth have a minor positive impact on, `,
				App.Encyclopedia.link("attractiveness", "Slave Score (Attractiveness)"),
				`.`
			);
		}
	}],
	["crooked", {
		desc: `teeth have a minor negative impact on attractiveness. They can be fixed with braces, applied from the surgery.`
	}],
	["gapped", {
		desc: `teeth can cause a slave to lisp. They can be fixed with braces, applied from the surgery.`
	}],
	["straightening braces", {
		desc: `have a negative impact on attractiveness, but less than crooked teeth, and will eventually straighten the slave's teeth. They can be applied to straight teeth or left on after they are no longer useful, if desired.`
	}],
	["cosmetic braces", {
		// TODO desc: ``
	}],
	["removable", {
		desc: `teeth can pass as normal teeth and thus have no attractiveness impact, but do alter some sex scenes.`,
		get requirements() { return (V.seeExtreme === 1); }
	}],
	["pointy", {
		get desc() {
			return App.UI.DOM.combineNodes(
				`teeth have a minor negative impact on attractiveness, but are intimidating, offering slight improvements to combat effectiveness and performance as a `,
				App.Encyclopedia.link("Bodyguard"),
				`.`
			);
		},
		get requirements() { return (V.seeExtreme === 1); },
		sharp: true
	}],
	["fangs", {
		// TODO desc: ``,
		sharp: true
	}],
	["fang", {
		// TODO desc: ``,
		sharp: true
	}],
	["baby", {
		// TODO desc: ``,
	}],
	["mixed", {
		// TODO desc: ``,
	}],
]);
/**
 * Use singular when possible
 * @type {Record<FC.Piercing, {smart?: boolean, requirements?: (slave: FC.SlaveState) => boolean}>}
 */
App.Data.Piercings = {
	"ear": {
	},
	"nose": {
	},
	"eyebrow": {
	},
	"lips": {
	},
	"tongue": {
	},
	"nipple": {
		requirements: (s) => s.nipples !== "fuckable",
	},
	"areola": {
	},
	"navel": {
	},
	"corset": {
	},
	"genitals": {
		smart: true,
	},
	"vagina": {
		requirements: (s) => s.vagina > -1,
	},
	"dick": {
		requirements: (s) => s.dick > 0,
	},
	"anus": {
	},
};

repo_name: Arkerthan/fc

license: mit


code:
/**
 * do not change order, order = display order
 *
 * @type {FC.prostheticID[]}
 */
App.Data.prostheticIDs =
	["interfaceP1", "interfaceP2", "interfaceP3", "basicL", "sexL", "beautyL", "combatL", "felidaeL", "canidaeL", "felidaeCL", "canidaeCL", "cyberneticL", "ocular", "cochlear",
		"electrolarynx", "interfaceTail", "modT", "sexT", "combatT", "combatT2", /* "erectile",*/"interfaceBack", "modW", "flightW", "sexA", "combatW", "combatA1", "combatA2"];
/**
 * @typedef {object} prosthetics
 * @property {string} name expected to singular and lowercase
 * @property {number} adjust time required to adjust an existing prosthetic to a slave
 * @property {number} craft time required to create a new, not to a specific slave fitted prosthetic
 * @property {number} research time required to research the prosthetic
 * @property {number} level minimum level the prosthetics lab needs to research/craft the prosthetic
 * @property {number} costs cash required to buy the prosthetic
 *
 * For all time values: 10 = 1 week without upgrades
 */

/**
 * @type {Record<FC.prostheticID, prosthetics>}
 */
App.Data.prosthetics = {
	interfaceP1: {
		name: "basic prosthetic interface",
		adjust: 40,
		craft: 50,
		research: 100,
		level: 1,
		costs: 5000
	},
	interfaceP2: {
		name: "advanced prosthetic interface",
		adjust: 80,
		craft: 80,
		research: 160,
		level: 2,
		costs: 10000
	},
	interfaceP3: {
		name: "advanced quadrupedal prosthetic interface",
		adjust: 60,
		craft: 60,
		research: 140,
		level: 4,
		costs: 10000
	},
	basicL: {
		name: "set of basic prosthetic limbs",
		adjust: 40,
		craft: 40,
		research: 80,
		level: 1,
		costs: 7000
	},
	sexL: {
		name: "set of advanced sex limbs",
		adjust: 60,
		craft: 70,
		research: 140,
		level: 2,
		costs: 15000
	},
	beautyL: {
		name: "set of advanced beauty limbs",
		adjust: 60,
		craft: 70,
		research: 140,
		level: 2,
		costs: 15000
	},
	combatL: {
		name: "set of advanced combat limbs",
		adjust: 60,
		craft: 70,
		research: 140,
		level: 2,
		costs: 15000
	},
	felidaeL: {
		name: "set of quadruped feline limbs",
		adjust: 60,
		craft: 70,
		research: 140,
		level: 4,
		costs: 20000
	},
	canidaeL: {
		name: "set of quadruped canine limbs",
		adjust: 60,
		craft: 80,
		research: 140,
		level: 4,
		costs: 15000
	},
	felidaeCL: {
		name: "set of feline combat limbs",
		adjust: 100,
		craft: 80,
		research: 180,
		level: 4,
		costs: 15000
	},
	canidaeCL: {
		name: "set of canine combat limbs",
		adjust: 100,
		craft: 80,
		research: 180,
		level: 4,
		costs: 20000
	},
	cyberneticL: {
		name: "set of cybernetic limbs",
		adjust: 80,
		craft: 150,
		research: 250,
		level: 3,
		costs: 25000
	},
	ocular: {
		name: "ocular implant",
		adjust: 60,
		craft: 80,
		research: 150,
		level: 2,
		costs: 20000
	},
	cochlear: {
		name: "cochlear implant",
		adjust: 40,
		craft: 40,
		research: 80,
		level: 1,
		costs: 5000
	},
	electrolarynx: {
		name: "electrolarynx",
		adjust: 40,
		craft: 40,
		research: 40,
		level: 1,
		costs: 5000
	},
	interfaceTail: {
		name: "prosthetic tail interface",
		adjust: 50,
		craft: 60,
		research: 120,
		level: 1,
		costs: 5000
	},
	modT: {
		name: "modular tail",
		adjust: 40,
		craft: 40,
		research: 80,
		level: 1,
		costs: 5000
	},
	combatT: {
		name: "combat tail",
		adjust: 70,
		craft: 70,
		research: 140,
		level: 2,
		costs: 15000
	},
	combatT2: {
		name: `combat tail, type "Stinger"`,
		adjust: 70,
		craft: 70,
		research: 140,
		level: 3,
		costs: 15000
	},
	sexT: {
		name: "pleasure tail",
		adjust: 60,
		craft: 60,
		research: 120,
		level: 2,
		costs: 10000
	},
	/*
	erectile: {
		name: "erectile implant",
		adjust: 40,
		craft: 50,
		research: 100,
		level: 1,
		costs: 7000
	},
	*/
	interfaceBack: {
		name: "prosthetic back interface",
		adjust: 100,
		craft: 120,
		research: 240,
		level: 2,
		costs: 10000
	},
	modW: {
		name: "modular pair of wings",
		adjust: 80,
		craft: 80,
		research: 120,
		level: 2,
		costs: 10000
	},
	flightW: {
		name: "pair of flight capable wings",
		adjust: 120,
		craft: 120,
		research: 240,
		level: 2,
		costs: 20000
	},
	sexA: {
		name: "set of pleasure appendages",
		adjust: 120,
		craft: 120,
		research: 240,
		level: 2,
		costs: 20000
	},
	combatW: {
		name: `set of combat appendages, type "Falcon"`,
		adjust: 140,
		craft: 140,
		research: 280,
		level: 3,
		costs: 30000
	},
	combatA1: {
		name: `set of combat appendages, type "Arachnid"`,
		adjust: 140,
		craft: 140,
		research: 280,
		level: 3,
		costs: 30000
	},
	combatA2: {
		name: `set of combat appendages, type "Kraken"`,
		adjust: 140,
		craft: 140,
		research: 280,
		level: 3,
		costs: 30000
	}
};
/**
 * @type {Map<FC.TailShape, {animal: string, desc: string}>}
 */
App.Data.modTails = new Map([
	["cat", {animal: "Cat", desc: `a long, slender cat tail`}],
	["leopard", {animal: "Leopard", desc: "a long, fluffy leopard tail"}],
	["tiger", {animal: "Tiger", desc: "a long, fluffy tiger tail"}],
	["jaguar", {animal: "Jaguar", desc: "a long, fluffy jaguar tail"}],
	["lion", {animal: "Lion", desc: "a long, slender lion tail"}],
	["dog", {animal: "Dog", desc: `a bushy dog tail`}],
	["wolf", {animal: "Wolf", desc: "a long and fluffy wolf tail"}],
	["jackal", {animal: "Jackal", desc: "a bushy jackal tail"}],
	["fox", {animal: "Fox", desc: "a soft, fluffy fox tail"}],
	["kitsune", {animal: "Kitsune", desc: `nine incredibly soft, fluffy fox tails`}],
	["tanuki", {animal: "Tanuki", desc: `a long, fluffy tanuki tail`}],
	["raccoon", {animal: "Raccoon", desc: `a long, fluffy raccoon tail`}],
	["rabbit", {animal: "Rabbit", desc: `a short rabbit tail`}],
	["squirrel", {animal: "Squirrel", desc: `a large squirrel tail`}],
	["horse", {animal: "Horse", desc: `a long horse tail`}],
	["bird", {animal: "Bird", desc: "a bundle of tail feathers"}],
	["phoenix", {animal: "Phoenix", desc: "a magnificent bundle of luminescent tail feathers"}],
	["peacock", {animal: "Peacock", desc: "a gorgeous bundle of peacock tail feathers"}],
	["raven", {animal: "Raven", desc: "a bundle of crow tail feathers"}],
	["swan", {animal: "Swan", desc: "a small bundle of short swan tail feathers"}],
	["sheep", {animal: "Sheep", desc: "a short, woolly sheep tail"}],
	["cow", {animal: "Cow", desc: `a long cow tail`}],
	["gazelle", {animal: "Gazelle", desc: "a short, silky gazelle tail"}],
	["deer", {animal: "Deer", desc: "a short deer tail"}],
	["succubus", {animal: "Succubus", desc: "a long, slender succubus tail"}],
	["dragon", {animal: "Dragon", desc: "a long, thick dragon tail"}]
]);
/**
 * @type {Map<FC.WingsShape, {animal: string, desc: string}>}
 */

App.Data.modWings = new Map([
	["angel", {animal: "Angel", desc: "a pair of elegant angelic wings"}],
	["seraph", {animal: "Seraph", desc: "three pairs of majestic-looking angels wings"}],
	["demon", {animal: "Demon", desc: "a pair of sexy and sleek demonic wings"}],
	["dragon", {animal: "Dragon", desc: "a pair of imposing draconic wings"}],
	["phoenix", {animal: "Phoenix", desc: "a pair of magnificent, luminescent phoenix wings"}],
	["bird", {animal: "Bird", desc: "a pair of feathered wings"}],
	["fairy", {animal: "Fairy", desc: "a pair of translucent, leaf-like fairy wings"}],
	["butterfly", {animal: "Butterfly", desc: "a pair of beautiful butterfly wings"}],
	["moth", {animal: "Moth", desc: "a pair of soft moth wings"}],
	["insect", {animal: "Insect", desc: "a pair of transparent insect wings"}],
	["evil", {animal: "Fiend", desc: "a pair of fiendish wings"}]

]);
/**
 * @typedef {object} prostheticLimb
 * @property {string} short
 * @property {FC.prostheticID} prostheticKey
 * @property {number[]} allowedInterfaces
 */

/**
 * @type {Map<number, prostheticLimb>}
 */
App.Data.prostheticLimbs = new Map([
	[2, {
		short: "basic prosthetic",
		prostheticKey: "basicL",
		allowedInterfaces: [1, 2]
	}],
	[3, {
		short: "advanced sex",
		prostheticKey: "sexL",
		allowedInterfaces: [1, 2]
	}],
	[4, {
		short: "advanced beauty",
		prostheticKey: "beautyL",
		allowedInterfaces: [1, 2]
	}],
	[5, {
		short: "advanced combat",
		prostheticKey: "combatL",
		allowedInterfaces: [1, 2]
	}],
	[6, {
		short: "cybernetic",
		prostheticKey: "cyberneticL",
		allowedInterfaces: [2]
	}],
	[7, {
		short: "quadruped feline",
		prostheticKey: "felidaeL",
		allowedInterfaces: [3]
	}],
	[8, {
		short: "quadruped canine",
		prostheticKey: "canidaeL",
		allowedInterfaces: [3]
	}],
	[9, {
		short: "feline combat",
		prostheticKey: "felidaeCL",
		allowedInterfaces: [3]
	}],
	[10, {
		short: "canine combat",
		prostheticKey: "canidaeCL",
		allowedInterfaces: [3]
	}],
]);


code:
/**
 * @type {Map<string, string>}
 */
App.Data.SlaveSorting = new Map([
	["Devotion", "devotion"],
	["Trust", "trust"],
	["Name", "name"],
	["Assignment", "assignment"],
	["Date purchased", "seniority"],
	["Age", "actualAge"],
	["How old they look", "visualAge"],
	["Age of their body", "physicalAge"],
	["Weekly Income", "weeklyIncome"],
	["Beauty", "beauty"],
	["Health", "health"],
	["Weight", "weight"],
	["Height", "height"],
	["Muscles", "muscles"],
	["Intelligence", "intelligence"],
	["Sex Drive", "sexDrive"],
	["Pregnancy", "pregnancy"],
	["Prestige", "prestige"],
]);


code:
// these ratings tables are consumed by App.Ratings.xxx()
// those function takes a value for rating and iterates a table (in the declaration order)
// until it finds a key greater or equal to the value; the found record is returned from the function
// Briefly, each dictionary entry key -> value is read as "the highest rating that still suits -> value" or
// "up to, including"
// The idea behind this is too decrease number of comparisons and retain compatibility with simple dictionaries
// without sparse keys
App.Data.SlaveSummary = {
	long: {
		body: {
			age: {
				4: "Toddler.",
				10: "Child.",
				12: "Preteen.",
				16: "Early teens.",
				19: "Late teens.",
				24: "Early twenties.",
				29: "Late twenties.",
				34: "Early thirties.",
				39: "Late thirties.",
				49: "Forties",
				59: "Fifties",
				69: "Sixties",
				999: "Elderly."
			},
			face: { // face value + 100
				4: {desc: "Very ugly", style: "red"},
				59: {desc: "Ugly", style: "red"},
				89: {desc: "Unattractive", style: "red"},
				110: {desc: "Average"},
				140: {desc: "Attractive", style: "pink"},
				195: {desc: "Beautiful", style: "pink"},
				200: {desc: "Very beautiful", style: "pink"},
			},
			lips: {
				10: {desc: "Thin lips", style: "red"},
				20: {desc: "Normal lips"},
				40: {desc: "Pretty lips"},
				70: {desc: "Big lips"},
				95: {desc: "Huge lips"},
				100: {desc: "Facepussy"}
			},
			teeth: {
				"crooked": {desc: "Crooked teeth.", style: "yellow"},
				"gapped": {desc: "Tooth gap.", style: "yellow"},
				"cosmetic braces": {desc: "Cosmetic braces."},
				"straightening braces": {desc: "Braces."},
				"removable": {desc: "Removable teeth."},
				"pointy": {desc: "Sharp fangs."},
				"baby": {desc: "Baby teeth."},
				"mixed": {desc: "Mixed teeth."}
			},
			waist: { // waist value + 100
				4: {desc: "Absurdly narrow waist", style: "pink"},
				59: {desc: "Hourglass waist", style: "pink"},
				89: {desc: "Feminine waist", style: "pink"},
				110: {desc: "Average waist"},
				140: {desc: "Unattractive waist", style: "red"},
				195: {desc: "Ugly waist", style: "red"},
				200: {desc: "Masculine waist", style: "red"}
			},
			genitalia: {
				dickBalls: { // indices [dick, balls]
					3: {
						3: null,
						4: "Big balls.",
						5: "Huge balls.",
						8: "Monstrous balls.",
						99: "Hyper balls."
					},
					4: {
						3: "Big dick.",
						99: "Big dick & balls."
					},
					5: {
						4: "Huge dick.",
						99: "Huge dick & balls."
					},
					8: {
						5: "Monster dong.",
						99: "Monster dick & balls."
					},
					99: {
						8: "Hyper dong.",
						99: "Hyper dick & balls."
					}
				},
				holes: { // indices [vagina, anus]
					2: {
						2: null,
						3: "Gaping anus.",
						4: "Permagaped anus."
					},
					3: {
						2: "Loose pussy.",
						3: "High mileage."
					},
					99: {
						3: "Cavernous pussy.",
						4: "Blown out holes."
					}
				}
			},
			titsAss: { // indices: [boobs, butt, FSAssetExpansionist(0,1), weight+100, muscles+100]
				499: {
					2: {
						2: { // FSAssetExpansionist doesn't matter
							109: {
								130: {desc: "Girlish figure.", style: "pink"},
							},
						},
					},
					4: null,
					6: {desc: "Big ass.", style: "pink"},
					8: {desc: "Huge ass.", style: "pink"},
					9: {desc: "Titanic ass.", style: "pink"},
					999: {desc: "Hyper ass.", style: "pink"},
				},
				799: {
					4: null,
					6: {desc: "Big ass.", style: "pink"},
					8: {desc: "Huge ass.", style: "pink"},
					9: {desc: "Titanic ass.", style: "pink"},
					999: {desc: "Hyper ass.", style: "pink"},
				},
				1999: {
					4: {desc: "Big tits.", style: "pink"},
					999: {desc: "Big T&A.", style: "pink"}
				},
				3999: {
					6: {desc: "Huge tits.", style: "pink"},
					999: {desc: "Huge T&A.", style: "pink"}
				},
				11999: {
					8: {desc: "Monstrous tits.", style: "pink"},
					999: {desc: "Enormous T&A.", style: "pink"},
				},
				100000: {
					9: {desc: "Immobilizing tits.", style: "pink"},
					999: {desc: "Hyper T&A.", style: "pink"}
				}
			},
			weight: { // indices: [weigh + 100, FSHedonisticDecadence (0,1), hips + 2]
				4: {desc: "Emaciated", style: "red"},
				69: {
					2: { // FSHedonisticDecadence doesn't matter
						0: {desc: "Model-thin"},
						5: {desc: "Very thin", style: "red"}
					}
				},
				89: {desc: "Thin"},
				110: {desc: "Trim"},
				130: {desc: "Plush"},
				195: {
					0: {
						3: {desc: "Overweight", style: "red"},
						99: {desc: "Nicely chubby"}
					},
					1: {desc: "Nicely chubby"}
				},
				230: {
					0: {
						4: {desc: "Fat", style: "red"},
						99: {desc: "Pleasantly soft and shapely"}
					},
					1: {desc: "Pleasantly soft and shapely"}
				},
				260: {
					0: {desc: "Obese", style: "red"},
					1: {desc: "Amazingly voluptuous"}
				},
				290: {
					0: {desc: "Super Obese", style: "red"},
					1: {desc: "SSBBW"}
				},
				999: {
					0: {desc: "Dangerously Obese", style: "red"},
					1: {desc: "Perfectly massive"}
				}
			},
			hipsAss: {
				0: {desc: "Disproportionately small butt.", style: "red"},
				1: {desc: "Disproportionately big butt.", style: "red"}
			},
			muscles: { // indices: [muscles + 100, FSPhysicalIdealist(0,1) ]
				4: {desc: "Frail", style: "red"},
				69: {
					0: {desc: "Very weak"},
					1: {desc: "Very weak", style: "red"}
				},
				94: {
					0: {desc: "Weak"},
					1: {desc: "Weak", style: "red"}
				},
				105: {desc: "Soft"},
				130: {desc: "Toned"},
				150: {desc: "Fit"},
				195: {desc: "Muscular"},
				200: {desc: "Hugely muscular"}
			}
		},
		mental: {
			devotion: { // devotion value + 100
				4: {desc: "Very hateful", style: ["devotion", "hateful"]},
				49: {desc: "Hateful", style: ["devotion", "hateful"]},
				79: {desc: "Resistant", style: ["devotion", "resistant"]},
				120: {desc: "Ambivalent", style: ["devotion", "ambivalent"]},
				150: {desc: "Accepting", style: ["devotion", "accept"]},
				195: {desc: "Devoted", style: ["devotion", "devoted"]},
				200: {desc: "Worshipful", style: ["devotion", "worship"]}
			},
			trust: { // first key: trust + 100, second key: devotion + 100
				4: {desc: "Extremely terrified", style: ["trust", "extremely-terrified"]},
				49: {desc: "Terrified", style: ["trust", "terrified"]},
				79: {desc: "Frightened", style: ["trust", "frightened"]},
				120: {desc: "Fearful", style: ["trust", "fearful"]},
				150: {
					79: {desc: "Careful", style: ["defiant", "careful"]},
					200: {desc: "Careful", style: ["trust", "careful"]},
				},
				195: {
					79: {desc: "Bold", style: ["defiant", "bold"]},
					200: {desc: "Trusting", style: ["trust", "trusting"]},
				},
				200: {
					79: {desc: "Defiant", style: ["defiant", "full"]},
					200: {desc: "Profoundly trusting", style: ["trust", "prof-trusting"]},
				}
			},
			education: { // index: intelligenceImplant + 15
				0: ", hindered",
				29: "",
				44: ", educated",
				99: ", well educated"
			},
			intelligence: { // index: intelligence + 100
				4: {desc: "Moronic", style: "unintelligent"},
				49: {desc: "Very slow", style: "unintelligent"},
				84: {desc: "Slow", style: "unintelligent"},
				115: {desc: "Average intelligence"},
				150: {desc: "Smart", style: "intelligent"},
				195: {desc: "Very smart", style: "intelligent"},
				230: {desc: "Brilliant", style: "intelligent"},
				999: {desc: "Genius", style: "intelligent"},
			},
			behavioralFlaw: {
				"arrogant": "Arrogant.",
				"bitchy": "Bitchy.",
				"odd": "Odd.",
				"hates men": "Hates men.",
				"hates women": "Hates women.",
				"gluttonous": "Stress eater.",
				"anorexic": "Anorexic.",
				"devout": "Devoutly religious.",
				"liberated": "Mentally liberated.",
			}
		},
		fetish: { // indices [fetish, fetishStrength]
			"submissive": {
				60: "Submissive tendencies",
				95: "Submissive",
				100: "Complete submissive"
			},
			"cumslut": {
				60: "Prefers oral",
				95: "Oral fixation",
				100: "Cumslut"
			},
			"humiliation": {
				60: "Interest in humiliation",
				95: "Exhibitionist",
				100: "Humiliation slut"
			},
			"buttslut": {
				60: "Prefers anal",
				95: "Anal fixation",
				100: "Buttslut"
			},
			"boobs": {
				60: "Loves boobs",
				95: "Breast fixation",
				100: "Boobslut"
			},
			"sadist": {
				60: "Sadistic tendencies",
				95: "Sadist",
				100: "Complete sadist"
			},
			"masochist": {
				60: "Masochistic tendencies",
				95: "Masochist",
				100: "Complete masochist"
			},
			"dom": {
				60: "Dominant tendencies",
				95: "Dominant",
				100: "Complete dom"
			},
			"pregnancy": {
				60: "Interest in impregnation",
				95: "Pregnancy kink",
				100: "Pregnancy fetish"
			},
			"bestiality": {
				60: "Interest in bestiality",
				95: "Bestiality kink",
				100: "Bestiality fetish"
			},
			"none": "Sexually vanilla"
		},
		clothes: {
			"Western clothing": "Chaps.",
			"a Santa dress": "Santa dress.",
			"a ball gown": "Ball gown.",
			"a bimbo outfit": "Bimbo outfit.",
			"a biyelgee costume": "Biyelgee costume.",
			"a bra": "Nice bra.",
			"a bunny outfit": "Bunny outfit.",
			"a burkini": "Burkini.",
			"a burqa": "Burqa.",
			"a button-up shirt and panties": "Button-up shirt, panties.",
			"a button-up shirt": "Nice button-up shirt.",
			"a chattel habit": "Chattel habit.",
			"a cheerleader outfit": "Cheerleader.",
			"a comfortable bodysuit": "Bodysuit.",
			"a courtesan dress": "Courtesan dress.",
			"a cybersuit": "Cybersuit.",
			"a dirndl": "Dirndl.",
			"a fallen nuns habit": "Slutty habit.",
			"a gothic lolita dress": "Gothic lolita dress.",
			"a halter top dress": "Halter top dress.",
			"a hanbok": "Hanbok.",
			"a hijab and abaya": "Hijab and abaya.",
			"a hijab and blouse": "Hijab and blouse.",
			"a huipil": "Huipil.",
			"a kimono": "Kimono.",
			"a klan robe": "Klan robe.",
			"a latex catsuit": "Nice latex.",
			"a leotard": "Leotard.",
			"a long qipao": "Long Qipao.",
			"Imperial Plate": "Imperial Plate.",
			"a tight Imperial bodysuit": "Imperial Bodysuit.",
			"a maternity dress": "Maternity dress.",
			"a military uniform": "Military uniform.",
			"a mini dress": "Mini dress.",
			"a monokini": "Monokini.",
			"a mounty outfit": "Mounty outfit.",
			"a nice maid outfit": "Nice maid.",
			"a nice nurse outfit": "Nice nurse.",
			"a nice pony outfit": "Nice pony outfit.",
			"a niqab and abaya": "Niqab and abaya.",
			"a one-piece swimsuit": "Swimsuit.",
			"a penitent nuns habit": "Cilice.",
			"a police uniform": "Police uniform.",
			"a red army uniform": "Red Army uniform.",
			"a scalemail bikini": "Scalemail bikini.",
			"a schoolgirl outfit": "Schoolgirl outfit.",
			"a schutzstaffel uniform": "Schutzstaffel uniform.",
			"a skimpy loincloth": "Skimpy loincloth.",
			"a slave gown": "Slave gown.",
			"a slutty klan robe": "Slutty klan robe.",
			"a slutty maid outfit": "Slutty maid.",
			"a slutty nurse outfit": "Slutty nurse.",
			"a slutty outfit": "Slutty outfit.",
			"a slutty pony outfit": "Slutty pony outfit.",
			"a slutty qipao": "Slutty qipao.",
			"a slutty schutzstaffel uniform": "Slutty Schutzstaffel uniform.",
			"a sports bra": "Sports bra.",
			"a string bikini": "String bikini.",
			"a striped bra": "Striped bra.",
			"a succubus outfit": "Succubus outfit.",
			"a sweater and cutoffs": "Jean shorts, sweater.",
			"a sweater and panties": "Sweater, panties.",
			"a sweater": "Nice sweater.",
			"a t-shirt and jeans": "Blue jeans, t-shirt.",
			"a t-shirt and panties": "Panties, t-shirt.",
			"a t-shirt and thong": "Thong, t-shirt.",
			"a t-shirt": "T-shirt.",
			"a tank-top and panties": "Tank-top, panties.",
			"a tank-top": "Nice tank-top.",
			"a thong": "Nice thong.",
			"a toga": "Toga.",
			"a tube top and thong": "Tube top, thong.",
			"a tube top": "Nice tube top.",
			"a confederate army uniform": "Confederate Army uniform.",
			"an apron": "Apron.",
			"an oversized t-shirt and boy shorts": "Over-sized t-shirt, boy shorts.",
			"an oversized t-shirt": "Nice over-sized t-shirt.",
			"an evening dress": "Evening dress.",
			"attractive lingerie for a pregnant woman": "Preggo lingerie.",
			"attractive lingerie": "Nice lingerie.",
			"battlearmor": "Battlearmor.",
			"battledress": "Battledress.",
			"body oil": "Body oil.",
			"boyshorts": "Boy shorts.",
			"chains": "Chains.",
			"clubslut netting": "Netting.",
			"conservative clothing": "Conservative clothing.",
			"cutoffs and a t-shirt": "Cutoffs, t-shirt.",
			"cutoffs": "Jean shorts.",
			"harem gauze": "Harem outfit.",
			"jeans": "Tight blue jeans.",
			"kitty lingerie": "Kitty lingerie.",
			"leather pants and a tube top": "Leather pants, tube top.",
			"leather pants and pasties": "Leather pants, pasties.",
			"leather pants": "Nice leather pants.",
			"lederhosen": "Lederhosen.",
			"nice business attire": "Nice suit.",
			"overalls": "Overalls.",
			"panties and pasties": "Pasties, panties.",
			"panties": "Nice panties.",
			"pasties": "Pasties.",
			"restrictive latex": "Bondage latex.",
			"shibari ropes": "Shibari.",
			"slutty business attire": "Slutty suit.",
			"slutty jewelry": "Bangles.",
			"spats and a tank top": "Spats, tank top.",
			"sport shorts and a sports bra": "Shorts, bra.",
			"sport shorts and a t-shirt": "Nice sport shorts, shirt.",
			"sport shorts": "Shorts.",
			"stretch pants and a crop-top": "Stretch pants, crop-top.",
			"striped panties": "Striped panties.",
			"striped underwear": "Striped underwear",
			"uncomfortable straps": "Leather straps.",

		},
		accessory: {
			collar: {
				"ancient Egyptian": "Wesekh.",
				"bell collar": "Bell collar.",
				"bowtie": "Bowtie collar.",
				"neck tie": "Neck tie.",
				"cruel retirement counter": "Cruel counter collar.",
				"heavy gold": "Gold collar.",
				"leather with cowbell": "Cowbell collar.",
				"neck corset": "Neck corset.",
				"nice retirement counter": "Nice counter collar.",
				"preg biometrics": "Pregnancy biometrics collar.",
				"pretty jewelry": "Pretty collar.",
				"satin choker": "Satin choker.",
				"shock punishment": "Shock collar.",
				"silk ribbon": "Silken ribbon.",
				"stylish leather": "Stylish leather collar.",
				"tight steel": "Steel collar.",
				"uncomfortable leather": "Leather collar.",
			},
			faceAccessory: {
				"porcelain mask": "Porcelain mask.",
				"cat ears": "Cat ears.",
			},
			mouthAccessory: {
				"bit gag": "Bit gag.",
				"dildo gag": "Dildo gag.",
				"ring gag": "Ring gag.",
				"massive dildo gag": "Throat-bulging dildo gag.",
				"ball gag": "Ball gag.",
			},
			belly: {
				"a corset": "Corset.",
				"a huge empathy belly": "Huge fake belly.",
				"a large empathy belly": "Large fake belly.",
				"a medium empathy belly": "Medium fake belly.",
				"a small empathy belly": "Small fake belly.",
				"a support band": "Support band.",
				"an extreme corset": "Extreme corsetage.",
				"shapewear": "Shapewear.",
			},
			vaginal: {
				"bullet vibrator": "Attached bullet vibrator.",
				"smart bullet vibrator": "Attached smart bullet vibrator.",
				"dildo": "Vaginal dildo.",
				"large dildo": "Large vaginal dildo.",
				"huge dildo": "Huge vaginal dildo.",
				"long dildo": "Long vaginal dildo.",
				"long, large dildo": "Long and large vaginal dildo.",
				"long, huge dildo": "Long and wide vaginal dildo.",
			},
			buttplug: {
				"plug": "Buttplug.",
				"large plug": "Large buttplug.",
				"huge plug": "Huge buttplug.",
				"long plug": "Long buttplug.",
				"long, large plug": "Large, long buttplug.",
				"long, huge plug": "Enormous buttplug.",
			},
			buttplugAttachment: {
				"tail": "Attached tail.",
				"cat tail": "Attached cat tail.",
				"fox tail": "Attached fox tail.",
				"cow tail": "Attached cow tail.",
			}
		},
		diet: {
			"restricted": "Dieting.",
			"fattening": "Gaining weight.",
			"corrective": "Corrective.",
			"XX": "Estrogen rich.",
			"XY": "Testosterone rich.",
			"XXY": "Futanari mix.",
			"muscle building": "Pumping iron.",
			"slimming": "Slimming down.",
			"cum production": "Cum production.",
			"cleansing": "Cleansing.",
			"fertility": "Fertility.",
		},
		specialDiet: { // index: dietCum + 3 * dietMilk
			0: null,
			1: "Cum Added.",
			2: "Cum Based.",
			3: "Milk Added.",
			4: "Milk & Cum Added.",
			5: "Cum Based with Milk.",
			6: "Milk Based.",
			7: "Milk Based with Cum.",
			8: "Cum and Milk Based."
		},
		hormoneBalance: { // rating is hormoneBalance value + 500
			0: "Absolutely masculine",
			100: "Overwhelmingly masculine",
			200: "Extremely masculine",
			300: "Heavily masculine",
			400: "Very masculine",
			479: "Masculine",
			520: "Neutral",
			599: "Feminine",
			699: "Very feminine",
			799: "Heavily feminine",
			899: "Extremely feminine",
			999: "Overwhelmingly feminine",
			1000: "Absolutely feminine"
		},
		health: {
			illness: {
				0: null,
				1: {desc: "Sick", style: "yellow"},
				2: {desc: "Ill", style: ["red", "strong"]},
				3: {desc: "Very ill", style: ["red", "strong"]},
				4: {desc: "Terribly ill", style: ["red", "strong"]},
				5: {desc: "Dangerously ill", style: ["red", "strong"]}
			},
			tiredness: {
				0: {desc: "Energetic", style: "green"},
				30: {desc: "Rested", style: "green"},
				60: {desc: "Tired", style: "yellow"},
				90: {desc: "Fatigued", style: "orange"},
				100: {desc: "Exhausted", style: ["red", "strong"]}
			},
			health: { // health + 100
				10: {desc: "On the edge of death", style: ["red", "strong"]},
				49: {desc: "Extremely unhealthy", style: ["red", "strong"]},
				79: {desc: "Unhealthy", style: ["red", "strong"]},
				120: {desc: "healthy", style: "yellow"},
				150: {desc: "Very healthy", style: "green"},
				190: {desc: "Extremely healthy", style: "green"},
				200: {desc: "Unnaturally healthy", style: "green"}, // intended limit of 100 health
				999: {desc: "Unnaturally healthy", style: "green"} // catch to display unintended cases of health > 100 instead of vanishing
			},
		},
		prestige: {
			0: null,
			1: {desc: "Prestigious.", style: "prestigious"},
			2: {desc: "Very prestigious.", style: "prestigious"},
			3: {desc: "Extremely prestigious.", style: "prestigious"},
		},
		pornPrestige: {
			0: null,
			1: {desc: "Porn amateur.", style: "prestigious"},
			2: {desc: "Porn slut.", style: "prestigious"},
			3: {desc: "Porn star.", style: "prestigious"},
		},
		accent: {
			0: null,
			1: {desc: "Cute accent.", style: "pink"},
			2: {desc: "Accent."},
			3: {desc: "Bad accent.", style: "red"},
			4: {desc: "No language skills.", style: "red"},
		},
		smartVibrator: {
			setting: {
				"off": " off.",
				"submissive": " submissive.",
				"lesbian": " lesbian.",
				"oral": " oral.",
				"humiliation": " humiliation.",
				"anal": " anal.",
				"boobs": " breasts.",
				"sadist": " sadism.",
				"masochist": " masochism.",
				"dom": " dominance.",
				"pregnancy": " pregnancy.",
				"vanilla": " vanilla.",
				"all": " all.",
				"none": " none.",
				"monitoring": " monitoring.",
				"men": " men.",
				"women": " women.",
				"anti-men": " anti men.",
				"anti-women": " anti women.",
			},
			system: {
				"piercing": "SP",
				"bullet": "SB",
				"vibe": "SV"
			}
		},
		skills: {
			entertainment: {
				10: null,
				29: {desc: "Basic entertainer", style: "skill"},
				59: {desc: "Skilled entertainer", style: "skill"},
				99: {desc: "Expert entertainer", style: "skill"},
				999: {desc: "Masterful entertainer", style: "skill"}
			},
			sex: { // indices: [sexSkills, hasVagina(0,1) + hasPenis(0,2)] 5.0.0 needs to better address male/female here
				30: {desc: "Sexually unskilled", style: "skill"},
				90: {desc: "Sexually skilled", style: "skill"},
				120: {desc: "Sexual expert", style: "skill"},
				180: {
					0: {desc: "Masterful null", style: "skill"},
					1: {desc: "Sexual expert", style: "skill"},
					2: {desc: "Masterful shemale", style: "skill"},
					3: {desc: "Masterful hermaphrodite", style: "skill"}
				},
				9999: {desc: "Sex master", style: "skill"}
			},
			whoring: {
				10: null,
				29: {desc: "Basic whore", style: "skill"},
				59: {desc: "Skilled whore", style: "skill"},
				99: {desc: "Expert whore", style: "skill"},
				999: {desc: "Masterful whore", style: "skill"}
			},
			mss: {desc: "Masterful sex slave.", style: "skill"},
			combat: {
				10: null,
				30: {desc: "Basic fighter", style: "skill"},
				60: {desc: "Skilled fighter", style: "skill"},
				99: {desc: "Expert fighter", style: "skill"},
				999: {desc: "Masterful fighter", style: "skill"}
			},
		},
		sexDrive: {
			XX: {
				5: {desc: "disgusted by women", style: "red"},
				15: {desc: "turned off by women", style: "red"},
				35: {desc: "not attracted to women", style: "red"},
				65: {desc: "indifferent to women"},
				85: {desc: "attracted to women", style: "green"},
				95: {desc: "aroused by women", style: "green"},
				999: {desc: "passionate about women", style: "green"}
			},
			XY: {
				5: {desc: "Disgusted by men", style: "red"},
				15: {desc: "Turned off by men", style: "red"},
				35: {desc: "Not attracted to men", style: "red"},
				65: {desc: "Indifferent to men"},
				85: {desc: "Attracted to men", style: "green"},
				95: {desc: "Aroused by men", style: "green"},
				999: {desc: "Passionate about men", style: "green"}
			},
			energy: {
				20: {desc: "No sex drive", style: "red"},
				40: {desc: "Poor sex drive", style: "red"},
				60: {desc: "Average sex drive", style: "yellow"},
				80: {desc: "Good sex drive", style: "green"},
				95: {desc: "Powerful sex drive", style: "green"},
				999: {desc: "Nymphomaniac!", style: "green"}
			},
			synergy: {
				omni: {desc: "Omnisexual!", style: "green"},
				nymphomni: {desc: "Omnisexual nymphomaniac!", style: "green"}
			}
		}
	},
	short: {
		body: {
			age: {
				4: "Toddl",
				10: "Child",
				12: "PTeen",
				16: "EaTeen",
				19: "LtTeen",
				24: "Ea20s",
				29: "Lt20s",
				34: "Ea30s",
				39: "Lt30s",
				49: "40s",
				59: "50s",
				69: "60s",
				999: "Elder"
			},
			face: { // face value + 100
				4: {desc: "Face---", style: "red"},
				59: {desc: "Face--", style: "red"},
				89: {desc: "Face-", style: "red"},
				110: {desc: "Face"},
				140: {desc: "Face+", style: "pink"},
				195: {desc: "Face++", style: "pink"},
				200: {desc: "Face+++", style: "pink"},
			},
			lips: {
				10: {desc: "Lips-", style: "red"},
				20: {desc: "Lips"},
				40: {desc: "Lips+"},
				70: {desc: "Lips++"},
				95: {desc: "Lips+++"},
				100: {desc: "Facepussy"}
			},
			teeth: {
				"crooked": {desc: "Cr Teeth", style: "yellow"},
				"gapped": {desc: "Gap", style: "yellow"},
				"cosmetic braces": {desc: "Cos Braces"},
				"straightening braces": {desc: "Braces"},
				"removable": {desc: "Rem Teeth"},
				"pointy": {desc: "Fangs"},
				"baby": {desc: "Baby"},
				"mixed": {desc: "Mixed"}
			},
			waist: { // waist value + 100
				4: {desc: "Wst+++", style: "pink"},
				60: {desc: "Wst++", style: "pink"},
				89: {desc: "Wst+", style: "pink"},
				110: {desc: "Wst"},
				140: {desc: "Wst-", style: "red"},
				195: {desc: "Wst--", style: "red"},
				200: {desc: "Wst---", style: "red"}
			},
			genitalia: {
				dickBalls: { // indices [dick, balls]
					3: {
						3: null,
						4: "Balls",
						5: "Balls+",
						8: "Balls++",
						99: "Balls+++"
					},
					4: {
						3: "Dick",
						99: "Junk"
					},
					5: {
						4: "Dick+",
						99: "Junk+"
					},
					8: {
						5: "Dick++",
						99: "Junk++"
					},
					99: {
						8: "Dick+++",
						99: "Junk+++"
					}
				},
				holes: { // indices [vagina, anus]
					2: {
						2: null,
						3: "A+",
						4: "A++"
					},
					3: {
						2: "V+",
						3: "V+A+"
					},
					4: {
						3: "V++",
						4: "V++A++"
					}
				}
			},
			titsAss: { // indices: [boobs, butt, FSAssetExpansionist(0,1), weight+100, muscles+100]
				499: {
					2: {
						2: { // FSAssetExpansionist doesn't matter
							109: {
								130: {desc: "Girlish", style: "pink"},
							},
						},
					},
					4: null,
					6: {desc: "Ass", style: "pink"},
					8: {desc: "Ass+", style: "pink"},
					9: {desc: "Ass++", style: "pink"},
					999: {desc: "Ass+++", style: "pink"},
				},
				799: {
					4: null,
					6: {desc: "Ass", style: "pink"},
					8: {desc: "Ass+", style: "pink"},
					9: {desc: "Ass++", style: "pink"},
					999: {desc: "Ass+++", style: "pink"},
				},
				1999: {
					4: {desc: "Boobs", style: "pink"},
					999: {desc: "T&A", style: "pink"}
				},
				3999: {
					6: {desc: "Boobs+", style: "pink"},
					999: {desc: "T&A+", style: "pink"}
				},
				11999: {
					8: {desc: "Boobs++", style: "pink"},
					999: {desc: "T&A++", style: "pink"},
				},
				100000: {
					9: {desc: "Boobs+++", style: "pink"},
					999: {desc: "T&A+++", style: "pink"}
				}
			},
			weight: { // indices: [weigh + 100, FSHedonisticDecadence (0,1), hips + 2]
				4: {desc: "W---", style: ["red", "strong"]},
				69: {
					99: { // FSHedonisticDecadence doesn't matter
						0: {desc: "W--", style: "strong"},
						5: {desc: "W--", style: ["red", "strong"]}
					}
				},
				89: {desc: "W-", style: "strong"},
				110: {desc: "W", style: "strong"},
				130: {desc: "W+", style: "strong"},
				195: {
					0: {
						3: {desc: "W++", style: ["red", "strong"]},
						99: {desc: "W++", style: "strong"}
					},
					1: {desc: "W++", style: "strong"}
				},
				230: {
					0: {
						4: {desc: "W+++", style: ["red", "strong"]},
						99: {desc: "W+++", style: "strong"}
					},
					1: {desc: "W+++", style: "strong"},
				},
				260: {
					0: {desc: "W++++", style: ["red", "strong"]},
					1: {desc: "W++++", style: "strong"}
				},
				290: {
					0: {desc: "W+++++", style: ["red", "strong"]},
					1: {desc: "W+++++", style: "strong"}
				},
				999: {
					0: {desc: "W++++++", style: ["red", "strong"]},
					1: {desc: "W++++++", style: "strong"}
				}
			},
			hipsAss: {
				0: {desc: "Disp-", style: "red"},
				1: {desc: "Disp+", style: "red"}
			},
			muscles: { // indices: [muscles + 100, FSPhysicalIdealist(0,1) ]
				4: {desc: "Weak++", style: "red"},
				69: {
					0: {desc: "Soft+"},
					1: {desc: "Weak+", style: "red"}
				},
				94: {
					0: {desc: "Soft"},
					1: {desc: "Weak", style: "red"}
				},
				105: {desc: "Soft"},
				130: {desc: "Toned"},
				150: {desc: "Fit"},
				195: {desc: "Musc+"},
				200: {desc: "Musc++"}
			}
		},
		mental: {
			devotion: { // devotion value + 100
				4: {desc: "VHate", style: ["devotion", "hateful"]},
				49: {desc: "Hate", style: ["devotion", "hateful"]},
				79: {desc: "Res", style: ["devotion", "resistant"]},
				120: {desc: "Ambiv", style: ["devotion", "ambivalent"]},
				150: {desc: "Accept", style: ["devotion", "accept"]},
				195: {desc: "Devo", style: ["devotion", "devoted"]},
				200: {desc: "Wor", style: ["devotion", "worship"]}
			},
			trust: { // first key: trust + 100, second key: devotion + 100
				4: {desc: "ETerr", style: ["trust", "extremely-terrified"]},
				49: {desc: "Terr", style: ["trust", "terrified"]},
				79: {desc: "Fright", style: ["trust", "frightened"]},
				120: {desc: "Fear", style: ["trust", "fearful"]},
				150: {
					79: {desc: "Caref", style: ["defiant", "careful"]},
					200: {desc: "Caref", style: ["trust", "careful"]},
				},
				195: {
					79: {desc: "Bold", style: ["defiant", "bold"]},
					200: {desc: "Trust", style: ["trust", "trusting"]},
				},
				200: {
					79: {desc: "Defiant", style: ["defiant", "full"]},
					200: {desc: "VTrust", style: ["trust", "prof-trusting"]},
				}
			},
			education: { // index: intelligenceImplant + 15
				0: "(e-)",
				29: "",
				44: "(e)",
				99: "(e+)"
			},
			intelligence: { // index: intelligence + 100
				4: {desc: "I---", style: "unintelligent"},
				49: {desc: "I--", style: "unintelligent"},
				84: {desc: "I-", style: "unintelligent"},
				115: {desc: "I"},
				150: {desc: "I+", style: "intelligent"},
				195: {desc: "I++", style: "intelligent"},
				230: {desc: "I+++", style: "intelligent"},
				999: {desc: "I++++", style: "intelligent"},
			},
			behavioralFlaw: {
				"arrogant": "Arrog",
				"bitchy": "Bitchy",
				"odd": "Odd",
				"hates men": "Men-",
				"hates women": "Women-",
				"gluttonous": "Glut",
				"anorexic": "Ano",
				"devout": "Dev",
				"liberated": "Lib",
			},
			sexualFlaw: {
				"hates oral": {desc: "Oral-", style: "red"},
				"hates anal": {desc: "Anal-", style: "red"},
				"hates penetration": {desc: "Fuck-", style: "red"},
				"shamefast": {desc: "Shame", style: "red"},
				"idealistic": {desc: "Ideal", style: "red"},
				"repressed": {desc: "Repre", style: "red"},
				"apathetic": {desc: "Apath", style: "red"},
				"crude": {desc: "Crude", style: "red"},
				"judgemental": {desc: "Judge", style: "red"},
				"cum addict": {desc: "CumAdd", style: "yellow"},
				"anal addict": {desc: "AnalAdd", style: "yellow"},
				"attention whore": {desc: "Attention", style: "yellow"},
				"breast growth": {desc: "BoobObsess", style: "yellow"},
				"abusive": {desc: "Abusive", style: "yellow"},
				"malicious": {desc: "Malice", style: "yellow"},
				"self hating": {desc: "SelfHatr", style: "yellow"},
				"neglectful": {desc: "SelfNeglect", style: "yellow"},
				"breeder": {desc: "BreedObsess", style: "yellow"},
			},
			behavioralQuirk: {
				"confident": "Confid",
				"cutting": "Cutting",
				"funny": "Funny",
				"fitness": "Fit",
				"adores women": "Women+",
				"adores men": "Men+",
				"insecure": "Insec",
				"sinful": "Sinf",
				"advocate": "Advoc",
			},
			sexualQuirk: {
				"gagfuck queen": "Gagfuck",
				"painal queen": "Painal",
				"strugglefuck queen": "Struggle",
				"tease": "Tease",
				"romantic": "Romantic",
				"perverted": "Perverted",
				"caring": "Caring",
				"unflinching": "Unflinch",
				"size queen": "SizeQ",
			}
		},
		health: {
			tiredness: {
				30: {desc: "Ene", style: "green"},
				60: {desc: "Tir", style: "yellow"},
				90: {desc: "Tir+", style: "orange"},
				100: {desc: "Exh", style: ["red", "strong"]}
			}
		},
		accent: {
			1: {desc: "Acc", style: "pink"},
			2: {desc: "Acc-"},
			3: {desc: "Acc--"},
			4: {desc: "Acc--", style: "red"},
		},
		fetish: { // indices [fetish, fetishStrength]
			"submissive": {
				60: "Sub",
				95: "Sub+",
				100: "Sub++"
			},
			"cumslut": {
				60: "Oral",
				95: "Oral+",
				100: "Oral++"
			},
			"humiliation": {
				60: "Humil",
				95: "Humil+",
				100: "Humil++"
			},
			"buttslut": {
				60: "Anal",
				95: "Anal+",
				100: "Anal++"
			},
			"boobs": {
				60: "Boobs",
				95: "Boobs+",
				100: "Boobs++"
			},
			"sadist": {
				60: "Sadist",
				95: "Sadist+",
				100: "Sadist++"
			},
			"masochist": {
				60: "Pain",
				95: "Pain+",
				100: "Pain++"
			},
			"dom": {
				60: "Dom",
				95: "Dom+",
				100: "Dom++"
			},
			"pregnancy": {
				60: "Preg",
				95: "Preg+",
				100: "Preg++"
			},
			"none": "Vanilla"
		},
		prestige: {
			0: null,
			1: {desc: "Prest", style: "prestigious"},
			2: {desc: "Prest+", style: "prestigious"},
			3: {desc: "Prest++", style: "prestigious"},
		},
		pornPrestige: {
			0: null,
			1: {desc: "PPrest", style: "prestigious"},
			2: {desc: "PPrest+", style: "prestigious"},
			3: {desc: "PPrest++", style: "prestigious"},
		},
		diet: {
			"restricted": "Di:W-",
			"fattening": "Di:W+",
			"corrective": "Di:W=",
			"XX": "Di:XX+",
			"XY": "Di:XY+",
			"XXY": "Di:XXY+",
			"muscle building": "Di:M+",
			"slimming": "Di:M-",
			"cum production": "Di:C+",
			"cleansing": "Di:H+",
			"fertility": "Di:F+",

		},
		specialDiet: { // index: dietCum + 3 * dietMilk
			0: null,
			1: "Cum+",
			2: "Cum++",
			3: "Milk+",
			4: "Cum+ Milk+",
			5: "Cum++ Milk+",
			6: "Milk++",
			7: "Cum+ Milk++",
			8: "Cum++ Milk++"
		},
		drugs: {
			"breast injections": "Boobs+",
			"intensive breast injections": "Boobs++",
			"hyper breast injections": "Boobs+++",
			"nipple enhancers": "Nipple+",
			"butt injections": "Butt+",
			"intensive butt injections": "Butt++",
			"hyper butt injections": "Butt+++",
			"lip injections": "Lip+",
			"fertility drugs": "Fert+",
			"super fertility drugs": "Fert++",
			"penis enhancement": "Dick+",
			"intensive penis enhancement": "Dick++",
			"hyper penis enhancement": "Dick+++",
			"testicle enhancement": "Balls+",
			"intensive testicle enhancement": "Balls++",
			"hyper testicle enhancement": "Balls+++",
			"psychosuppressants": "Psych-",
			"psychostimulants": "Psych+",
			"steroids": "Ster",
			"female hormone injections": "HormXX++",
			"male hormone injections": "HormXY++",
			"hormone enhancers": "Horm+",
			"hormone blockers": "Horm-",
			"anti-aging cream": "Age-",
			"appetite suppressors": "ApSup",
			"penis atrophiers": "Dick-",
			"testicle atrophiers": "Balls-",
			"clitoris atrophiers": "Clit-",
			"labia atrophiers": "Labia-",
			"nipple atrophiers": "Nipple-",
			"lip atrophiers": "Lip-",
			"breast redistributors": "Breast-",
			"butt redistributors": "Butt-",
			"sag-B-gone": "AntiSag",
			"growth stimulants": "GroStim",
			"priapism agents": "Erection"
		},
		nationality: { // NOTE this dictionary lacks "Zimbabwean" key, which is a spacial case
			"Afghan": "Afg",
			"Albanian": "Alb",
			"Algerian": "Alg",
			"American": "USA",
			"Andorran": "And",
			"Angolan": "Ang",
			"Antiguan": "AB",
			"Argentinian": "Arg",
			"Armenian": "Arm",
			"Aruban": "Aru",
			"Australian": "Aus",
			"Austrian": "Aut",
			"Azerbaijani": "Aze",
			"Bahamian": "Bah",
			"Bahraini": "Bah",
			"Bangladeshi": "Bgd",
			"Barbadian": "Bar",
			"Belarusian": "Ber",
			"Belgian": "Bel",
			"Belizean": "Blz",
			"Beninese": "Ben",
			"Bermudian": "Bmd",
			"Bhutanese": "Bhu",
			"Bissau-Guinean": "GB",
			"Bolivian": "Bol",
			"Bosnian": "Bos",
			"Brazilian": "Bra",
			"British": "UK",
			"Bruneian": "Bru",
			"Bulgarian": "Bul",
			"Burkinabé": "BF",
			"Burmese": "Bur",
			"Burundian": "Bnd",
			"Cambodian": "Kam",
			"Cameroonian": "Cam",
			"Canadian": "Can",
			"Cape Verdean": "CV",
			"Catalan": "Cat",
			"Central African": "CAR",
			"Chadian": "Cha",
			"Chilean": "Chl",
			"Chinese": "Chi",
			"Colombian": "Col",
			"Comorian": "Com",
			"Congolese": "RC",
			"a Cook Islander": "CI",
			"Costa Rican": "CR",
			"Croatian": "Cro",
			"Cuban": "Cub",
			"Curaçaoan": "Cur",
			"Cypriot": "Cyp",
			"Czech": "Cze",
			"Danish": "Den",
			"Djiboutian": "Dji",
			"Dominican": "DR",
			"Dominiquais": "Dom",
			"Dutch": "Nld",
			"East Timorese": "ET",
			"Ecuadorian": "Ecu",
			"Egyptian": "Egy",
			"Emirati": "UAE",
			"Equatoguinean": "EG",
			"Eritrean": "Eri",
			"Estonian": "Est",
			"Ethiopian": "Eth",
			"Fijian": "Fij",
			"Filipina": "Phl",
			"Finnish": "Fin",
			"French": "Fra",
			"French Guianan": "FG",
			"French Polynesian": "FP",
			"Gabonese": "Gab",
			"Gambian": "Gam",
			"Georgian": "Geo",
			"German": "Ger",
			"Ghanan": "Gha",
			"Greek": "Gre",
			"Greenlandic": "Grn",
			"Grenadian": "Gda",
			"Guamanian": "Gua",
			"Guatemalan": "Gtm",
			"Guinean": "Gui",
			"Guyanese": "Guy",
			"Haitian": "Hai",
			"Honduran": "Hon",
			"Hungarian": "Hun",
			"I-Kiribati": "Kir",
			"Icelandic": "Ice",
			"Indian": "Ind",
			"Indonesian": "Idn",
			"Iranian": "Irn",
			"Iraqi": "Irq",
			"Irish": "Irl",
			"Israeli": "Isr",
			"Italian": "Ita",
			"Ivorian": "IC",
			"Jamaican": "Jam",
			"Japanese": "Jpn",
			"Jordanian": "Jor",
			"Kazakh": "Kaz",
			"Kenyan": "Ken",
			"Kittitian": "SKN",
			"Korean": "Kor",
			"Kosovan": "Kos",
			"Kurdish": "Kur",
			"Kuwaiti": "Kuw",
			"Kyrgyz": "Kyr",
			"Laotian": "Lao",
			"Latvian": "Lat",
			"Lebanese": "Lbn",
			"Liberian": "Lib",
			"Libyan": "Lby",
			"a Liechtensteiner": "Lie",
			"Lithuanian": "Lit",
			"Luxembourgian": "Lux",
			"Macedonian": "Mac",
			"Malagasy": "Mad",
			"Malawian": "Mwi",
			"Malaysian": "Mys",
			"Maldivian": "Mdv",
			"Malian": "Mal",
			"Maltese": "Mlt",
			"Marshallese": "MI",
			"Mauritanian": "Mta",
			"Mauritian": "Mts",
			"Mexican": "Mex",
			"Micronesian": "FSM",
			"Moldovan": "Mol",
			"Monégasque": "Mnc",
			"Mongolian": "Mon",
			"Montenegrin": "Mng",
			"Moroccan": "Mor",
			"Mosotho": "Les",
			"Motswana": "Bot",
			"Mozambican": "Moz",
			"Namibian": "Nam",
			"Nauruan": "Nau",
			"Nepalese": "Npl",
			"New Caledonian": "NC",
			"a New Zealander": "NZ",
			"Ni-Vanuatu": "Van",
			"Nicaraguan": "Nic",
			"Nigerian": "Nga",
			"Nigerien": "Ngr",
			"Niuean": "Niu",
			"Norwegian": "Nor",
			"Omani": "Omn",
			"Pakistani": "Pak",
			"Palauan": "Plu",
			"Palestinian": "Pal",
			"Panamanian": "Pan",
			"Papua New Guinean": "PNG",
			"Paraguayan": "Par",
			"Peruvian": "Per",
			"Polish": "Pol",
			"Portuguese": "Por",
			"Puerto Rican": "PR",
			"Qatari": "Qat",
			"Romanian": "Rom",
			"Russian": "Rus",
			"Rwandan": "Rwa",
			"Sahrawi": "Sah",
			"Saint Lucian": "SL",
			"Salvadoran": "ES",
			"Sammarinese": "SM",
			"Samoan": "Sam",
			"São Toméan": "STP",
			"Saudi": "Sau",
			"Scottish": "Sco",
			"Senegalese": "Sen",
			"Serbian": "Srb",
			"Seychellois": "Sey",
			"Sierra Leonean": "Sie",
			"Singaporean": "Sng",
			"Slovak": "Svk",
			"Slovene": "Svn",
			"a Solomon Islander": "SI",
			"Somali": "Som",
			"South African": "RSA",
			"South Sudanese": "SS",
			"Spanish": "Spa",
			"Sri Lankan": "Sri",
			"Sudanese": "Sud",
			"Surinamese": "Sur",
			"Swazi": "Swa",
			"Swedish": "Swe",
			"Swiss": "Swi",
			"Syrian": "Syr",
			"Taiwanese": "Tai",
			"Tajik": "Taj",
			"Tanzanian": "Tza",
			"Thai": "Tha",
			"Tibetan": "Tib",
			"Togolese": "Tog",
			"Tongan": "Ton",
			"Trinidadian": "TT",
			"Tunisian": "Tun",
			"Turkish": "Tur",
			"Turkmen": "Tkm",
			"Tuvaluan": "Tuv",
			"Ugandan": "Uga",
			"Ukrainian": "Ukr",
			"Uruguayan": "Uru",
			"Uzbek": "Uzb",
			"Vatican": "VC",
			"Venezuelan": "Ven",
			"Vietnamese": "Vnm",
			"Vincentian": "SVG",
			"Yemeni": "Yem",
			"Zairian": "DRC",
			"Zambian": "Zam",
			"Ancient Chinese Revivalist": "Chi Rev",
			"Ancient Egyptian Revivalist": "Egy Rev",
			"Arabian Revivalist": "Ara Rev",
			"Aztec Revivalist": "Azt Rev",
			"Edo Revivalist": "Edo Rev",
			"Roman Revivalist": "Rom Rev",
			"": "None",
			"none": "None",
			"slave": "None",
			"Stateless": "None"
		},
		race: {
			"white": "C",
			"asian": "A",
			"indo-aryan": "I",
			"latina": "L",
			"middle eastern": "ME",
			"black": "B",
			"pacific islander": "PI",
			"catgirl": "CT",
			"malay": "M",
			"amerindian": "AI",
			"semitic": "S",
			"southern european": "SE",
			"mixed race": "MR",
		},
		skin: {
			"pure white": "P. Whi",
			"extremely fair": "E. Fai",
			"very fair": "V. Fai",
			"extremely pale": "E. Pal",
			"very pale": "V. Pal",
			"light brown": "L. Br",
			"dark brown": "D. Br",
			"light olive": "L. Oli",
			"dark olive": "D. Oli",
			"light beige": "L. Bei",
			"dark beige": "D. Bei",
			"tan": "Tan",
			"bronze": "Bron",
			"ebony": "Ebon",
			"black and white striped": "BnW",
			"red": "Rd",
			"yellow": "Ylw",
			"pure black": "P. Bla",
			"dark": "Dark",
			"fair": "Fair",
			"pale": "Pale"
		},
		smartVibrator: {
			setting: {
				"off": "-",
				"submissive": "sub",
				"lesbian": "les",
				"oral": "oral",
				"humiliation": "humil",
				"anal": "anal",
				"boobs": "boobs",
				"sadist": "sade",
				"masochist": "pain",
				"dom": "dom",
				"pregnancy": "pregnancy",
				"vanilla": "vanilla",
				"all": "all",
				"none": "none",
				"monitoring": "monitoring",
				"men": "men",
				"women": "women",
				"anti-men": "anti-men",
				"anti-women": "anti-women",
			},
			system: {
				"piercing": "SP",
				"bullet": "SB",
				"vibe": "SV"
			}
		},
		skills: {
			entertainment: {
				10: null,
				29: {desc: "E", style: "skill"},
				59: {desc: "E+", style: "skill"},
				99: {desc: "E++", style: "skill"},
				999: {desc: "E+++", style: "skill"}
			},
			sex: { // indices: [sexSkills, hasVagina(0,1), hasPenis(0,2)]
				30: {desc: "S-", style: "skill"},
				90: {desc: "S+", style: "skill"},
				120: {desc: "S++", style: "skill"},
				180: {
					0: {desc: "S0++", style: "skill"},
					1: {desc: "S++", style: "skill"},
					2: {desc: "Sh++", style: "skill"},
					3: {desc: "SF++", style: "skill"}
				},
				9999: {desc: "S++", style: "skill"}
			},
			whoring: {
				10: null,
				29: {desc: "W", style: "skill"},
				59: {desc: "W+", style: "skill"},
				99: {desc: "W++", style: "skill"},
				999: {desc: "W+++", style: "skill"}
			},
			mss: {desc: "MSS", style: "skill"},
			combat: {
				10: null,
				30: {desc: "C", style: "skill"},
				60: {desc: "C+", style: "skill"},
				99: {desc: "C++", style: "skill"},
				999: {desc: "C+++", style: "skill"}
			},
		},
		sexDrive: {
			XX: {
				5: {desc: "XX---", style: "red"},
				15: {desc: "XX--", style: "red"},
				35: {desc: "XX-", style: "red"},
				65: {desc: "XX"},
				85: {desc: "XX+", style: "green"},
				95: {desc: "XX++", style: "green"},
				999: {desc: "XX+++", style: "green"}
			},
			XY: {
				5: {desc: "XY---", style: "red"},
				15: {desc: "XY--", style: "red"},
				35: {desc: "XY-", style: "red"},
				65: {desc: "XY"},
				85: {desc: "XY+", style: "green"},
				95: {desc: "XY++", style: "green"},
				999: {desc: "XY+++", style: "green"}
			},
			energy: {
				20: {desc: "SD--", style: "red"},
				40: {desc: "SD-", style: "red"},
				60: {desc: "SD", style: "yellow"},
				80: {desc: "SD+", style: "green"},
				95: {desc: "SD++", style: "green"},
				999: {desc: "Nympho!", style: "green"}
			},
			synergy: {
				omni: {desc: "Omni!", style: "green"},
				nymphomni: {desc: "Omni+Nympho!!", style: "green"}
			}
		}
	}
};


code:
App.Data.NationalityPresets = {};

/**
 * @type {Map<string, Record<string,number>>}
 */
App.Data.NationalityPresets.Vanilla = new Map([
	["Vanilla Global", {
		Afghan: 2,
		Albanian: 1,
		Algerian: 3,
		American: 6,
		Andorran: 1,
		Angolan: 1,
		Antiguan: 1,
		Argentinian: 4,
		Armenian: 2,
		Aruban: 1,
		Australian: 3,
		Austrian: 2,
		Azerbaijani: 1,
		Bahamian: 1,
		Bahraini: 1,
		Bangladeshi: 4,
		Barbadian: 1,
		Belarusian: 1,
		Belgian: 2,
		Belizean: 1,
		Beninese: 1,
		Bermudian: 1,
		Bhutanese: 1,
		"Bissau-Guinean": 1,
		Bolivian: 2,
		Bosnian: 1,
		Brazilian: 4,
		British: 3,
		Bruneian: 1,
		Bulgarian: 2,
		Burkinabé: 1,
		Burmese: 2,
		Burundian: 1,
		Cambodian: 1,
		Cameroonian: 1,
		Canadian: 2,
		"Cape Verdean": 1,
		Catalan: 1,
		"Central African": 1,
		Chadian: 1,
		Chilean: 2,
		Chinese: 15,
		Colombian: 3,
		Comorian: 1,
		Congolese: 1,
		"a Cook Islander": 1,
		"Costa Rican": 1,
		Croatian: 1,
		Cuban: 2,
		Curaçaoan: 1,
		Cypriot: 1,
		Czech: 2,
		Danish: 2,
		Djiboutian: 1,
		Dominican: 2,
		Dominiquais: 1,
		Dutch: 2,
		"East Timorese": 1,
		Ecuadorian: 1,
		Egyptian: 3,
		Emirati: 2,
		Equatoguinean: 1,
		Eritrean: 1,
		Estonian: 2,
		Ethiopian: 3,
		Fijian: 1,
		Filipina: 3,
		Finnish: 2,
		French: 3,
		"French Guianan": 1,
		"French Polynesian": 1,
		Gabonese: 1,
		Gambian: 1,
		Georgian: 1,
		German: 3,
		Ghanan: 2,
		Greek: 2,
		Greenlandic: 1,
		Grenadian: 1,
		Guamanian: 1,
		Guatemalan: 1,
		Guinean: 1,
		Guyanese: 1,
		Haitian: 2,
		Honduran: 1,
		Hungarian: 2,
		"I-Kiribati": 1,
		Icelandic: 2,
		Indian: 11,
		Indonesian: 5,
		Iranian: 3,
		Iraqi: 2,
		Irish: 2,
		Israeli: 2,
		Italian: 3,
		Ivorian: 1,
		Jamaican: 2,
		Japanese: 3,
		Jordanian: 2,
		Kazakh: 2,
		Kenyan: 3,
		Kittitian: 1,
		Korean: 2,
		Kosovan: 1,
		Kurdish: 1,
		Kuwaiti: 1,
		Kyrgyz: 1,
		Laotian: 1,
		Latvian: 1,
		Lebanese: 2,
		Liberian: 1,
		Libyan: 2,
		"a Liechtensteiner": 1,
		Lithuanian: 2,
		Luxembourgian: 1,
		Macedonian: 1,
		Malagasy: 1,
		Malawian: 1,
		Malaysian: 3,
		Maldivian: 1,
		Malian: 2,
		Maltese: 1,
		Marshallese: 1,
		Mauritanian: 1,
		Mauritian: 1,
		Mexican: 4,
		Micronesian: 1,
		Moldovan: 1,
		Monégasque: 1,
		Mongolian: 1,
		Montenegrin: 1,
		Moroccan: 2,
		Mosotho: 1,
		Motswana: 1,
		Mozambican: 1,
		Namibian: 1,
		Nauruan: 1,
		Nepalese: 2,
		"New Caledonian": 1,
		"a New Zealander": 2,
		"Ni-Vanuatu": 1,
		Nicaraguan: 2,
		Nigerian: 4,
		Nigerien: 2,
		Niuean: 1,
		Norwegian: 2,
		Omani: 2,
		Pakistani: 3,
		Palauan: 1,
		Palestinian: 1,
		Panamanian: 1,
		"Papua New Guinean": 1,
		Paraguayan: 1,
		Peruvian: 2,
		Polish: 3,
		Portuguese: 2,
		"Puerto Rican": 1,
		Qatari: 1,
		Romanian: 2,
		Russian: 4,
		Rwandan: 1,
		Sahrawi: 1,
		"Saint Lucian": 1,
		Salvadoran: 2,
		Sammarinese: 1,
		Samoan: 1,
		"São Toméan": 1,
		Saudi: 2,
		Scottish: 1,
		Senegalese: 1,
		Serbian: 2,
		Seychellois: 1,
		"Sierra Leonean": 1,
		Singaporean: 1,
		Slovak: 2,
		Slovene: 1,
		"a Solomon Islander": 1,
		Somali: 1,
		"South African": 4,
		"South Sudanese": 1,
		Spanish: 3,
		"Sri Lankan": 1,
		Sudanese: 3,
		Surinamese: 1,
		Swazi: 1,
		Swedish: 2,
		Swiss: 2,
		Syrian: 1,
		Taiwanese: 1,
		Tajik: 1,
		Tanzanian: 2,
		Thai: 3,
		Tibetan: 1,
		Togolese: 1,
		Tongan: 1,
		Trinidadian: 1,
		Tunisian: 2,
		Turkish: 3,
		Turkmen: 1,
		Tuvaluan: 1,
		Ugandan: 2,
		Ukrainian: 3,
		Uruguayan: 2,
		Uzbek: 2,
		Vatican: 1,
		Venezuelan: 3,
		Vietnamese: 3,
		Vincentian: 1,
		Yemeni: 2,
		Zairian: 3,
		Zambian: 1,
		Zimbabwean: 2
	}],
	["Vanilla North America", {
		American: 6,
		Antiguan: 1,
		Aruban: 1,
		Bahamian: 1,
		Barbadian: 1,
		Belizean: 1,
		Bermudian: 1,
		Canadian: 2,
		"Costa Rican": 1,
		Cuban: 2,
		Curaçaoan: 1,
		Dominican: 2,
		Dominiquais: 1,
		Greenlandic: 1,
		Grenadian: 1,
		Guatemalan: 1,
		Haitian: 2,
		Honduran: 1,
		Jamaican: 2,
		Kittitian: 1,
		Mexican: 4,
		Nicaraguan: 2,
		Panamanian: 1,
		"Puerto Rican": 1,
		"Saint Lucian": 1,
		Salvadoran: 2,
		Trinidadian: 1,
		Vincentian: 1
	}],
	["Vanilla South America", {
		Argentinian: 4,
		Bolivian: 2,
		Brazilian: 4,
		Chilean: 2,
		Colombian: 3,
		Ecuadorian: 1,
		"French Guianan": 1,
		Guyanese: 1,
		Paraguayan: 1,
		Peruvian: 2,
		Surinamese: 1,
		Uruguayan: 2,
		Venezuelan: 3
	}],
	["Vanilla Middle East", {
		Afghan: 2,
		Armenian: 2,
		Azerbaijani: 1,
		Bahraini: 1,
		Cypriot: 1,
		Egyptian: 3,
		Emirati: 2,
		Georgian: 1,
		Iranian: 3,
		Iraqi: 2,
		Israeli: 2,
		Jordanian: 2,
		Kurdish: 1,
		Kuwaiti: 1,
		Lebanese: 2,
		Omani: 2,
		Palestinian: 1,
		Qatari: 1,
		Saudi: 2,
		Syrian: 1,
		Turkish: 3,
		Yemeni: 2
	}],
	["Vanilla Africa", {
		Algerian: 3,
		Angolan: 1,
		Beninese: 1,
		"Bissau-Guinean": 1,
		Burkinabé: 1,
		Burundian: 1,
		Cameroonian: 1,
		"Cape Verdean": 1,
		"Central African": 1,
		Chadian: 1,
		Comorian: 1,
		Congolese: 1,
		Djiboutian: 1,
		Equatoguinean: 1,
		Eritrean: 1,
		Ethiopian: 3,
		Gabonese: 1,
		Gambian: 1,
		Ghanan: 2,
		Guinean: 1,
		Ivorian: 1,
		Kenyan: 3,
		Liberian: 1,
		Libyan: 2,
		Malagasy: 1,
		Malawian: 1,
		Malian: 2,
		Mauritanian: 1,
		Mauritian: 1,
		Moroccan: 2,
		Mosotho: 1,
		Motswana: 1,
		Mozambican: 1,
		Namibian: 1,
		Nigerian: 4,
		Nigerien: 2,
		Rwandan: 1,
		Sahrawi: 1,
		"São Toméan": 1,
		Senegalese: 1,
		Seychellois: 1,
		"Sierra Leonean": 1,
		Somali: 1,
		"South African": 4,
		"South Sudanese": 1,
		Sudanese: 3,
		Swazi: 1,
		Tanzanian: 2,
		Togolese: 1,
		Tunisian: 2,
		Ugandan: 2,
		Zairian: 3,
		Zambian: 1,
		Zimbabwean: 2
	}],
	["Vanilla Asia", {
		Bangladeshi: 4,
		Bhutanese: 1,
		Bruneian: 1,
		Burmese: 2,
		Cambodian: 1,
		Chinese: 15,
		"East Timorese": 1,
		Filipina: 3,
		Indian: 11,
		Indonesian: 5,
		Japanese: 3,
		Kazakh: 2,
		Korean: 2,
		Kyrgyz: 1,
		Laotian: 1,
		Malaysian: 3,
		Maldivian: 1,
		Mongolian: 1,
		Nepalese: 2,
		Pakistani: 3,
		Singaporean: 1,
		"Sri Lankan": 1,
		Taiwanese: 1,
		Tajik: 1,
		Thai: 3,
		Tibetan: 1,
		Turkmen: 1,
		Uzbek: 2,
		Vietnamese: 3
	}],
	["Vanilla Europe", {
		Albanian: 1,
		Andorran: 1,
		Austrian: 2,
		Belarusian: 1,
		Belgian: 2,
		Bosnian: 1,
		British: 3,
		Bulgarian: 2,
		Catalan: 1,
		Croatian: 1,
		Czech: 2,
		Danish: 2,
		Dutch: 2,
		Estonian: 2,
		Finnish: 2,
		French: 3,
		German: 3,
		Greek: 2,
		Hungarian: 2,
		Icelandic: 2,
		Irish: 2,
		Italian: 3,
		Kosovan: 1,
		Latvian: 1,
		"a Liechtensteiner": 1,
		Lithuanian: 2,
		Luxembourgian: 1,
		Macedonian: 1,
		Maltese: 1,
		Moldovan: 1,
		Monégasque: 1,
		Montenegrin: 1,
		Norwegian: 2,
		Polish: 3,
		Portuguese: 2,
		Romanian: 2,
		Russian: 4,
		Sammarinese: 1,
		Scottish: 1,
		Serbian: 2,
		Slovak: 2,
		Slovene: 1,
		Spanish: 3,
		Swedish: 2,
		Swiss: 2,
		Ukrainian: 3,
		Vatican: 1
	}],
	["Vanilla Australia", {
		Australian: 3,
		"a Cook Islander": 1,
		Fijian: 1,
		"French Polynesian": 1,
		Guamanian: 1,
		"I-Kiribati": 1,
		Marshallese: 1,
		Micronesian: 1,
		Nauruan: 1,
		"New Caledonian": 1,
		"a New Zealander": 2,
		"Ni-Vanuatu": 1,
		Niuean: 1,
		Palauan: 1,
		"Papua New Guinean": 1,
		Samoan: 1,
		"a Solomon Islander": 1,
		Tongan: 1,
		Tuvaluan: 1
	}],
]);

/**
 * @type {Map<string, Record<string,number>>}
 */
App.Data.NationalityPresets.Mod = new Map([
	["Realism North America", {
		American: 36503,
		Antiguan: 11,
		Aruban: 10,
		Bahamian: 45,
		Barbadian: 28,
		Belizean: 50,
		Bermudian: 5,
		Canadian: 4188,
		"Costa Rican": 555,
		Cuban: 1141,
		Curaçaoan: 17,
		Dominican: 1249,
		Dominiquais: 7,
		Greenlandic: 5,
		Grenadian: 11,
		Guatemalan: 2277,
		Haitian: 1303,
		Honduran: 1177,
		Jamaican: 290,
		Kittitian: 6,
		Mexican: 15306,
		Nicaraguan: 731,
		Panamanian: 515,
		"Puerto Rican": 354,
		"Saint Lucian": 18,
		Salvadoran: 688,
		Trinidadian: 136,
		Vincentian: 11
	}],
	["Realism South America", {
		Argentinian: 5102,
		Bolivian: 1392,
		Brazilian: 22920,
		Chilean: 2005,
		Colombian: 5105,
		Ecuadorian: 2055,
		"French Guianan": 41,
		Guyanese: 83,
		Paraguayan: 817,
		Peruvian: 3829,
		Surinamese: 63,
		Uruguayan: 362,
		Venezuelan: 3826
	}],
	["Realism Middle East", {
		Afghan: 5090,
		Armenian: 286,
		Azerbaijani: 1086,
		Bahraini: 212,
		Cypriot: 131,
		Egyptian: 12826,
		Emirati: 1164,
		Georgian: 366,
		Iranian: 9047,
		Iraqi: 5982,
		Israeli: 1062,
		Jordanian: 1184,
		Kurdish: 7258,
		Kuwaiti: 511,
		Lebanese: 533,
		Omani: 612,
		Palestinian: 746,
		Qatari: 340,
		Saudi: 4131,
		Syrian: 2888,
		Turkish: 9091,
		Yemeni: 3996
	}],
	["Realism Africa", {
		Algerian: 5107,
		Angolan: 5166,
		Beninese: 1756,
		"Bissau-Guinean": 275,
		Burkinabé: 3105,
		Burundian: 1797,
		Cameroonian: 3688,
		"Cape Verdean": 66,
		"Central African": 679,
		Chadian: 2431,
		Comorian: 116,
		Congolese: 827,
		Djiboutian: 118,
		Equatoguinean: 210,
		Eritrean: 742,
		Ethiopian: 15303,
		Gabonese: 282,
		Gambian: 338,
		Ghanan: 4071,
		Guinean: 1978,
		Ivorian: 3741,
		Kenyan: 7408,
		Liberian: 727,
		Libyan: 760,
		Malagasy: 3989,
		Malawian: 3010,
		Malian: 3098,
		Mauritanian: 676,
		Mauritian: 128,
		Moroccan: 4240,
		Mosotho: 275,
		Motswana: 297,
		Mozambican: 4824,
		Namibian: 352,
		Nigerian: 29732,
		Nigerien: 4187,
		Rwandan: 1754,
		Sahrawi: 80,
		"São Toméan": 29,
		Senegalese: 2486,
		Seychellois: 9,
		"Sierra Leonean": 1056,
		Somali: 2469,
		"South African": 6688,
		"South Sudanese": 1918,
		Sudanese: 6099,
		Swazi: 177,
		Tanzanian: 9586,
		Togolese: 1166,
		Tunisian: 1316,
		Ugandan: 7338,
		Zairian: 13815,
		Zambian: 2844,
		Zimbabwean: 2355
	}],
	["Realism Asia", {
		Bangladeshi: 19160,
		Bhutanese: 94,
		Bruneian: 50,
		Burmese: 6043,
		Cambodian: 1972,
		Chinese: 143350,
		"East Timorese": 187,
		Filipina: 13266,
		Indian: 156457,
		Indonesian: 30475,
		Japanese: 11849,
		Kazakh: 2095,
		Korean: 7977,
		Kyrgyz: 730,
		Laotian: 841,
		Malaysian: 3838,
		Maldivian: 52,
		Mongolian: 369,
		Nepalese: 3456,
		Pakistani: 26109,
		Singaporean: 647,
		"Sri Lankan": 2149,
		Taiwanese: 2410,
		Tajik: 1202,
		Thai: 6919,
		Tibetan: 435,
		Turkmen: 707,
		Uzbek: 3805,
		Vietnamese: 3255
	}],
	/* I need reweighting and possibly country additions */
	["Realism Europe", {
		Albanian: 289,
		Andorran: 7,
		Austrian: 897,
		Belarusian: 899,
		Belgian: 1215,
		Bosnian: 333,
		British: 7189,
		Bulgarian: 615,
		Catalan: 767,
		Croatian: 379,
		Czech: 1039,
		Danish: 611,
		Dutch: 1769,
		Estonian: 122,
		Finnish: 578,
		French: 6886,
		German: 8173,
		Greek: 1062,
		Hungarian: 900,
		Icelandic: 37,
		Irish: 537,
		Italian: 5753,
		Kosovan: 193,
		Latvian: 168,
		"a Liechtensteiner": 4,
		Lithuanian: 263,
		Luxembourgian: 70,
		Macedonian: 205,
		Maltese: 43,
		Moldovan: 372,
		Monégasque: 4,
		Montenegrin: 61,
		Norwegian: 619,
		Polish: 3569,
		Portuguese: 969,
		Romanian: 1797,
		Russian: 13807,
		Sammarinese: 3,
		Scottish: 575,
		Serbian: 814,
		Slovak: 530,
		Slovene: 203,
		Spanish: 4586,
		Swedish: 1094,
		Swiss: 941,
		Ukrainian: 3989,
		Vatican: 1
	}],
	["Realism Australia", {
		Australian: 2952,
		"a Cook Islander": 1,
		Fijian: 98,
		"French Polynesian": 31,
		Guamanian: 18,
		"I-Kiribati": 15,
		Marshallese: 5,
		Micronesian: 12,
		Nauruan: 1,
		"New Caledonian": 33,
		"a New Zealander": 536,
		"Ni-Vanuatu": 38,
		Niuean: 1,
		Palauan: 2,
		"Papua New Guinean": 1136,
		Samoan: 22,
		"a Solomon Islander": 83,
		Tongan: 12,
		Tuvaluan: 1
	}],
	["East Asia", {Chinese: 21, Japanese: 2, Korean: 1}],
	["USA", {American: 8, Canadian: 1, Mexican: 3}],
	["Brazil", {
		Argentinian: 4,
		Bolivian: 2,
		Brazilian: 30,
		Chilean: 2,
		Colombian: 3,
		Ecuadorian: 1,
		"French Guianan": 1,
		Guyanese: 1,
		Paraguayan: 1,
		Peruvian: 2,
		Surinamese: 1,
		Uruguayan: 2,
		Venezuelan: 2
	}],
	["Mediterranean", {
		Albanian: 29,
		Algerian: 404,
		Andorran: 1,
		Bosnian: 35,
		British: 1,
		Bulgarian: 71,
		Catalan: 75,
		Croatian: 42,
		Cypriot: 12,
		Egyptian: 948,
		French: 671,
		Georgian: 49,
		Greek: 108,
		Israeli: 89,
		Italian: 605,
		Lebanese: 60,
		Libyan: 63,
		Maltese: 5,
		Monégasque: 1,
		Montenegrin: 7,
		Moroccan: 358,
		Palestinian: 18,
		Portuguese: 102,
		Romanian: 132,
		Russian: 40,
		Sammarinese: 1,
		Slovene: 21,
		Spanish: 466,
		Syrian: 171,
		Tunisian: 113,
		Turkish: 808,
		Ukrainian: 105,
		Vatican: 1,
	}],

	/* I need reweighting */
	["Realism Global", {
		Afghan: 5090,
		Albanian: 289,
		Algerian: 5107,
		American: 36503,
		Andorran: 7,
		Angolan: 5166,
		Antiguan: 11,
		Argentinian: 5102,
		Armenian: 286,
		Aruban: 10,
		Australian: 2952,
		Austrian: 897,
		Azerbaijani: 1086,
		Bahamian: 45,
		Bahraini: 212,
		Bangladeshi: 19160,
		Barbadian: 28,
		Belarusian: 899,
		Belgian: 1215,
		Belizean: 50,
		Beninese: 1756,
		Bermudian: 5,
		Bhutanese: 94,
		"Bissau-Guinean": 275,
		Bolivian: 1392,
		Bosnian: 333,
		Brazilian: 22920,
		British: 7189,
		Bruneian: 50,
		Bulgarian: 615,
		Burkinabé: 3105,
		Burmese: 6043,
		Burundian: 1797,
		Cambodian: 1972,
		Cameroonian: 3688,
		Canadian: 4188,
		"Cape Verdean": 66,
		Catalan: 767,
		"Central African": 679,
		Chadian: 2431,
		Chilean: 2005,
		Chinese: 143350,
		Colombian: 5405,
		Comorian: 116,
		Congolese: 827,
		"a Cook Islander": 1,
		"Costa Rican": 555,
		Croatian: 379,
		Cuban: 1141,
		Curaçaoan: 17,
		Cypriot: 131,
		Czech: 1039,
		Danish: 611,
		Djiboutian: 118,
		Dominican: 1249,
		Dominiquais: 7,
		Dutch: 1769,
		"East Timorese": 187,
		Ecuadorian: 2055,
		Egyptian: 12826,
		Emirati: 1164,
		Equatoguinean: 210,
		Eritrean: 742,
		Estonian: 122,
		Ethiopian: 15303,
		Fijian: 98,
		Filipina: 13266,
		Finnish: 578,
		French: 6886,
		"French Guianan": 41,
		"French Polynesian": 31,
		Gabonese: 282,
		Gambian: 338,
		Georgian: 366,
		German: 8173,
		Ghanan: 4071,
		Greek: 1062,
		Greenlandic: 5,
		Grenadian: 11,
		Guamanian: 18,
		Guatemalan: 2277,
		Guinean: 1978,
		Guyanese: 83,
		Haitian: 1303,
		Honduran: 1177,
		Hungarian: 900,
		"I-Kiribati": 15,
		Icelandic: 37,
		Indian: 156457,
		Indonesian: 30475,
		Iranian: 9047,
		Iraqi: 5982,
		Irish: 537,
		Israeli: 1062,
		Italian: 5753,
		Ivorian: 3741,
		Jamaican: 290,
		Japanese: 11849,
		Jordanian: 1184,
		Kazakh: 2095,
		Kenyan: 7408,
		Kittitian: 6,
		Korean: 7977,
		Kosovan: 193,
		Kurdish: 7258,
		Kuwaiti: 511,
		Kyrgyz: 730,
		Laotian: 841,
		Latvian: 168,
		Lebanese: 533,
		Liberian: 727,
		Libyan: 760,
		"a Liechtensteiner": 4,
		Lithuanian: 263,
		Luxembourgian: 70,
		Macedonian: 205,
		Malagasy: 3989,
		Malawian: 3010,
		Malaysian: 3838,
		Maldivian: 52,
		Malian: 3098,
		Maltese: 43,
		Marshallese: 5,
		Mauritanian: 676,
		Mauritian: 128,
		Mexican: 15306,
		Micronesian: 12,
		Moldovan: 372,
		Monégasque: 4,
		Mongolian: 369,
		Montenegrin: 61,
		Moroccan: 4240,
		Mosotho: 275,
		Motswana: 297,
		Mozambican: 4824,
		Namibian: 352,
		Nauruan: 1,
		Nepalese: 3456,
		"New Caledonian": 33,
		"a New Zealander": 536,
		"Ni-Vanuatu": 38,
		Nicaraguan: 731,
		Nigerian: 29732,
		Nigerien: 4187,
		Niuean: 1,
		Norwegian: 619,
		Omani: 612,
		Pakistani: 26109,
		Palauan: 2,
		Palestinian: 746,
		Panamanian: 515,
		"Papua New Guinean": 1136,
		Paraguayan: 817,
		Peruvian: 3829,
		Polish: 3569,
		Portuguese: 969,
		"Puerto Rican": 354,
		Qatari: 340,
		Romanian: 1797,
		Russian: 13807,
		Rwandan: 1754,
		Sahrawi: 80,
		"Saint Lucian": 18,
		Salvadoran: 688,
		Sammarinese: 3,
		Samoan: 22,
		"São Toméan": 29,
		Saudi: 4131,
		Scottish: 575,
		Senegalese: 2486,
		Serbian: 814,
		Seychellois: 9,
		"Sierra Leonean": 1056,
		Singaporean: 647,
		Slovak: 530,
		Slovene: 203,
		"a Solomon Islander": 83,
		Somali: 2469,
		"South African": 6688,
		"South Sudanese": 1918,
		Spanish: 4586,
		"Sri Lankan": 2149,
		Sudanese: 6099,
		Surinamese: 63,
		Swazi: 177,
		Swedish: 1094,
		Swiss: 941,
		Syrian: 2888,
		Taiwanese: 2410,
		Tajik: 1202,
		Tanzanian: 9586,
		Thai: 6919,
		Tibetan: 435,
		Togolese: 1166,
		Tongan: 12,
		Trinidadian: 136,
		Tunisian: 1316,
		Turkish: 9091,
		Turkmen: 707,
		Tuvaluan: 1,
		Ugandan: 7338,
		Ukrainian: 3989,
		Uruguayan: 362,
		Uzbek: 3805,
		Vatican: 1,
		Venezuelan: 3826,
		Vietnamese: 10898,
		Vincentian: 11,
		Yemeni: 3996,
		Zairian: 13815,
		Zambian: 2844,
		Zimbabwean: 2355
	}],

	["Japan/Korea weighted sea trade", {
		Chinese: 2000,
		Korean: 2000,
		Japanese: 2000,
		American: 500,
		Russian: 500,
		Filipina: 500,
		Taiwanese: 500,
		Vietnamese: 500,
		Cambodian: 500,
		Malaysian: 500,
		Indonesian: 500,
		Australian: 200,
		"Papua New Guinean": 200,
		"a New Zealander": 200,
		Canadian: 200,
		Mexican: 200,
		Ecuadorian: 200,
		Peruvian: 200,
		Chilean: 200,
		Thai: 200,
		Burmese: 200,
		Bangladeshi: 200,
		Indian: 200,
		"Sri Lankan": 200,
		Iranian: 200,
		Pakistani: 200,
		Omani: 200,
		Yemeni: 200,
		Malagasy: 200,
		Somali: 200,
		"a Solomon Islander": 200,
		"New Caledonian": 200,
		Fijian: 200,
		Mongolian: 200,
		Tibetan: 200,
		Laotian: 200,
		Argentinian: 80,
		Belgian: 80,
		Armenian: 80,
		Austrian: 80,
		Bulgarian: 80,
		British: 80,
		Brazilian: 80,
		Colombian: 80,
		"Costa Rican": 80,
		Croatian: 80,
		Danish: 80,
		Czech: 80,
		Cuban: 80,
		Dutch: 80,
		Egyptian: 80,
		Ethiopian: 80,
		Finnish: 80,
		French: 80,
		Greek: 80,
		German: 80,
		Georgian: 80,
		Hungarian: 80,
		Honduran: 80,
		Iraqi: 80,
		Irish: 80,
		Israeli: 80,
		Italian: 80,
		Kazakh: 80,
		Jordanian: 80,
		Moroccan: 80,
		Nepalese: 80,
		Nicaraguan: 80,
		Norwegian: 80,
		Portuguese: 80,
		Polish: 80,
		Paraguayan: 80,
		Romanian: 80,
		Salvadoran: 80,
		Scottish: 80,
		Serbian: 80,
		Singaporean: 80,
		"South African": 80,
		Swedish: 80,
		Spanish: 80,
		Turkish: 80,
		Tunisian: 80,
		Turkmen: 80,
		Ukrainian: 80,
		Uruguayan: 80,
		Venezuelan: 80,
		Afghan: 12,
		Azerbaijani: 12,
		Bolivian: 12,
		Dominican: 12,
		Emirati: 12,
		Gambian: 12,
		Grenadian: 12,
		Jamaican: 12,
		Latvian: 12,
		Luxembourgian: 12,
		Micronesian: 12,
		Panamanian: 12,
		"Puerto Rican": 12,
		Swiss: 12,
		Zambian: 12,
		Zimbabwean: 12,
		Togolese: 12,
		Syrian: 12,
		Slovene: 12,
		Senegalese: 12,
		Qatari: 12,
		Moldovan: 12,
		Macedonian: 12,
		Lebanese: 12,
		Kosovan: 12,
		Catalan: 12,
		Bosnian: 12,
		Belizean: 12,
		Bahamian: 12,
		Albanian: 12,
		Algerian: 12,
		Bahraini: 12,
		Beninese: 12,
		"Central African": 12,
		Congolese: 12,
		Cypriot: 12,
		Guatemalan: 12,
		Kurdish: 12,
		Liberian: 12,
		Marshallese: 12,
		Mozambican: 12,
		Sudanese: 12,
		Tongan: 12,
		Ugandan: 12,
		Mauritanian: 12,
		Libyan: 12,
		Kuwaiti: 12,
		Icelandic: 12,
		Ghanan: 12,
		Estonian: 12,
		Chadian: 12,
		Bermudian: 12,
		Bhutanese: 12,
		Bruneian: 12,
		Cameroonian: 12,
		Guyanese: 12,
		Kenyan: 12,
		Kyrgyz: 12,
		Montenegrin: 12,
		Nigerian: 12,
		Tanzanian: 12,
		Zairian: 12,
		Uzbek: 12,
		"South Sudanese": 12,
		Saudi: 12,
		Palestinian: 12,
		Nigerien: 12,
		Lithuanian: 12,
		Ivorian: 12,
		Haitian: 12,
		Greenlandic: 12,
		Gabonese: 12,
		Belarusian: 12,
		Angolan: 12,
		"French Polynesian": 12,
		Antiguan: 2,
		Burkinabé: 2,
		"Cape Verdean": 2,
		Malian: 2,
		Mosotho: 2,
		Niuean: 2,
		"Saint Lucian": 2,
		Slovak: 2,
		Vatican: 2,
		Tuvaluan: 2,
		Motswana: 2,
		Maltese: 2,
		Guamanian: 2,
		Equatoguinean: 2,
		Dominiquais: 2,
		Curaçaoan: 2,
		Comorian: 2,
		Burundian: 2,
		Eritrean: 2,
		"I-Kiribati": 2,
		Monégasque: 2,
		"Ni-Vanuatu": 2,
		Sammarinese: 2,
		Vincentian: 2,
		Trinidadian: 2,
		Tajik: 2,
		Surinamese: 2,
		Seychellois: 2,
		Samoan: 2,
		Namibian: 2,
		Malawian: 2,
		Guinean: 2,
		"French Guianan": 2,
		"East Timorese": 2,
		"a Cook Islander": 2,
		Aruban: 2,
		Andorran: 2,
		Barbadian: 2,
		"a Liechtensteiner": 2,
		Mauritian: 2,
		Nauruan: 2,
		Palauan: 2,
		Rwandan: 2,
		"Sierra Leonean": 2,
		"São Toméan": 2,
		Swazi: 2,
		Sahrawi: 2,
		Maldivian: 2,
		Kittitian: 2,
		Djiboutian: 2
	}],

	["Polish-Lithuanian Commonwealth with Silk Road", {
		Polish: 2000,
		Ukrainian: 2000,
		Belarusian: 2000,
		Chinese: 500,
		Japanese: 500,
		Korean: 500,
		Russian: 500,
		German: 500,
		French: 500,
		Italian: 500,
		Turkish: 500,
		Uzbek: 200,
		Kazakh: 200,
		Indian: 200,
		Pakistani: 200,
		Afghan: 200,
		Iranian: 200,
		Iraqi: 200,
		Syrian: 200,
		Egyptian: 200,
		Saudi: 200,
		Austrian: 200,
		British: 200,
		Bulgarian: 200,
		Croatian: 200,
		Czech: 200,
		Danish: 200,
		Dutch: 200,
		Estonian: 200,
		Finnish: 80,
		Greek: 200,
		Hungarian: 200,
		Latvian: 200,
		Lithuanian: 200,
		Macedonian: 80,
		Moldovan: 80,
		Romanian: 200,
		Spanish: 200,
		Swedish: 200,
		Nigerian: 80,
		Ethiopian: 80,
		Congolese: 80,
		Moroccan: 80,
		Algerian: 80,
		Tunisian: 80,
		Libyan: 80,
		Sudanese: 80,
		Bangladeshi: 80,
		Burmese: 80,
		Filipina: 80,
		Indonesian: 80,
		Kyrgyz: 80,
		Malaysian: 80,
		Nepalese: 80,
		Taiwanese: 80,
		Tajik: 80,
		Thai: 80,
		Tibetan: 80,
		Turkmen: 80,
		Vietnamese: 80,
		Australian: 80,
		Albanian: 80,
		Belgian: 80,
		Bosnian: 80,
		Irish: 80,
		Swiss: 80,
		Scottish: 80,
		Norwegian: 80,
		Serbian: 80,
		Slovak: 80,
		Portuguese: 80,
		Slovene: 80,
		Kosovan: 80,
		American: 80,
		Canadian: 80,
		Cuban: 80,
		Mexican: 80,
		Brazilian: 80,
		Colombian: 80,
		Argentinian: 80,
		Peruvian: 80,
		Venezuelan: 80,
		Catalan: 12,
		Georgian: 80,
		Armenian: 80,
		Yemeni: 80,
		Jordanian: 80,
		Emirati: 12,
		Mongolian: 12,
		Bolivian: 12,
		Paraguayan: 12,
		Chilean: 12,
		Uruguayan: 12,
		Ecuadorian: 12,
		Salvadoran: 12,
		Jamaican: 12,
		Dominiquais: 12,
		"Costa Rican": 12,
		Guatemalan: 12,
		Nicaraguan: 12,
		Haitian: 12,
		Dominican: 12,
		Honduran: 12,
		Lebanese: 12,
		Kuwaiti: 12,
		Kurdish: 12,
		Azerbaijani: 12,
		Bahraini: 12,
		Omani: 12,
		Palestinian: 12,
		Israeli: 12,
		Cypriot: 12,
		Qatari: 12,
		Icelandic: 12,
		Montenegrin: 12,
		Luxembourgian: 12,
		"Papua New Guinean": 12,
		Bhutanese: 12,
		Bruneian: 12,
		Laotian: 12,
		Singaporean: 12,
		Maldivian: 12,
		Cambodian: 12,
		"East Timorese": 12,
		Cameroonian: 12,
		Mosotho: 12,
		Ghanan: 12,
		Rwandan: 12,
		Malagasy: 12,
		Somali: 12,
		"South African": 12,
		Malawian: 12,
		Guinean: 12,
		Equatoguinean: 12,
		Angolan: 12,
		Beninese: 12,
		"Central African": 12,
		Eritrean: 12,
		Ivorian: 12,
		Mozambican: 12,
		"South Sudanese": 12,
		Ugandan: 12,
		Zairian: 12,
		Senegalese: 12,
		Namibian: 12,
		Mauritanian: 12,
		Kenyan: 12,
		Chadian: 12,
		Gabonese: 12,
		Liberian: 12,
		Mauritian: 12,
		Swazi: 12,
		Zambian: 12,
		Zimbabwean: 12,
		Tanzanian: 12,
		"Sierra Leonean": 12,
		Nigerien: 12,
		Gambian: 12,
		Burundian: 12,
		Guyanese: 2,
		"French Guianan": 2,
		Surinamese: 12,
		Greenlandic: 12,
		Bahamian: 2,
		Djiboutian: 2,
		Togolese: 2,
		Sahrawi: 2,
		Motswana: 2,
		"Cape Verdean": 2,
		Malian: 2,
		"São Toméan": 2,
		"Bissau-Guinean": 2,
		Burkinabé: 2,
		Comorian: 2,
		Seychellois: 2,
		Marshallese: 2,
		Niuean: 2,
		Tuvaluan: 2,
		Palauan: 2,
		Micronesian: 2,
		"a Cook Islander": 2,
		Fijian: 2,
		Nauruan: 2,
		Samoan: 2,
		"New Caledonian": 2,
		"French Polynesian": 2,
		Guamanian: 2,
		"a New Zealander": 2,
		"a Solomon Islander": 2,
		Tongan: 2,
		"Ni-Vanuatu": 2,
		"I-Kiribati": 2,
		"a Liechtensteiner": 2,
		Monégasque: 2,
		Sammarinese: 2,
		Andorran: 2,
		Maltese: 2,
		Vatican: 2,
		Bermudian: 2,
		"Saint Lucian": 2,
		Kittitian: 2,
		Antiguan: 2,
		Aruban: 2,
		Grenadian: 2,
		Trinidadian: 2,
		Vincentian: 2,
		Panamanian: 2,
		Curaçaoan: 2,
		Barbadian: 2,
		Belizean: 2,
		"Puerto Rican": 2,
		"Sri Lankan": 2
	}],

	["Caribbean and Gulf of Mexico", {
		Mexican: 1100,
		American: 1100,
		Guatemalan: 520,
		Haitian: 520,
		Cuban: 520,
		Dominican: 520,
		Honduran: 520,
		Salvadoran: 520,
		Nicaraguan: 520,
		"Costa Rican": 520,
		Panamanian: 520,
		"Puerto Rican": 520,
		Jamaican: 520,
		Trinidadian: 520,
		Colombian: 520,
		Venezuelan: 520,
		Brazilian: 520,
		Belizean: 200,
		Bahamian: 200,
		Barbadian: 200,
		Guyanese: 200,
		Surinamese: 200,
		"French Guianan": 200,
		Ecuadorian: 200,
		Peruvian: 200,
		Chilean: 200,
		Argentinian: 200,
		Uruguayan: 200,
		Paraguayan: 200,
		Bolivian: 200,
		Portuguese: 200,
		Spanish: 200,
		French: 200,
		British: 200,
		Irish: 200,
		Scottish: 200,
		Dutch: 200,
		Japanese: 200,
		Filipina: 200,
		Indonesian: 200,
		Algerian: 80,
		"Saint Lucian": 80,
		Grenadian: 80,
		Vincentian: 80,
		Antiguan: 80,
		Dominiquais: 80,
		Australian: 80,
		Bangladeshi: 80,
		Belgian: 80,
		Bermudian: 80,
		Curaçaoan: 80,
		Greenlandic: 80,
		German: 80,
		Indian: 80,
		Italian: 80,
		Korean: 80,
		Malaysian: 80,
		Nigerian: 80,
		Norwegian: 80,
		"Papua New Guinean": 80,
		Russian: 80,
		Swedish: 80,
		Turkish: 80,
		Taiwanese: 80,
		Chinese: 80,
		Canadian: 80,
		Iranian: 80,
		Kittitian: 80,
		Ivorian: 80,
		Moroccan: 80,
		Nigerien: 80,
		"French Polynesian": 80,
		Danish: 80,
		Bruneian: 80,
		Aruban: 80,
		Icelandic: 80,
		Vietnamese: 80,
		Samoan: 80,
		Congolese: 80,
		"a Solomon Islander": 80,
		"a New Zealander": 80,
		Catalan: 80,
		Tunisian: 80,
		"Sri Lankan": 80,
		"South African": 80,
		Singaporean: 80,
		Malagasy: 80,
		Thai: 80,
		Egyptian: 80,
		"Cape Verdean": 80,
		Angolan: 14,
		Afghan: 14,
		Azerbaijani: 14,
		Belarusian: 14,
		Libyan: 14,
		Austrian: 14,
		Bahraini: 14,
		Armenian: 14,
		Burmese: 14,
		Cambodian: 14,
		Cameroonian: 14,
		"Central African": 14,
		Cypriot: 14,
		Czech: 14,
		"a Cook Islander": 14,
		Croatian: 14,
		Fijian: 14,
		Ethiopian: 14,
		Estonian: 14,
		Georgian: 14,
		Ghanan: 14,
		Greek: 14,
		Hungarian: 14,
		Iraqi: 14,
		Israeli: 14,
		Kazakh: 14,
		Kuwaiti: 14,
		Maldivian: 14,
		Malawian: 14,
		Liberian: 14,
		Lebanese: 14,
		Marshallese: 14,
		Mauritian: 14,
		Namibian: 14,
		Mozambican: 14,
		Micronesian: 14,
		"New Caledonian": 14,
		Pakistani: 14,
		Omani: 14,
		Romanian: 14,
		Sammarinese: 14,
		Qatari: 14,
		Senegalese: 14,
		Somali: 14,
		Sudanese: 14,
		Syrian: 14,
		Swiss: 14,
		Turkmen: 14,
		Ukrainian: 14,
		Yemeni: 14,
		Zairian: 5,
		Albanian: 5,
		Bosnian: 5,
		Beninese: 5,
		Burundian: 5,
		Bulgarian: 5,
		Chadian: 5,
		Comorian: 5,
		Emirati: 5,
		Equatoguinean: 5,
		Finnish: 5,
		"East Timorese": 5,
		Gabonese: 5,
		Djiboutian: 5,
		Guinean: 5,
		Eritrean: 5,
		Gambian: 5,
		Guamanian: 5,
		Kurdish: 5,
		Jordanian: 5,
		Kenyan: 5,
		Kyrgyz: 5,
		Lithuanian: 5,
		Macedonian: 5,
		Latvian: 5,
		Malian: 5,
		Mosotho: 5,
		Motswana: 5,
		Moldovan: 5,
		Mongolian: 5,
		Mauritanian: 5,
		Nepalese: 5,
		Palestinian: 5,
		Polish: 5,
		Saudi: 5,
		"South Sudanese": 5,
		Uzbek: 5,
		"Sierra Leonean": 5,
		Seychellois: 5,
		Tajik: 5,
		Serbian: 5,
		Tongan: 5,
		Ugandan: 5,
		Zimbabwean: 5,
		Tuvaluan: 5,
		Togolese: 5,
		Luxembourgian: 5,
		Tibetan: 5,
		Zambian: 5,
		Tanzanian: 5,
		Kosovan: 3,
		Slovak: 3,
		Swazi: 3,
		Laotian: 3,
		Rwandan: 3,
		"Bissau-Guinean": 3,
		Burkinabé: 2,
		Niuean: 2,
		Vatican: 2,
		Slovene: 2,
		Maltese: 2,
		"I-Kiribati": 2,
		Monégasque: 2,
		"Ni-Vanuatu": 2,
		Andorran: 2,
		Bhutanese: 2,
		"a Liechtensteiner": 2,
		Montenegrin: 2,
		Nauruan: 2,
		Palauan: 2,
		"São Toméan": 2,
		Sahrawi: 2
	}],

]);