diff --git a/config/dependencies.yaml b/config/dependencies.yaml
index c58e514fca0..62f1a73c519 100644
--- a/config/dependencies.yaml
+++ b/config/dependencies.yaml
@@ -85,6 +85,10 @@ jaeger:
'@freesewing/brian': *freesewing
'@freesewing/bent': *freesewing
'@freesewing/plugin-bust': *freesewing
+lily:
+ peer:
+ '@freesewing/titan': *freesewing
+ '@freesewing/paco': *freesewing
new-design:
_:
'axios': &axios '1.6.8'
diff --git a/config/exceptions.yaml b/config/exceptions.yaml
index 1c38f056d89..26a3f8214b2 100644
--- a/config/exceptions.yaml
+++ b/config/exceptions.yaml
@@ -34,6 +34,8 @@ packageJson:
private: true
lab:
private: true
+ lily:
+ author: Anna Puk (https://github.com/anna-puk)
lucy:
author: SeaZeeZee (https://github.com/SeaZeeZee)
lunetius: &starf
diff --git a/config/software/designs.json b/config/software/designs.json
index 66cfa3d8fdc..5fc0cb4343d 100644
--- a/config/software/designs.json
+++ b/config/software/designs.json
@@ -554,14 +554,25 @@
"techniques": []
},
"naomiwu": {
- "description": "A FreeSewing pattern for Naomi Wu's signature cargo skirt",
"code": "Joost De Cock",
- "design": ["Naomi Wu", "Joost De Cock"],
+ "description": "A FreeSewing pattern for Naomi Wu's signature cargo skirt",
+ "design": [
+ "Naomi Wu",
+ "Joost De Cock"
+ ],
"difficulty": 3,
"lab": false,
"org": false,
- "tags": ["bottoms", "skirts"],
- "techniques": ["button", "hem", "pocket", "lining"]
+ "tags": [
+ "bottoms",
+ "skirts"
+ ],
+ "techniques": [
+ "button",
+ "hem",
+ "pocket",
+ "lining"
+ ]
},
"noble": {
"code": "Wouter Van Wageningen",
@@ -976,5 +987,21 @@
"hem",
"button"
]
+ },
+ "lily": {
+ "code": "Anna Puk, Joost De Cock",
+ "description": "A FreeSewing pattern for basic leggings",
+ "design": "Anna Puk",
+ "difficulty": 2,
+ "lab": true,
+ "org": true,
+ "tags": [
+ "bottoms"
+ ],
+ "techniques": [
+ "elastic",
+ "curvedSeam",
+ "hem"
+ ]
}
-}
+}
\ No newline at end of file
diff --git a/designs/lily/CHANGELOG.md b/designs/lily/CHANGELOG.md
new file mode 100644
index 00000000000..83751ede3b8
--- /dev/null
+++ b/designs/lily/CHANGELOG.md
@@ -0,0 +1,17 @@
+# Change log for: @freesewing/lily
+
+
+## 3.0.0 (2023-09-30)
+
+### Changed
+
+ - All FreeSewing packages are now ESM only.
+ - All FreeSewing packages now use named exports.
+ - Dropped support for NodeJS 14. NodeJS 18 (LTS/hydrogen) or more recent is now required.
+
+
+This is the **initial release**, and the start of this change log.
+
+> Prior to version 2, FreeSewing was not a JavaScript project.
+> As such, that history is out of scope for this change log.
+
diff --git a/designs/lily/README.md b/designs/lily/README.md
new file mode 100644
index 00000000000..c95b8710c5b
--- /dev/null
+++ b/designs/lily/README.md
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+
+
+
+
+# @freesewing/lily
+
+A FreeSewing pattern for basic leggings
+
+
+
+# FreeSewing
+
+> [!TIP]
+>#### Support FreeSewing: Become a patron, or make a one-time donation 🥰
+>
+> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
+>
+> If you feel FreeSewing is worthwhile, and you can spend a few coins without
+hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
+
+## What am I looking at? 🤔
+
+This repository is the FreeSewing *monorepo* holding all FreeSewing's websites, documentation, designs, plugins, and other NPM packages.
+
+This folder holds: @freesewing/lily
+
+If you're not entirely sure what to do or how to start, type this command:
+
+```
+npm run tips
+```
+
+> [!NOTE]
+> If you don't want to set up a dev environment, you can run it in your browser:
+>
+> [](https://gitpod.io/#https://github.com/freesewing/freesewing)
+>
+> We recommend that you fork our repository and then
+> put `gitpod.io/# to start up a browser-based dev environment of your own.
+
+## About FreeSewing 💀
+
+Where the world of makers and developers collide, that's where you'll find FreeSewing.
+
+If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
+sewing patterns adapted to your measurements.
+
+If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
+The FreeSewing [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
+for parametric design of sewing patterns. But FreeSewing also provides a range
+of [plugins](https://freesewing.dev/reference/plugins/) that further extend the
+functionality of the platform.
+
+If you have NodeJS installed, you can try it right now by running:
+
+```bash
+npx @freesewing/new-design
+```
+
+Getting started guides are available for:
+- [Linux](https://freesewing.dev/tutorials/getting-started-linux/)
+- [MacOS](https://freesewing.dev/tutorials/getting-started-mac/)
+- [Windows](https://freesewing.dev/tutorials/getting-started-windows/)
+
+The [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) will
+show you how to create your first parametric design.
+
+## Getting started ⚡
+
+To get started with FreeSewing, you can spin up our development environment with:
+
+```bash
+npx @freesewing/new-design
+```
+
+To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
+Once you have those, clone (or fork) this repo and run `yarn kickstart`:
+
+```bash
+git clone git@github.com:freesewing/freesewing.git
+cd freesewing
+yarn kickstart
+```
+
+## Links 👩💻
+
+**Official channels**
+
+ - 💻 Makers website: [FreeSewing.org](https://freesewing.org)
+ - 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
+ - ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
+ [Issues](https://github.com/freesewing/freesewing/issues) &
+ [Discussions](https://github.com/freesewing/freesewing/discussions) on
+ [GitHub](https://github.com/freesewing/freesewing)
+
+**Social media**
+
+ - 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
+ - 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
+
+**Places the FreeSewing community hangs out**
+
+ - 💬 [Discord](https://discord.freesewing.org/)
+ - 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
+ - 💬 [Reddit](https://www.reddit.com/r/freesewing/)
+
+## License: MIT 🤓
+
+© [Joost De Cock](https://github.com/joostdecock).
+See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
+
+## Where to get help 🤯
+
+For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
+please use the [Issues](https://github.com/freesewing/freesewing/issues) &
+[Discussions](https://github.com/freesewing/freesewing/discussions) on
+[GitHub](https://github.com/freesewing/freesewing).
+
diff --git a/designs/lily/build.mjs b/designs/lily/build.mjs
new file mode 100644
index 00000000000..99ace216bc8
--- /dev/null
+++ b/designs/lily/build.mjs
@@ -0,0 +1,35 @@
+/* This script will build the package with esbuild */
+import esbuild from 'esbuild'
+import pkg from './package.json' assert { type: 'json' }
+
+// Create banner based on package info
+const banner = `/**
+ * ${pkg.name} | v${pkg.version}
+ * ${pkg.description}
+ * (c) ${new Date().getFullYear()} ${pkg.author}
+ * @license ${pkg.license}
+ */`
+
+// Shared esbuild options
+const options = {
+ banner: { js: banner },
+ bundle: true,
+ entryPoints: ['src/index.mjs'],
+ format: 'esm',
+ outfile: 'dist/index.mjs',
+ external: ['@freesewing'],
+ metafile: process.env.VERBOSE ? true : false,
+ minify: process.env.NO_MINIFY ? false : true,
+ sourcemap: true,
+}
+
+// Let esbuild generate the build
+const build = async () => {
+ const result = await esbuild.build(options).catch(() => process.exit(1))
+
+ if (process.env.VERBOSE) {
+ const info = await esbuild.analyzeMetafile(result.metafile)
+ console.log(info)
+ }
+}
+build()
diff --git a/designs/lily/data.mjs b/designs/lily/data.mjs
new file mode 100644
index 00000000000..ff5d4a4d600
--- /dev/null
+++ b/designs/lily/data.mjs
@@ -0,0 +1,4 @@
+// This file is auto-generated | All changes you make will be overwritten.
+export const name = '@freesewing/lily'
+export const version = '3.2.0'
+export const data = { name, version }
diff --git a/designs/lily/i18n/de.json b/designs/lily/i18n/de.json
new file mode 100644
index 00000000000..185dfb452be
--- /dev/null
+++ b/designs/lily/i18n/de.json
@@ -0,0 +1,7 @@
+{
+ "t": "Lily",
+ "d": "A FreeSewing pattern that needs a description",
+ "p": { },
+ "s": { },
+ "o": { }
+}
diff --git a/designs/lily/i18n/en.json b/designs/lily/i18n/en.json
new file mode 100644
index 00000000000..ad820c3445d
--- /dev/null
+++ b/designs/lily/i18n/en.json
@@ -0,0 +1,24 @@
+{
+ "t": "Lily",
+ "d": "A FreeSewing pattern for basic leggings",
+ "p": {
+ "back": "Back",
+ "front": "Front",
+ "waistband": "Waistband"
+ },
+ "s": {
+ "adjustEase.t": "Adjust ease settings to match fabric stretch",
+ "adjustEase.d": "Knee, seat and waist ease should be set to fabric stretch * -1/10; click the button to adjust all three.",
+ "adjustEase": "adjust ease"
+ },
+ "o": {
+ "lengthReduction": {
+ "t": "Length reduction",
+ "d": "Controls how much the leggings are shortened with respect to ankle length"
+ },
+ "fabricStretch": {
+ "t": "Fabric stretch",
+ "d": "How much the fabric can stretch horizontally; this is used to calculate ease"
+ }
+ }
+}
diff --git a/designs/lily/i18n/es.json b/designs/lily/i18n/es.json
new file mode 100644
index 00000000000..185dfb452be
--- /dev/null
+++ b/designs/lily/i18n/es.json
@@ -0,0 +1,7 @@
+{
+ "t": "Lily",
+ "d": "A FreeSewing pattern that needs a description",
+ "p": { },
+ "s": { },
+ "o": { }
+}
diff --git a/designs/lily/i18n/fr.json b/designs/lily/i18n/fr.json
new file mode 100644
index 00000000000..185dfb452be
--- /dev/null
+++ b/designs/lily/i18n/fr.json
@@ -0,0 +1,7 @@
+{
+ "t": "Lily",
+ "d": "A FreeSewing pattern that needs a description",
+ "p": { },
+ "s": { },
+ "o": { }
+}
diff --git a/designs/lily/i18n/index.mjs b/designs/lily/i18n/index.mjs
new file mode 100644
index 00000000000..36aac928b67
--- /dev/null
+++ b/designs/lily/i18n/index.mjs
@@ -0,0 +1,8 @@
+import en from './en.json' assert { type: 'json' }
+import de from './de.json' assert { type: 'json' }
+import es from './es.json' assert { type: 'json' }
+import fr from './fr.json' assert { type: 'json' }
+import nl from './nl.json' assert { type: 'json' }
+import uk from './uk.json' assert { type: 'json' }
+
+export const i18n = { en, de, es, fr, nl, uk }
diff --git a/designs/lily/i18n/nl.json b/designs/lily/i18n/nl.json
new file mode 100644
index 00000000000..185dfb452be
--- /dev/null
+++ b/designs/lily/i18n/nl.json
@@ -0,0 +1,7 @@
+{
+ "t": "Lily",
+ "d": "A FreeSewing pattern that needs a description",
+ "p": { },
+ "s": { },
+ "o": { }
+}
diff --git a/designs/lily/i18n/uk.json b/designs/lily/i18n/uk.json
new file mode 100644
index 00000000000..185dfb452be
--- /dev/null
+++ b/designs/lily/i18n/uk.json
@@ -0,0 +1,7 @@
+{
+ "t": "Lily",
+ "d": "A FreeSewing pattern that needs a description",
+ "p": { },
+ "s": { },
+ "o": { }
+}
diff --git a/designs/lily/package.json b/designs/lily/package.json
new file mode 100644
index 00000000000..34552f353c8
--- /dev/null
+++ b/designs/lily/package.json
@@ -0,0 +1,74 @@
+{
+ "name": "@freesewing/lily",
+ "version": "3.2.0",
+ "description": "A FreeSewing pattern for basic leggings",
+ "author": "Anna Puk (https://github.com/anna-puk)",
+ "homepage": "https://freesewing.org/",
+ "repository": "github:freesewing/freesewing",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/freesewing/freesewing/issues"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://freesewing.org/patrons/join"
+ },
+ "keywords": [
+ "freesewing",
+ "design",
+ "diy",
+ "fashion",
+ "made to measure",
+ "parametric design",
+ "pattern",
+ "sewing",
+ "sewing pattern"
+ ],
+ "type": "module",
+ "module": "dist/index.mjs",
+ "exports": {
+ ".": {
+ "internal": "./src/index.mjs",
+ "default": "./dist/index.mjs"
+ }
+ },
+ "scripts": {
+ "build": "node build.mjs",
+ "build:all": "yarn build",
+ "clean": "rimraf dist",
+ "mbuild": "NO_MINIFY=1 node build.mjs",
+ "symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
+ "test": "npx mocha tests/*.test.mjs",
+ "vbuild": "VERBOSE=1 node build.mjs",
+ "lab": "cd ../../sites/lab && yarn start",
+ "tips": "node ../../scripts/help.mjs",
+ "lint": "npx eslint 'src/**' 'tests/*.mjs'",
+ "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'",
+ "testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
+ "wbuild": "node build.mjs",
+ "wbuild:all": "yarn wbuild"
+ },
+ "peerDependencies": {
+ "@freesewing/core": "3.2.0",
+ "@freesewing/titan": "3.2.0",
+ "@freesewing/paco": "3.2.0"
+ },
+ "dependencies": {},
+ "devDependencies": {
+ "mocha": "10.3.0",
+ "chai": "5.1.0",
+ "@freesewing/models": "3.2.0",
+ "@freesewing/plugin-timing": "3.2.0"
+ },
+ "files": [
+ "dist/*",
+ "README.md"
+ ],
+ "publishConfig": {
+ "access": "public",
+ "tag": "latest"
+ },
+ "engines": {
+ "node": ">= 18.17.0 <22"
+ }
+}
diff --git a/designs/lily/src/back.mjs b/designs/lily/src/back.mjs
new file mode 100644
index 00000000000..fc290e894d9
--- /dev/null
+++ b/designs/lily/src/back.mjs
@@ -0,0 +1,590 @@
+import { back as titanBack } from '@freesewing/titan'
+
+function draftLilyBack({
+ points,
+ Point,
+ paths,
+ Path,
+ measurements,
+ options,
+ complete,
+ paperless,
+ store,
+ macro,
+ utils,
+ snippets,
+ Snippet,
+ sa,
+ absoluteOptions,
+ part,
+ log,
+ units,
+}) {
+ //TODO: implement stretch setting to replace ease
+ // work-around: flag it
+ const stretchAsEase = -options.fabricStretch / 10
+ const easeTol = 0.005
+ if (
+ Math.abs(options.waistEase - stretchAsEase) > easeTol ||
+ Math.abs(options.seatEase - stretchAsEase) > easeTol ||
+ Math.abs(options.kneeEase - stretchAsEase) > easeTol
+ ) {
+ store.flag.note({
+ msg: `lily:adjustEase`,
+ replace: {
+ stretch: units(options.fabricStretch),
+ ease: stretchAsEase,
+ },
+ suggest: {
+ text: 'adjustEase',
+ icon: 'options',
+ update: {
+ settings: [
+ 'options',
+ {
+ ...options,
+ waistEase: stretchAsEase,
+ seatEase: stretchAsEase,
+ kneeEase: stretchAsEase,
+ },
+ ],
+ },
+ },
+ })
+ }
+
+ /*
+ * Helper method to draw the inseam path
+ */
+ const drawInseam = () =>
+ new Path()
+ .move(points.fork)
+ .curve(points.forkCp2, points.kneeInCp1, points.kneeIn)
+ .curve(points.kneeInCp2, points.floorInCp2, points.floorIn)
+ /*
+ * Helper method to draw the outseam path
+ */
+ const drawOutseam = () => {
+ const waistOut = points.styleWaistOutLily || points.waistOut
+ if (points.waistOut.x > points.seatOut.x)
+ return new Path()
+ .move(points.floorOut)
+ .curve(points.floorOutCp2, points.kneeOutCp1, points.kneeOut)
+ .curve(points.kneeOutCp2, points.seatOut, waistOut)
+ else
+ return new Path()
+ .move(points.floorOut)
+ .curve(points.floorOutCp2, points.kneeOutCp1, points.kneeOut)
+ .curve(points.kneeOutCp2, points.seatOutCp1, points.seatOut)
+ .curve_(points.seatOutCp2, waistOut)
+ }
+ /*
+ * Helper method to draw the outline path
+ */
+ const drawPath = () => {
+ const waistIn = points.styleWaistInLily || points.waistIn
+ return drawInseam()
+ .line(points.floorOut)
+ .join(drawOutseam())
+ .line(waistIn)
+ .line(points.crossSeamCurveStart)
+ .curve(points.crossSeamCurveCp1, points.crossSeamCurveCp2, points.fork)
+ .close()
+ }
+ /*
+ * Helper method to calculate the length of the cross seam
+ */
+ const crossSeamDelta = () =>
+ new Path()
+ .move(points.waistIn)
+ .line(points.crossSeamCurveStart)
+ .curve(points.crossSeamCurveCp1, points.crossSeamCurveCp2, points.fork)
+ .length() - measurements.crossSeamBack
+ /*
+ * Helper method to (re)draw the cross seam
+ */
+ const drawCrossSeam = () => {
+ points.crossSeamCurveStart = points.waistIn.shiftFractionTowards(
+ points.cbSeat,
+ options.crossSeamCurveStart
+ )
+ points.crossSeamCurveMax = utils.beamsIntersect(
+ points.waistIn,
+ points.cbSeat,
+ points.fork,
+ points.fork.shift(0, 1) // beams have infinite length anyway
+ )
+ points.crossSeamCurveCp1 = points.crossSeamCurveStart.shiftFractionTowards(
+ points.crossSeamCurveMax,
+ options.crossSeamCurveBend
+ )
+ points.crossSeamCurveCp2 = points.fork
+ .shiftFractionTowards(points.crossSeamCurveMax, options.crossSeamCurveBend)
+ .rotate(options.crossSeamCurveAngle, points.fork)
+ }
+
+ // NOTE: majority of points re-used from titan
+
+ // shape at the ankle (unlike titan)
+ const halfAnkle =
+ measurements.ankle * (1 + options.fabricStretch) > measurements.heel
+ ? (1 - options.fabricStretch / 10) * (measurements.ankle / 4)
+ : measurements.heel / 4 / (1 + options.fabricStretch)
+ // NOTE: for shortened leggings, this may not have been necessary...
+
+ points.floorOut = points.floor.shift(0, halfAnkle)
+ points.floorIn = points.floorOut.flipX(points.floor)
+
+ store.set('halfAnkle', halfAnkle)
+
+ points.floorInCp2 = points.floorIn.shift(90, points.knee.dy(points.floor) / 3)
+ points.kneeInCp2 = points.kneeIn.shift(90, -points.knee.dy(points.floor) / 3)
+ points.floorOutCp2 = points.floorOut.shift(90, points.knee.dy(points.floor) / 3)
+ points.kneeOutCp1 = points.kneeOut.shift(90, -points.knee.dy(points.floor) / 3)
+
+ // other control points have already been calculated in titan:
+ // Control points to shape the legs towards the seat
+ // Balance the waist
+
+ // Cross seam
+ drawCrossSeam()
+
+ //Uncomment the line below to see the seam prior to fitting the cross seam
+ // paths.seam1 = drawPath().attr('class', 'dashed lining')
+
+ // Should we fit the cross seam?
+ if (options.fitCrossSeam && options.fitCrossSeamBack) {
+ let delta = crossSeamDelta()
+ let run = 0
+ do {
+ run++
+ // Remedy A: Slash and spread
+ for (const i of ['waistIn', 'waistOut'])
+ points[i] = points[i].rotate(delta / 15, points.seatOut)
+ // Remedy B: Nudge the fork inwards/outwards
+ points.fork = points.fork.shift(0, delta / 5)
+ points.forkCp2 = points.crossSeamCurveCp2.rotate(-90, points.fork)
+ drawCrossSeam()
+ delta = crossSeamDelta()
+ // Uncomment the line beloe this to see all iterations
+ // paths[`try${run}`] = drawPath().attr('class', 'dotted')
+ } while (Math.abs(delta) > 1 && run < 15)
+ }
+
+ // Store inseam & outseam length
+ store.set('inseamBack', drawInseam().length())
+ store.set('outseamBack', drawOutseam().length())
+
+ // Only now style the waist lower if requested
+ // Note: redo this for lily even though it was already done for titan;
+ // calculation for titan happened using its own seam lengths
+ store.set('waistbandWidth', absoluteOptions.waistbandWidth) // used in lilyWaistband
+ if (options.waistHeight < 1 || absoluteOptions.waistbandWidth > 0) {
+ points.styleWaistOutLily = drawOutseam()
+ .reverse()
+ .shiftAlong(
+ measurements.waistToHips * (1 - options.waistHeight) + absoluteOptions.waistbandWidth
+ )
+ points.styleWaistInLily = utils.beamsIntersect(
+ points.styleWaistOutLily,
+ points.styleWaistOutLily.shift(points.waistOut.angle(points.waistIn), 10),
+ points.waistIn,
+ points.crossSeamCurveStart
+ )
+ } else {
+ points.styleWaistInLily = points.waistIn.clone()
+ points.styleWaistOutLily = points.waistOut.clone()
+ }
+ // Adapt the vertical placement of the seat control point to the lowered waist
+ points.seatOutCp2.y = points.seatOut.y - points.styleWaistOutLily.dy(points.seatOut) / 2
+ let test = points.styleWaistInLily.dist(points.styleWaistOutLily)
+ console.log('back waist length', test)
+ store.set('backWaist', points.styleWaistInLily.dist(points.styleWaistOutLily))
+
+ // Paths
+ paths.seam = drawPath().attr('class', 'fabric')
+
+ // adjust the length (at the bottom)
+ let extendBeyondKnee = 1
+ if (options.lengthReduction > 0) {
+ let requestedLength = (1 - options.lengthReduction) * measurements.waistToFloor
+ // leggings must reach to fork at least, so define a minimum
+ const waistToFork = points.waistX.dy(points.fork)
+ if (waistToFork >= 0.999 * requestedLength) {
+ log.warn('length reduction capped; cutting off at fork')
+ // add one percent to waistToFork to ensure that path length is nonzero
+ requestedLength = waistToFork * 1.01
+ }
+
+ // work-around to avoid splitting exactly at the knee
+ // (due to a bug, splitting a path at a node is not possible)
+ if (
+ 0.999 < requestedLength / measurements.waistToKnee &&
+ requestedLength / measurements.waistToKnee < 1.001
+ ) {
+ requestedLength = 1.001 * measurements.waistToKnee
+ }
+ points.bottom = points.waistX.shift(270, requestedLength)
+ let upperPoint, upperCp
+ if (requestedLength < measurements.waistToKnee) {
+ extendBeyondKnee = 0
+
+ // 'cut' between fork and knee
+ if (points.waistOut.x > points.seatOut.x) {
+ upperPoint = points.styleWaistOutLily
+ upperCp = points.seatOut
+ } else {
+ upperPoint = points.seatOut
+ upperCp = points.seatOutCp1
+ }
+ points.bottomOut = utils.beamIntersectsCurve(
+ points.bottom.shift(0, 999),
+ points.bottom.shift(180, 999),
+ points.kneeOut,
+ points.kneeOutCp2,
+ upperCp,
+ upperPoint
+ )
+
+ points.bottomIn = utils.beamIntersectsCurve(
+ points.bottom.shift(0, 999),
+ points.bottom.shift(180, 999),
+ points.kneeIn,
+ points.kneeInCp1,
+ points.forkCp2,
+ points.fork
+ )
+ } else {
+ // 'cut' between knee and 'floor'
+ points.bottomOut = utils.beamIntersectsCurve(
+ points.bottom.shift(0, 999),
+ points.bottom.shift(180, 999),
+ points.kneeOut,
+ points.kneeOutCp1,
+ points.floorOutCp2,
+ points.floorOut
+ )
+
+ points.bottomIn = utils.beamIntersectsCurve(
+ points.bottom.shift(0, 999),
+ points.bottom.shift(180, 999),
+ points.kneeIn,
+ points.kneeInCp2,
+ points.floorInCp2,
+ points.floorIn
+ )
+ }
+
+ // define the three parts of the path, then combine
+ paths.bottom = new Path().move(points.bottomIn).line(points.bottomOut)
+
+ const halves = paths.seam.split(points.bottomIn)
+ paths.upperInseam = halves[0]
+ const halves2 = halves[1].split(points.bottomOut)
+ paths.upperOutseam = halves2[1]
+
+ paths.seam = paths.upperInseam.join(paths.bottom).join(paths.upperOutseam)
+
+ // store requestedLength for use in front part
+ store.set('requestedLength', requestedLength)
+ } else {
+ // define the same three parts of the path as when length reduction is enabled, then combine
+
+ // first define the points (also used for paperless)
+ points.bottom = points.floor
+ points.bottomIn = points.floorIn
+ points.bottomOut = points.floorOut
+
+ paths.bottom = new Path().move(points.bottomIn).line(points.bottomOut)
+
+ // note: upperOutseam contains waist and cross seam as well
+ paths.upperInseam = drawInseam()
+ paths.upperOutseam = drawOutseam().join(
+ new Path()
+ .move(points.styleWaistOutLily)
+ .line(points.styleWaistInLily)
+ .line(points.crossSeamCurveStart)
+ .curve(points.crossSeamCurveCp1, points.crossSeamCurveCp2, points.fork)
+ )
+ paths.bottom.hide()
+ paths.upperInseam.hide()
+ paths.upperOutseam.hide()
+ }
+
+ points.grainlineTop.y = points.styleWaistOutLily.y
+ points.grainlineBottom.y = points.bottom.y
+ macro('grainline', {
+ from: points.grainlineTop,
+ to: points.grainlineBottom,
+ })
+ points.logoAnchor = new Point(points.crossSeamCurveStart.x / 2, points.fork.y)
+ snippets.logo = new Snippet('logo', points.logoAnchor)
+ points.scalebox = points.logoAnchor.shiftFractionTowards(
+ points.styleWaistOutLily.shiftFractionTowards(points.styleWaistInLily, 0.5),
+ 0.5
+ )
+ macro('scalebox', { at: points.scalebox })
+ points.titleAnchor = points.logoAnchor.shift(-90, 60)
+ macro('title', {
+ nr: 1,
+ title: 'back',
+ at: points.titleAnchor,
+ })
+
+ //notches
+ if (options.fitGuides) {
+ points.waistMid = points.waistOut.shiftFractionTowards(points.waistIn, 0.5)
+ // shift + rotate (below) is equivalent to shifting measurements.waistToSeat perpendicular to the waistIn-waistMid line
+ points.seatMid = points.waistMid
+ .shiftTowards(points.waistIn, measurements.waistToSeat)
+ .rotate(90, points.waistMid)
+ points.seatInTarget = points.seatOut.shiftOutwards(points.seatMid, measurements.seat / 4)
+ points.seatOutTarget = points.seatMid.shiftTowards(points.seatOut, measurements.seat / 4)
+ // shift + rotate (below) is equivalent to shifting measurements.waistToHips perpendicular to the waistIn-waistOut line
+ points.hipsInTarget = points.waistIn
+ .shiftTowards(points.waistOut, measurements.waistToHips)
+ .rotate(-90, points.waistIn)
+ points.hipsOutTarget = points.waistOut
+ .shiftTowards(points.waistIn, measurements.waistToHips)
+ .rotate(90, points.waistOut)
+ points.hipsIn = utils.beamsIntersect(
+ points.hipsOutTarget,
+ points.hipsInTarget,
+ points.waistIn,
+ points.crossSeamCurveStart
+ )
+ points.crossSeamCurveStartMid = utils.beamsIntersect(
+ points.crossSeamCurveStart,
+ points.crossSeamCurveStart.shift(points.waistIn.angle(points.waistOut), 1),
+ points.waistMid,
+ points.seatMid
+ )
+ if (points.seatMid.y > points.crossSeamCurveStartMid.y) {
+ points.seatIn = utils.lineIntersectsCurve(
+ points.seatMid,
+ points.seatInTarget,
+ points.crossSeamCurveStart,
+ points.crossSeamCurveCp1,
+ points.crossSeamCurveCp2,
+ points.fork
+ )
+ } else {
+ points.seatIn = utils.beamsIntersect(
+ points.seatMid,
+ points.seatInTarget,
+ points.waistIn,
+ points.crossSeamCurveStart
+ )
+ }
+ if (points.waistOut.x > points.seatOut.x) {
+ points.hipsOut = utils.lineIntersectsCurve(
+ points.hipsIn,
+ points.hipsIn.rotate(180, points.hipsOutTarget),
+ points.kneeOut,
+ points.kneeOutCp2,
+ points.seatOut,
+ points.waistOut
+ )
+ points.seatOutNotch = utils.lineIntersectsCurve(
+ points.seatMid,
+ points.seatOutTarget,
+ points.kneeOut,
+ points.kneeOutCp2,
+ points.seatOut,
+ points.waistOut
+ )
+ } else {
+ points.hipsOut = utils.lineIntersectsCurve(
+ points.hipsIn,
+ points.hipsIn.rotate(180, points.hipsOutTarget),
+ points.seatOut,
+ points.seatOutCp2,
+ points.waistOut,
+ points.waistOut
+ )
+ points.seatOutNotch = points.seatOut
+ }
+ points.kneeOutNotch = points.kneeOut
+ points.kneeInNotch = points.kneeIn
+ macro('sprinkle', {
+ snippet: 'notch',
+ on: ['seatOutNotch'],
+ })
+ if (extendBeyondKnee) {
+ macro('sprinkle', {
+ snippet: 'notch',
+ on: ['kneeInNotch', 'kneeOutNotch'],
+ })
+ }
+ macro('sprinkle', {
+ snippet: 'bnotch',
+ on: ['crossSeamCurveStart', 'seatIn'],
+ })
+
+ if (complete) {
+ paths.seatline = new Path()
+ .move(points.seatIn)
+ .line(points.seatOutNotch)
+ .addClass('fabric help')
+ .addText('Seat Line', 'center')
+ if (
+ measurements.waistToHips * (1 - options.waistHeight) + absoluteOptions.waistbandWidth <
+ measurements.waistToHips
+ ) {
+ snippets.hipsIn = new Snippet('bnotch', points.hipsIn)
+ snippets.hipsOut = new Snippet('notch', points.hipsOut)
+ paths.hipline = new Path()
+ .move(points.hipsIn)
+ .line(points.hipsOut)
+ .addClass('fabric help')
+ .addText('Hip Line', 'center')
+ }
+ }
+ }
+
+ if (sa) {
+ paths.saBase = paths.upperOutseam.join(paths.upperInseam).hide()
+ paths.hemBase = paths.bottom.hide()
+ paths.sa = paths.hemBase
+ .offset(sa * 3)
+ .join(paths.saBase.offset(sa))
+ .close()
+ .addClass('fabric sa')
+ }
+
+ if (paperless) {
+ // Help construct cross seam
+ paths.hint = new Path()
+ .move(points.crossSeamCurveStart)
+ .line(points.crossSeamCurveMax)
+ .line(points.fork)
+ .addClass('note lashed')
+ macro('hd', {
+ id: 'wHem',
+ from: points.bottomIn,
+ to: points.bottomOut,
+ y: points.bottomIn.y - 30,
+ })
+ macro('hd', {
+ id: 'wHemLeft',
+ from: points.bottomIn,
+ to: points.bottom,
+ y: points.bottomIn.y - 15,
+ })
+ macro('hd', {
+ id: 'wHemRight',
+ from: points.bottom,
+ to: points.bottomOut,
+ y: points.bottomIn.y - 15,
+ })
+ macro('vd', {
+ id: 'hHemToSideWaist',
+ from: points.bottomOut,
+ to: points.styleWaistOutLily,
+ x:
+ (points.seatOut.x > points.styleWaistOutLily.x
+ ? points.seatOut.x
+ : points.styleWaistOutLily.x) +
+ sa +
+ 15,
+ })
+ macro('vd', {
+ id: 'hHemToFork',
+ from: points.bottomIn,
+ to: points.fork,
+ x: points.fork.x - sa - 15,
+ })
+ macro('vd', {
+ id: 'hForkToCbWaist',
+ from: points.fork,
+ to: points.styleWaistInLily,
+ x: points.fork.x - sa - 15,
+ })
+ macro('vd', {
+ id: 'hFull',
+ from: points.bottomIn,
+ to: points.styleWaistInLily,
+ x: points.fork.x - sa - 30,
+ })
+ macro('vd', {
+ id: 'hStartCrotchCurveToCbWaist',
+ from: points.crossSeamCurveStart,
+ to: points.styleWaistInLily,
+ x: points.crossSeamCurveStart.x - sa - 15,
+ })
+ macro('hd', {
+ id: 'wCbWaistToPleat',
+ from: points.styleWaistInLily,
+ to: points.grainlineTop,
+ y: points.styleWaistInLily.y - sa - 15,
+ })
+ macro('hd', {
+ id: 'wStartCrotchCurveToPleat',
+ from: points.crossSeamCurveStart,
+ to: points.grainlineTop,
+ y: points.styleWaistInLily.y - sa - 30,
+ })
+ macro('hd', {
+ id: 'wForkProjectionToPleat',
+ from: points.crossSeamCurveMax,
+ to: points.grainlineTop,
+ y: points.styleWaistInLily.y - sa - 45,
+ })
+ macro('hd', {
+ id: 'wForkToPleat',
+ from: points.fork,
+ to: points.grainlineTop,
+ y: points.styleWaistInLily.y - sa - 60,
+ })
+ macro('hd', {
+ id: 'wPleatToSideWaist',
+ from: points.grainlineTop,
+ to: points.styleWaistOutLily,
+ y: points.styleWaistInLily.y - sa - 15,
+ })
+ if (points.seatOut.x > points.styleWaistOutLily.x) {
+ macro('hd', {
+ id: 'wPleatToSideWaistAlt',
+ from: points.grainlineTop,
+ to: points.seatOut,
+ y: points.styleWaistInLily.y - sa - 30,
+ })
+ }
+ }
+
+ return part
+}
+
+export const back = {
+ name: 'lily.back',
+ from: titanBack,
+ //after: titanFront,
+ measurements: [
+ 'ankle',
+ 'heel', // secondary measurement, used instead of ankle
+ ],
+ options: {
+ fitGuides: { bool: false, menu: 'advanced' },
+ fitKnee: { bool: true, hide: true },
+ legBalance: 0.5, // between back and front parts
+ waistBalance: 0.5,
+ crotchDrop: { pct: 0, min: 0, max: 15, menu: 'advanced' }, // 'downgrade' to advanced menu
+ waistHeight: { ...titanBack.options.waistHeight, pct: 50 }, // halfway between waist and hips
+ fabricStretch: { pct: 40, min: 0, max: 50, menu: 'fit' },
+ waistEase: { pct: -4, min: -20, max: 0, menu: 'fit' }, // -fabricStretch/10,
+ seatEase: { pct: -4, min: -20, max: 0, menu: 'fit' }, // -fabricStretch/10,
+ kneeEase: { pct: -4, min: -20, max: 0, menu: 'fit' }, // -fabricStretch/10,
+ //test: {pct: back.options.fabricStretch/2, min: 0, max: 50, menu: 'fit'},
+ lengthBonus: 0,
+ lengthReduction: {
+ pct: 0,
+ min: 0,
+ max: 100,
+ toAbs: (pct, { measurements }) => measurements.waistToFloor * pct,
+ menu: 'style',
+ },
+ waistbandWidth: { ...titanBack.options.waistbandWidth, menu: 'style' },
+ },
+ hide: 'HIDE_TREE',
+ draft: draftLilyBack,
+}
diff --git a/designs/lily/src/front.mjs b/designs/lily/src/front.mjs
new file mode 100644
index 00000000000..d4e4cbb5e13
--- /dev/null
+++ b/designs/lily/src/front.mjs
@@ -0,0 +1,602 @@
+import { front as titanFront } from '@freesewing/titan'
+import { back } from './back.mjs'
+
+function draftLilyFront({
+ points,
+ Point,
+ paths,
+ Path,
+ measurements,
+ options,
+ complete,
+ paperless,
+ store,
+ macro,
+ utils,
+ snippets,
+ Snippet,
+ sa,
+ absoluteOptions,
+ log,
+ part,
+}) {
+ /*
+ * Helper method to draw the inseam path
+ */
+ const drawInseam = () =>
+ new Path()
+ .move(points.floorIn)
+ .curve(points.floorInCp2, points.kneeInCp1, points.kneeIn)
+ .curve(points.kneeInCp2, points.forkCp1, points.fork)
+ /*
+ * Helper method to draw the outseam path
+ */
+ const drawOutseam = () => {
+ const waistOut = points.styleWaistOutLily || points.waistOut
+ return points.waistOut.x < points.seatOut.x
+ ? new Path()
+ .move(waistOut)
+ .curve(points.seatOut, points.kneeOutCp1, points.kneeOut)
+ .curve(points.kneeOutCp2, points.floorOutCp2, points.floorOut)
+ : new Path()
+ .move(waistOut)
+ ._curve(points.seatOutCp1, points.seatOut)
+ .curve(points.seatOutCp2, points.kneeOutCp1, points.kneeOut)
+ .curve(points.kneeOutCp2, points.floorOutCp2, points.floorOut)
+ }
+ /*
+ * Helper method to draw the outline path
+ */
+ const drawPath = () => {
+ const waistIn = points.styleWaistInLily || points.waistIn
+ const waistOut = points.styleWaistOutLily || points.waistOut
+ return drawOutseam()
+ .line(points.floorIn)
+ .join(drawInseam())
+ .curve(points.crotchSeamCurveCp1, points.crotchSeamCurveCp2, points.crotchSeamCurveStart)
+ .line(waistIn)
+ .line(waistOut)
+ .close()
+ }
+ /*
+ * Helper method to calculate the length of the crotch seam
+ */
+ const crotchSeamDelta = () =>
+ new Path()
+ .move(points.waistIn)
+ .line(points.crotchSeamCurveStart)
+ .curve(points.crotchSeamCurveCp2, points.crotchSeamCurveCp1, points.fork)
+ .length() - measurements.crossSeamFront
+ /*
+ * Helper method to (re)draw the crotch seam
+ */
+ const drawCrotchSeam = () => {
+ points.crotchSeamCurveStart = points.waistIn.shiftFractionTowards(
+ points.cfSeat,
+ options.crotchSeamCurveStart
+ )
+ points.crotchSeamCurveMax = utils.beamsIntersect(
+ points.waistIn,
+ points.cfSeat,
+ points.fork,
+ points.fork.shift(0, 666)
+ )
+ points.crotchSeamCurveCp1 = points.fork
+ .shiftFractionTowards(points.crotchSeamCurveMax, options.crotchSeamCurveBend)
+ .rotate(options.crotchSeamCurveAngle * -1, points.fork)
+ points.crotchSeamCurveCp2 = points.crotchSeamCurveStart.shiftFractionTowards(
+ points.crotchSeamCurveMax,
+ options.crotchSeamCurveBend
+ )
+ points.forkCp1 = points.crotchSeamCurveCp1.rotate(90, points.fork)
+ }
+ /*
+ * Helper method to calculate the inseam delta
+ */
+ const inseamDelta = () => drawInseam().length() - store.get('inseamBack')
+ /*
+ * Helper method to calculate the outseam delta
+ */
+ const outseamDelta = () => drawOutseam().length() - store.get('outseamBack')
+ /*
+ * Helper method to lengthen/shorten both inseam and outseam
+ */
+ const adaptInseamAndOutseam = () => {
+ const shift = [
+ 'kneeInCp1',
+ 'kneeInCp2',
+ 'kneeOutCp1',
+ 'kneeOutCp2',
+ 'kneeIn',
+ 'kneeOut',
+ 'knee',
+ 'floorInCp2',
+ 'floorIn',
+ 'floorOutCp2',
+ 'floorOut',
+ 'floor',
+ 'grainlineBottom',
+ ]
+ let delta = seamDelta()
+ let run = 0
+ do {
+ run++
+ for (const i of shift) points[i] = points[i].shift(90, delta)
+ delta = seamDelta()
+ } while (Math.abs(delta) > 1 && run < 10)
+ }
+ /*
+ * Helper method to determine the delta common when both inseam and outseam
+ * are either too long or too short
+ */
+ const seamDelta = () => {
+ const inseam = inseamDelta()
+ const outseam = outseamDelta()
+ return Math.abs(inseam) > Math.abs(outseam) ? outseam : inseam
+ }
+ /*
+ * Helper method that can fit either inseam or outseam
+ */
+ const adaptSeam = (side) => {
+ const out = side === 'out' ? true : false
+ const rotate = [
+ 'cfSeat',
+ 'crotchSeamCurveCp1',
+ 'crotchSeamCurveCp2',
+ 'crotchSeamCurveStart',
+ 'waistIn',
+ 'cfWaist',
+ 'waistOut',
+ ]
+ rotate.push(out ? 'seatOut' : 'fork')
+ const deltaMethod = out ? outseamDelta : inseamDelta
+ let run = 0
+ let delta = deltaMethod()
+ do {
+ for (const i of rotate)
+ points[i] = points[i].rotate(
+ (delta / 10) * (out ? 1 : -1),
+ points[out ? 'fork' : 'seatOut']
+ )
+ run++
+ delta = deltaMethod()
+ } while (Math.abs(delta) > 1 && run < 20)
+ }
+ const adaptOutseam = () => adaptSeam('out')
+ const adaptInseam = () => adaptSeam('in')
+
+ // NOTE: majority of points re-used from titan
+
+ // shape at the ankle (unlike titan)
+ points.floorOut = points.floor.shift(180, store.get('halfAnkle'))
+ points.floorIn = points.floorOut.flipX(points.floor)
+
+ // Control points between knee and ankle
+ points.floorInCp2 = points.floorIn.shift(90, points.knee.dy(points.floor) / 3)
+ points.kneeInCp1 = points.kneeIn.shift(90, -points.knee.dy(points.floor) / 3)
+ points.floorOutCp2 = points.floorOut.shift(90, points.knee.dy(points.floor) / 3)
+ points.kneeOutCp2 = points.kneeOut.shift(90, -points.knee.dy(points.floor) / 3)
+
+ // other control points have already been calculated in titan
+ // Control points to shape the legs towards the seat
+ // Balance the waist
+
+ // Draw initial crotch seam
+ drawCrotchSeam()
+
+ // Uncomment this to see the outline prior to fitting the crotch seam
+ //paths.seam1 = drawPath().attr('class', 'dashed lining')
+
+ if (options.fitCrossSeam && options.fitCrossSeamFront) {
+ let delta = crotchSeamDelta()
+ let run = 0
+ do {
+ run++
+ // Remedy A: Slash and spread
+ for (const i of ['waistIn', 'waistOut', 'cfWaist'])
+ points[i] = points[i].rotate(delta / -15, points.seatOut)
+ // Remedy B: Nudge the fork inwards/outwards
+ points.fork = points.fork.shift(180, delta / 5)
+ drawCrotchSeam()
+ delta = crotchSeamDelta()
+ // Uncomment the line below this to see all iterations
+ //paths[`try${run}`] = drawPath().attr('class', 'dotted')
+ } while (Math.abs(delta) > 1 && run < 15)
+ }
+
+ // Uncomment this to see the outline prior to fitting the inseam & outseam
+ //paths.seam2 = drawPath().attr('class', 'dotted interfacing')
+
+ /*
+ * With the cross seams matched back and front,
+ * all that's left is to match the inseam and outseam
+ */
+
+ // When both are too short/long, adapt the leg length
+ if ((inseamDelta() < 0 && outseamDelta() < 0) || (inseamDelta() > 0 && outseamDelta() > 0))
+ adaptInseamAndOutseam()
+
+ // Now one is ok, the other will be adapted
+ adaptOutseam()
+ adaptInseam()
+
+ // Changing one will ever so slightly impact the other, so let's run both again to be sure
+ adaptOutseam()
+ adaptInseam()
+
+ // Only now style the waist lower if requested
+ // Note: redo this for lily even though it was already done for titan;
+ // calculation for titan happened using its own seam lengths
+ if (options.waistHeight < 1 || absoluteOptions.waistbandWidth > 0) {
+ points.styleWaistOutLily = drawOutseam().shiftAlong(
+ measurements.waistToHips * (1 - options.waistHeight) + absoluteOptions.waistbandWidth
+ )
+ points.styleWaistInLily = utils.beamsIntersect(
+ points.styleWaistOutLily,
+ points.styleWaistOutLily.shift(points.waistOut.angle(points.waistIn), 10),
+ points.waistIn,
+ points.crotchSeamCurveStart
+ )
+ } else {
+ points.styleWaistInLily = points.waistIn.clone()
+ points.styleWaistOutLily = points.waistOut.clone()
+ }
+ store.set('frontWaist', points.styleWaistInLily.dist(points.styleWaistOutLily))
+
+ // Now that the top of the garment has been lowered, adjust the
+ // crotchSeamCurveStart so it doesn't start above the top of the garment.
+ if (points.crotchSeamCurveStart.y < points.styleWaistInLily.y) {
+ points.crotchSeamCurveStart = points.styleWaistInLily.clone()
+ }
+
+ // Seamline
+ paths.seam = drawPath().attr('class', 'fabric')
+
+ // adjust the length (at the bottom)
+ let extendBeyondKnee = 1
+ if (options.lengthReduction > 0) {
+ let requestedLength = store.get('requestedLength')
+ // leggings must reach to fork at least, so define a minimum
+ let waistToFork = points.waistX.dy(points.fork)
+ let waistToKnee = points.waistX.dy(points.knee) // adapting the seams may have shifted the knee up or down
+ if (waistToFork > requestedLength) {
+ //log.warning('length reduction capped; cutting off at fork') // log only for back part
+ // add one percent to waistToFork to ensure that path length is nonzero
+ requestedLength = waistToFork * 1.01
+ }
+
+ // work-around to avoid splitting exactly at the knee
+ // (due to a bug, splitting a path at a node is not possible)
+ if (0.999 < requestedLength / waistToKnee && requestedLength / waistToKnee < 1.001) {
+ requestedLength = 1.001 * waistToKnee
+ }
+ points.bottom = points.waistX.shift(270, requestedLength)
+ let upperPoint, upperCp
+ if (requestedLength < waistToKnee) {
+ extendBeyondKnee = 0
+
+ // 'cut' between fork and knee
+ if (points.waistOut.x < points.seatOut.x) {
+ upperPoint = points.styleWaistOutLily
+ upperCp = points.seatOut
+ } else {
+ upperPoint = points.seatOut
+ upperCp = points.seatOutCp2
+ }
+ points.bottomOut = utils.lineIntersectsCurve(
+ points.bottom.shift(0, 999),
+ points.bottom.shift(180, 999),
+ points.kneeOut,
+ points.kneeOutCp1,
+ upperCp,
+ upperPoint
+ )
+
+ points.bottomIn = utils.lineIntersectsCurve(
+ points.bottom.shift(0, 999),
+ points.bottom.shift(180, 999),
+ points.kneeIn,
+ points.kneeInCp2,
+ points.forkCp1,
+ points.fork
+ )
+ } else {
+ // 'cut' between knee and 'floor'
+ points.bottomOut = utils.lineIntersectsCurve(
+ points.bottom.shift(0, 999),
+ points.bottom.shift(180, 999),
+ points.kneeOut,
+ points.kneeOutCp2,
+ points.floorOutCp2,
+ points.floorOut
+ )
+
+ points.bottomIn = utils.lineIntersectsCurve(
+ points.bottom.shift(0, 999),
+ points.bottom.shift(180, 999),
+ points.kneeIn,
+ points.kneeInCp1,
+ points.floorInCp2,
+ points.floorIn
+ )
+ }
+
+ // define the three parts of the path, then combine
+ paths.bottom = new Path().move(points.bottomOut).line(points.bottomIn)
+
+ const halves = paths.seam.split(points.bottomOut)
+ paths.upperOutseam = halves[0]
+ const halves2 = halves[1].split(points.bottomIn)
+ paths.upperInseam = halves2[1]
+
+ paths.seam = paths.upperOutseam.join(paths.bottom).join(paths.upperInseam)
+ } else {
+ // define the same three parts of the path as when length reduction is enabled, then combine
+
+ // first define the points (also used for paperless)
+ points.bottom = points.floor
+ points.bottomIn = points.floorIn
+ points.bottomOut = points.floorOut
+
+ paths.bottom = new Path().move(points.bottomOut).line(points.bottomIn)
+
+ // note: upperInseam contains waist and cross seam as well
+ paths.upperInseam = drawInseam()
+ .curve(points.crotchSeamCurveCp1, points.crotchSeamCurveCp2, points.crotchSeamCurveStart)
+ .line(points.styleWaistInLily)
+ .line(points.styleWaistOutLily)
+ paths.upperOutseam = drawOutseam()
+ paths.bottom.hide()
+ paths.upperInseam.hide()
+ paths.upperOutseam.hide()
+ }
+
+ if (complete) {
+ points.grainlineTop.y = points.styleWaistInLily.y
+ points.grainlineBottom.y = points.bottom.y
+ macro('grainline', {
+ from: points.grainlineTop,
+ to: points.grainlineBottom,
+ })
+ points.logoAnchor = new Point(points.crotchSeamCurveStart.x / 2, points.fork.y)
+ snippets.logo = new Snippet('logo', points.logoAnchor)
+ points.titleAnchor = points.logoAnchor.shift(-90, 60)
+ macro('title', {
+ nr: 2,
+ title: 'front',
+ at: points.titleAnchor,
+ })
+
+ //notches
+ if (options.fitGuides) {
+ points.waistMid = points.waistOut.shiftFractionTowards(points.waistIn, 0.5)
+ points.seatMid = points.waistMid
+ .shiftTowards(points.waistOut, measurements.waistToSeat)
+ .rotate(90, points.waistMid)
+ points.seatInTarget = points.seatOut.shiftOutwards(points.seatMid, measurements.seat / 4)
+ points.seatOutTarget = points.seatMid.shiftTowards(points.seatOut, measurements.seat / 4)
+ points.hipsInTarget = points.waistIn
+ .shiftTowards(points.waistOut, measurements.waistToHips)
+ .rotate(90, points.waistIn)
+ points.hipsOutTarget = points.waistOut
+ .shiftTowards(points.waistIn, measurements.waistToHips)
+ .rotate(-90, points.waistOut)
+ points.hipsIn = utils.beamsIntersect(
+ points.hipsOutTarget,
+ points.hipsInTarget,
+ points.waistIn,
+ points.crotchSeamCurveStart
+ )
+ // intersection between the vertical line from waistMid to seatMid and a line parallel to waistIn-waistOut that goes through crotchSeamCurveStart
+ points.crotchSeamCurveStartMid = utils.beamsIntersect(
+ points.crotchSeamCurveStart,
+ points.crotchSeamCurveStart.shift(points.waistIn.angle(points.waistOut), 1),
+ points.waistMid,
+ points.seatMid
+ )
+ // check whether intersection occurs above or below crotch seam curve start
+ points.seatInTemp = utils.beamsIntersect(
+ points.seatMid,
+ points.seatInTarget,
+ points.crotchSeamCurveStart,
+ points.waistIn
+ ) // NOTE: guaranteed to return a Point since the lines cannot be parallel
+ if (points.seatInTemp.y <= points.crotchSeamCurveStartMid.y) {
+ // intersection is above the crotch seam curve start, so on the line segment
+ points.seatIn = points.seatInTemp.clone()
+ } else if (points.seatInTemp.y > points.fork.y) {
+ // seat appears to be below crotch
+ log.warn('seat estimated to be below crotch; this is probably not accurate')
+ points.seatIn = points.fork.clone()
+ } else {
+ points.seatIn = utils.beamIntersectsCurve(
+ points.seatMid,
+ points.seatInTarget,
+ points.crotchSeamCurveStart,
+ points.crotchSeamCurveCp2,
+ points.crotchSeamCurveCp1,
+ points.fork
+ )
+ }
+ if (points.waistOut.x < points.seatOut.x) {
+ //log.info('waist to the left of seat')
+ points.hipsOut = utils.lineIntersectsCurve(
+ points.hipsIn,
+ points.hipsIn.rotate(180, points.hipsOutTarget),
+ points.waistOut,
+ points.seatOut,
+ points.kneeOutCp1,
+ points.kneeOut
+ )
+ points.seatOutNotch = utils.lineIntersectsCurve(
+ points.seatMid,
+ points.seatOutTarget,
+ points.waistOut,
+ points.seatOut,
+ points.kneeOutCp1,
+ points.kneeOut
+ )
+ } else {
+ //log.info('waist to the right of seat')
+ points.hipsOut = utils.lineIntersectsCurve(
+ points.hipsIn,
+ points.hipsIn.rotate(180, points.hipsOutTarget),
+ points.waistOut,
+ points.waistOut,
+ points.seatOutCp1,
+ points.seatOut
+ )
+ points.seatOutNotch = points.seatOut
+ }
+ points.kneeOutNotch = points.kneeOut
+ points.kneeInNotch = points.kneeIn
+ macro('sprinkle', {
+ snippet: 'notch',
+ on: ['crotchSeamCurveStart', 'seatIn', 'seatOutNotch'],
+ })
+ if (extendBeyondKnee) {
+ macro('sprinkle', {
+ snippet: 'notch',
+ on: ['kneeInNotch', 'kneeOutNotch'],
+ })
+ }
+ paths.seatline = new Path()
+ .move(points.seatOutNotch)
+ .line(points.seatIn)
+ .addClass('fabric help')
+ .addText('Seat Line', 'center')
+ if (
+ measurements.waistToHips * (1 - options.waistHeight) + absoluteOptions.waistbandWidth <
+ measurements.waistToHips
+ ) {
+ macro('sprinkle', {
+ snippet: 'notch',
+ on: ['hipsIn', 'hipsOut'],
+ })
+ paths.hipline = new Path()
+ .move(points.hipsOut)
+ .line(points.hipsIn)
+ .addClass('fabric help')
+ .addText('Hip Line', 'center')
+ }
+ }
+
+ if (sa) {
+ paths.saBase = paths.upperInseam.join(paths.upperOutseam).hide()
+ paths.hemBase = paths.bottom.hide()
+ paths.sa = paths.hemBase
+ .offset(sa * 3)
+ .join(paths.saBase.offset(sa))
+ .close()
+ .addClass('fabric sa')
+ }
+
+ // Delete Titan's old hint path (which could start above the top
+ // of the garment)
+ // delete paths.hint
+
+ if (paperless) {
+ // Help construct crotch seam
+ paths.hint = new Path()
+ .move(points.crotchSeamCurveStart)
+ .line(points.crotchSeamCurveMax)
+ .line(points.fork)
+ .addClass('note lashed')
+ macro('hd', {
+ id: 'wHemLeftToPleat',
+ from: points.bottomOut,
+ to: points.bottom,
+ y: points.bottomIn.y - 15,
+ })
+ macro('hd', {
+ id: 'wHemRightToPleat',
+ from: points.bottom,
+ to: points.bottomIn,
+ y: points.bottomIn.y - 15,
+ })
+ macro('hd', {
+ id: 'wHem',
+ from: points.bottomOut,
+ to: points.bottomIn,
+ y: points.bottomIn.y - 30,
+ })
+ macro('vd', {
+ id: 'hHemToFork',
+ from: points.bottomOut,
+ to: points.fork,
+ x: points.fork.x + sa + 15,
+ })
+ macro('vd', {
+ id: 'hForkToCfWaist',
+ from: points.fork,
+ to: points.styleWaistInLily,
+ x: points.fork.x + sa + 15,
+ })
+ macro('vd', {
+ id: 'hHemToSideWaist',
+ from: points.bottomIn,
+ to: points.styleWaistOutLily,
+ x:
+ (points.seatOut.x < points.styleWaistOutLily.x
+ ? points.seatOut.x
+ : points.styleWaistOutLily.x) -
+ sa -
+ 15,
+ })
+ macro('vd', {
+ id: 'hStartCrotchCurveToCfWaist',
+ from: points.crotchSeamCurveStart,
+ to: points.styleWaistInLily,
+ x: points.crotchSeamCurveStart.x + sa + 15,
+ })
+ macro('hd', {
+ id: 'wSideWaistToPleat',
+ from: points.seatOut,
+ to: points.grainlineTop,
+ y: points.styleWaistInLily.y - sa - 15,
+ })
+ if (points.styleWaistOutLily.x < points.seatOut.x) {
+ macro('hd', {
+ id: 'wSideWaistToPleatAlt',
+ from: points.styleWaistOutLily,
+ to: points.grainlineTop,
+ y: points.styleWaistInLily.y - sa - 30,
+ })
+ }
+ macro('hd', {
+ id: 'wPleatToCfWaist',
+ from: points.grainlineTop,
+ to: points.styleWaistInLily,
+ y: points.styleWaistInLily.y - sa - 15,
+ })
+ macro('hd', {
+ id: 'wPleatToStartCrotchCurve',
+ from: points.grainlineTop,
+ to: points.crotchSeamCurveStart,
+ y: points.styleWaistInLily.y - sa - 30,
+ })
+ macro('hd', {
+ id: 'wPleatToCrotchProjection',
+ from: points.grainlineTop,
+ to: points.crotchSeamCurveMax,
+ y: points.styleWaistInLily.y - sa - 45,
+ })
+ macro('hd', {
+ id: 'wPleatToFork',
+ from: points.grainlineTop,
+ to: points.fork,
+ y: points.styleWaistInLily.y - sa - 60,
+ })
+ }
+ }
+
+ return part
+}
+
+export const front = {
+ name: 'lily.front',
+ from: titanFront,
+ after: back,
+ hide: 'HIDE_TREE',
+ draft: draftLilyFront,
+}
diff --git a/designs/lily/src/index.mjs b/designs/lily/src/index.mjs
new file mode 100644
index 00000000000..1a831522031
--- /dev/null
+++ b/designs/lily/src/index.mjs
@@ -0,0 +1,16 @@
+import { Design } from '@freesewing/core'
+import { i18n } from '../i18n/index.mjs'
+import { data } from '../data.mjs'
+// Parts
+import { front } from './front.mjs'
+import { back } from './back.mjs'
+import { waistband } from './waistband.mjs'
+
+// Create new design
+const Lily = new Design({
+ data,
+ parts: [front, back, waistband],
+})
+
+// Named exports
+export { front, back, waistband, i18n, Lily }
diff --git a/designs/lily/src/waistband.mjs b/designs/lily/src/waistband.mjs
new file mode 100644
index 00000000000..b6deb052d44
--- /dev/null
+++ b/designs/lily/src/waistband.mjs
@@ -0,0 +1,18 @@
+import { back } from './back.mjs'
+import { front } from './front.mjs'
+import { waistband as pacoWaistband } from '@freesewing/paco'
+
+export const waistband = {
+ name: 'lily.waistband',
+ after: [back, front],
+ hide: 'HIDE_TREE',
+ draft: (sh) => {
+ const { snippets, part } = sh
+ //draft
+ pacoWaistband.draft(sh)
+ //delete eyelets
+ for (let s in snippets) delete snippets[s]
+
+ return part
+ },
+}
diff --git a/designs/lily/tests/shared.test.mjs b/designs/lily/tests/shared.test.mjs
new file mode 100644
index 00000000000..e587224479e
--- /dev/null
+++ b/designs/lily/tests/shared.test.mjs
@@ -0,0 +1,20 @@
+// This file is auto-generated | Any changes you make will be overwritten.
+import { Lily, i18n } from '../src/index.mjs'
+
+// Shared tests
+import { testPatternConfig } from '../../../tests/designs/config.mjs'
+import { testPatternI18n } from '../../../tests/designs/i18n.mjs'
+import { testPatternDrafting } from '../../../tests/designs/drafting.mjs'
+import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
+
+// Test config
+testPatternConfig(Lily)
+
+// Test translation
+testPatternI18n(Lily, i18n)
+
+// Test drafting - Change the second parameter to `true` to log errors
+testPatternDrafting(Lily, false)
+
+// Test sampling - Change the second parameter to `true` to log errors
+testPatternSampling(Lily, false)
diff --git a/packages/new-design/lib/download-list.mjs b/packages/new-design/lib/download-list.mjs
index e5c0c5778af..3f4b50e29d8 100644
--- a/packages/new-design/lib/download-list.mjs
+++ b/packages/new-design/lib/download-list.mjs
@@ -10,7 +10,6 @@ export const downloads = {
'sde/site.config.mjs',
'sde/tailwind.config.mjs',
'sde/hooks/use-design.mjs',
- 'sde/pkgs/.gitkeep',
'sde/mock/designs.mjs',
'sde/mock/docs-helpers.mjs',
'sde/mock/highlight.mjs',
@@ -21,6 +20,7 @@ export const downloads = {
'sde/mock/read-more.mjs',
'sde/mock/tabbed-example.mjs',
'sde/mock/youtube.mjs',
+ 'sde/pkgs/.gitkeep',
'sde/prebuild/.gitkeep',
'sde/prebuild/sitenav.de.mjs',
'sde/prebuild/sitenav.en.mjs',
@@ -36,23 +36,11 @@ export const downloads = {
'sde/components/search.mjs',
'sde/components/header/design-picker.mjs',
'sde/components/header/index.mjs',
- 'sde/components/navigation/modal-menu.mjs',
'sde/components/layouts/bare.mjs',
'sde/components/layouts/default.mjs',
'sde/components/layouts/workbench.mjs',
+ 'sde/components/navigation/modal-menu.mjs',
'sde/components/wrappers/page.mjs',
- 'sde/design/from-bent/src/back.mjs',
- 'sde/design/from-bent/src/front.mjs',
- 'sde/design/from-bent/src/index.mjs',
- 'sde/design/from-bent/src/top-sleeve.mjs',
- 'sde/design/from-bent/src/under-sleeve.mjs',
- 'sde/design/from-bent/i18n/de.json',
- 'sde/design/from-bent/i18n/en.json',
- 'sde/design/from-bent/i18n/es.json',
- 'sde/design/from-bent/i18n/fr.json',
- 'sde/design/from-bent/i18n/index.mjs',
- 'sde/design/from-bent/i18n/nl.json',
- 'sde/design/from-bent/i18n/uk.json',
'sde/design/from-bella/en.json',
'sde/design/from-bella/i18n/de.json',
'sde/design/from-bella/i18n/en.json',
@@ -64,6 +52,18 @@ export const downloads = {
'sde/design/from-bella/src/back.mjs',
'sde/design/from-bella/src/front.mjs',
'sde/design/from-bella/src/index.mjs',
+ 'sde/design/from-bent/i18n/de.json',
+ 'sde/design/from-bent/i18n/en.json',
+ 'sde/design/from-bent/i18n/es.json',
+ 'sde/design/from-bent/i18n/fr.json',
+ 'sde/design/from-bent/i18n/index.mjs',
+ 'sde/design/from-bent/i18n/nl.json',
+ 'sde/design/from-bent/i18n/uk.json',
+ 'sde/design/from-bent/src/back.mjs',
+ 'sde/design/from-bent/src/front.mjs',
+ 'sde/design/from-bent/src/index.mjs',
+ 'sde/design/from-bent/src/top-sleeve.mjs',
+ 'sde/design/from-bent/src/under-sleeve.mjs',
'sde/design/from-breanna/i18n/de.json',
'sde/design/from-breanna/i18n/en.json',
'sde/design/from-breanna/i18n/es.json',
@@ -75,6 +75,10 @@ export const downloads = {
'sde/design/from-breanna/src/front.mjs',
'sde/design/from-breanna/src/index.mjs',
'sde/design/from-breanna/src/sleeve.mjs',
+ 'sde/design/from-brian/src/back.mjs',
+ 'sde/design/from-brian/src/front.mjs',
+ 'sde/design/from-brian/src/index.mjs',
+ 'sde/design/from-brian/src/sleeve.mjs',
'sde/design/from-brian/i18n/de.json',
'sde/design/from-brian/i18n/en.json',
'sde/design/from-brian/i18n/es.json',
@@ -82,10 +86,6 @@ export const downloads = {
'sde/design/from-brian/i18n/index.mjs',
'sde/design/from-brian/i18n/nl.json',
'sde/design/from-brian/i18n/uk.json',
- 'sde/design/from-brian/src/back.mjs',
- 'sde/design/from-brian/src/front.mjs',
- 'sde/design/from-brian/src/index.mjs',
- 'sde/design/from-brian/src/sleeve.mjs',
'sde/design/from-scratch/i18n/de.json',
'sde/design/from-scratch/i18n/en.json',
'sde/design/from-scratch/i18n/es.json',
@@ -189,6 +189,60 @@ export const downloads = {
'sde/public/locales/de/tutorial.json',
'sde/public/locales/de/ui-settings.json',
'sde/public/locales/de/workbench.json',
+ 'sde/public/locales/es/account.json',
+ 'sde/public/locales/es/auth.json',
+ 'sde/public/locales/es/bella.json',
+ 'sde/public/locales/es/bent.json',
+ 'sde/public/locales/es/breanna.json',
+ 'sde/public/locales/es/brian.json',
+ 'sde/public/locales/es/common.json',
+ 'sde/public/locales/es/core-settings.json',
+ 'sde/public/locales/es/curate.json',
+ 'sde/public/locales/es/cut.json',
+ 'sde/public/locales/es/design-options.json',
+ 'sde/public/locales/es/designs.json',
+ 'sde/public/locales/es/docs.json',
+ 'sde/public/locales/es/errors.json',
+ 'sde/public/locales/es/flag.json',
+ 'sde/public/locales/es/footer.json',
+ 'sde/public/locales/es/frombella.json',
+ 'sde/public/locales/es/frombent.json',
+ 'sde/public/locales/es/frombreanna.json',
+ 'sde/public/locales/es/frombrian.json',
+ 'sde/public/locales/es/fromscratch.json',
+ 'sde/public/locales/es/fromtitan.json',
+ 'sde/public/locales/es/gdpr.json',
+ 'sde/public/locales/es/header.json',
+ 'sde/public/locales/es/hodl.json',
+ 'sde/public/locales/es/homepage.json',
+ 'sde/public/locales/es/lab.json',
+ 'sde/public/locales/es/locales.json',
+ 'sde/public/locales/es/logs.json',
+ 'sde/public/locales/es/measurements.json',
+ 'sde/public/locales/es/modal.json',
+ 'sde/public/locales/es/newsletter.json',
+ 'sde/public/locales/es/patrons.json',
+ 'sde/public/locales/es/plugin-annotations.json',
+ 'sde/public/locales/es/plugins.json',
+ 'sde/public/locales/es/popout.json',
+ 'sde/public/locales/es/print.json',
+ 'sde/public/locales/es/roles.json',
+ 'sde/public/locales/es/sde.json',
+ 'sde/public/locales/es/sections.json',
+ 'sde/public/locales/es/sets.json',
+ 'sde/public/locales/es/sponsors.json',
+ 'sde/public/locales/es/status.json',
+ 'sde/public/locales/es/submissions.json',
+ 'sde/public/locales/es/support.json',
+ 'sde/public/locales/es/susi.json',
+ 'sde/public/locales/es/tags.json',
+ 'sde/public/locales/es/techniques.json',
+ 'sde/public/locales/es/themes.json',
+ 'sde/public/locales/es/timeago.json',
+ 'sde/public/locales/es/titan.json',
+ 'sde/public/locales/es/tutorial.json',
+ 'sde/public/locales/es/ui-settings.json',
+ 'sde/public/locales/es/workbench.json',
'sde/public/locales/en/account.json',
'sde/public/locales/en/auth.json',
'sde/public/locales/en/bella.json',
@@ -297,114 +351,6 @@ export const downloads = {
'sde/public/locales/fr/tutorial.json',
'sde/public/locales/fr/ui-settings.json',
'sde/public/locales/fr/workbench.json',
- 'sde/public/locales/nl/account.json',
- 'sde/public/locales/nl/auth.json',
- 'sde/public/locales/nl/bella.json',
- 'sde/public/locales/nl/bent.json',
- 'sde/public/locales/nl/breanna.json',
- 'sde/public/locales/nl/brian.json',
- 'sde/public/locales/nl/common.json',
- 'sde/public/locales/nl/core-settings.json',
- 'sde/public/locales/nl/curate.json',
- 'sde/public/locales/nl/cut.json',
- 'sde/public/locales/nl/design-options.json',
- 'sde/public/locales/nl/designs.json',
- 'sde/public/locales/nl/docs.json',
- 'sde/public/locales/nl/errors.json',
- 'sde/public/locales/nl/flag.json',
- 'sde/public/locales/nl/footer.json',
- 'sde/public/locales/nl/frombella.json',
- 'sde/public/locales/nl/frombent.json',
- 'sde/public/locales/nl/frombreanna.json',
- 'sde/public/locales/nl/frombrian.json',
- 'sde/public/locales/nl/fromscratch.json',
- 'sde/public/locales/nl/fromtitan.json',
- 'sde/public/locales/nl/gdpr.json',
- 'sde/public/locales/nl/header.json',
- 'sde/public/locales/nl/hodl.json',
- 'sde/public/locales/nl/homepage.json',
- 'sde/public/locales/nl/lab.json',
- 'sde/public/locales/nl/locales.json',
- 'sde/public/locales/nl/logs.json',
- 'sde/public/locales/nl/measurements.json',
- 'sde/public/locales/nl/modal.json',
- 'sde/public/locales/nl/newsletter.json',
- 'sde/public/locales/nl/patrons.json',
- 'sde/public/locales/nl/plugin-annotations.json',
- 'sde/public/locales/nl/plugins.json',
- 'sde/public/locales/nl/popout.json',
- 'sde/public/locales/nl/print.json',
- 'sde/public/locales/nl/roles.json',
- 'sde/public/locales/nl/sde.json',
- 'sde/public/locales/nl/sections.json',
- 'sde/public/locales/nl/sets.json',
- 'sde/public/locales/nl/sponsors.json',
- 'sde/public/locales/nl/status.json',
- 'sde/public/locales/nl/submissions.json',
- 'sde/public/locales/nl/support.json',
- 'sde/public/locales/nl/susi.json',
- 'sde/public/locales/nl/tags.json',
- 'sde/public/locales/nl/techniques.json',
- 'sde/public/locales/nl/themes.json',
- 'sde/public/locales/nl/timeago.json',
- 'sde/public/locales/nl/titan.json',
- 'sde/public/locales/nl/tutorial.json',
- 'sde/public/locales/nl/ui-settings.json',
- 'sde/public/locales/nl/workbench.json',
- 'sde/public/locales/es/account.json',
- 'sde/public/locales/es/auth.json',
- 'sde/public/locales/es/bella.json',
- 'sde/public/locales/es/bent.json',
- 'sde/public/locales/es/breanna.json',
- 'sde/public/locales/es/brian.json',
- 'sde/public/locales/es/common.json',
- 'sde/public/locales/es/core-settings.json',
- 'sde/public/locales/es/curate.json',
- 'sde/public/locales/es/cut.json',
- 'sde/public/locales/es/design-options.json',
- 'sde/public/locales/es/designs.json',
- 'sde/public/locales/es/docs.json',
- 'sde/public/locales/es/errors.json',
- 'sde/public/locales/es/flag.json',
- 'sde/public/locales/es/footer.json',
- 'sde/public/locales/es/frombella.json',
- 'sde/public/locales/es/frombent.json',
- 'sde/public/locales/es/frombreanna.json',
- 'sde/public/locales/es/frombrian.json',
- 'sde/public/locales/es/fromscratch.json',
- 'sde/public/locales/es/fromtitan.json',
- 'sde/public/locales/es/gdpr.json',
- 'sde/public/locales/es/header.json',
- 'sde/public/locales/es/hodl.json',
- 'sde/public/locales/es/homepage.json',
- 'sde/public/locales/es/lab.json',
- 'sde/public/locales/es/locales.json',
- 'sde/public/locales/es/logs.json',
- 'sde/public/locales/es/measurements.json',
- 'sde/public/locales/es/modal.json',
- 'sde/public/locales/es/newsletter.json',
- 'sde/public/locales/es/patrons.json',
- 'sde/public/locales/es/plugin-annotations.json',
- 'sde/public/locales/es/plugins.json',
- 'sde/public/locales/es/popout.json',
- 'sde/public/locales/es/print.json',
- 'sde/public/locales/es/roles.json',
- 'sde/public/locales/es/sde.json',
- 'sde/public/locales/es/sections.json',
- 'sde/public/locales/es/sets.json',
- 'sde/public/locales/es/sponsors.json',
- 'sde/public/locales/es/status.json',
- 'sde/public/locales/es/submissions.json',
- 'sde/public/locales/es/support.json',
- 'sde/public/locales/es/susi.json',
- 'sde/public/locales/es/tags.json',
- 'sde/public/locales/es/techniques.json',
- 'sde/public/locales/es/themes.json',
- 'sde/public/locales/es/timeago.json',
- 'sde/public/locales/es/titan.json',
- 'sde/public/locales/es/tutorial.json',
- 'sde/public/locales/es/ui-settings.json',
- 'sde/public/locales/es/workbench.json',
'sde/public/locales/uk/account.json',
'sde/public/locales/uk/auth.json',
'sde/public/locales/uk/bella.json',
@@ -459,6 +405,60 @@ export const downloads = {
'sde/public/locales/uk/tutorial.json',
'sde/public/locales/uk/ui-settings.json',
'sde/public/locales/uk/workbench.json',
+ 'sde/public/locales/nl/account.json',
+ 'sde/public/locales/nl/auth.json',
+ 'sde/public/locales/nl/bella.json',
+ 'sde/public/locales/nl/bent.json',
+ 'sde/public/locales/nl/breanna.json',
+ 'sde/public/locales/nl/brian.json',
+ 'sde/public/locales/nl/common.json',
+ 'sde/public/locales/nl/core-settings.json',
+ 'sde/public/locales/nl/curate.json',
+ 'sde/public/locales/nl/cut.json',
+ 'sde/public/locales/nl/design-options.json',
+ 'sde/public/locales/nl/designs.json',
+ 'sde/public/locales/nl/docs.json',
+ 'sde/public/locales/nl/errors.json',
+ 'sde/public/locales/nl/flag.json',
+ 'sde/public/locales/nl/footer.json',
+ 'sde/public/locales/nl/frombella.json',
+ 'sde/public/locales/nl/frombent.json',
+ 'sde/public/locales/nl/frombreanna.json',
+ 'sde/public/locales/nl/frombrian.json',
+ 'sde/public/locales/nl/fromscratch.json',
+ 'sde/public/locales/nl/fromtitan.json',
+ 'sde/public/locales/nl/gdpr.json',
+ 'sde/public/locales/nl/header.json',
+ 'sde/public/locales/nl/hodl.json',
+ 'sde/public/locales/nl/homepage.json',
+ 'sde/public/locales/nl/lab.json',
+ 'sde/public/locales/nl/locales.json',
+ 'sde/public/locales/nl/logs.json',
+ 'sde/public/locales/nl/measurements.json',
+ 'sde/public/locales/nl/modal.json',
+ 'sde/public/locales/nl/newsletter.json',
+ 'sde/public/locales/nl/patrons.json',
+ 'sde/public/locales/nl/plugin-annotations.json',
+ 'sde/public/locales/nl/plugins.json',
+ 'sde/public/locales/nl/popout.json',
+ 'sde/public/locales/nl/print.json',
+ 'sde/public/locales/nl/roles.json',
+ 'sde/public/locales/nl/sde.json',
+ 'sde/public/locales/nl/sections.json',
+ 'sde/public/locales/nl/sets.json',
+ 'sde/public/locales/nl/sponsors.json',
+ 'sde/public/locales/nl/status.json',
+ 'sde/public/locales/nl/submissions.json',
+ 'sde/public/locales/nl/support.json',
+ 'sde/public/locales/nl/susi.json',
+ 'sde/public/locales/nl/tags.json',
+ 'sde/public/locales/nl/techniques.json',
+ 'sde/public/locales/nl/themes.json',
+ 'sde/public/locales/nl/timeago.json',
+ 'sde/public/locales/nl/titan.json',
+ 'sde/public/locales/nl/tutorial.json',
+ 'sde/public/locales/nl/ui-settings.json',
+ 'sde/public/locales/nl/workbench.json',
'shared/utils.mjs',
'shared/components/mdx/dynamic.mjs',
'shared/components/mdx/design-measurements.mjs',
diff --git a/sites/lab/hooks/use-design.mjs b/sites/lab/hooks/use-design.mjs
index 280d21acf42..c5b7f8bc066 100644
--- a/sites/lab/hooks/use-design.mjs
+++ b/sites/lab/hooks/use-design.mjs
@@ -58,6 +58,7 @@ import { Wahid as wahid } from '@freesewing/wahid'
import { Walburga as walburga } from '@freesewing/walburga'
import { Waralee as waralee } from '@freesewing/waralee'
import { Yuri as yuri } from '@freesewing/yuri'
+import { Lily as lily } from '@freesewing/lily'
const designs = {
aaron,
@@ -116,6 +117,7 @@ const designs = {
walburga,
waralee,
yuri,
+ lily,
}
export const useDesign = (design) => (designs[design] ? designs[design] : false)
diff --git a/sites/org/hooks/use-design.mjs b/sites/org/hooks/use-design.mjs
index de6c7f2e460..b823a2c8a46 100644
--- a/sites/org/hooks/use-design.mjs
+++ b/sites/org/hooks/use-design.mjs
@@ -55,6 +55,7 @@ import { Wahid as wahid } from '@freesewing/wahid'
import { Walburga as walburga } from '@freesewing/walburga'
import { Waralee as waralee } from '@freesewing/waralee'
import { Yuri as yuri } from '@freesewing/yuri'
+import { Lily as lily } from '@freesewing/lily'
const designs = {
aaron,
@@ -110,6 +111,7 @@ const designs = {
walburga,
waralee,
yuri,
+ lily,
}
export const useDesign = (design) => (designs[design] ? designs[design] : false)
diff --git a/sites/org/pages/account/patterns/lily/edit.mjs b/sites/org/pages/account/patterns/lily/edit.mjs
new file mode 100644
index 00000000000..4f6a6136207
--- /dev/null
+++ b/sites/org/pages/account/patterns/lily/edit.mjs
@@ -0,0 +1,86 @@
+/*
+ * This page is auto-generated. Do not edit it by hand.
+ */
+import { Lily } from 'designs/lily/src/index.mjs'
+// Dependencies
+import { serverSideTranslations } from 'next-i18next/serverSideTranslations'
+import { nsMerge, getSearchParam } from 'shared/utils.mjs'
+// Hooks
+import { useState, useEffect, useContext } from 'react'
+import { useTranslation } from 'next-i18next'
+import { useBackend } from 'shared/hooks/use-backend.mjs'
+// Context
+import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs'
+// Components
+import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs'
+import { Workbench, ns as wbNs } from 'shared/components/workbench/new.mjs'
+import { WorkbenchLayout } from 'site/components/layouts/workbench.mjs'
+import { Loading } from 'shared/components/spinner.mjs'
+
+// Translation namespaces used on this page
+const ns = nsMerge('lily', wbNs, pageNs)
+
+const EditDesignComponent = ({ id, design, Design, settings }) => (
+
+)
+
+const EditLilyPage = ({ page }) => {
+ const { setLoadingStatus } = useContext(LoadingStatusContext)
+ const backend = useBackend()
+ const { t } = useTranslation(ns)
+
+ const [pattern, setPattern] = useState(false)
+
+ useEffect(() => {
+ const getPattern = async () => {
+ setLoadingStatus([true, t('backendLoadingStarted')])
+ let result
+ try {
+ result = await backend.getPattern(id)
+ if (result.success) {
+ setPattern(result.data.pattern)
+ setLoadingStatus([true, 'backendLoadingCompleted', true, true])
+ } else setLoadingStatus([true, 'backendError', true, false])
+ } catch (err) {
+ console.log(err)
+ setLoadingStatus([true, 'backendError', true, false])
+ }
+ }
+ const id = getSearchParam('id')
+ if (id) getPattern()
+ }, [backend, setLoadingStatus, t])
+
+ return (
+ // prettier-ignore
+
+ {pattern ? (
+
+ ) : (
+
+
{t('account:oneMomentPLease')}
+
+
+ )}
+
+ )
+}
+
+export default EditLilyPage
+
+export async function getStaticProps({ locale }) {
+ return {
+ props: {
+ ...(await serverSideTranslations(locale, ns)),
+ page: {
+ locale,
+ path: ['account', 'patterns', 'lily'],
+ title: 'Lily',
+ },
+ },
+ }
+}
diff --git a/sites/org/pages/new/lily.mjs b/sites/org/pages/new/lily.mjs
new file mode 100644
index 00000000000..e9abc59ccd7
--- /dev/null
+++ b/sites/org/pages/new/lily.mjs
@@ -0,0 +1,41 @@
+/*
+ * This page is auto-generated. Do not edit it by hand.
+ */
+import { Lily } from 'designs/lily/src/index.mjs'
+// Dependencies
+import { serverSideTranslations } from 'next-i18next/serverSideTranslations'
+import { nsMerge } from 'shared/utils.mjs'
+// Components
+import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs'
+import { Workbench, ns as wbNs } from 'shared/components/workbench/new.mjs'
+import { WorkbenchLayout } from 'site/components/layouts/workbench.mjs'
+
+// Translation namespaces used on this page
+const ns = nsMerge('lily', wbNs, pageNs)
+
+const NewLilyPage = ({ page, docs }) => (
+
+
+
+)
+
+export default NewLilyPage
+
+export async function getStaticProps({ locale }) {
+ return {
+ props: {
+ ...(await serverSideTranslations(locale, ns)),
+ page: {
+ locale,
+ path: ['new', 'lily'],
+ title: 'Lily',
+ },
+ },
+ }
+}
diff --git a/sites/shared/i18n/designs.mjs b/sites/shared/i18n/designs.mjs
index d8d7bb41782..53120fa144a 100644
--- a/sites/shared/i18n/designs.mjs
+++ b/sites/shared/i18n/designs.mjs
@@ -61,6 +61,7 @@ import { i18n as wahid } from '@freesewing/wahid'
import { i18n as walburga } from '@freesewing/walburga'
import { i18n as waralee } from '@freesewing/waralee'
import { i18n as yuri } from '@freesewing/yuri'
+import { i18n as lily } from '@freesewing/lily'
export const designs = {
aaron,
@@ -122,4 +123,5 @@ export const designs = {
walburga,
waralee,
yuri,
+ lily,
}
diff --git a/sites/shared/prebuild/data/design-measurements.mjs b/sites/shared/prebuild/data/design-measurements.mjs
index 5dce375afa4..a7704e8a3d4 100644
--- a/sites/shared/prebuild/data/design-measurements.mjs
+++ b/sites/shared/prebuild/data/design-measurements.mjs
@@ -1,3 +1,3 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// This file is auto-generated by the prebuild script | Any changes will be overwritten
-export const measurements = {"aaron":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips"],"albert":["chest","hpsToWaistBack","waist","waistToKnee","hips"],"bee":["highBust","chest","underbust","waist","waistBack","bustSpan","neck","hpsToBust","hpsToWaistFront","hpsToWaistBack","shoulderToShoulder","shoulderSlope","bustPointToUnderbust"],"bella":["highBust","chest","underbust","waist","waistBack","bustSpan","neck","hpsToBust","hpsToWaistFront","hpsToWaistBack","shoulderToShoulder","shoulderSlope"],"benjamin":["neck"],"bent":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","shoulderToElbow","shoulderToWrist","wrist"],"bob":[],"breanna":["biceps","bustFront","bustSpan","highBust","highBustFront","hpsToBust","hpsToWaistBack","hpsToWaistFront","waist","waistToHips","neck","shoulderToShoulder","shoulderSlope","shoulderToWrist","wrist"],"brian":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","shoulderToWrist","wrist"],"bruce":["hips","upperLeg","waistToHips","waistToUpperLeg"],"carlita":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","waist","waistToFloor","waistToSeat","seat","highBust","bustSpan","shoulderToElbow","shoulderToWrist","wrist"],"carlton":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","waist","waistToFloor","waistToSeat","seat","shoulderToElbow","shoulderToWrist","wrist"],"cathrin":["underbust","waist","hips","waistToUnderbust","waistToHips"],"charlie":["crossSeam","crossSeamFront","knee","seat","seatBack","waist","waistBack","waistToFloor","waistToKnee","waistToHips","waistToSeat","waistToUpperLeg"],"cornelius":["waist","hips","inseam","seat","waistToKnee","waistToHips","waistToFloor","knee"],"diana":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist","shoulderToWrist","wrist"],"examples":["head"],"florence":["head"],"florent":["head"],"gozer":["hpsToWaistBack","waistToFloor","head"],"hi":[],"holmes":["head"],"hortensia":[],"huey":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","shoulderToWrist","wrist","head"],"hugo":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","shoulderToWrist","wrist","head"],"jaeger":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist","shoulderToElbow","shoulderToWrist","wrist"],"legend":[],"lucy":[],"lumina":["waist","waistBack","hips","seat","seatBack","inseam","waistToSeat","waistToUpperLeg","waistToKnee","waistToHips","waistToFloor","knee","ankle","crossSeam","crossSeamFront","heel","upperLeg"],"lumira":["waist","waistBack","hips","seat","seatBack","upperLeg","knee","ankle","heel","inseam","crossSeam","crossSeamFront","waistToFloor","waistToKnee","waistToUpperLeg","waistToSeat","waistToHips"],"lunetius":["waistToKnee","waistToUpperLeg","waistToFloor","hpsToWaistBack","neck","shoulderToShoulder","shoulderToElbow","waistToHips"],"magde":[],"naomiwu":["hips","seat","waistToHips","waistToSeat","waistToUpperLeg"],"noble":["highBust","chest","underbust","waist","waistBack","bustSpan","neck","hpsToBust","hpsToWaistFront","hpsToWaistBack","shoulderToShoulder","shoulderSlope"],"octoplushy":[],"onyx":["biceps","neck","chest","waist","hips","seat","waistToHips","hpsToWaistBack","hpsToWaistFront","waistToSeat","crossSeam","waistToArmpit","inseam","upperLeg","waistToUpperLeg","ankle","wrist","shoulderToWrist","head"],"otis":["waist"],"paco":["crossSeam","crossSeamFront","knee","seat","seatBack","waist","waistBack","waistToFloor","waistToKnee","waistToHips","waistToSeat","waistToUpperLeg","heel"],"penelope":["waist","seat","waistToHips","waistToSeat","waistToKnee"],"plugintest":["seat","seatBack","waist","waistBack","crossSeam","crossSeamFront"],"rendertest":[],"sandy":["waist","waistToFloor","waistToHips","hips"],"shelly":["biceps","neck","chest","hips","waistToHips","hpsToWaistBack","waistToArmpit","wrist","shoulderToWrist"],"shin":["hips","upperLeg","waistToUpperLeg","waistToHips"],"simon":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","waist","hips","shoulderToWrist","wrist"],"simone":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","waist","hips","highBust","bustSpan","shoulderToWrist","wrist"],"skully":[],"sven":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist","shoulderToWrist","wrist"],"tamiko":["shoulderToShoulder","chest","hpsToWaistBack","shoulderSlope","waistToHips"],"teagan":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist"],"tiberius":["head","shoulderToElbow","shoulderToShoulder","biceps","hpsToWaistBack","waistToKnee","waist","chest","seat","hips","waistToFloor","waistToUpperLeg"],"titan":["crossSeam","crossSeamFront","knee","seat","seatBack","waist","waistBack","waistToFloor","waistToKnee","waistToHips","waistToSeat","waistToUpperLeg"],"trayvon":["hpsToWaistBack","waistToHips","neck"],"tristan":["highBust","chest","underbust","waist","waistBack","bustSpan","neck","hpsToBust","hpsToWaistFront","hpsToWaistBack","shoulderToShoulder","shoulderSlope"],"uma":["waist","seat","waistToSeat","waistToUpperLeg"],"wahid":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist"],"walburga":["head","shoulderToShoulder","hpsToWaistBack","waistToKnee","waistToHips","waistToFloor","waistToUpperLeg","neck"],"waralee":["seat","inseam","crotchDepth","waistToHips"],"yuri":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","shoulderToWrist","wrist","head"]}
+export const measurements = {"aaron":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips"],"albert":["chest","hpsToWaistBack","waist","waistToKnee","hips"],"bee":["highBust","chest","underbust","waist","waistBack","bustSpan","neck","hpsToBust","hpsToWaistFront","hpsToWaistBack","shoulderToShoulder","shoulderSlope","bustPointToUnderbust"],"bella":["highBust","chest","underbust","waist","waistBack","bustSpan","neck","hpsToBust","hpsToWaistFront","hpsToWaistBack","shoulderToShoulder","shoulderSlope"],"benjamin":["neck"],"bent":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","shoulderToElbow","shoulderToWrist","wrist"],"bob":[],"breanna":["biceps","bustFront","bustSpan","highBust","highBustFront","hpsToBust","hpsToWaistBack","hpsToWaistFront","waist","waistToHips","neck","shoulderToShoulder","shoulderSlope","shoulderToWrist","wrist"],"brian":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","shoulderToWrist","wrist"],"bruce":["hips","upperLeg","waistToHips","waistToUpperLeg"],"carlita":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","waist","waistToFloor","waistToSeat","seat","highBust","bustSpan","shoulderToElbow","shoulderToWrist","wrist"],"carlton":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","waist","waistToFloor","waistToSeat","seat","shoulderToElbow","shoulderToWrist","wrist"],"cathrin":["underbust","waist","hips","waistToUnderbust","waistToHips"],"charlie":["crossSeam","crossSeamFront","knee","seat","seatBack","waist","waistBack","waistToFloor","waistToKnee","waistToHips","waistToSeat","waistToUpperLeg"],"cornelius":["waist","hips","inseam","seat","waistToKnee","waistToHips","waistToFloor","knee"],"diana":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist","shoulderToWrist","wrist"],"examples":["head"],"florence":["head"],"florent":["head"],"gozer":["hpsToWaistBack","waistToFloor","head"],"hi":[],"holmes":["head"],"hortensia":[],"huey":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","shoulderToWrist","wrist","head"],"hugo":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","shoulderToWrist","wrist","head"],"jaeger":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist","shoulderToElbow","shoulderToWrist","wrist"],"legend":[],"lucy":[],"lumina":["waist","waistBack","hips","seat","seatBack","inseam","waistToSeat","waistToUpperLeg","waistToKnee","waistToHips","waistToFloor","knee","ankle","crossSeam","crossSeamFront","heel","upperLeg"],"lumira":["waist","waistBack","hips","seat","seatBack","upperLeg","knee","ankle","heel","inseam","crossSeam","crossSeamFront","waistToFloor","waistToKnee","waistToUpperLeg","waistToSeat","waistToHips"],"lunetius":["waistToKnee","waistToUpperLeg","waistToFloor","hpsToWaistBack","neck","shoulderToShoulder","shoulderToElbow","waistToHips"],"magde":[],"naomiwu":["hips","seat","waistToHips","waistToSeat","waistToUpperLeg"],"noble":["highBust","chest","underbust","waist","waistBack","bustSpan","neck","hpsToBust","hpsToWaistFront","hpsToWaistBack","shoulderToShoulder","shoulderSlope"],"octoplushy":[],"onyx":["biceps","neck","chest","waist","hips","seat","waistToHips","hpsToWaistBack","hpsToWaistFront","waistToSeat","crossSeam","waistToArmpit","inseam","upperLeg","waistToUpperLeg","ankle","wrist","shoulderToWrist","head"],"otis":["waist"],"paco":["crossSeam","crossSeamFront","knee","seat","seatBack","waist","waistBack","waistToFloor","waistToKnee","waistToHips","waistToSeat","waistToUpperLeg","heel"],"penelope":["waist","seat","waistToHips","waistToSeat","waistToKnee"],"plugintest":["seat","seatBack","waist","waistBack","crossSeam","crossSeamFront"],"rendertest":[],"sandy":["waist","waistToFloor","waistToHips","hips"],"shelly":["biceps","neck","chest","hips","waistToHips","hpsToWaistBack","waistToArmpit","wrist","shoulderToWrist"],"shin":["hips","upperLeg","waistToUpperLeg","waistToHips"],"simon":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","waist","hips","shoulderToWrist","wrist"],"simone":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","waist","hips","highBust","bustSpan","shoulderToWrist","wrist"],"skully":[],"sven":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist","shoulderToWrist","wrist"],"tamiko":["shoulderToShoulder","chest","hpsToWaistBack","shoulderSlope","waistToHips"],"teagan":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist"],"tiberius":["head","shoulderToElbow","shoulderToShoulder","biceps","hpsToWaistBack","waistToKnee","waist","chest","seat","hips","waistToFloor","waistToUpperLeg"],"titan":["crossSeam","crossSeamFront","knee","seat","seatBack","waist","waistBack","waistToFloor","waistToKnee","waistToHips","waistToSeat","waistToUpperLeg"],"trayvon":["hpsToWaistBack","waistToHips","neck"],"tristan":["highBust","chest","underbust","waist","waistBack","bustSpan","neck","hpsToBust","hpsToWaistFront","hpsToWaistBack","shoulderToShoulder","shoulderSlope"],"uma":["waist","seat","waistToSeat","waistToUpperLeg"],"wahid":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","waist"],"walburga":["head","shoulderToShoulder","hpsToWaistBack","waistToKnee","waistToHips","waistToFloor","waistToUpperLeg","neck"],"waralee":["seat","inseam","crotchDepth","waistToHips"],"yuri":["biceps","chest","hpsToBust","hpsToWaistBack","neck","shoulderToShoulder","shoulderSlope","waistToArmpit","waistToHips","hips","shoulderToWrist","wrist","head"],"lily":["crossSeam","crossSeamFront","knee","seat","seatBack","waist","waistBack","waistToFloor","waistToKnee","waistToHips","waistToSeat","waistToUpperLeg","ankle","heel"]}
diff --git a/sites/shared/prebuild/data/design-options.mjs b/sites/shared/prebuild/data/design-options.mjs
index 38eedb053d2..70e73d74bd4 100644
--- a/sites/shared/prebuild/data/design-options.mjs
+++ b/sites/shared/prebuild/data/design-options.mjs
@@ -1,3 +1,3 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// This file is auto-generated by the prebuild script | Any changes will be overwritten
-export const options = {"aaron":{"brianFitSleeve":false,"brianFitCollar":false,"collarFactor":4.8,"bicepsEase":0.05,"chestEase":{"pct":8,"min":0,"max":20,"menu":"style"},"collarEase":0,"cuffEase":0,"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":0,"lengthBonus":{"pct":10,"min":-20,"max":60,"menu":"style"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":0.97,"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":0.6,"backNeckCutout":0.05,"frontArmholeDeeper":0,"shoulderSlopeReduction":0,"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"hipsEase":{"pct":8,"min":0,"max":20,"menu":"fit"},"stretchFactor":{"pct":5,"min":0,"max":15,"menu":"fit"},"armholeDrop":{"pct":10,"min":0,"max":75,"menu":"style"},"necklineBend":{"pct":100,"min":40,"max":100,"menu":"style"},"necklineDrop":{"pct":20,"min":10,"max":35,"menu":"style"},"shoulderStrapWidth":{"pct":15,"min":10,"max":40,"menu":"style"},"shoulderStrapPlacement":{"pct":40,"min":20,"max":80,"menu":"style"},"backlineBend":{"pct":50,"min":25,"max":100,"menu":"style"},"knitBindingWidth":{"pct":600,"min":300,"max":800,"menu":"style"}},"albert":{"backOpening":{"pct":10,"min":0,"max":25,"menu":"fit"},"bibWidth":{"pct":100,"min":50,"max":125,"menu":"style"},"bibLength":{"pct":75,"min":0,"max":90,"menu":"style"},"lengthBonus":{"pct":0,"min":-20,"max":25,"menu":"style"},"chestDepth":{"pct":22,"min":15,"max":90,"menu":"fit"},"strapWidth":{"pct":60,"min":20,"max":100,"menu":"style"}},"bee":{"acrossBackFactor":0.925,"shoulderSlopeBack":1.23,"neckWidthBack":0.197,"neckWidthFront":0.17,"backDartLocation":0.145,"backCenterWaistReduction":0.35,"collarFactor":0.19,"bustSpanEase":{"pct":10,"min":0,"max":20,"menu":"fit"},"chestEase":{"pct":11,"min":5,"max":20,"menu":"fit"},"fullChestEaseReduction":{"pct":4,"min":0,"max":8,"menu":"fit"},"shoulderToShoulderEase":{"pct":-0.5,"min":-1,"max":5,"menu":"fit"},"waistEase":{"pct":5,"min":1,"max":20,"menu":"fit"},"backDartHeight":{"pct":46,"min":38,"max":54,"menu":"advanced"},"bustDartCurve":1,"bustDartLength":1,"waistDartLength":1,"armholeDepth":{"pct":44,"min":38,"max":46,"menu":"advanced"},"backArmholeCurvature":0.63,"backArmholePitchDepth":0.35,"backArmholeSlant":5,"frontArmholeCurvature":0.63,"frontArmholePitchDepth":{"pct":29,"max":31,"min":27,"menu":"advanced"},"backHemSlope":2.5,"backNeckCutout":0.06,"frontShoulderWidth":{"pct":95,"max":98,"min":92,"menu":"advanced"},"highBustWidth":{"pct":86,"max":92,"min":80,"menu":"advanced"},"ties":{"bool":true,"menu":"style"},"crossBackTies":{"bool":false,"menu":"style"},"bandLength":{"pct":85,"min":75,"max":90,"menu":"style"},"neckTieLength":{"pct":80,"min":70,"max":100,"menu":"style"},"neckTieWidth":{"pct":6,"min":2,"max":18,"snap":{"metric":[6,13,19,25,32,38],"imperial":[6.35,12.7,19.05,25.4,31.75,38.1]},"menu":"style"},"reversible":{"bool":false,"menu":"style"},"topDepth":{"pct":54,"min":50,"max":80,"menu":"fit"},"bottomCupDepth":{"pct":8,"min":0,"max":20,"menu":"fit"},"sideDepth":{"pct":20.6,"min":0,"max":30,"menu":"fit"},"sideCurve":{"pct":0,"min":-50,"max":50,"menu":"fit"},"frontCurve":{"pct":0,"min":-50,"max":50,"menu":"fit"},"bellaGuide":{"bool":false,"menu":"fit"},"pointedTieEnds":{"bool":false,"menu":"style"},"duoColorTies":{"bool":false,"menu":"style"},"bandTieWidth":{"pct":3,"min":1,"max":9,"snap":{"metric":[6,13,19,25,32,38],"imperial":[6.35,12.7,19.05,25.4,31.75,38.1]},"menu":"style"},"bandTieLength":{"pct":35,"min":30,"max":50,"menu":"style"}},"bella":{"acrossBackFactor":0.925,"shoulderSlopeBack":1.23,"neckWidthBack":0.197,"neckWidthFront":0.17,"backDartLocation":0.145,"backCenterWaistReduction":0.35,"collarFactor":0.19,"bustSpanEase":{"pct":10,"min":0,"max":20,"menu":"fit"},"chestEase":{"pct":11,"min":5,"max":20,"menu":"fit"},"fullChestEaseReduction":{"pct":4,"min":0,"max":8,"menu":"fit"},"shoulderToShoulderEase":{"pct":-0.5,"min":-1,"max":5,"menu":"fit"},"waistEase":{"pct":5,"min":1,"max":20,"menu":"fit"},"backDartHeight":{"pct":46,"min":38,"max":54,"menu":"darts"},"bustDartCurve":{"pct":100,"min":0,"max":100,"menu":"darts"},"bustDartLength":{"pct":90,"min":75,"max":100,"menu":"darts"},"waistDartLength":{"pct":90,"min":75,"max":95,"menu":"darts"},"armholeDepth":{"pct":44,"min":38,"max":46,"menu":"armhole"},"backArmholeCurvature":{"pct":63,"min":50,"max":85,"menu":"armhole"},"backArmholePitchDepth":{"pct":35,"max":40,"min":30,"menu":"armhole"},"backArmholeSlant":{"deg":5,"min":1,"max":9,"menu":"armhole"},"frontArmholeCurvature":{"pct":63,"min":50,"max":85,"menu":"armhole"},"frontArmholePitchDepth":{"pct":29,"max":31,"min":27,"menu":"armhole"},"backHemSlope":{"deg":2.5,"min":0,"max":5,"menu":"advanced"},"backNeckCutout":{"pct":6,"min":3,"max":9,"menu":"advanced"},"frontShoulderWidth":{"pct":95,"max":98,"min":92,"menu":"advanced"},"highBustWidth":{"pct":86,"max":92,"min":80,"menu":"advanced"}},"benjamin":{"transitionLength":2,"bandLength":0.17,"adjustmentRibbonWidth":20,"collarEase":{"pct":3,"min":0,"max":6,"menu":"fit"},"adjustmentRibbon":{"bool":false,"menu":"fit"},"tipWidth":{"pct":15,"min":0,"max":20,"menu":"style"},"knotWidth":{"pct":7,"min":5,"max":10,"menu":"style"},"bowLength":{"pct":28,"min":23,"max":33,"menu":"style"},"bowStyle":{"dflt":"butterfly","list":["diamond","butterfly","square","widesquare"],"menu":"style"},"endStyle":{"dflt":"straight","list":["straight","pointed","rounded"],"menu":"style"},"collarBandHeight":{"pct":6,"min":5,"max":8,"menu":"style"}},"bent":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":20,"min":10,"max":40,"menu":"fit"},"chestEase":{"pct":8,"min":-4,"max":20,"menu":"fit"},"collarEase":{"pct":3.5,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":40,"min":2,"max":100,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":0,"min":-4,"max":60,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":97,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":5,"min":-10,"max":50},"armholeDepthFactor":{"pct":60,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.5,"min":0,"max":1.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"sleeveLengthBonus":{"pct":0,"min":-20,"max":15,"menu":"fit"},"sleeveBend":{"deg":10,"min":0,"max":20,"menu":"fit"},"sleevecapHeight":{"pct":45,"min":40,"max":60,"menu":"advanced"},"sleevecapEase":{"pct":1,"min":0,"max":10,"menu":"advanced"}},"bob":{"neckRatio":{"pct":80,"min":70,"max":90,"menu":"fit"},"widthRatio":{"pct":45,"min":35,"max":55,"menu":"fit"},"lengthRatio":{"pct":75,"min":55,"max":85,"menu":"fit"},"headSize":{"pct":100,"min":10,"max":200,"snap":5,"menu":"size"}},"breanna":{"collarFactor":4.8,"armholeDepthBase":0.6,"shoulderSeamLength":0.95,"sleeveWidthGuarantee":0.9,"breannaFitSleeve":true,"breannaFitCollar":true,"shoulderDart":{"bool":false,"menu":"fit"},"waistDart":{"bool":true,"menu":"fit"},"primaryBustDart":{"list":["06:00","07:00","08:00","09:00","10:00","11:00","11:30","12:00","12:30","13:00","13:30","14:00","15:00","16:00","17:00"],"dflt":"06:00","doNotTranslate":true,"menu":"style"},"secondaryBustDart":{"list":["none","06:00","07:00","08:00","09:00","10:00","11:00","11:30","12:00","12:30","13:00","13:30","14:00","15:00","16:00","17:00"],"dflt":"13:30","doNotTranslate":true,"menu":"style"},"acrossBackFactor":{"pct":96,"min":93,"max":100,"menu":"advanced"},"armholeDepthFactor":{"pct":100,"min":80,"max":120,"menu":"advanced"},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"shoulderDartSize":{"pct":7,"min":4,"max":10},"shoulderDartLength":{"pct":85,"min":60,"max":100},"waistDartSize":{"pct":10,"min":4,"max":15},"waistDartLength":{"pct":85,"min":60,"max":100},"verticalEase":{"pct":2,"min":0,"max":8,"menu":"fit"},"frontArmholeDeeper":{"pct":1,"min":0,"max":5,"menu":"advanced"},"shoulderEase":{"pct":0,"min":0,"max":4,"menu":"fit"},"collarEase":{"pct":3.5,"min":0,"max":10,"menu":"fit"},"chestEase":{"pct":10,"min":5,"max":20,"menu":"fit"},"waistEase":{"pct":10,"min":5,"max":20,"menu":"fit"},"primaryBustDartShaping":{"pct":50,"min":25,"max":75,"menu":"style"},"primaryBustDartLength":{"pct":85,"min":65,"max":95,"menu":"style"},"secondaryBustDartLength":{"pct":85,"min":65,"max":95,"menu":"style"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":100,"menu":"advanced"},"frontScyeDart":{"pct":25,"min":0,"max":45,"menu":"fit"},"sleevecapEase":{"pct":0.5,"min":0,"max":2.5,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":110,"min":35,"max":165,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":45,"min":35,"max":55,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":3,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":5.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":4.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":12.5,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":12.5,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":12.5,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":12.5,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"cuffEase":{"pct":20,"min":0,"max":50,"menu":"fit"},"sleeveLengthBonus":{"pct":0,"min":-40,"max":10,"menu":"style"}},"brian":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":5,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":0,"max":200,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":0,"min":-4,"max":60,"menu":"style"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"sleeveLengthBonus":{"pct":0,"min":-40,"max":10,"menu":"style"}},"bruce":{"hipRatioFront":0.245,"hipRatioBack":0.315,"legRatioInset":0.3,"legRatioBack":0.32,"gussetRatio":0.0666,"gussetInsetRatio":0.6,"heightRatioInset":0.65,"bulge":{"deg":20,"min":0,"max":40,"menu":"fit"},"legBonus":{"pct":0,"min":-10,"max":20,"menu":"style"},"rise":{"pct":10,"min":0,"max":25,"menu":"style"},"stretch":{"pct":15,"min":5,"max":25,"menu":"fit"},"legStretch":{"pct":40,"min":25,"max":45,"menu":"fit"},"backRise":{"pct":5,"min":0,"max":10,"menu":"fit"}},"carlita":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":20,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":10,"min":5,"max":20,"menu":"fit"},"collarEase":0.145,"cuffEase":{"pct":60,"min":30,"max":100,"menu":"fit"},"draftForHighBust":true,"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":0,"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":97,"min":93,"max":100,"menu":"fit"},"armholeDepth":{"pct":5,"min":-10,"max":50},"armholeDepthFactor":{"pct":65,"min":50,"max":70,"menu":"fit"},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.5,"min":0,"max":1.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":12,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"buttonSpacingHorizontal":{"pct":43.5,"min":15,"max":60,"menu":"style"},"length":{"pct":69,"min":35,"max":100,"menu":"style"},"lapelReduction":{"pct":5,"min":0,"max":10,"menu":"advanced"},"frontOverlap":{"pct":1.5,"min":1,"max":2,"menu":"advanced"},"pocketPlacementHorizontal":{"pct":11,"min":5,"max":20,"menu":"pockets"},"pocketPlacementVertical":{"pct":6,"min":5,"max":60,"menu":"pockets"},"pocketWidth":{"pct":95,"min":70,"max":120,"menu":"pockets"},"pocketHeight":{"pct":15,"min":0,"max":40,"menu":"pockets"},"pocketRadius":{"pct":20,"min":0,"max":50,"menu":"pockets"},"pocketFlapRadius":{"pct":15,"min":0,"max":50,"menu":"pockets"},"chestPocketPlacement":{"pct":55,"min":30,"max":65,"menu":"pockets"},"chestPocketAngle":0,"chestPocketHeight":{"pct":60,"min":40,"max":80,"menu":"pockets"},"chestPocketWidth":{"pct":25,"min":15,"max":50,"menu":"pockets"},"innerPocketPlacement":{"pct":53,"min":42,"max":62,"menu":"pockets"},"innerPocketWidth":{"pct":50,"min":45,"max":65,"menu":"pockets"},"waistEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"seatEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"innerPocketWeltHeight":{"pct":3.5,"min":2.5,"max":5,"menu":"pockets"},"contour":{"pct":50,"min":25,"max":75,"menu":"advanced"},"backPleat":0.048,"beltWidth":{"pct":15,"min":10,"max":20,"menu":"style"},"sleeveLengthBonus":{"pct":7,"min":0,"max":20,"menu":"fit"},"sleeveBend":{"deg":10,"min":0,"max":20,"menu":"fit"},"sleevecapHeight":{"pct":45,"min":40,"max":60,"menu":"advanced"},"sleevecapEase":{"pct":1,"min":0,"max":10,"menu":"advanced"},"cuffLength":{"pct":15,"min":10,"max":20,"menu":"style"},"chestShapingMax":5,"collarHeight":{"pct":9.6,"min":8,"max":11,"menu":"collar"},"collarFlare":{"pct":20,"min":0,"max":40,"menu":"collar"},"collarSpread":{"deg":4,"min":2,"max":6,"menu":"collar"},"innerPocketDepth":{"pct":110,"min":75,"max":140,"menu":"pockets"}},"carlton":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":20,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":10,"min":5,"max":20,"menu":"fit"},"collarEase":0.145,"cuffEase":{"pct":60,"min":30,"max":100,"menu":"fit"},"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":0,"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":97,"min":93,"max":100,"menu":"fit"},"armholeDepth":{"pct":5,"min":-10,"max":50},"armholeDepthFactor":{"pct":65,"min":50,"max":70,"menu":"fit"},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.5,"min":0,"max":1.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":12,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"buttonSpacingHorizontal":{"pct":43.5,"min":15,"max":60,"menu":"style"},"length":{"pct":69,"min":35,"max":100,"menu":"style"},"lapelReduction":{"pct":5,"min":0,"max":10,"menu":"advanced"},"frontOverlap":{"pct":1.5,"min":1,"max":2,"menu":"advanced"},"pocketPlacementHorizontal":{"pct":11,"min":5,"max":20,"menu":"pockets"},"pocketPlacementVertical":{"pct":6,"min":5,"max":60,"menu":"pockets"},"pocketWidth":{"pct":95,"min":70,"max":120,"menu":"pockets"},"pocketHeight":{"pct":15,"min":0,"max":40,"menu":"pockets"},"pocketRadius":{"pct":20,"min":0,"max":50,"menu":"pockets"},"pocketFlapRadius":{"pct":15,"min":0,"max":50,"menu":"pockets"},"chestPocketPlacement":{"pct":55,"min":30,"max":65,"menu":"pockets"},"chestPocketAngle":{"deg":4,"min":0,"max":6,"menu":"pockets"},"chestPocketHeight":{"pct":60,"min":40,"max":80,"menu":"pockets"},"chestPocketWidth":{"pct":25,"min":15,"max":50,"menu":"pockets"},"innerPocketPlacement":{"pct":53,"min":42,"max":62,"menu":"pockets"},"innerPocketWidth":{"pct":50,"min":45,"max":65,"menu":"pockets"},"waistEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"seatEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"innerPocketWeltHeight":{"pct":3.5,"min":2.5,"max":5,"menu":"pockets"},"backPleat":0.048,"beltWidth":{"pct":15,"min":10,"max":20,"menu":"style"},"sleeveLengthBonus":{"pct":7,"min":0,"max":20,"menu":"fit"},"sleeveBend":{"deg":10,"min":0,"max":20,"menu":"fit"},"sleevecapHeight":{"pct":45,"min":40,"max":60,"menu":"advanced"},"sleevecapEase":{"pct":1,"min":0,"max":10,"menu":"advanced"},"cuffLength":{"pct":15,"min":10,"max":20,"menu":"style"},"chestShapingMax":5,"collarHeight":{"pct":9.6,"min":8,"max":11,"menu":"collar"},"collarFlare":{"pct":20,"min":0,"max":40,"menu":"collar"},"collarSpread":{"deg":4,"min":2,"max":6,"menu":"collar"},"innerPocketDepth":{"pct":110,"min":75,"max":140,"menu":"pockets"}},"cathrin":{"waistReduction":{"pct":10,"min":2,"max":20,"menu":"fit"},"panels":{"list":["11","13"],"dflt":"13","menu":"fit"},"backOpening":{"pct":4,"min":3,"max":10,"menu":"style"},"backRise":{"pct":15,"min":1,"max":25,"menu":"style"},"backDrop":{"pct":2,"min":-10,"max":5,"menu":"style"},"frontRise":{"pct":4,"min":-10,"max":8,"menu":"style"},"frontDrop":{"pct":5,"min":0,"max":10,"menu":"style"},"hipRise":{"pct":5,"min":0,"max":15,"menu":"style"}},"charlie":{"fitCrossSeam":true,"fitCrossSeamFront":true,"fitCrossSeamBack":true,"fitGuides":false,"waistEase":{"pct":1,"min":0,"max":5,"menu":"fit"},"seatEase":{"pct":5,"min":0,"max":10,"menu":"fit"},"kneeEase":{"pct":15,"min":10,"max":30,"menu":"fit"},"waistHeight":{"pct":-4,"min":-15,"max":40,"menu":"style"},"lengthBonus":{"pct":2,"min":-20,"max":10,"menu":"style"},"crotchDrop":{"pct":2,"min":0,"max":15,"menu":"style"},"fitKnee":true,"legBalance":{"pct":57.5,"min":52.5,"max":62.5,"menu":"advanced"},"crossSeamCurveStart":{"pct":85,"min":60,"max":100,"menu":"advanced"},"crossSeamCurveBend":{"pct":65,"min":45,"max":85,"menu":"advanced"},"crossSeamCurveAngle":{"deg":12,"min":0,"max":20,"menu":"advanced"},"crotchSeamCurveStart":{"pct":80,"min":60,"max":95,"menu":"advanced"},"crotchSeamCurveBend":{"pct":80,"min":45,"max":100,"menu":"advanced"},"crotchSeamCurveAngle":{"deg":25,"min":0,"max":35,"menu":"advanced"},"waistBalance":{"pct":55,"min":30,"max":90,"menu":"advanced"},"grainlinePosition":{"pct":50,"min":30,"max":60,"menu":"advanced"},"waistbandWidth":{"pct":3,"min":1,"max":6,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"style"},"waistbandReduction":0.25,"waistbandFactor":0.1,"frontPocketSlantDepth":{"pct":85,"min":70,"max":100,"menu":"pockets.frontpockets"},"frontPocketSlantWidth":{"pct":25,"min":15,"max":35,"menu":"pockets.frontpockets"},"frontPocketSlantRound":{"pct":30,"min":5,"max":50,"menu":"pockets.frontpockets"},"frontPocketSlantBend":{"pct":25,"min":5,"max":50,"menu":"pockets.frontpockets"},"frontPocketWidth":{"pct":55,"min":45,"max":65,"menu":"pockets.frontpockets"},"frontPocketDepth":{"pct":100,"min":85,"max":110,"menu":"pockets.frontpockets"},"frontPocketFacing":{"pct":45,"min":25,"max":65,"menu":"pockets.frontpockets"},"flyCurve":{"pct":72,"min":50,"max":100,"menu":"advanced.fly"},"flyLength":{"pct":45,"min":30,"max":60,"menu":"advanced.fly"},"flyWidth":{"pct":15,"min":10,"max":20,"menu":"advanced.fly"},"backPocketVerticalPlacement":{"pct":24,"min":18,"max":30,"menu":"pockets.backpockets"},"backPocketHorizontalPlacement":{"pct":55,"min":48,"max":62,"menu":"pockets.backpockets"},"backPocketWidth":{"pct":55,"min":50,"max":60,"menu":"pockets.backpockets"},"backPocketDepth":{"pct":60,"min":40,"max":80,"menu":"pockets.backpockets"},"backPocketFacing":{"bool":true,"menu":"pockets.backpockets"},"waistbandCurve":{"pct":0,"min":0,"max":35,"menu":"fit"},"beltLoops":{"count":8,"min":6,"max":12,"menu":"advanced"}},"cornelius":{"pctAtoO":0.5,"pctAtoC":0.25,"pctUtoA":0.25,"pctJtoA":0.25,"pctSeatAdjustment":0.5,"ventLength":{"pct":70,"min":25,"max":110,"menu":"style"},"fullness":{"pct":0,"min":0,"max":55,"menu":"fit"},"waistbandBelowWaist":{"pct":5,"min":0,"max":15,"menu":"style"},"waistReduction":{"pct":1,"min":-2,"max":10,"menu":"fit"},"bandBelowKnee":{"pct":25,"min":15,"max":50,"menu":"advanced"},"pctZtoR":0.35,"pctRtoZin":0.75,"pctRtoZup":0.25,"pctRtoKin":0.75,"pctRtoKdown":0.25,"pctKtoRout":0.15,"pctKtoRup":0.25,"pctKtoH":0.7,"flyWidth":{"pct":0.38,"min":0.2,"max":0.6,"menu":"style"},"kneeToBelow":{"pct":94,"min":85,"max":110,"menu":"advanced"},"cuffWidth":{"pct":0,"min":-50,"max":150,"menu":"style"},"cuffStyle":{"dflt":"elegant","list":["traditional","elegant","keystone"],"menu":"style"}},"diana":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":5,"bicepsEase":{"pct":0,"min":-5,"max":50,"menu":"fit"},"chestEase":{"pct":0,"min":-10,"max":20,"menu":"fit"},"collarEase":0,"cuffEase":{"pct":20,"min":0,"max":30,"menu":"fit"},"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":0,"min":0,"max":50,"menu":"fit"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":{"pct":97,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":0,"min":0,"max":20,"menu":"advanced"},"armholeDepthFactor":{"pct":55,"min":50,"max":70,"menu":"advanced"},"backNeckCutout":0.05,"frontArmholeDeeper":{"pct":0,"min":0,"max":1.5,"menu":"advanced"},"shoulderSlopeReduction":0,"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"drapeAngle":{"deg":20,"min":10,"max":30,"menu":"style"},"sleeveLengthBonus":{"pct":0,"min":-40,"max":10,"menu":"fit"},"shoulderSeamLength":{"pct":35,"min":0.1,"max":60,"menu":"style"},"waistEase":{"pct":0,"min":-10,"max":20,"menu":"fit"},"hipsEase":{"pct":0,"min":-10,"max":20,"menu":"fit"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":100,"min":35,"max":165,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":3,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":5.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":4.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":6,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"}},"examples":{"size":{"pct":50,"min":5,"max":100,"menu":"stack"},"x":{"pct":0,"min":-100,"max":100,"menu":"stack"},"y":{"pct":0,"min":-100,"max":100,"menu":"stack"},"stackIt":{"dflt":"Do stack","list":["Do stack","Do not stack"],"menu":"stack"}},"florence":{"length":{"pct":40,"min":35,"max":45,"menu":"fit"},"height":{"pct":26,"min":23,"max":29,"menu":"fit"},"curve":{"pct":12.5,"min":10,"max":15,"menu":"fit"}},"florent":{"topSide":0.8,"brim":0,"headEase":{"pct":2,"min":0,"max":5,"menu":"fit"}},"gozer":{},"hi":{"length":1000,"size":{"pct":100,"min":5,"max":500,"menu":"style"},"nosePointiness":{"pct":0,"min":-5,"max":10,"menu":"style"},"aggressive":{"bool":false,"menu":"style"},"hungry":{"pct":50,"min":0,"max":100,"menu":"style"}},"holmes":{"headEase":{"pct":3,"min":0,"max":9,"snap":{"metric":[6,13,19,25,32,38,44,50],"imperial":[6.35,12.7,19.05,25.4,31.75,38.1,44.45,50.8]},"menu":"fit"},"lengthRatio":{"pct":55,"min":40,"max":60,"menu":"style"},"gores":{"count":6,"min":4,"max":20,"menu":"style"},"visorAngle":{"deg":45,"min":10,"max":90,"menu":"style"},"visorWidth":{"pct":5,"min":1,"max":17,"snap":5,"menu":"style"},"visorLength":{"pct":100,"min":80,"max":150,"menu":"advanced"},"earLength":{"pct":100,"min":80,"max":150,"menu":"style"},"earWidth":{"pct":100,"min":80,"max":150,"menu":"style"},"buttonhole":{"bool":false,"menu":"style"}},"hortensia":{"width":230,"height":330,"size":{"pct":50,"min":20,"max":200,"menu":"style"},"zipperSize":{"dflt":"#5","list":["#3","#4","#4.5","#5","#6","#8","#10","invisible"],"menu":"style"},"minHandleSpaceWidth":80,"maxHandleSpaceWidth":250,"pctHandleSpace":50,"pctHandleVert":42,"handleWidth":{"pct":8.6,"min":4,"max":25,"menu":"style"},"strapLength":{"pct":160,"min":75,"max":250,"menu":"style"}},"huey":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":5,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":0,"max":200,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":15,"min":-4,"max":60,"menu":"style"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"ribbing":{"bool":true,"menu":"style"},"ribbingHeight":{"pct":10,"min":5,"max":15,"menu":"style"},"hipsEase":{"pct":8,"min":4,"max":12,"menu":"fit"},"pocket":{"bool":true,"menu":"style"},"pocketHeight":{"pct":30,"min":25,"max":35,"menu":"style"},"pocketWidth":{"pct":60,"min":50,"max":70,"menu":"style"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"sleeveLengthBonus":{"pct":0,"min":-40,"max":10,"menu":"style"},"hoodHeight":{"pct":59,"min":55,"max":65,"menu":"style"},"hoodCutback":{"pct":10,"min":5,"max":15,"menu":"style"},"hoodClosure":{"pct":13.5,"min":10,"max":15,"menu":"style"},"hoodDepth":{"pct":8.5,"min":5,"max":12,"menu":"style"},"hoodAngle":{"deg":5,"min":2,"max":8,"menu":"style"},"ribbingStretch":{"pct":15,"min":0,"max":30,"menu":"fit"}},"hugo":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":8,"min":4,"max":20,"menu":"fit"},"collarEase":0.05,"cuffEase":{"pct":20,"min":10,"max":50,"menu":"fit"},"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":0,"lengthBonus":{"pct":10,"min":0,"max":20,"menu":"style"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":0.5,"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":0,"shoulderSlopeReduction":0,"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"hipsEase":{"pct":12,"min":4,"max":20,"menu":"fit"},"ribbingHeight":{"pct":10,"min":4,"max":20,"menu":"style"},"pocketWidth":{"pct":50,"min":35,"max":65,"menu":"style"},"sleevecapEase":0,"sleevecapTopFactorX":0.5,"sleevecapTopFactorY":0.45,"sleevecapBackFactorX":0.6,"sleevecapBackFactorY":0.33,"sleevecapFrontFactorX":0.55,"sleevecapFrontFactorY":0.33,"sleevecapQ1Offset":0.017,"sleevecapQ2Offset":0.035,"sleevecapQ3Offset":0.025,"sleevecapQ4Offset":0.01,"sleevecapQ1Spread1":0.1,"sleevecapQ1Spread2":0.15,"sleevecapQ2Spread1":0.15,"sleevecapQ2Spread2":0.1,"sleevecapQ3Spread1":0.1,"sleevecapQ3Spread2":0.08,"sleevecapQ4Spread1":0.07,"sleevecapQ4Spread2":0.063,"sleeveWidthGuarantee":0.9,"sleeveLengthBonus":{"pct":2,"min":0,"max":10,"menu":"style"},"ribbingStretch":{"pct":5,"min":0,"max":10,"menu":"fit"}},"jaeger":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":5,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":0,"max":200,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":19,"min":10,"max":25,"menu":"fit"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"centerBackDart":{"pct":0.5,"min":0,"max":1.5,"menu":"fit"},"hipsEase":{"pct":12,"min":8,"max":20,"menu":"fit"},"waistEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"rollLineCollarHeight":{"pct":6,"min":5,"max":9,"menu":"collar"},"reduceWaistStandardFraction":0.08,"reduceWaistDartFraction":0.05,"reduceHipsStandardFraction":0.1,"centerFrontHemDrop":{"pct":2,"min":0,"max":4,"menu":"style"},"frontPocketPlacement":{"pct":75,"min":65,"max":85,"menu":"pockets"},"frontPocketWidth":{"pct":68,"min":55,"max":75,"menu":"pockets"},"frontPocketDepth":{"pct":110,"min":80,"max":130,"menu":"pockets"},"frontPocketRadius":{"pct":10,"min":0,"max":50,"menu":"pockets"},"frontDartPlacement":{"pct":55,"min":45,"max":60,"menu":"advanced"},"sideFrontPlacement":{"pct":85,"min":80,"max":90,"menu":"advanced"},"frontOverlap":{"pct":1.5,"min":1,"max":2,"menu":"advanced"},"innerPocketPlacement":{"pct":52,"min":42,"max":62,"menu":"pockets"},"innerPocketWidth":{"pct":50,"min":45,"max":65,"menu":"pockets"},"innerPocketDepth":{"pct":110,"min":75,"max":140,"menu":"pockets"},"innerPocketWeltHeight":{"pct":3.5,"min":2.5,"max":5,"menu":"pockets"},"frontCutawayAngle":{"deg":2.5,"min":1,"max":4,"menu":"style"},"frontCutawayStart":{"pct":30,"min":10,"max":70,"menu":"style"},"frontCutawayEnd":{"pct":40,"min":10,"max":40,"menu":"style"},"hemRadius":{"pct":100,"min":35,"max":100,"menu":"style"},"chestPocketDepth":{"pct":110,"min":70,"max":150,"menu":"pockets"},"chestPocketWidth":{"pct":37,"min":30,"max":45,"menu":"pockets"},"chestPocketPlacement":{"pct":52,"min":40,"max":60,"menu":"pockets"},"chestPocketAngle":{"deg":2.5,"min":0,"max":7,"menu":"pockets"},"chestPocketWeltSize":{"pct":17.5,"min":10,"max":25,"menu":"pockets"},"lapelStart":{"pct":10,"min":0,"max":35,"menu":"style"},"collarHeight":{"pct":9,"min":7,"max":10,"menu":"collar"},"collarNotchDepth":{"pct":15,"min":15,"max":50,"menu":"collar"},"collarNotchAngle":{"deg":45,"min":30,"max":60,"menu":"collar"},"collarNotchReturn":{"pct":100,"min":50,"max":100,"menu":"collar"},"chestShaping":{"pct":30,"min":0,"max":100,"menu":"advanced"},"buttons":{"list":["1","2","3"],"dflt":"2","menu":"style"},"buttonLength":{"pct":30,"min":30,"max":60,"menu":"style"},"chestShapingMax":5,"lapelReduction":{"pct":5,"min":0,"max":10,"menu":"style"},"backVent":{"count":1,"min":0,"max":2,"menu":"style"},"backVentLength":{"pct":35,"min":15,"max":100,"menu":"style"},"collarSpread":{"deg":13,"min":5,"max":35,"menu":"collar"},"collarRoll":{"pct":5,"min":0,"max":10,"menu":"collar"},"pocketFoldover":{"pct":25,"min":15,"max":35,"menu":"pockets"},"sleeveLengthBonus":{"pct":0,"min":-20,"max":15,"menu":"fit"},"sleeveBend":{"deg":10,"min":0,"max":20,"menu":"fit"},"sleevecapHeight":{"pct":45,"min":40,"max":60,"menu":"advanced"},"sleevecapEase":{"pct":1,"min":0,"max":10,"menu":"advanced"},"sleeveVentLength":{"pct":35,"min":25,"max":55,"menu":"sleeves"},"sleeveVentWidth":{"pct":18,"min":10,"max":26,"menu":"sleeves"}},"legend":{},"lucy":{"width":{"pct":50,"min":30,"max":100,"menu":"style"},"length":{"pct":50,"min":30,"max":100,"menu":"style"},"edge":{"pct":25,"min":20,"max":50,"menu":"style"}},"lumina":{"waistband":{"bool":true,"menu":"style"},"lowerwaistbandback":{"bool":true},"ease":{"pct":-8,"min":-25,"max":10,"menu":"fit"},"length":{"pct":35,"min":10,"max":100,"menu":"style"},"waistbandsize":{"pct":50,"min":0,"max":150},"waistlowering":{"pct":35,"min":-10,"max":60,"menu":"style"},"waistreduction":{"pct":4,"min":0,"max":10},"sidepanel":{"pct":25,"min":10,"max":40,"menu":"style"},"smoothing":{"pct":85,"min":50,"max":100,"menu":"advanced"},"fixedsidepanel":{"bool":false,"menu":"style"},"crossSeamAngle":35,"crotchToKnee":0.4,"waistToKneeCP":0.4,"kneeToWaistLength":400,"crotchPointsCP":2,"pocket":{"bool":true,"menu":"style"},"pocketdepth":{"pct":90,"min":20,"max":120}},"lumira":{"gussetcompensation":1.03,"waistband":{"bool":true,"menu":"style"},"backgusset":{"bool":false,"menu":"style"},"cyclingchamois":{"bool":false,"menu":"style"},"frontbulge":{"bool":false},"ease":{"pct":-8,"min":-30,"max":0,"menu":"fit"},"leglength":{"pct":100,"min":10,"max":100,"menu":"style"},"waistlowering":{"pct":35,"min":-10,"max":60,"menu":"style"},"gussetwidth":{"pct":16,"min":5,"max":30},"backgussetwidth":{"pct":50,"min":20,"max":75},"frontgussetlength":{"pct":12.5,"min":0,"max":30},"waistbandsize":{"pct":90,"min":0,"max":150},"waistreduction":{"pct":4,"min":0,"max":10},"backinserttopcp":0.3,"backinserttopcpangle":0,"backinsertgussetcp":0.2,"frontbulgelift":1.75,"frontbulgeforwardpercentage":0.125,"frontbulgemiddleshift":0.65,"buttlift":{"pct":30,"min":0,"max":60},"frontbulgesize":{"pct":2.5,"min":0,"max":10}},"lunetius":{"lengthRatio":{"pct":105,"min":60,"max":130,"menu":"style"},"widthRatio":{"pct":100,"min":50,"max":130,"menu":"style"},"length":{"list":["toKnee","toBelowKnee","toHips","toUpperLeg","toFloor"],"dflt":"toBelowKnee","menu":"style"}},"magde":{"size":{"pct":100,"min":15,"max":200,"menu":"style"},"taperRatio":{"pct":60,"min":50,"max":100,"menu":"style"},"flapHeightRatio":{"pct":83,"min":60,"max":100,"menu":"style"},"openingRatio":{"pct":66,"min":30,"max":90,"menu":"style"},"onePieceLid":{"bool":false,"menu":"style"},"useCommonWebbingSizes":{"bool":true,"menu":"style"}},"naomiwu":{"hipsEase":{"pct":0,"min":-5,"max":5,"menu":"fit"},"seatEase":{"pct":5,"min":0,"max":15,"menu":"fit"},"waistSlant":{"pct":0,"min":0,"max":2,"menu":"fit"},"invertFly":{"bool":false,"menu":"style"},"length":{"pct":40,"min":0,"max":80,"menu":"style"},"waistbandWidth":{"pct":4.4,"min":2,"max":10,"menu":"style"},"beltLoopWidth":{"pct":40,"min":20,"max":60,"menu":"style"},"frontPocketOpeningBend":{"pct":80,"min":0,"max":100,"menu":"pockets"},"frontPocketOpeningDepth":{"pct":33,"min":25,"max":45,"menu":"pockets"},"backPocketDepth":{"pct":70,"min":60,"max":85,"menu":"pockets"},"backPocketChamferSize":{"pct":15,"min":5,"max":25,"menu":"pockets"},"frontPocketOpeningWidth":{"pct":33,"min":25,"max":45,"menu":"pockets"},"backAttachmentWidth":{"pct":40,"min":25,"max":55,"menu":"pockets"},"backAttachmentDepth":{"pct":190,"min":100,"max":220,"menu":"pockets"},"frontAttachmentWidth":{"pct":95,"min":80,"max":110,"menu":"pockets"},"frontAttachmentChamferSize":{"pct":15,"min":5,"max":25,"menu":"pockets"},"backAttachmentFlapChamferSize":{"pct":15,"min":5,"max":25,"menu":"pockets"},"dartLength":{"pct":90,"min":50,"max":100,"menu":"advanced"},"dartWidth":{"pct":5,"min":4,"max":8,"menu":"advanced"},"flyLength":{"pct":75,"min":50,"max":85,"menu":"advanced"},"flyWidth":{"pct":16,"min":10,"max":22,"menu":"advanced"},"frontHalf":{"pct":55,"min":50,"max":60,"menu":"advanced"},"jseamBend":{"pct":65,"min":50,"max":100,"menu":"advanced"},"minDartWidth":{"pct":2,"min":0.5,"max":4,"menu":"advanced"}},"noble":{"acrossBackFactor":0.925,"shoulderSlopeBack":1.23,"neckWidthBack":0.197,"neckWidthFront":0.17,"backDartLocation":0.145,"backCenterWaistReduction":0.35,"collarFactor":0.19,"bustSpanEase":{"pct":0,"min":-5,"max":20,"menu":"fit"},"chestEase":{"pct":11,"min":5,"max":20,"menu":"fit"},"fullChestEaseReduction":{"pct":4,"min":0,"max":8,"menu":"fit"},"shoulderToShoulderEase":{"pct":-0.5,"min":-1,"max":5,"menu":"fit"},"waistEase":{"pct":5,"min":1,"max":20,"menu":"fit"},"backDartHeight":{"pct":46,"min":38,"max":54,"menu":"darts"},"bustDartCurve":1,"bustDartLength":0.9,"waistDartLength":{"pct":90,"min":75,"max":95,"menu":"darts"},"armholeDepth":{"pct":44,"min":38,"max":46,"menu":"armhole"},"backArmholeCurvature":{"pct":63,"min":50,"max":85,"menu":"armhole"},"backArmholePitchDepth":{"pct":35,"max":40,"min":30,"menu":"armhole"},"backArmholeSlant":{"deg":5,"min":1,"max":9,"menu":"armhole"},"frontArmholeCurvature":{"pct":63,"min":50,"max":85,"menu":"armhole"},"frontArmholePitchDepth":{"pct":29,"max":31,"min":27,"menu":"armhole"},"backHemSlope":{"deg":2.5,"min":0,"max":5,"menu":"advanced"},"backNeckCutout":{"pct":6,"min":3,"max":9,"menu":"advanced"},"frontShoulderWidth":{"pct":95,"max":98,"min":92,"menu":"advanced"},"highBustWidth":{"pct":86,"max":92,"min":80,"menu":"advanced"},"armholeDartPosition":{"pct":50,"min":10,"max":90},"dartPosition":{"dflt":"shoulder","list":["shoulder","armhole"],"menu":"darts"},"shoulderDartCurvature":{"pct":0,"min":-5,"max":2.5},"shoulderDartPosition":{"pct":50,"min":10,"max":90},"shoulderToShoulderCorrection":0.995,"upperDartLength":{"pct":90,"min":80,"max":95,"menu":"darts"},"waistdartposition":{"pct":0,"min":-100,"max":100,"menu":"darts"}},"octoplushy":{"sizeConstant":200,"size":{"pct":100,"min":5,"max":500,"menu":"style"},"type":{"dflt":"octoplushy","list":["octoplushy","octopus","squid"],"menu":"style"},"armWidth":{"pct":15,"min":10,"max":30,"menu":"style"},"armLength":{"pct":200,"min":100,"max":500,"menu":"style"},"neckWidth":{"pct":25,"min":25,"max":45,"menu":"style"},"armTaper":{"pct":25,"min":0,"max":50,"menu":"style"},"bottomTopArmRatio":{"pct":57,"min":25,"max":75,"menu":"style"},"bottomArmReduction":{"pct":90,"min":75,"max":125},"bottomArmReductionPlushy":{"pct":80,"min":75,"max":125}},"onyx":{"neckStyle":{"dflt":"neckband","list":["neckband","hood"],"menu":"style"},"skirt":{"bool":false,"menu":"style"},"sleeveRibbing":{"bool":false,"menu":"construction"},"legRibbing":{"bool":false,"menu":"construction"},"zipperPosition":{"dflt":"front","list":["front","back","none"],"menu":"construction"},"neckEase":{"pct":50,"min":-30,"max":150,"menu":"fit"},"chestEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"waistEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"hipsEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"seatEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"upperLegEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"legHemEase":{"pct":0,"min":-40,"max":100,"menu":"fit"},"centerSeamEase":{"pct":0,"min":-20,"max":50,"menu":"fit"},"outseamEase":{"pct":0,"min":-20,"max":5,"menu":"fit"},"armpitEase":{"pct":15,"min":-20,"max":50,"menu":"fit"},"legLength":{"pct":20,"min":0,"max":120,"menu":"style"},"neckBalance":{"pct":40,"min":0,"max":80,"menu":"fit"},"raglanScoopLength":{"pct":20,"min":0,"max":50,"menu":"advanced"},"raglanScoopMagnitude":{"pct":6,"min":0,"max":20,"menu":"advanced"},"legHem":{"pct":200,"min":0,"max":800},"crotchGussetWidth":{"pct":100,"min":75,"max":133,"menu":"fit"},"legTaperPosition":{"pct":50,"min":0,"max":100,"menu":"advanced"},"frontOnFold":{"bool":false,"menu":"construction"},"backOnFold":{"bool":true,"menu":"construction"},"zipperLength":{"pct":20,"min":0,"max":50,"menu":"construction"},"sleeveEase":{"pct":0,"min":-30,"max":50,"menu":"fit"},"armholeTweakFactor":1.1,"skirtWidth":{"pct":160,"min":100,"max":250},"skirtLength":{"pct":100,"min":20,"max":500},"skirtWaistband":{"pct":200,"min":0,"max":800},"skirtHem":{"pct":200,"min":0,"max":800},"sleeveRibbingWidth":{"pct":20,"min":0,"max":100,"snap":{"metric":5,"imperial":6.35}},"sleeveRibbingLength":{"pct":75,"min":50,"max":100},"legRibbingWidth":{"pct":20,"min":0,"max":100,"snap":{"metric":5,"imperial":6.35}},"legRibbingLength":{"pct":75,"min":50,"max":100},"neckbandLength":{"pct":80,"min":50,"max":100},"neckbandWidth":{"pct":20,"min":0,"max":100,"snap":{"metric":5,"imperial":6.35}},"zipperGuardWidth":{"pct":50,"min":0,"max":100,"snap":{"metric":5,"imperial":6.35},"menu":"construction"},"neckGuardLength":{"pct":2,"min":0,"max":5},"zipperGuardTapeCoverMaterial":0.75,"bicepsPosition":0.2,"wristEase":{"pct":0,"min":-30,"max":50,"menu":"fit"},"sleeveLength":{"pct":20,"min":0,"max":125,"menu":"style"},"sleeveHem":{"pct":200,"min":0,"max":800},"hoodDepth":{"pct":100,"min":70,"max":180},"hoodHeight":{"pct":100,"min":70,"max":140},"hoodFrontDip":{"pct":8,"min":0,"max":20},"hoodHem":{"pct":200,"min":0,"max":800},"hoodFrontBonus":{"pct":0,"min":-8,"max":10},"hoodFrontPieceSize":{"pct":50,"min":0,"max":50}},"otis":{"ease":{"pct":14,"min":0,"max":30,"menu":"fit"},"snapPlacket":{"pct":5,"min":0,"max":30,"menu":"advanced"},"sleeveType":{"dflt":"short","list":["short","long"],"menu":"style"},"hem":{"pct":10,"min":0,"max":30,"menu":"advanced"},"binding":{"pct":11,"min":2,"max":30,"menu":"advanced"}},"paco":{"fitCrossSeam":true,"fitCrossSeamFront":true,"fitCrossSeamBack":true,"fitGuides":false,"waistEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"seatEase":{"pct":5,"min":0,"max":15,"menu":"fit"},"kneeEase":0.06,"waistHeight":{"pct":5,"min":0,"max":100,"menu":"style"},"lengthBonus":{"pct":0,"min":-15,"max":10,"menu":"style"},"crotchDrop":{"pct":2,"min":0,"max":10,"menu":"style"},"fitKnee":false,"legBalance":{"pct":57.5,"min":52.5,"max":62.5,"menu":"advanced"},"crossSeamCurveStart":{"pct":85,"min":60,"max":100,"menu":"advanced"},"crossSeamCurveBend":{"pct":65,"min":45,"max":85,"menu":"advanced"},"crossSeamCurveAngle":{"deg":12,"min":0,"max":20,"menu":"advanced"},"crotchSeamCurveStart":{"pct":80,"min":60,"max":95,"menu":"advanced"},"crotchSeamCurveBend":{"pct":80,"min":45,"max":100,"menu":"advanced"},"crotchSeamCurveAngle":{"deg":25,"min":0,"max":35,"menu":"advanced"},"waistBalance":{"pct":60,"min":30,"max":90,"menu":"advanced"},"grainlinePosition":{"pct":45,"min":30,"max":60,"menu":"advanced"},"waistbandWidth":{"pct":3,"min":1,"max":6,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"elastic"},"titanPaperless":false,"frontPocketHeelRatio":0.4,"backPocketWaistRatio":0.4,"backPocketHeightRatio":0.4,"backPocketWidthRatio":0.37,"waistbandHeight":0,"elasticatedCuff":{"bool":true,"menu":"style"},"ankleElastic":{"pct":5,"min":1,"max":13,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"elastic"},"heelEase":{"pct":5,"min":0,"max":50,"menu":"elastic"},"frontPockets":{"bool":true,"menu":"pockets"},"backPockets":{"bool":false,"menu":"pockets"},"frontPocketFlapSize":{"pct":3,"min":3,"max":3,"snap":{"metric":1,"imperial":0.79375},"menu":false},"weltFactor":0.15},"penelope":{"dartMaximumDifference":0.344,"dartMinimumDifference":0.2,"dartMinimumWidth":0.006888,"dartSideMinimum":10,"dartBackControl1":0.114,"dartBackControl2":5,"dartBackControl3":4,"curvePlacement":2.4,"dart2offset":32,"dart2factor":0.8,"hipCurveDividerDown":40,"hipCurveDividerUp":3,"sideSeamShiftPercentage":0.006,"backVentWidth":0.1,"paperlessOffset":15,"curvedDartControlAngle":2,"curvedDartTopControlOffset":0.2,"curvedDartBottomControlOffset":0.4,"curvedDarts":{"bool":true,"menu":"style"},"lengthBonus":{"pct":0,"min":-50,"max":50,"menu":"style"},"hemBonus":{"pct":0,"min":-35,"max":0,"menu":"style"},"hem":{"pct":2,"min":0,"max":5,"menu":"style"},"backVent":{"bool":true,"menu":"style"},"backVentLength":{"pct":40,"min":5,"max":70},"zipperLocation":{"dflt":"backSeam","list":["backSeam","sideSeam"],"menu":"style"},"nrOfDarts":{"count":2,"min":1,"max":2,"menu":"style"},"seatEase":{"pct":1,"min":0,"max":8,"menu":"fit"},"waistEase":{"pct":1,"min":0,"max":8,"menu":"fit"},"backDartDepthFactor":{"pct":50,"min":35,"max":70,"menu":"advanced"},"frontDartDepthFactor":{"pct":45,"min":30,"max":65,"menu":"advanced"},"dartToSideSeamFactor":{"pct":50,"min":30,"max":70,"menu":"advanced"},"waistband":{"bool":true,"menu":"style"},"waistbandWidth":{"pct":10,"min":5,"max":20},"waistbandOverlap":{"pct":3.5,"min":0,"max":10}},"plugintest":{"plugin":{"dflt":"all","list":["all","annotations","flip","gore","i18n","measurements","mirror","round","sprinkle","title","versionfreeSvg"],"menu":"tests"},"bannerDy":{"count":-1,"min":-15,"max":15,"menu":"annotations.banner"},"bannerSpaces":{"count":10,"min":0,"max":20,"menu":"annotations.banner"},"bannerRepeat":{"count":10,"min":1,"max":20,"menu":"annotations.banner"},"bartackLength":{"count":15,"min":2,"max":100,"menu":"annotations.bartack"},"bartackAngle":{"count":0,"min":-360,"max":360,"menu":"annotations.bartack"},"bartackDensity":{"count":3,"min":1,"max":5,"menu":"annotations.bartack"},"bartackWidth":{"count":3,"min":1,"max":5,"menu":"annotations.bartack"},"bartackStart":{"pct":25,"min":0,"max":100,"menu":"annotations.bartack"},"bartackEnd":{"pct":75,"min":0,"max":100,"menu":"annotations.bartack"},"crossboxText":{"bool":true,"menu":"annotations.crossboxText"},"cutonfoldMargin":{"pct":5,"min":0,"max":25,"menu":"annotations.cutonfold"},"cutonfoldOffset":{"count":15,"min":0,"max":100,"menu":"annotations.cutonfold"},"cutonfoldGrainline":{"bool":false,"menu":"annotations.cutonfold"},"dimensionsCustomText":{"bool":false,"menu":"annotations.dimensions"},"dimensionsEndMarker":{"bool":true,"menu":"annotations.dimensions"},"dimensionsStartMarker":{"bool":true,"menu":"annotations.dimensions"},"logoScale":{"pct":100,"min":10,"max":200,"menu":"annotations.logo"},"logoRotate":{"deg":0,"min":-360,"max":360,"menu":"annotations.logo"},"pleatMargin":{"count":35,"min":0,"max":50,"menu":"annotations.pleat"},"pleatReverse":{"bool":false,"menu":"annotations.pleat"},"scaleboxRotation":{"deg":0,"min":0,"max":360,"menu":"annotations.scalebox"},"scaleboxText":{"dflt":"default","list":["default","custom","suppress"],"menu":"annotations.scalebox"},"sewtogetherHinge":{"bool":true,"menu":"annotations.sewtogether"},"sewtogetherMiddle":{"bool":false,"menu":"annotations.sewtogether"},"titleNr":{"count":1,"min":0,"max":100,"menu":"annotations.title"},"titleTitle":{"bool":true,"menu":"annotations.title"},"titleMeta":{"bool":true,"menu":"annotations.title"},"titleScale":{"pct":100,"min":10,"max":200,"menu":"annotations.title"},"titleRotate":{"deg":0,"min":-360,"max":360,"menu":"annotations.title"},"snippetScale":{"pct":100,"min":10,"max":200,"menu":"annotations.snippets"},"snippetRotation":{"deg":0,"min":-360,"max":360,"menu":"annotations.snippets"},"flipAxis":{"dflt":"x","list":["x","y"],"menu":"flip"},"goreRadius":{"count":20,"min":10,"max":30,"menu":"gore"},"goreGoreNumber":{"count":6,"min":4,"max":8,"menu":"gore"},"goreExtraLength":{"count":10,"min":0,"max":20,"menu":"gore"},"mirrorLine":{"dflt":"a","list":["a","b","none"],"menu":"mirror"},"mirrorClone":{"bool":true,"menu":"mirror"},"roundRadius":{"count":10,"min":0,"max":50,"menu":"round"},"roundHide":{"bool":false,"menu":"round"},"sprinkleScale":{"pct":100,"min":10,"max":200,"menu":"sprinkle"},"sprinkleRotate":{"deg":0,"min":-360,"max":360,"menu":"sprinkle"},"sprinkleSnippet":{"dflt":"bnotch","list":["notch","bnotch","button","buttonhole","buttonhole-start","buttonhole-end","snap-stud","snap-socket","logo"],"menu":"sprinkle"},"ringsectorInsideRadius":{"count":30,"min":10,"max":50,"menu":"ringsector"},"ringsectorOutsideRadius":{"count":60,"min":60,"max":120,"menu":"ringsector"},"ringsectorAngle":{"deg":75,"min":30,"max":120,"menu":"ringsector"}},"rendertest":{"width":{"mm":200,"min":50,"max":500,"testIgnore":false},"only":{"menu":"show","dflt":"false","list":["false","circles","colors","widths","styles","combos","text","snippets","macros"]}},"sandy":{"minimumOverlap":15,"seamlessFullCircle":{"bool":false,"menu":"construction"},"waistbandWidth":{"pct":4,"min":1,"max":8,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"style"},"waistbandPosition":{"pct":50,"min":0,"max":100,"menu":"fit"},"lengthBonus":{"pct":50,"min":10,"max":100,"menu":"style"},"circleRatio":{"pct":50,"min":20,"max":100,"menu":"style"},"waistbandOverlap":{"pct":3,"min":0,"max":15,"menu":"style"},"gathering":{"pct":0,"min":0,"max":200,"menu":"style"},"hemWidth":{"pct":2,"min":1,"max":10,"menu":"construction"},"waistbandShape":{"list":["straight","curved"],"dflt":"straight","menu":"fit"},"panels":{"count":1,"min":1,"max":8,"menu":"construction"}},"shelly":{"neckEase":{"pct":50,"min":-30,"max":150,"menu":"fit"},"chestEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"straightSides":{"bool":true,"menu":"advanced"},"hipsEase":{"pct":0,"min":-30,"max":75,"menu":"advanced"},"armpitEase":{"pct":15,"min":-20,"max":50,"menu":"fit"},"bodyLength":{"pct":120,"min":20,"max":300,"menu":"style"},"neckBalance":{"pct":40,"min":0,"max":80,"menu":"fit"},"raglanScoopLength":{"pct":20,"min":0,"max":50,"menu":"advanced"},"raglanScoopMagnitude":{"pct":6,"min":0,"max":20,"menu":"advanced"},"hemWidth":{"pct":200,"min":0,"max":800,"menu":"construction"},"sideShape":{"pct":0,"min":-20,"max":20,"menu":"advanced"},"armholeTweakFactor":1.1,"sleeveEase":{"pct":0,"min":-30,"max":50,"menu":"fit"},"bicepsPosition":0.2,"wristEase":{"pct":0,"min":-30,"max":50,"menu":"fit"},"sleeveLength":{"pct":20,"min":0,"max":125,"menu":"style"},"sleeveHem":{"pct":200,"min":0,"max":800,"menu":"construction"},"neckbandLength":{"pct":80,"min":50,"max":100,"menu":"fit"},"neckbandWidth":{"pct":7.5,"min":0,"max":50,"menu":"fit"}},"shin":{"frontFactor":0.58,"legFrontFactor":0.48,"gussetFactor":0.0714,"angle":10,"elasticWidth":{"pct":10,"min":4,"max":20,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"style"},"stretch":{"pct":20,"min":10,"max":30,"menu":"fit"},"bulge":{"pct":2.5,"min":0,"max":5,"menu":"fit"},"legReduction":{"pct":5,"min":0,"max":10,"menu":"fit"},"rise":{"pct":0,"min":0,"max":25,"menu":"style"},"backRise":{"pct":5,"min":0,"max":10,"menu":"fit"}},"simon":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":5,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":10,"max":40,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":2,"min":0,"max":15,"menu":"fit"},"lengthBonus":{"pct":25,"min":-4,"max":60,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"backDarts":{"list":["auto","never","always"],"dflt":"auto","menu":"style"},"backDartShaping":{"pct":25,"min":5,"max":75,"menu":"advanced"},"boxPleat":{"bool":false,"menu":"style"},"boxPleatFold":{"pct":15,"min":10,"max":20,"menu":"advanced"},"boxPleatWidth":{"pct":7,"min":4,"max":10,"menu":"advanced"},"roundBack":{"pct":0,"min":0,"max":10,"menu":"fit"},"buttonholePlacketWidth":{"pct":8,"min":4,"max":12,"menu":"style.closure"},"buttonholePlacketFoldWidth":{"pct":16,"min":8,"max":24,"menu":"style.closure"},"buttonPlacketWidth":{"pct":5,"min":2,"max":8,"menu":"style.closure"},"hemCurve":{"pct":50,"min":25,"max":100,"menu":"style"},"hemStyle":{"list":["straight","baseball","slashed"],"dflt":"straight","menu":"style"},"hipsEase":{"pct":15,"min":10,"max":35,"menu":"fit"},"yokeHeight":{"pct":70,"min":40,"max":90,"menu":"style"},"sleevePlacketWidth":{"pct":13,"min":8,"max":18,"menu":"style.cuffs"},"waistEase":{"pct":15,"min":10,"max":35,"menu":"fit"},"buttonFreeLength":{"pct":2,"min":-10,"max":15,"menu":"style.closure"},"extraTopButton":{"bool":true,"menu":"style.closure"},"separateButtonPlacket":{"bool":false,"menu":"style.closure"},"separateButtonholePlacket":{"bool":false,"menu":"style.closure"},"buttons":{"count":7,"min":4,"max":12,"menu":"style.closure"},"ffsa":{"pct":150,"min":100,"max":200,"menu":"advanced"},"collarAngle":{"deg":85,"min":60,"max":130,"menu":"style.collar"},"collarBend":{"pct":3.5,"min":0,"max":10,"menu":"style.collar"},"collarFlare":{"deg":3.5,"min":0,"max":10,"menu":"style.collar"},"collarGap":{"pct":2.5,"min":0,"max":6,"menu":"style.collar"},"collarRoll":{"pct":3,"min":0,"max":6,"menu":"style.collar"},"collarStandBend":{"deg":3,"min":0,"max":5,"menu":"style.collar"},"collarStandCurve":{"deg":2,"min":0,"max":5,"menu":"style.collar"},"collarStandWidth":{"pct":8,"min":3,"max":13,"menu":"style.collar"},"cuffOverlap":0.15,"barrelCuffNarrowButton":{"bool":true,"menu":"style.cuffs"},"cuffButtonRows":{"count":1,"min":1,"max":2,"menu":"style.cuffs"},"cuffDrape":{"pct":5,"min":0,"max":10,"menu":"style.cuffs"},"cuffLength":{"pct":10,"min":3,"max":15,"menu":"style.cuffs"},"cuffStyle":{"list":["roundedBarrelCuff","angledBarrelCuff","straightBarrelCuff","roundedFrenchCuff","angledFrenchCuff","straightFrenchCuff"],"dflt":"angledBarrelCuff","menu":"style.cuffs"},"buttonPlacketStyle":{"list":["classic","seamless"],"dflt":"classic"},"buttonholePlacketStyle":{"list":["classic","seamless"],"dflt":"seamless"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"sleeveLengthBonus":{"pct":3.5,"min":-40,"max":10,"menu":"fit"},"sleevePlacketLength":{"pct":25,"min":15,"max":35,"menu":"style.cuffs"},"splitYoke":{"bool":false,"menu":"style"}},"simone":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":5,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":10,"max":40,"menu":"fit"},"draftForHighBust":true,"shoulderEase":{"pct":2,"min":0,"max":15,"menu":"fit"},"lengthBonus":{"pct":25,"min":-4,"max":60,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"backDarts":{"list":["auto","never","always"],"dflt":"auto","menu":"style"},"backDartShaping":{"pct":25,"min":5,"max":75,"menu":"advanced"},"boxPleat":{"bool":false,"menu":"style"},"boxPleatFold":{"pct":15,"min":10,"max":20,"menu":"advanced"},"boxPleatWidth":{"pct":7,"min":4,"max":10,"menu":"advanced"},"roundBack":{"pct":0,"min":0,"max":10,"menu":"fit"},"buttonholePlacketWidth":{"pct":8,"min":4,"max":12,"menu":"style.closure"},"buttonholePlacketFoldWidth":{"pct":16,"min":8,"max":24,"menu":"style.closure"},"buttonPlacketWidth":{"pct":5,"min":2,"max":8,"menu":"style.closure"},"hemCurve":{"pct":50,"min":25,"max":100,"menu":"style"},"hemStyle":{"list":["straight","baseball","slashed"],"dflt":"straight","menu":"style"},"hipsEase":{"pct":15,"min":10,"max":35,"menu":"fit"},"yokeHeight":{"pct":70,"min":40,"max":90,"menu":"style"},"sleevePlacketWidth":{"pct":13,"min":8,"max":18,"menu":"style.cuffs"},"waistEase":{"pct":15,"min":10,"max":35,"menu":"fit"},"buttonFreeLength":{"pct":2,"min":-10,"max":15,"menu":"style.closure"},"extraTopButton":{"bool":true,"menu":"style.closure"},"separateButtonPlacket":{"bool":false,"menu":"style.closure"},"separateButtonholePlacket":{"bool":false,"menu":"style.closure"},"buttons":{"count":7,"min":4,"max":12,"menu":"style.closure"},"ffsa":{"pct":150,"min":100,"max":200,"menu":"advanced"},"minimalDartShaping":5,"bustDartAngle":{"deg":10,"min":0,"max":20,"menu":"advanced"},"bustDartLength":{"pct":80,"min":50,"max":90,"menu":"advanced"},"frontDarts":{"bool":false,"menu":"advanced"},"frontDartLength":{"pct":45,"min":30,"max":60,"menu":"advanced"},"contour":{"pct":50,"min":30,"max":75,"menu":"style"},"bustAlignedButtons":{"dflt":"disabled","list":["even","split","disabled"],"menu":"style.closure"},"collarAngle":{"deg":85,"min":60,"max":130,"menu":"style.collar"},"collarBend":{"pct":3.5,"min":0,"max":10,"menu":"style.collar"},"collarFlare":{"deg":3.5,"min":0,"max":10,"menu":"style.collar"},"collarGap":{"pct":2.5,"min":0,"max":6,"menu":"style.collar"},"collarRoll":{"pct":3,"min":0,"max":6,"menu":"style.collar"},"collarStandBend":{"deg":3,"min":0,"max":5,"menu":"style.collar"},"collarStandCurve":{"deg":2,"min":0,"max":5,"menu":"style.collar"},"collarStandWidth":{"pct":8,"min":3,"max":13,"menu":"style.collar"},"cuffOverlap":0.15,"barrelCuffNarrowButton":{"bool":true,"menu":"style.cuffs"},"cuffButtonRows":{"count":1,"min":1,"max":2,"menu":"style.cuffs"},"cuffDrape":{"pct":5,"min":0,"max":10,"menu":"style.cuffs"},"cuffLength":{"pct":10,"min":3,"max":15,"menu":"style.cuffs"},"cuffStyle":{"list":["roundedBarrelCuff","angledBarrelCuff","straightBarrelCuff","roundedFrenchCuff","angledFrenchCuff","straightFrenchCuff"],"dflt":"angledBarrelCuff","menu":"style.cuffs"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"sleeveLengthBonus":{"pct":3.5,"min":-40,"max":10,"menu":"fit"},"sleevePlacketLength":{"pct":25,"min":15,"max":35,"menu":"style.cuffs"},"splitYoke":{"bool":false,"menu":"style"},"buttonPlacketStyle":{"list":["classic","seamless"],"dflt":"classic"},"buttonholePlacketStyle":{"list":["classic","seamless"],"dflt":"seamless"}},"skully":{"size":{"pct":75,"min":10,"max":300,"menu":"fit"}},"sven":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":10,"min":5,"max":30,"menu":"fit"},"cuffEase":{"pct":20,"min":0,"max":200,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":15,"min":0,"max":30,"menu":"style"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"waistEase":0.08,"sleeveLengthBonus":{"pct":3,"min":0,"max":10,"menu":"style"},"ribbingHeight":{"pct":8,"min":3,"max":15,"menu":"style"},"hipsEase":{"pct":8,"min":-4,"max":20,"menu":"fit"},"ribbing":{"bool":true,"menu":"style"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"ribbingStretch":{"pct":15,"min":0,"max":30,"menu":"fit"}},"tamiko":{"armholeDepthFactor":{"pct":50,"min":40,"max":60,"menu":"fit"},"chestEase":{"pct":2,"min":1,"max":20,"menu":"fit"},"flare":{"deg":15,"min":-10,"max":30,"menu":"style"},"lengthBonus":{"pct":13,"min":0,"max":60,"menu":"style"},"shoulderseamLength":{"pct":10,"min":5,"max":25,"menu":"style"},"draftForHighBust":{"bool":false,"menu":"fit"}},"teagan":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":0.05,"chestEase":{"pct":12,"min":5,"max":25,"menu":"fit"},"collarEase":0,"cuffEase":0,"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":0,"lengthBonus":{"pct":5,"min":-20,"max":60,"menu":"style"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":8,"min":4,"max":12,"menu":"fit"},"frontArmholeDeeper":0.005,"shoulderSlopeReduction":0,"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"sleeveWidthGuarantee":0.85,"sleeveLength":{"pct":30,"min":20,"max":100,"menu":"fit"},"fitWaist":{"bool":false,"menu":"fit"},"waistEase":{"pct":25,"min":8,"max":40},"hipsEase":{"pct":18,"min":8,"max":30,"menu":"fit"},"necklineDepth":{"pct":25,"min":20,"max":40,"menu":"style"},"necklineWidth":{"pct":30,"min":10,"max":50,"menu":"style"},"necklineBend":{"pct":30,"min":0,"max":70,"menu":"style"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveEase":{"pct":15,"min":5,"max":35,"menu":"style"}},"tiberius":{"headRatio":{"pct":100,"min":80,"max":120,"menu":"fit"},"armholeDrop":{"pct":110,"min":100,"max":150,"menu":"fit"},"lengthBonus":{"pct":90,"min":60,"max":130,"menu":"style"},"widthBonus":{"pct":100,"min":50,"max":130,"menu":"style"},"clavi":{"bool":false,"menu":"style.clavi"},"clavusLocation":{"pct":65,"min":50,"max":80,"menu":"style.clavi"},"clavusWidth":{"pct":100,"min":50,"max":150,"menu":"style.clavi"},"length":{"list":["toKnee","toMidLeg","toFloor"],"dflt":"toKnee","menu":"style"},"width":{"list":["toElbow","toShoulder","toMidArm"],"dflt":"toMidArm","menu":"style"},"forceWidth":{"bool":false,"menu":"advanced"}},"titan":{"fitCrossSeam":true,"fitCrossSeamFront":true,"fitCrossSeamBack":true,"fitGuides":true,"waistEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"seatEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"kneeEase":{"pct":6,"min":1,"max":25,"menu":"fit"},"waistHeight":{"pct":100,"min":0,"max":100,"menu":"style"},"lengthBonus":{"pct":2,"min":-20,"max":10,"menu":"style"},"crotchDrop":{"pct":2,"min":0,"max":15,"menu":"style"},"fitKnee":{"bool":false,"menu":"style"},"legBalance":{"pct":57.5,"min":52.5,"max":62.5,"menu":"advanced"},"crossSeamCurveStart":{"pct":85,"min":60,"max":100,"menu":"advanced"},"crossSeamCurveBend":{"pct":65,"min":45,"max":85,"menu":"advanced"},"crossSeamCurveAngle":{"deg":12,"min":0,"max":20,"menu":"advanced"},"crotchSeamCurveStart":{"pct":80,"min":60,"max":95,"menu":"advanced"},"crotchSeamCurveBend":{"pct":80,"min":45,"max":100,"menu":"advanced"},"crotchSeamCurveAngle":{"deg":25,"min":0,"max":35,"menu":"advanced"},"waistBalance":{"pct":60,"min":30,"max":90,"menu":"advanced"},"grainlinePosition":{"pct":45,"min":30,"max":60,"menu":"advanced"},"waistbandWidth":{"pct":3,"min":1,"max":6,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"advanced"}},"trayvon":{"tipWidth":{"pct":15,"min":5,"max":35,"snap":{"metric":1,"imperial":0.79375},"menu":"style"},"knotWidth":{"pct":8,"min":4,"max":12,"snap":{"metric":1,"imperial":0.79375},"menu":"style"},"lengthBonus":{"pct":0,"min":-50,"max":50,"menu":"style"}},"tristan":{"acrossBackFactor":0.925,"shoulderSlopeBack":1.23,"neckWidthBack":0.197,"neckWidthFront":0.17,"backDartLocation":0.145,"backCenterWaistReduction":0.35,"collarFactor":0.19,"bustSpanEase":{"pct":0,"min":-5,"max":20,"menu":"fit"},"chestEase":{"pct":11,"min":5,"max":20,"menu":"fit"},"fullChestEaseReduction":{"pct":4,"min":0,"max":8,"menu":"fit"},"shoulderToShoulderEase":{"pct":-0.5,"min":-1,"max":5,"menu":"fit"},"waistEase":{"pct":5,"min":1,"max":20,"menu":"fit"},"backDartHeight":0.46,"bustDartCurve":1,"bustDartLength":0.9,"waistDartLength":{"pct":90,"min":75,"max":95,"menu":"advanced"},"armholeDepth":{"pct":44,"min":38,"max":55,"menu":"style"},"backArmholeCurvature":0.63,"backArmholePitchDepth":0.035,"backArmholeSlant":5,"frontArmholeCurvature":0.63,"frontArmholePitchDepth":0.29,"backHemSlope":2.5,"backNeckCutout":0.06,"frontShoulderWidth":{"pct":95,"max":98,"min":92,"menu":"advanced"},"highBustWidth":{"pct":86,"max":92,"min":80,"menu":"advanced"},"armholeDartPosition":0.5,"dartPosition":"shoulder","shoulderDartCurvature":{"pct":0,"min":-5,"max":2.5},"shoulderDartPosition":{"pct":50,"min":10,"max":90,"menu":"style"},"shoulderToShoulderCorrection":0.995,"upperDartLength":{"pct":90,"min":80,"max":95,"menu":"advanced"},"waistdartposition":{"pct":0,"min":-100,"max":100,"menu":"darts"},"armholeBackDepth":0.6,"armholeBackIn":0.6,"armholeFrontDepth":0.65,"armholeFrontIn":0.2,"cutDepthBack":{"pct":40,"min":5,"max":90,"menu":"style"},"cutDepthFront":{"pct":80,"min":0,"max":125,"menu":"style"},"cutRoundnessBack":{"pct":20,"min":0,"max":100,"menu":"style"},"cutRoundnessFront":{"pct":10,"min":0,"max":100,"menu":"style"},"strapWidth":{"pct":45,"min":5,"max":90,"menu":"style"},"hemSize":{"pct":5.62,"min":1,"max":25},"zipperLocation":{"dflt":"side","list":["front","side","back"],"menu":"options"},"hem":{"bool":false},"lacing":{"bool":true,"menu":"options"},"lacingLocation":{"dflt":"front","list":["front","back"]},"lacingWidth":{"pct":20,"min":0,"max":50},"peplum":{"bool":false,"menu":"options"},"peplumSize":{"pct":10,"min":5,"max":250},"peplumFullness":{"deg":180,"min":180,"max":360}},"uma":{"xStretch":{"pct":15,"min":0,"max":30,"menu":"fit"},"yStretch":{"pct":5,"min":0,"max":15,"menu":"fit"},"gussetWidth":{"pct":15,"min":5,"max":24,"menu":"fit"},"gussetLength":{"pct":12.7,"min":10,"max":16,"menu":"fit"},"gussetPosition":{"pct":70,"min":5,"max":95,"menu":"fit"},"bulge":{"deg":0,"min":0,"max":30,"menu":"fit"},"rise":{"pct":50,"min":30,"max":100,"menu":"style"},"legRise":{"pct":54,"min":5,"max":95,"menu":"style"},"frontDip":{"pct":10,"min":0,"max":25,"menu":"style"},"frontExposure":{"pct":70,"min":5,"max":100,"menu":"style"},"backDip":{"pct":-5,"min":-15,"max":10,"menu":"style"},"backExposure":{"pct":30,"min":0,"max":115,"menu":"style"}},"wahid":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":false},"chestEase":{"pct":2,"min":1,"max":10,"menu":"fit"},"collarEase":{"pct":5,"min":0,"max":10,"menu":false},"cuffEase":{"pct":20,"min":0,"max":200,"menu":false},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":false},"lengthBonus":{"pct":1,"min":0,"max":8,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":false},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":false},"acrossBackFactor":0.97,"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":70,"min":60,"max":80,"menu":"fit"},"backNeckCutout":{"pct":5,"min":-2,"max":8,"menu":false},"frontArmholeDeeper":0.005,"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":false},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"frontOverlap":0.01,"necklineDrop":{"pct":50,"min":35,"max":85,"menu":"style"},"frontStyle":{"dflt":"classic","list":["classic","rounded"],"menu":"style"},"frontInset":{"pct":15,"min":10,"max":20,"menu":"advanced"},"shoulderInset":{"pct":10,"min":0,"max":20,"menu":"advanced"},"neckInset":{"pct":5,"min":0,"max":10,"menu":"advanced"},"hemStyle":{"dflt":"classic","list":["classic","rounded","square"],"menu":"style"},"hemRadius":{"pct":6,"min":2,"max":12,"menu":"style"},"pocketWidth":{"pct":10,"max":15,"min":8,"menu":"style"},"pocketAngle":{"deg":5,"min":0,"max":5,"menu":"advanced"},"pocketLocation":{"pct":35,"min":25,"max":55,"menu":"style"},"frontScyeDart":{"deg":6,"min":0,"max":12,"menu":"fit"},"buttons":{"count":6,"min":4,"max":12,"menu":"style"},"waistEase":{"pct":8,"min":2,"max":15,"menu":"fit"},"hipsEase":{"pct":8,"min":2,"max":15,"menu":"fit"},"backInset":{"pct":15,"min":10,"max":20,"menu":"advanced"},"centerBackDart":{"pct":2,"min":0,"max":5,"menu":"fit"},"backScyeDart":{"deg":2,"min":0,"max":6,"menu":"fit"},"weltHeight":{"pct":12.5,"max":20,"min":10,"menu":"style"}},"walburga":{"headRatio":{"pct":100,"min":80,"max":120,"menu":"fit"},"lengthBonus":{"pct":85,"min":60,"max":130,"menu":"style"},"widthBonus":{"pct":95,"min":50,"max":130,"menu":"style"},"length":{"list":["toKnee","toMidLeg","toFloor"],"dflt":"toKnee","menu":"style"},"neckline":{"bool":true,"menu":"style"},"neckoRatio":{"pct":100,"min":10,"max":190,"menu":"style"}},"waralee":{"backRaise":{"pct":10,"min":0,"max":25,"menu":"fit"},"waistRaise":{"pct":0,"min":-20,"max":40,"menu":"fit"},"fitWaist":{"bool":true,"menu":"fit"},"hemWidth":{"pct":1.75,"min":1,"max":2.5,"menu":"style"},"legSize":{"pct":75,"max":90,"min":50,"menu":"style"},"waistOverlap":{"pct":50,"min":10,"max":100,"menu":"style"},"frontPocket":{"bool":true,"menu":"style"},"backPocket":{"bool":true,"menu":"style"},"waistbandWidth":{"pct":3.5,"min":2,"max":5,"menu":"style"},"frontPocketStyle":{"dflt":"welt","list":["welt","waistband"],"menu":"style"},"separateWaistband":{"bool":false,"menu":"style"},"knotInFront":{"bool":true,"menu":"style"},"crotchFront":{"pct":30,"min":10,"max":70,"menu":"advanced"},"crotchBack":{"pct":45,"min":10,"max":70,"menu":"advanced"},"crotchFactorFrontHor":{"pct":90,"min":10,"max":100,"menu":"advanced"},"crotchFactorFrontVer":{"pct":30,"min":10,"max":70,"menu":"advanced"},"crotchFactorBackHor":{"pct":90,"min":10,"max":100,"menu":"advanced"},"crotchFactorBackVer":{"pct":60,"min":20,"max":90,"menu":"advanced"},"backWaistAdjustment":0.3,"frontPocketVerticalOffset":0.07,"frontPocketHorizontalOffset":0.18,"frontPocketSize":0.45,"frontPocketWidthHeightRatio":0.076,"frontPocketDepthFactor":1.6,"frontWaistAdjustment":0.163,"backPocketDepth":0.5,"backPocketVerticalOffset":0.2,"backPocketHorizontalOffset":0.045,"backPocketSize":0.45,"crotchEase":1.08},"yuri":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":20,"min":10,"max":30,"menu":"fit"},"cuffEase":{"pct":30,"min":20,"max":60,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":10,"min":5,"max":15,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"sleeveLengthBonus":{"pct":1,"min":0,"max":10,"menu":"fit"},"hipsEase":{"pct":0,"min":0,"max":10,"menu":"fit"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"}}}
+export const options = {"aaron":{"brianFitSleeve":false,"brianFitCollar":false,"collarFactor":4.8,"bicepsEase":0.05,"chestEase":{"pct":8,"min":0,"max":20,"menu":"style"},"collarEase":0,"cuffEase":0,"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":0,"lengthBonus":{"pct":10,"min":-20,"max":60,"menu":"style"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":0.97,"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":0.6,"backNeckCutout":0.05,"frontArmholeDeeper":0,"shoulderSlopeReduction":0,"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"hipsEase":{"pct":8,"min":0,"max":20,"menu":"fit"},"stretchFactor":{"pct":5,"min":0,"max":15,"menu":"fit"},"armholeDrop":{"pct":10,"min":0,"max":75,"menu":"style"},"necklineBend":{"pct":100,"min":40,"max":100,"menu":"style"},"necklineDrop":{"pct":20,"min":10,"max":35,"menu":"style"},"shoulderStrapWidth":{"pct":15,"min":10,"max":40,"menu":"style"},"shoulderStrapPlacement":{"pct":40,"min":20,"max":80,"menu":"style"},"backlineBend":{"pct":50,"min":25,"max":100,"menu":"style"},"knitBindingWidth":{"pct":600,"min":300,"max":800,"menu":"style"}},"albert":{"backOpening":{"pct":10,"min":0,"max":25,"menu":"fit"},"bibWidth":{"pct":100,"min":50,"max":125,"menu":"style"},"bibLength":{"pct":75,"min":0,"max":90,"menu":"style"},"lengthBonus":{"pct":0,"min":-20,"max":25,"menu":"style"},"chestDepth":{"pct":22,"min":15,"max":90,"menu":"fit"},"strapWidth":{"pct":60,"min":20,"max":100,"menu":"style"}},"bee":{"acrossBackFactor":0.925,"shoulderSlopeBack":1.23,"neckWidthBack":0.197,"neckWidthFront":0.17,"backDartLocation":0.145,"backCenterWaistReduction":0.35,"collarFactor":0.19,"bustSpanEase":{"pct":10,"min":0,"max":20,"menu":"fit"},"chestEase":{"pct":11,"min":5,"max":20,"menu":"fit"},"fullChestEaseReduction":{"pct":4,"min":0,"max":8,"menu":"fit"},"shoulderToShoulderEase":{"pct":-0.5,"min":-1,"max":5,"menu":"fit"},"waistEase":{"pct":5,"min":1,"max":20,"menu":"fit"},"backDartHeight":{"pct":46,"min":38,"max":54,"menu":"advanced"},"bustDartCurve":1,"bustDartLength":1,"waistDartLength":1,"armholeDepth":{"pct":44,"min":38,"max":46,"menu":"advanced"},"backArmholeCurvature":0.63,"backArmholePitchDepth":0.35,"backArmholeSlant":5,"frontArmholeCurvature":0.63,"frontArmholePitchDepth":{"pct":29,"max":31,"min":27,"menu":"advanced"},"backHemSlope":2.5,"backNeckCutout":0.06,"frontShoulderWidth":{"pct":95,"max":98,"min":92,"menu":"advanced"},"highBustWidth":{"pct":86,"max":92,"min":80,"menu":"advanced"},"ties":{"bool":true,"menu":"style"},"crossBackTies":{"bool":false,"menu":"style"},"bandLength":{"pct":85,"min":75,"max":90,"menu":"style"},"neckTieLength":{"pct":80,"min":70,"max":100,"menu":"style"},"neckTieWidth":{"pct":6,"min":2,"max":18,"snap":{"metric":[6,13,19,25,32,38],"imperial":[6.35,12.7,19.05,25.4,31.75,38.1]},"menu":"style"},"reversible":{"bool":false,"menu":"style"},"topDepth":{"pct":54,"min":50,"max":80,"menu":"fit"},"bottomCupDepth":{"pct":8,"min":0,"max":20,"menu":"fit"},"sideDepth":{"pct":20.6,"min":0,"max":30,"menu":"fit"},"sideCurve":{"pct":0,"min":-50,"max":50,"menu":"fit"},"frontCurve":{"pct":0,"min":-50,"max":50,"menu":"fit"},"bellaGuide":{"bool":false,"menu":"fit"},"pointedTieEnds":{"bool":false,"menu":"style"},"duoColorTies":{"bool":false,"menu":"style"},"bandTieWidth":{"pct":3,"min":1,"max":9,"snap":{"metric":[6,13,19,25,32,38],"imperial":[6.35,12.7,19.05,25.4,31.75,38.1]},"menu":"style"},"bandTieLength":{"pct":35,"min":30,"max":50,"menu":"style"}},"bella":{"acrossBackFactor":0.925,"shoulderSlopeBack":1.23,"neckWidthBack":0.197,"neckWidthFront":0.17,"backDartLocation":0.145,"backCenterWaistReduction":0.35,"collarFactor":0.19,"bustSpanEase":{"pct":10,"min":0,"max":20,"menu":"fit"},"chestEase":{"pct":11,"min":5,"max":20,"menu":"fit"},"fullChestEaseReduction":{"pct":4,"min":0,"max":8,"menu":"fit"},"shoulderToShoulderEase":{"pct":-0.5,"min":-1,"max":5,"menu":"fit"},"waistEase":{"pct":5,"min":1,"max":20,"menu":"fit"},"backDartHeight":{"pct":46,"min":38,"max":54,"menu":"darts"},"bustDartCurve":{"pct":100,"min":0,"max":100,"menu":"darts"},"bustDartLength":{"pct":90,"min":75,"max":100,"menu":"darts"},"waistDartLength":{"pct":90,"min":75,"max":95,"menu":"darts"},"armholeDepth":{"pct":44,"min":38,"max":46,"menu":"armhole"},"backArmholeCurvature":{"pct":63,"min":50,"max":85,"menu":"armhole"},"backArmholePitchDepth":{"pct":35,"max":40,"min":30,"menu":"armhole"},"backArmholeSlant":{"deg":5,"min":1,"max":9,"menu":"armhole"},"frontArmholeCurvature":{"pct":63,"min":50,"max":85,"menu":"armhole"},"frontArmholePitchDepth":{"pct":29,"max":31,"min":27,"menu":"armhole"},"backHemSlope":{"deg":2.5,"min":0,"max":5,"menu":"advanced"},"backNeckCutout":{"pct":6,"min":3,"max":9,"menu":"advanced"},"frontShoulderWidth":{"pct":95,"max":98,"min":92,"menu":"advanced"},"highBustWidth":{"pct":86,"max":92,"min":80,"menu":"advanced"}},"benjamin":{"transitionLength":2,"bandLength":0.17,"adjustmentRibbonWidth":20,"collarEase":{"pct":3,"min":0,"max":6,"menu":"fit"},"adjustmentRibbon":{"bool":false,"menu":"fit"},"tipWidth":{"pct":15,"min":0,"max":20,"menu":"style"},"knotWidth":{"pct":7,"min":5,"max":10,"menu":"style"},"bowLength":{"pct":28,"min":23,"max":33,"menu":"style"},"bowStyle":{"dflt":"butterfly","list":["diamond","butterfly","square","widesquare"],"menu":"style"},"endStyle":{"dflt":"straight","list":["straight","pointed","rounded"],"menu":"style"},"collarBandHeight":{"pct":6,"min":5,"max":8,"menu":"style"}},"bent":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":20,"min":10,"max":40,"menu":"fit"},"chestEase":{"pct":8,"min":-4,"max":20,"menu":"fit"},"collarEase":{"pct":3.5,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":40,"min":2,"max":100,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":0,"min":-4,"max":60,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":97,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":5,"min":-10,"max":50},"armholeDepthFactor":{"pct":60,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.5,"min":0,"max":1.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"sleeveLengthBonus":{"pct":0,"min":-20,"max":15,"menu":"fit"},"sleeveBend":{"deg":10,"min":0,"max":20,"menu":"fit"},"sleevecapHeight":{"pct":45,"min":40,"max":60,"menu":"advanced"},"sleevecapEase":{"pct":1,"min":0,"max":10,"menu":"advanced"}},"bob":{"neckRatio":{"pct":80,"min":70,"max":90,"menu":"fit"},"widthRatio":{"pct":45,"min":35,"max":55,"menu":"fit"},"lengthRatio":{"pct":75,"min":55,"max":85,"menu":"fit"},"headSize":{"pct":100,"min":10,"max":200,"snap":5,"menu":"size"}},"breanna":{"collarFactor":4.8,"armholeDepthBase":0.6,"shoulderSeamLength":0.95,"sleeveWidthGuarantee":0.9,"breannaFitSleeve":true,"breannaFitCollar":true,"shoulderDart":{"bool":false,"menu":"fit"},"waistDart":{"bool":true,"menu":"fit"},"primaryBustDart":{"list":["06:00","07:00","08:00","09:00","10:00","11:00","11:30","12:00","12:30","13:00","13:30","14:00","15:00","16:00","17:00"],"dflt":"06:00","doNotTranslate":true,"menu":"style"},"secondaryBustDart":{"list":["none","06:00","07:00","08:00","09:00","10:00","11:00","11:30","12:00","12:30","13:00","13:30","14:00","15:00","16:00","17:00"],"dflt":"13:30","doNotTranslate":true,"menu":"style"},"acrossBackFactor":{"pct":96,"min":93,"max":100,"menu":"advanced"},"armholeDepthFactor":{"pct":100,"min":80,"max":120,"menu":"advanced"},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"shoulderDartSize":{"pct":7,"min":4,"max":10},"shoulderDartLength":{"pct":85,"min":60,"max":100},"waistDartSize":{"pct":10,"min":4,"max":15},"waistDartLength":{"pct":85,"min":60,"max":100},"verticalEase":{"pct":2,"min":0,"max":8,"menu":"fit"},"frontArmholeDeeper":{"pct":1,"min":0,"max":5,"menu":"advanced"},"shoulderEase":{"pct":0,"min":0,"max":4,"menu":"fit"},"collarEase":{"pct":3.5,"min":0,"max":10,"menu":"fit"},"chestEase":{"pct":10,"min":5,"max":20,"menu":"fit"},"waistEase":{"pct":10,"min":5,"max":20,"menu":"fit"},"primaryBustDartShaping":{"pct":50,"min":25,"max":75,"menu":"style"},"primaryBustDartLength":{"pct":85,"min":65,"max":95,"menu":"style"},"secondaryBustDartLength":{"pct":85,"min":65,"max":95,"menu":"style"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":100,"menu":"advanced"},"frontScyeDart":{"pct":25,"min":0,"max":45,"menu":"fit"},"sleevecapEase":{"pct":0.5,"min":0,"max":2.5,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":110,"min":35,"max":165,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":45,"min":35,"max":55,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":3,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":5.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":4.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":12.5,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":12.5,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":12.5,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":12.5,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"cuffEase":{"pct":20,"min":0,"max":50,"menu":"fit"},"sleeveLengthBonus":{"pct":0,"min":-40,"max":10,"menu":"style"}},"brian":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":5,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":0,"max":200,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":0,"min":-4,"max":60,"menu":"style"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"sleeveLengthBonus":{"pct":0,"min":-40,"max":10,"menu":"style"}},"bruce":{"hipRatioFront":0.245,"hipRatioBack":0.315,"legRatioInset":0.3,"legRatioBack":0.32,"gussetRatio":0.0666,"gussetInsetRatio":0.6,"heightRatioInset":0.65,"bulge":{"deg":20,"min":0,"max":40,"menu":"fit"},"legBonus":{"pct":0,"min":-10,"max":20,"menu":"style"},"rise":{"pct":10,"min":0,"max":25,"menu":"style"},"stretch":{"pct":15,"min":5,"max":25,"menu":"fit"},"legStretch":{"pct":40,"min":25,"max":45,"menu":"fit"},"backRise":{"pct":5,"min":0,"max":10,"menu":"fit"}},"carlita":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":20,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":10,"min":5,"max":20,"menu":"fit"},"collarEase":0.145,"cuffEase":{"pct":60,"min":30,"max":100,"menu":"fit"},"draftForHighBust":true,"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":0,"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":97,"min":93,"max":100,"menu":"fit"},"armholeDepth":{"pct":5,"min":-10,"max":50},"armholeDepthFactor":{"pct":65,"min":50,"max":70,"menu":"fit"},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.5,"min":0,"max":1.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":12,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"buttonSpacingHorizontal":{"pct":43.5,"min":15,"max":60,"menu":"style"},"length":{"pct":69,"min":35,"max":100,"menu":"style"},"lapelReduction":{"pct":5,"min":0,"max":10,"menu":"advanced"},"frontOverlap":{"pct":1.5,"min":1,"max":2,"menu":"advanced"},"pocketPlacementHorizontal":{"pct":11,"min":5,"max":20,"menu":"pockets"},"pocketPlacementVertical":{"pct":6,"min":5,"max":60,"menu":"pockets"},"pocketWidth":{"pct":95,"min":70,"max":120,"menu":"pockets"},"pocketHeight":{"pct":15,"min":0,"max":40,"menu":"pockets"},"pocketRadius":{"pct":20,"min":0,"max":50,"menu":"pockets"},"pocketFlapRadius":{"pct":15,"min":0,"max":50,"menu":"pockets"},"chestPocketPlacement":{"pct":55,"min":30,"max":65,"menu":"pockets"},"chestPocketAngle":0,"chestPocketHeight":{"pct":60,"min":40,"max":80,"menu":"pockets"},"chestPocketWidth":{"pct":25,"min":15,"max":50,"menu":"pockets"},"innerPocketPlacement":{"pct":53,"min":42,"max":62,"menu":"pockets"},"innerPocketWidth":{"pct":50,"min":45,"max":65,"menu":"pockets"},"waistEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"seatEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"innerPocketWeltHeight":{"pct":3.5,"min":2.5,"max":5,"menu":"pockets"},"contour":{"pct":50,"min":25,"max":75,"menu":"advanced"},"backPleat":0.048,"beltWidth":{"pct":15,"min":10,"max":20,"menu":"style"},"sleeveLengthBonus":{"pct":7,"min":0,"max":20,"menu":"fit"},"sleeveBend":{"deg":10,"min":0,"max":20,"menu":"fit"},"sleevecapHeight":{"pct":45,"min":40,"max":60,"menu":"advanced"},"sleevecapEase":{"pct":1,"min":0,"max":10,"menu":"advanced"},"cuffLength":{"pct":15,"min":10,"max":20,"menu":"style"},"chestShapingMax":5,"collarHeight":{"pct":9.6,"min":8,"max":11,"menu":"collar"},"collarFlare":{"pct":20,"min":0,"max":40,"menu":"collar"},"collarSpread":{"deg":4,"min":2,"max":6,"menu":"collar"},"innerPocketDepth":{"pct":110,"min":75,"max":140,"menu":"pockets"}},"carlton":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":20,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":10,"min":5,"max":20,"menu":"fit"},"collarEase":0.145,"cuffEase":{"pct":60,"min":30,"max":100,"menu":"fit"},"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":0,"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":97,"min":93,"max":100,"menu":"fit"},"armholeDepth":{"pct":5,"min":-10,"max":50},"armholeDepthFactor":{"pct":65,"min":50,"max":70,"menu":"fit"},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.5,"min":0,"max":1.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":12,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"buttonSpacingHorizontal":{"pct":43.5,"min":15,"max":60,"menu":"style"},"length":{"pct":69,"min":35,"max":100,"menu":"style"},"lapelReduction":{"pct":5,"min":0,"max":10,"menu":"advanced"},"frontOverlap":{"pct":1.5,"min":1,"max":2,"menu":"advanced"},"pocketPlacementHorizontal":{"pct":11,"min":5,"max":20,"menu":"pockets"},"pocketPlacementVertical":{"pct":6,"min":5,"max":60,"menu":"pockets"},"pocketWidth":{"pct":95,"min":70,"max":120,"menu":"pockets"},"pocketHeight":{"pct":15,"min":0,"max":40,"menu":"pockets"},"pocketRadius":{"pct":20,"min":0,"max":50,"menu":"pockets"},"pocketFlapRadius":{"pct":15,"min":0,"max":50,"menu":"pockets"},"chestPocketPlacement":{"pct":55,"min":30,"max":65,"menu":"pockets"},"chestPocketAngle":{"deg":4,"min":0,"max":6,"menu":"pockets"},"chestPocketHeight":{"pct":60,"min":40,"max":80,"menu":"pockets"},"chestPocketWidth":{"pct":25,"min":15,"max":50,"menu":"pockets"},"innerPocketPlacement":{"pct":53,"min":42,"max":62,"menu":"pockets"},"innerPocketWidth":{"pct":50,"min":45,"max":65,"menu":"pockets"},"waistEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"seatEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"innerPocketWeltHeight":{"pct":3.5,"min":2.5,"max":5,"menu":"pockets"},"backPleat":0.048,"beltWidth":{"pct":15,"min":10,"max":20,"menu":"style"},"sleeveLengthBonus":{"pct":7,"min":0,"max":20,"menu":"fit"},"sleeveBend":{"deg":10,"min":0,"max":20,"menu":"fit"},"sleevecapHeight":{"pct":45,"min":40,"max":60,"menu":"advanced"},"sleevecapEase":{"pct":1,"min":0,"max":10,"menu":"advanced"},"cuffLength":{"pct":15,"min":10,"max":20,"menu":"style"},"chestShapingMax":5,"collarHeight":{"pct":9.6,"min":8,"max":11,"menu":"collar"},"collarFlare":{"pct":20,"min":0,"max":40,"menu":"collar"},"collarSpread":{"deg":4,"min":2,"max":6,"menu":"collar"},"innerPocketDepth":{"pct":110,"min":75,"max":140,"menu":"pockets"}},"cathrin":{"waistReduction":{"pct":10,"min":2,"max":20,"menu":"fit"},"panels":{"list":["11","13"],"dflt":"13","menu":"fit"},"backOpening":{"pct":4,"min":3,"max":10,"menu":"style"},"backRise":{"pct":15,"min":1,"max":25,"menu":"style"},"backDrop":{"pct":2,"min":-10,"max":5,"menu":"style"},"frontRise":{"pct":4,"min":-10,"max":8,"menu":"style"},"frontDrop":{"pct":5,"min":0,"max":10,"menu":"style"},"hipRise":{"pct":5,"min":0,"max":15,"menu":"style"}},"charlie":{"fitCrossSeam":true,"fitCrossSeamFront":true,"fitCrossSeamBack":true,"fitGuides":false,"waistEase":{"pct":1,"min":0,"max":5,"menu":"fit"},"seatEase":{"pct":5,"min":0,"max":10,"menu":"fit"},"kneeEase":{"pct":15,"min":10,"max":30,"menu":"fit"},"waistHeight":{"pct":-4,"min":-15,"max":40,"menu":"style"},"lengthBonus":{"pct":2,"min":-20,"max":10,"menu":"style"},"crotchDrop":{"pct":2,"min":0,"max":15,"menu":"style"},"fitKnee":true,"legBalance":{"pct":57.5,"min":52.5,"max":62.5,"menu":"advanced"},"crossSeamCurveStart":{"pct":85,"min":60,"max":100,"menu":"advanced"},"crossSeamCurveBend":{"pct":65,"min":45,"max":85,"menu":"advanced"},"crossSeamCurveAngle":{"deg":12,"min":0,"max":20,"menu":"advanced"},"crotchSeamCurveStart":{"pct":80,"min":60,"max":95,"menu":"advanced"},"crotchSeamCurveBend":{"pct":80,"min":45,"max":100,"menu":"advanced"},"crotchSeamCurveAngle":{"deg":25,"min":0,"max":35,"menu":"advanced"},"waistBalance":{"pct":55,"min":30,"max":90,"menu":"advanced"},"grainlinePosition":{"pct":50,"min":30,"max":60,"menu":"advanced"},"waistbandWidth":{"pct":3,"min":1,"max":6,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"style"},"waistbandReduction":0.25,"waistbandFactor":0.1,"frontPocketSlantDepth":{"pct":85,"min":70,"max":100,"menu":"pockets.frontpockets"},"frontPocketSlantWidth":{"pct":25,"min":15,"max":35,"menu":"pockets.frontpockets"},"frontPocketSlantRound":{"pct":30,"min":5,"max":50,"menu":"pockets.frontpockets"},"frontPocketSlantBend":{"pct":25,"min":5,"max":50,"menu":"pockets.frontpockets"},"frontPocketWidth":{"pct":55,"min":45,"max":65,"menu":"pockets.frontpockets"},"frontPocketDepth":{"pct":100,"min":85,"max":110,"menu":"pockets.frontpockets"},"frontPocketFacing":{"pct":45,"min":25,"max":65,"menu":"pockets.frontpockets"},"flyCurve":{"pct":72,"min":50,"max":100,"menu":"advanced.fly"},"flyLength":{"pct":45,"min":30,"max":60,"menu":"advanced.fly"},"flyWidth":{"pct":15,"min":10,"max":20,"menu":"advanced.fly"},"backPocketVerticalPlacement":{"pct":24,"min":18,"max":30,"menu":"pockets.backpockets"},"backPocketHorizontalPlacement":{"pct":55,"min":48,"max":62,"menu":"pockets.backpockets"},"backPocketWidth":{"pct":55,"min":50,"max":60,"menu":"pockets.backpockets"},"backPocketDepth":{"pct":60,"min":40,"max":80,"menu":"pockets.backpockets"},"backPocketFacing":{"bool":true,"menu":"pockets.backpockets"},"waistbandCurve":{"pct":0,"min":0,"max":35,"menu":"fit"},"beltLoops":{"count":8,"min":6,"max":12,"menu":"advanced"}},"cornelius":{"pctAtoO":0.5,"pctAtoC":0.25,"pctUtoA":0.25,"pctJtoA":0.25,"pctSeatAdjustment":0.5,"ventLength":{"pct":70,"min":25,"max":110,"menu":"style"},"fullness":{"pct":0,"min":0,"max":55,"menu":"fit"},"waistbandBelowWaist":{"pct":5,"min":0,"max":15,"menu":"style"},"waistReduction":{"pct":1,"min":-2,"max":10,"menu":"fit"},"bandBelowKnee":{"pct":25,"min":15,"max":50,"menu":"advanced"},"pctZtoR":0.35,"pctRtoZin":0.75,"pctRtoZup":0.25,"pctRtoKin":0.75,"pctRtoKdown":0.25,"pctKtoRout":0.15,"pctKtoRup":0.25,"pctKtoH":0.7,"flyWidth":{"pct":0.38,"min":0.2,"max":0.6,"menu":"style"},"kneeToBelow":{"pct":94,"min":85,"max":110,"menu":"advanced"},"cuffWidth":{"pct":0,"min":-50,"max":150,"menu":"style"},"cuffStyle":{"dflt":"elegant","list":["traditional","elegant","keystone"],"menu":"style"}},"diana":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":5,"bicepsEase":{"pct":0,"min":-5,"max":50,"menu":"fit"},"chestEase":{"pct":0,"min":-10,"max":20,"menu":"fit"},"collarEase":0,"cuffEase":{"pct":20,"min":0,"max":30,"menu":"fit"},"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":0,"min":0,"max":50,"menu":"fit"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":{"pct":97,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":0,"min":0,"max":20,"menu":"advanced"},"armholeDepthFactor":{"pct":55,"min":50,"max":70,"menu":"advanced"},"backNeckCutout":0.05,"frontArmholeDeeper":{"pct":0,"min":0,"max":1.5,"menu":"advanced"},"shoulderSlopeReduction":0,"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"drapeAngle":{"deg":20,"min":10,"max":30,"menu":"style"},"sleeveLengthBonus":{"pct":0,"min":-40,"max":10,"menu":"fit"},"shoulderSeamLength":{"pct":35,"min":0.1,"max":60,"menu":"style"},"waistEase":{"pct":0,"min":-10,"max":20,"menu":"fit"},"hipsEase":{"pct":0,"min":-10,"max":20,"menu":"fit"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":100,"min":35,"max":165,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":3,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":5.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":4.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":6,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"}},"examples":{"size":{"pct":50,"min":5,"max":100,"menu":"stack"},"x":{"pct":0,"min":-100,"max":100,"menu":"stack"},"y":{"pct":0,"min":-100,"max":100,"menu":"stack"},"stackIt":{"dflt":"Do stack","list":["Do stack","Do not stack"],"menu":"stack"}},"florence":{"length":{"pct":40,"min":35,"max":45,"menu":"fit"},"height":{"pct":26,"min":23,"max":29,"menu":"fit"},"curve":{"pct":12.5,"min":10,"max":15,"menu":"fit"}},"florent":{"topSide":0.8,"brim":0,"headEase":{"pct":2,"min":0,"max":5,"menu":"fit"}},"gozer":{},"hi":{"length":1000,"size":{"pct":100,"min":5,"max":500,"menu":"style"},"nosePointiness":{"pct":0,"min":-5,"max":10,"menu":"style"},"aggressive":{"bool":false,"menu":"style"},"hungry":{"pct":50,"min":0,"max":100,"menu":"style"}},"holmes":{"headEase":{"pct":3,"min":0,"max":9,"snap":{"metric":[6,13,19,25,32,38,44,50],"imperial":[6.35,12.7,19.05,25.4,31.75,38.1,44.45,50.8]},"menu":"fit"},"lengthRatio":{"pct":55,"min":40,"max":60,"menu":"style"},"gores":{"count":6,"min":4,"max":20,"menu":"style"},"visorAngle":{"deg":45,"min":10,"max":90,"menu":"style"},"visorWidth":{"pct":5,"min":1,"max":17,"snap":5,"menu":"style"},"visorLength":{"pct":100,"min":80,"max":150,"menu":"advanced"},"earLength":{"pct":100,"min":80,"max":150,"menu":"style"},"earWidth":{"pct":100,"min":80,"max":150,"menu":"style"},"buttonhole":{"bool":false,"menu":"style"}},"hortensia":{"width":230,"height":330,"size":{"pct":50,"min":20,"max":200,"menu":"style"},"zipperSize":{"dflt":"#5","list":["#3","#4","#4.5","#5","#6","#8","#10","invisible"],"menu":"style"},"minHandleSpaceWidth":80,"maxHandleSpaceWidth":250,"pctHandleSpace":50,"pctHandleVert":42,"handleWidth":{"pct":8.6,"min":4,"max":25,"menu":"style"},"strapLength":{"pct":160,"min":75,"max":250,"menu":"style"}},"huey":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":5,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":0,"max":200,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":15,"min":-4,"max":60,"menu":"style"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"ribbing":{"bool":true,"menu":"style"},"ribbingHeight":{"pct":10,"min":5,"max":15,"menu":"style"},"hipsEase":{"pct":8,"min":4,"max":12,"menu":"fit"},"pocket":{"bool":true,"menu":"style"},"pocketHeight":{"pct":30,"min":25,"max":35,"menu":"style"},"pocketWidth":{"pct":60,"min":50,"max":70,"menu":"style"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"sleeveLengthBonus":{"pct":0,"min":-40,"max":10,"menu":"style"},"hoodHeight":{"pct":59,"min":55,"max":65,"menu":"style"},"hoodCutback":{"pct":10,"min":5,"max":15,"menu":"style"},"hoodClosure":{"pct":13.5,"min":10,"max":15,"menu":"style"},"hoodDepth":{"pct":8.5,"min":5,"max":12,"menu":"style"},"hoodAngle":{"deg":5,"min":2,"max":8,"menu":"style"},"ribbingStretch":{"pct":15,"min":0,"max":30,"menu":"fit"}},"hugo":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":8,"min":4,"max":20,"menu":"fit"},"collarEase":0.05,"cuffEase":{"pct":20,"min":10,"max":50,"menu":"fit"},"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":0,"lengthBonus":{"pct":10,"min":0,"max":20,"menu":"style"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":0.5,"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":0,"shoulderSlopeReduction":0,"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"hipsEase":{"pct":12,"min":4,"max":20,"menu":"fit"},"ribbingHeight":{"pct":10,"min":4,"max":20,"menu":"style"},"pocketWidth":{"pct":50,"min":35,"max":65,"menu":"style"},"sleevecapEase":0,"sleevecapTopFactorX":0.5,"sleevecapTopFactorY":0.45,"sleevecapBackFactorX":0.6,"sleevecapBackFactorY":0.33,"sleevecapFrontFactorX":0.55,"sleevecapFrontFactorY":0.33,"sleevecapQ1Offset":0.017,"sleevecapQ2Offset":0.035,"sleevecapQ3Offset":0.025,"sleevecapQ4Offset":0.01,"sleevecapQ1Spread1":0.1,"sleevecapQ1Spread2":0.15,"sleevecapQ2Spread1":0.15,"sleevecapQ2Spread2":0.1,"sleevecapQ3Spread1":0.1,"sleevecapQ3Spread2":0.08,"sleevecapQ4Spread1":0.07,"sleevecapQ4Spread2":0.063,"sleeveWidthGuarantee":0.9,"sleeveLengthBonus":{"pct":2,"min":0,"max":10,"menu":"style"},"ribbingStretch":{"pct":5,"min":0,"max":10,"menu":"fit"}},"jaeger":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":5,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":0,"max":200,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":19,"min":10,"max":25,"menu":"fit"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"centerBackDart":{"pct":0.5,"min":0,"max":1.5,"menu":"fit"},"hipsEase":{"pct":12,"min":8,"max":20,"menu":"fit"},"waistEase":{"pct":14,"min":8,"max":25,"menu":"fit"},"rollLineCollarHeight":{"pct":6,"min":5,"max":9,"menu":"collar"},"reduceWaistStandardFraction":0.08,"reduceWaistDartFraction":0.05,"reduceHipsStandardFraction":0.1,"centerFrontHemDrop":{"pct":2,"min":0,"max":4,"menu":"style"},"frontPocketPlacement":{"pct":75,"min":65,"max":85,"menu":"pockets"},"frontPocketWidth":{"pct":68,"min":55,"max":75,"menu":"pockets"},"frontPocketDepth":{"pct":110,"min":80,"max":130,"menu":"pockets"},"frontPocketRadius":{"pct":10,"min":0,"max":50,"menu":"pockets"},"frontDartPlacement":{"pct":55,"min":45,"max":60,"menu":"advanced"},"sideFrontPlacement":{"pct":85,"min":80,"max":90,"menu":"advanced"},"frontOverlap":{"pct":1.5,"min":1,"max":2,"menu":"advanced"},"innerPocketPlacement":{"pct":52,"min":42,"max":62,"menu":"pockets"},"innerPocketWidth":{"pct":50,"min":45,"max":65,"menu":"pockets"},"innerPocketDepth":{"pct":110,"min":75,"max":140,"menu":"pockets"},"innerPocketWeltHeight":{"pct":3.5,"min":2.5,"max":5,"menu":"pockets"},"frontCutawayAngle":{"deg":2.5,"min":1,"max":4,"menu":"style"},"frontCutawayStart":{"pct":30,"min":10,"max":70,"menu":"style"},"frontCutawayEnd":{"pct":40,"min":10,"max":40,"menu":"style"},"hemRadius":{"pct":100,"min":35,"max":100,"menu":"style"},"chestPocketDepth":{"pct":110,"min":70,"max":150,"menu":"pockets"},"chestPocketWidth":{"pct":37,"min":30,"max":45,"menu":"pockets"},"chestPocketPlacement":{"pct":52,"min":40,"max":60,"menu":"pockets"},"chestPocketAngle":{"deg":2.5,"min":0,"max":7,"menu":"pockets"},"chestPocketWeltSize":{"pct":17.5,"min":10,"max":25,"menu":"pockets"},"lapelStart":{"pct":10,"min":0,"max":35,"menu":"style"},"collarHeight":{"pct":9,"min":7,"max":10,"menu":"collar"},"collarNotchDepth":{"pct":15,"min":15,"max":50,"menu":"collar"},"collarNotchAngle":{"deg":45,"min":30,"max":60,"menu":"collar"},"collarNotchReturn":{"pct":100,"min":50,"max":100,"menu":"collar"},"chestShaping":{"pct":30,"min":0,"max":100,"menu":"advanced"},"buttons":{"list":["1","2","3"],"dflt":"2","menu":"style"},"buttonLength":{"pct":30,"min":30,"max":60,"menu":"style"},"chestShapingMax":5,"lapelReduction":{"pct":5,"min":0,"max":10,"menu":"style"},"backVent":{"count":1,"min":0,"max":2,"menu":"style"},"backVentLength":{"pct":35,"min":15,"max":100,"menu":"style"},"collarSpread":{"deg":13,"min":5,"max":35,"menu":"collar"},"collarRoll":{"pct":5,"min":0,"max":10,"menu":"collar"},"pocketFoldover":{"pct":25,"min":15,"max":35,"menu":"pockets"},"sleeveLengthBonus":{"pct":0,"min":-20,"max":15,"menu":"fit"},"sleeveBend":{"deg":10,"min":0,"max":20,"menu":"fit"},"sleevecapHeight":{"pct":45,"min":40,"max":60,"menu":"advanced"},"sleevecapEase":{"pct":1,"min":0,"max":10,"menu":"advanced"},"sleeveVentLength":{"pct":35,"min":25,"max":55,"menu":"sleeves"},"sleeveVentWidth":{"pct":18,"min":10,"max":26,"menu":"sleeves"}},"legend":{},"lucy":{"width":{"pct":50,"min":30,"max":100,"menu":"style"},"length":{"pct":50,"min":30,"max":100,"menu":"style"},"edge":{"pct":25,"min":20,"max":50,"menu":"style"}},"lumina":{"waistband":{"bool":true,"menu":"style"},"lowerwaistbandback":{"bool":true},"ease":{"pct":-8,"min":-25,"max":10,"menu":"fit"},"length":{"pct":35,"min":10,"max":100,"menu":"style"},"waistbandsize":{"pct":50,"min":0,"max":150},"waistlowering":{"pct":35,"min":-10,"max":60,"menu":"style"},"waistreduction":{"pct":4,"min":0,"max":10},"sidepanel":{"pct":25,"min":10,"max":40,"menu":"style"},"smoothing":{"pct":85,"min":50,"max":100,"menu":"advanced"},"fixedsidepanel":{"bool":false,"menu":"style"},"crossSeamAngle":35,"crotchToKnee":0.4,"waistToKneeCP":0.4,"kneeToWaistLength":400,"crotchPointsCP":2,"pocket":{"bool":true,"menu":"style"},"pocketdepth":{"pct":90,"min":20,"max":120}},"lumira":{"gussetcompensation":1.03,"waistband":{"bool":true,"menu":"style"},"backgusset":{"bool":false,"menu":"style"},"cyclingchamois":{"bool":false,"menu":"style"},"frontbulge":{"bool":false},"ease":{"pct":-8,"min":-30,"max":0,"menu":"fit"},"leglength":{"pct":100,"min":10,"max":100,"menu":"style"},"waistlowering":{"pct":35,"min":-10,"max":60,"menu":"style"},"gussetwidth":{"pct":16,"min":5,"max":30},"backgussetwidth":{"pct":50,"min":20,"max":75},"frontgussetlength":{"pct":12.5,"min":0,"max":30},"waistbandsize":{"pct":90,"min":0,"max":150},"waistreduction":{"pct":4,"min":0,"max":10},"backinserttopcp":0.3,"backinserttopcpangle":0,"backinsertgussetcp":0.2,"frontbulgelift":1.75,"frontbulgeforwardpercentage":0.125,"frontbulgemiddleshift":0.65,"buttlift":{"pct":30,"min":0,"max":60},"frontbulgesize":{"pct":2.5,"min":0,"max":10}},"lunetius":{"lengthRatio":{"pct":105,"min":60,"max":130,"menu":"style"},"widthRatio":{"pct":100,"min":50,"max":130,"menu":"style"},"length":{"list":["toKnee","toBelowKnee","toHips","toUpperLeg","toFloor"],"dflt":"toBelowKnee","menu":"style"}},"magde":{"size":{"pct":100,"min":15,"max":200,"menu":"style"},"taperRatio":{"pct":60,"min":50,"max":100,"menu":"style"},"flapHeightRatio":{"pct":83,"min":60,"max":100,"menu":"style"},"openingRatio":{"pct":66,"min":30,"max":90,"menu":"style"},"onePieceLid":{"bool":false,"menu":"style"},"useCommonWebbingSizes":{"bool":true,"menu":"style"}},"naomiwu":{"hipsEase":{"pct":0,"min":-5,"max":5,"menu":"fit"},"seatEase":{"pct":5,"min":0,"max":15,"menu":"fit"},"waistSlant":{"pct":0,"min":0,"max":2,"menu":"fit"},"invertFly":{"bool":false,"menu":"style"},"length":{"pct":40,"min":0,"max":80,"menu":"style"},"waistbandWidth":{"pct":4.4,"min":2,"max":10,"menu":"style"},"beltLoopWidth":{"pct":40,"min":20,"max":60,"menu":"style"},"frontPocketOpeningBend":{"pct":80,"min":0,"max":100,"menu":"pockets"},"frontPocketOpeningDepth":{"pct":33,"min":25,"max":45,"menu":"pockets"},"backPocketDepth":{"pct":70,"min":60,"max":85,"menu":"pockets"},"backPocketChamferSize":{"pct":15,"min":5,"max":25,"menu":"pockets"},"frontPocketOpeningWidth":{"pct":33,"min":25,"max":45,"menu":"pockets"},"backAttachmentWidth":{"pct":40,"min":25,"max":55,"menu":"pockets"},"backAttachmentDepth":{"pct":190,"min":100,"max":220,"menu":"pockets"},"frontAttachmentWidth":{"pct":95,"min":80,"max":110,"menu":"pockets"},"frontAttachmentChamferSize":{"pct":15,"min":5,"max":25,"menu":"pockets"},"backAttachmentFlapChamferSize":{"pct":15,"min":5,"max":25,"menu":"pockets"},"dartLength":{"pct":90,"min":50,"max":100,"menu":"advanced"},"dartWidth":{"pct":5,"min":4,"max":8,"menu":"advanced"},"flyLength":{"pct":75,"min":50,"max":85,"menu":"advanced"},"flyWidth":{"pct":16,"min":10,"max":22,"menu":"advanced"},"frontHalf":{"pct":55,"min":50,"max":60,"menu":"advanced"},"jseamBend":{"pct":65,"min":50,"max":100,"menu":"advanced"},"minDartWidth":{"pct":2,"min":0.5,"max":4,"menu":"advanced"}},"noble":{"acrossBackFactor":0.925,"shoulderSlopeBack":1.23,"neckWidthBack":0.197,"neckWidthFront":0.17,"backDartLocation":0.145,"backCenterWaistReduction":0.35,"collarFactor":0.19,"bustSpanEase":{"pct":0,"min":-5,"max":20,"menu":"fit"},"chestEase":{"pct":11,"min":5,"max":20,"menu":"fit"},"fullChestEaseReduction":{"pct":4,"min":0,"max":8,"menu":"fit"},"shoulderToShoulderEase":{"pct":-0.5,"min":-1,"max":5,"menu":"fit"},"waistEase":{"pct":5,"min":1,"max":20,"menu":"fit"},"backDartHeight":{"pct":46,"min":38,"max":54,"menu":"darts"},"bustDartCurve":1,"bustDartLength":0.9,"waistDartLength":{"pct":90,"min":75,"max":95,"menu":"darts"},"armholeDepth":{"pct":44,"min":38,"max":46,"menu":"armhole"},"backArmholeCurvature":{"pct":63,"min":50,"max":85,"menu":"armhole"},"backArmholePitchDepth":{"pct":35,"max":40,"min":30,"menu":"armhole"},"backArmholeSlant":{"deg":5,"min":1,"max":9,"menu":"armhole"},"frontArmholeCurvature":{"pct":63,"min":50,"max":85,"menu":"armhole"},"frontArmholePitchDepth":{"pct":29,"max":31,"min":27,"menu":"armhole"},"backHemSlope":{"deg":2.5,"min":0,"max":5,"menu":"advanced"},"backNeckCutout":{"pct":6,"min":3,"max":9,"menu":"advanced"},"frontShoulderWidth":{"pct":95,"max":98,"min":92,"menu":"advanced"},"highBustWidth":{"pct":86,"max":92,"min":80,"menu":"advanced"},"armholeDartPosition":{"pct":50,"min":10,"max":90},"dartPosition":{"dflt":"shoulder","list":["shoulder","armhole"],"menu":"darts"},"shoulderDartCurvature":{"pct":0,"min":-5,"max":2.5},"shoulderDartPosition":{"pct":50,"min":10,"max":90},"shoulderToShoulderCorrection":0.995,"upperDartLength":{"pct":90,"min":80,"max":95,"menu":"darts"},"waistdartposition":{"pct":0,"min":-100,"max":100,"menu":"darts"}},"octoplushy":{"sizeConstant":200,"size":{"pct":100,"min":5,"max":500,"menu":"style"},"type":{"dflt":"octoplushy","list":["octoplushy","octopus","squid"],"menu":"style"},"armWidth":{"pct":15,"min":10,"max":30,"menu":"style"},"armLength":{"pct":200,"min":100,"max":500,"menu":"style"},"neckWidth":{"pct":25,"min":25,"max":45,"menu":"style"},"armTaper":{"pct":25,"min":0,"max":50,"menu":"style"},"bottomTopArmRatio":{"pct":57,"min":25,"max":75,"menu":"style"},"bottomArmReduction":{"pct":90,"min":75,"max":125},"bottomArmReductionPlushy":{"pct":80,"min":75,"max":125}},"onyx":{"neckStyle":{"dflt":"neckband","list":["neckband","hood"],"menu":"style"},"skirt":{"bool":false,"menu":"style"},"sleeveRibbing":{"bool":false,"menu":"construction"},"legRibbing":{"bool":false,"menu":"construction"},"zipperPosition":{"dflt":"front","list":["front","back","none"],"menu":"construction"},"neckEase":{"pct":50,"min":-30,"max":150,"menu":"fit"},"chestEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"waistEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"hipsEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"seatEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"upperLegEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"legHemEase":{"pct":0,"min":-40,"max":100,"menu":"fit"},"centerSeamEase":{"pct":0,"min":-20,"max":50,"menu":"fit"},"outseamEase":{"pct":0,"min":-20,"max":5,"menu":"fit"},"armpitEase":{"pct":15,"min":-20,"max":50,"menu":"fit"},"legLength":{"pct":20,"min":0,"max":120,"menu":"style"},"neckBalance":{"pct":40,"min":0,"max":80,"menu":"fit"},"raglanScoopLength":{"pct":20,"min":0,"max":50,"menu":"advanced"},"raglanScoopMagnitude":{"pct":6,"min":0,"max":20,"menu":"advanced"},"legHem":{"pct":200,"min":0,"max":800},"crotchGussetWidth":{"pct":100,"min":75,"max":133,"menu":"fit"},"legTaperPosition":{"pct":50,"min":0,"max":100,"menu":"advanced"},"frontOnFold":{"bool":false,"menu":"construction"},"backOnFold":{"bool":true,"menu":"construction"},"zipperLength":{"pct":20,"min":0,"max":50,"menu":"construction"},"sleeveEase":{"pct":0,"min":-30,"max":50,"menu":"fit"},"armholeTweakFactor":1.1,"skirtWidth":{"pct":160,"min":100,"max":250},"skirtLength":{"pct":100,"min":20,"max":500},"skirtWaistband":{"pct":200,"min":0,"max":800},"skirtHem":{"pct":200,"min":0,"max":800},"sleeveRibbingWidth":{"pct":20,"min":0,"max":100,"snap":{"metric":5,"imperial":6.35}},"sleeveRibbingLength":{"pct":75,"min":50,"max":100},"legRibbingWidth":{"pct":20,"min":0,"max":100,"snap":{"metric":5,"imperial":6.35}},"legRibbingLength":{"pct":75,"min":50,"max":100},"neckbandLength":{"pct":80,"min":50,"max":100},"neckbandWidth":{"pct":20,"min":0,"max":100,"snap":{"metric":5,"imperial":6.35}},"zipperGuardWidth":{"pct":50,"min":0,"max":100,"snap":{"metric":5,"imperial":6.35},"menu":"construction"},"neckGuardLength":{"pct":2,"min":0,"max":5},"zipperGuardTapeCoverMaterial":0.75,"bicepsPosition":0.2,"wristEase":{"pct":0,"min":-30,"max":50,"menu":"fit"},"sleeveLength":{"pct":20,"min":0,"max":125,"menu":"style"},"sleeveHem":{"pct":200,"min":0,"max":800},"hoodDepth":{"pct":100,"min":70,"max":180},"hoodHeight":{"pct":100,"min":70,"max":140},"hoodFrontDip":{"pct":8,"min":0,"max":20},"hoodHem":{"pct":200,"min":0,"max":800},"hoodFrontBonus":{"pct":0,"min":-8,"max":10},"hoodFrontPieceSize":{"pct":50,"min":0,"max":50}},"otis":{"ease":{"pct":14,"min":0,"max":30,"menu":"fit"},"snapPlacket":{"pct":5,"min":0,"max":30,"menu":"advanced"},"sleeveType":{"dflt":"short","list":["short","long"],"menu":"style"},"hem":{"pct":10,"min":0,"max":30,"menu":"advanced"},"binding":{"pct":11,"min":2,"max":30,"menu":"advanced"}},"paco":{"fitCrossSeam":true,"fitCrossSeamFront":true,"fitCrossSeamBack":true,"fitGuides":false,"waistEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"seatEase":{"pct":5,"min":0,"max":15,"menu":"fit"},"kneeEase":0.06,"waistHeight":{"pct":5,"min":0,"max":100,"menu":"style"},"lengthBonus":{"pct":0,"min":-15,"max":10,"menu":"style"},"crotchDrop":{"pct":2,"min":0,"max":10,"menu":"style"},"fitKnee":false,"legBalance":{"pct":57.5,"min":52.5,"max":62.5,"menu":"advanced"},"crossSeamCurveStart":{"pct":85,"min":60,"max":100,"menu":"advanced"},"crossSeamCurveBend":{"pct":65,"min":45,"max":85,"menu":"advanced"},"crossSeamCurveAngle":{"deg":12,"min":0,"max":20,"menu":"advanced"},"crotchSeamCurveStart":{"pct":80,"min":60,"max":95,"menu":"advanced"},"crotchSeamCurveBend":{"pct":80,"min":45,"max":100,"menu":"advanced"},"crotchSeamCurveAngle":{"deg":25,"min":0,"max":35,"menu":"advanced"},"waistBalance":{"pct":60,"min":30,"max":90,"menu":"advanced"},"grainlinePosition":{"pct":45,"min":30,"max":60,"menu":"advanced"},"waistbandWidth":{"pct":3,"min":1,"max":6,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"elastic"},"titanPaperless":false,"frontPocketHeelRatio":0.4,"backPocketWaistRatio":0.4,"backPocketHeightRatio":0.4,"backPocketWidthRatio":0.37,"waistbandHeight":0,"elasticatedCuff":{"bool":true,"menu":"style"},"ankleElastic":{"pct":5,"min":1,"max":13,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"elastic"},"heelEase":{"pct":5,"min":0,"max":50,"menu":"elastic"},"frontPockets":{"bool":true,"menu":"pockets"},"backPockets":{"bool":false,"menu":"pockets"},"frontPocketFlapSize":{"pct":3,"min":3,"max":3,"snap":{"metric":1,"imperial":0.79375},"menu":false},"weltFactor":0.15},"penelope":{"dartMaximumDifference":0.344,"dartMinimumDifference":0.2,"dartMinimumWidth":0.006888,"dartSideMinimum":10,"dartBackControl1":0.114,"dartBackControl2":5,"dartBackControl3":4,"curvePlacement":2.4,"dart2offset":32,"dart2factor":0.8,"hipCurveDividerDown":40,"hipCurveDividerUp":3,"sideSeamShiftPercentage":0.006,"backVentWidth":0.1,"paperlessOffset":15,"curvedDartControlAngle":2,"curvedDartTopControlOffset":0.2,"curvedDartBottomControlOffset":0.4,"curvedDarts":{"bool":true,"menu":"style"},"lengthBonus":{"pct":0,"min":-50,"max":50,"menu":"style"},"hemBonus":{"pct":0,"min":-35,"max":0,"menu":"style"},"hem":{"pct":2,"min":0,"max":5,"menu":"style"},"backVent":{"bool":true,"menu":"style"},"backVentLength":{"pct":40,"min":5,"max":70},"zipperLocation":{"dflt":"backSeam","list":["backSeam","sideSeam"],"menu":"style"},"nrOfDarts":{"count":2,"min":1,"max":2,"menu":"style"},"seatEase":{"pct":1,"min":0,"max":8,"menu":"fit"},"waistEase":{"pct":1,"min":0,"max":8,"menu":"fit"},"backDartDepthFactor":{"pct":50,"min":35,"max":70,"menu":"advanced"},"frontDartDepthFactor":{"pct":45,"min":30,"max":65,"menu":"advanced"},"dartToSideSeamFactor":{"pct":50,"min":30,"max":70,"menu":"advanced"},"waistband":{"bool":true,"menu":"style"},"waistbandWidth":{"pct":10,"min":5,"max":20},"waistbandOverlap":{"pct":3.5,"min":0,"max":10}},"plugintest":{"plugin":{"dflt":"all","list":["all","annotations","flip","gore","i18n","measurements","mirror","round","sprinkle","title","versionfreeSvg"],"menu":"tests"},"bannerDy":{"count":-1,"min":-15,"max":15,"menu":"annotations.banner"},"bannerSpaces":{"count":10,"min":0,"max":20,"menu":"annotations.banner"},"bannerRepeat":{"count":10,"min":1,"max":20,"menu":"annotations.banner"},"bartackLength":{"count":15,"min":2,"max":100,"menu":"annotations.bartack"},"bartackAngle":{"count":0,"min":-360,"max":360,"menu":"annotations.bartack"},"bartackDensity":{"count":3,"min":1,"max":5,"menu":"annotations.bartack"},"bartackWidth":{"count":3,"min":1,"max":5,"menu":"annotations.bartack"},"bartackStart":{"pct":25,"min":0,"max":100,"menu":"annotations.bartack"},"bartackEnd":{"pct":75,"min":0,"max":100,"menu":"annotations.bartack"},"crossboxText":{"bool":true,"menu":"annotations.crossboxText"},"cutonfoldMargin":{"pct":5,"min":0,"max":25,"menu":"annotations.cutonfold"},"cutonfoldOffset":{"count":15,"min":0,"max":100,"menu":"annotations.cutonfold"},"cutonfoldGrainline":{"bool":false,"menu":"annotations.cutonfold"},"dimensionsCustomText":{"bool":false,"menu":"annotations.dimensions"},"dimensionsEndMarker":{"bool":true,"menu":"annotations.dimensions"},"dimensionsStartMarker":{"bool":true,"menu":"annotations.dimensions"},"logoScale":{"pct":100,"min":10,"max":200,"menu":"annotations.logo"},"logoRotate":{"deg":0,"min":-360,"max":360,"menu":"annotations.logo"},"pleatMargin":{"count":35,"min":0,"max":50,"menu":"annotations.pleat"},"pleatReverse":{"bool":false,"menu":"annotations.pleat"},"scaleboxRotation":{"deg":0,"min":0,"max":360,"menu":"annotations.scalebox"},"scaleboxText":{"dflt":"default","list":["default","custom","suppress"],"menu":"annotations.scalebox"},"sewtogetherHinge":{"bool":true,"menu":"annotations.sewtogether"},"sewtogetherMiddle":{"bool":false,"menu":"annotations.sewtogether"},"titleNr":{"count":1,"min":0,"max":100,"menu":"annotations.title"},"titleTitle":{"bool":true,"menu":"annotations.title"},"titleMeta":{"bool":true,"menu":"annotations.title"},"titleScale":{"pct":100,"min":10,"max":200,"menu":"annotations.title"},"titleRotate":{"deg":0,"min":-360,"max":360,"menu":"annotations.title"},"snippetScale":{"pct":100,"min":10,"max":200,"menu":"annotations.snippets"},"snippetRotation":{"deg":0,"min":-360,"max":360,"menu":"annotations.snippets"},"flipAxis":{"dflt":"x","list":["x","y"],"menu":"flip"},"goreRadius":{"count":20,"min":10,"max":30,"menu":"gore"},"goreGoreNumber":{"count":6,"min":4,"max":8,"menu":"gore"},"goreExtraLength":{"count":10,"min":0,"max":20,"menu":"gore"},"mirrorLine":{"dflt":"a","list":["a","b","none"],"menu":"mirror"},"mirrorClone":{"bool":true,"menu":"mirror"},"roundRadius":{"count":10,"min":0,"max":50,"menu":"round"},"roundHide":{"bool":false,"menu":"round"},"sprinkleScale":{"pct":100,"min":10,"max":200,"menu":"sprinkle"},"sprinkleRotate":{"deg":0,"min":-360,"max":360,"menu":"sprinkle"},"sprinkleSnippet":{"dflt":"bnotch","list":["notch","bnotch","button","buttonhole","buttonhole-start","buttonhole-end","snap-stud","snap-socket","logo"],"menu":"sprinkle"},"ringsectorInsideRadius":{"count":30,"min":10,"max":50,"menu":"ringsector"},"ringsectorOutsideRadius":{"count":60,"min":60,"max":120,"menu":"ringsector"},"ringsectorAngle":{"deg":75,"min":30,"max":120,"menu":"ringsector"}},"rendertest":{"width":{"mm":200,"min":50,"max":500,"testIgnore":false},"only":{"menu":"show","dflt":"false","list":["false","circles","colors","widths","styles","combos","text","snippets","macros"]}},"sandy":{"minimumOverlap":15,"seamlessFullCircle":{"bool":false,"menu":"construction"},"waistbandWidth":{"pct":4,"min":1,"max":8,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"style"},"waistbandPosition":{"pct":50,"min":0,"max":100,"menu":"fit"},"lengthBonus":{"pct":50,"min":10,"max":100,"menu":"style"},"circleRatio":{"pct":50,"min":20,"max":100,"menu":"style"},"waistbandOverlap":{"pct":3,"min":0,"max":15,"menu":"style"},"gathering":{"pct":0,"min":0,"max":200,"menu":"style"},"hemWidth":{"pct":2,"min":1,"max":10,"menu":"construction"},"waistbandShape":{"list":["straight","curved"],"dflt":"straight","menu":"fit"},"panels":{"count":1,"min":1,"max":8,"menu":"construction"}},"shelly":{"neckEase":{"pct":50,"min":-30,"max":150,"menu":"fit"},"chestEase":{"pct":0,"min":-40,"max":50,"menu":"fit"},"straightSides":{"bool":true,"menu":"advanced"},"hipsEase":{"pct":0,"min":-30,"max":75,"menu":"advanced"},"armpitEase":{"pct":15,"min":-20,"max":50,"menu":"fit"},"bodyLength":{"pct":120,"min":20,"max":300,"menu":"style"},"neckBalance":{"pct":40,"min":0,"max":80,"menu":"fit"},"raglanScoopLength":{"pct":20,"min":0,"max":50,"menu":"advanced"},"raglanScoopMagnitude":{"pct":6,"min":0,"max":20,"menu":"advanced"},"hemWidth":{"pct":200,"min":0,"max":800,"menu":"construction"},"sideShape":{"pct":0,"min":-20,"max":20,"menu":"advanced"},"armholeTweakFactor":1.1,"sleeveEase":{"pct":0,"min":-30,"max":50,"menu":"fit"},"bicepsPosition":0.2,"wristEase":{"pct":0,"min":-30,"max":50,"menu":"fit"},"sleeveLength":{"pct":20,"min":0,"max":125,"menu":"style"},"sleeveHem":{"pct":200,"min":0,"max":800,"menu":"construction"},"neckbandLength":{"pct":80,"min":50,"max":100,"menu":"fit"},"neckbandWidth":{"pct":7.5,"min":0,"max":50,"menu":"fit"}},"shin":{"frontFactor":0.58,"legFrontFactor":0.48,"gussetFactor":0.0714,"angle":10,"elasticWidth":{"pct":10,"min":4,"max":20,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"style"},"stretch":{"pct":20,"min":10,"max":30,"menu":"fit"},"bulge":{"pct":2.5,"min":0,"max":5,"menu":"fit"},"legReduction":{"pct":5,"min":0,"max":10,"menu":"fit"},"rise":{"pct":0,"min":0,"max":25,"menu":"style"},"backRise":{"pct":5,"min":0,"max":10,"menu":"fit"}},"simon":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":5,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":10,"max":40,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":2,"min":0,"max":15,"menu":"fit"},"lengthBonus":{"pct":25,"min":-4,"max":60,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"backDarts":{"list":["auto","never","always"],"dflt":"auto","menu":"style"},"backDartShaping":{"pct":25,"min":5,"max":75,"menu":"advanced"},"boxPleat":{"bool":false,"menu":"style"},"boxPleatFold":{"pct":15,"min":10,"max":20,"menu":"advanced"},"boxPleatWidth":{"pct":7,"min":4,"max":10,"menu":"advanced"},"roundBack":{"pct":0,"min":0,"max":10,"menu":"fit"},"buttonholePlacketWidth":{"pct":8,"min":4,"max":12,"menu":"style.closure"},"buttonholePlacketFoldWidth":{"pct":16,"min":8,"max":24,"menu":"style.closure"},"buttonPlacketWidth":{"pct":5,"min":2,"max":8,"menu":"style.closure"},"hemCurve":{"pct":50,"min":25,"max":100,"menu":"style"},"hemStyle":{"list":["straight","baseball","slashed"],"dflt":"straight","menu":"style"},"hipsEase":{"pct":15,"min":10,"max":35,"menu":"fit"},"yokeHeight":{"pct":70,"min":40,"max":90,"menu":"style"},"sleevePlacketWidth":{"pct":13,"min":8,"max":18,"menu":"style.cuffs"},"waistEase":{"pct":15,"min":10,"max":35,"menu":"fit"},"buttonFreeLength":{"pct":2,"min":-10,"max":15,"menu":"style.closure"},"extraTopButton":{"bool":true,"menu":"style.closure"},"separateButtonPlacket":{"bool":false,"menu":"style.closure"},"separateButtonholePlacket":{"bool":false,"menu":"style.closure"},"buttons":{"count":7,"min":4,"max":12,"menu":"style.closure"},"ffsa":{"pct":150,"min":100,"max":200,"menu":"advanced"},"collarAngle":{"deg":85,"min":60,"max":130,"menu":"style.collar"},"collarBend":{"pct":3.5,"min":0,"max":10,"menu":"style.collar"},"collarFlare":{"deg":3.5,"min":0,"max":10,"menu":"style.collar"},"collarGap":{"pct":2.5,"min":0,"max":6,"menu":"style.collar"},"collarRoll":{"pct":3,"min":0,"max":6,"menu":"style.collar"},"collarStandBend":{"deg":3,"min":0,"max":5,"menu":"style.collar"},"collarStandCurve":{"deg":2,"min":0,"max":5,"menu":"style.collar"},"collarStandWidth":{"pct":8,"min":3,"max":13,"menu":"style.collar"},"cuffOverlap":0.15,"barrelCuffNarrowButton":{"bool":true,"menu":"style.cuffs"},"cuffButtonRows":{"count":1,"min":1,"max":2,"menu":"style.cuffs"},"cuffDrape":{"pct":5,"min":0,"max":10,"menu":"style.cuffs"},"cuffLength":{"pct":10,"min":3,"max":15,"menu":"style.cuffs"},"cuffStyle":{"list":["roundedBarrelCuff","angledBarrelCuff","straightBarrelCuff","roundedFrenchCuff","angledFrenchCuff","straightFrenchCuff"],"dflt":"angledBarrelCuff","menu":"style.cuffs"},"buttonPlacketStyle":{"list":["classic","seamless"],"dflt":"classic"},"buttonholePlacketStyle":{"list":["classic","seamless"],"dflt":"seamless"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"sleeveLengthBonus":{"pct":3.5,"min":-40,"max":10,"menu":"fit"},"sleevePlacketLength":{"pct":25,"min":15,"max":35,"menu":"style.cuffs"},"splitYoke":{"bool":false,"menu":"style"}},"simone":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":5,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"cuffEase":{"pct":20,"min":10,"max":40,"menu":"fit"},"draftForHighBust":true,"shoulderEase":{"pct":2,"min":0,"max":15,"menu":"fit"},"lengthBonus":{"pct":25,"min":-4,"max":60,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"backDarts":{"list":["auto","never","always"],"dflt":"auto","menu":"style"},"backDartShaping":{"pct":25,"min":5,"max":75,"menu":"advanced"},"boxPleat":{"bool":false,"menu":"style"},"boxPleatFold":{"pct":15,"min":10,"max":20,"menu":"advanced"},"boxPleatWidth":{"pct":7,"min":4,"max":10,"menu":"advanced"},"roundBack":{"pct":0,"min":0,"max":10,"menu":"fit"},"buttonholePlacketWidth":{"pct":8,"min":4,"max":12,"menu":"style.closure"},"buttonholePlacketFoldWidth":{"pct":16,"min":8,"max":24,"menu":"style.closure"},"buttonPlacketWidth":{"pct":5,"min":2,"max":8,"menu":"style.closure"},"hemCurve":{"pct":50,"min":25,"max":100,"menu":"style"},"hemStyle":{"list":["straight","baseball","slashed"],"dflt":"straight","menu":"style"},"hipsEase":{"pct":15,"min":10,"max":35,"menu":"fit"},"yokeHeight":{"pct":70,"min":40,"max":90,"menu":"style"},"sleevePlacketWidth":{"pct":13,"min":8,"max":18,"menu":"style.cuffs"},"waistEase":{"pct":15,"min":10,"max":35,"menu":"fit"},"buttonFreeLength":{"pct":2,"min":-10,"max":15,"menu":"style.closure"},"extraTopButton":{"bool":true,"menu":"style.closure"},"separateButtonPlacket":{"bool":false,"menu":"style.closure"},"separateButtonholePlacket":{"bool":false,"menu":"style.closure"},"buttons":{"count":7,"min":4,"max":12,"menu":"style.closure"},"ffsa":{"pct":150,"min":100,"max":200,"menu":"advanced"},"minimalDartShaping":5,"bustDartAngle":{"deg":10,"min":0,"max":20,"menu":"advanced"},"bustDartLength":{"pct":80,"min":50,"max":90,"menu":"advanced"},"frontDarts":{"bool":false,"menu":"advanced"},"frontDartLength":{"pct":45,"min":30,"max":60,"menu":"advanced"},"contour":{"pct":50,"min":30,"max":75,"menu":"style"},"bustAlignedButtons":{"dflt":"disabled","list":["even","split","disabled"],"menu":"style.closure"},"collarAngle":{"deg":85,"min":60,"max":130,"menu":"style.collar"},"collarBend":{"pct":3.5,"min":0,"max":10,"menu":"style.collar"},"collarFlare":{"deg":3.5,"min":0,"max":10,"menu":"style.collar"},"collarGap":{"pct":2.5,"min":0,"max":6,"menu":"style.collar"},"collarRoll":{"pct":3,"min":0,"max":6,"menu":"style.collar"},"collarStandBend":{"deg":3,"min":0,"max":5,"menu":"style.collar"},"collarStandCurve":{"deg":2,"min":0,"max":5,"menu":"style.collar"},"collarStandWidth":{"pct":8,"min":3,"max":13,"menu":"style.collar"},"cuffOverlap":0.15,"barrelCuffNarrowButton":{"bool":true,"menu":"style.cuffs"},"cuffButtonRows":{"count":1,"min":1,"max":2,"menu":"style.cuffs"},"cuffDrape":{"pct":5,"min":0,"max":10,"menu":"style.cuffs"},"cuffLength":{"pct":10,"min":3,"max":15,"menu":"style.cuffs"},"cuffStyle":{"list":["roundedBarrelCuff","angledBarrelCuff","straightBarrelCuff","roundedFrenchCuff","angledFrenchCuff","straightFrenchCuff"],"dflt":"angledBarrelCuff","menu":"style.cuffs"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"sleeveLengthBonus":{"pct":3.5,"min":-40,"max":10,"menu":"fit"},"sleevePlacketLength":{"pct":25,"min":15,"max":35,"menu":"style.cuffs"},"splitYoke":{"bool":false,"menu":"style"},"buttonPlacketStyle":{"list":["classic","seamless"],"dflt":"classic"},"buttonholePlacketStyle":{"list":["classic","seamless"],"dflt":"seamless"}},"skully":{"size":{"pct":75,"min":10,"max":300,"menu":"fit"}},"sven":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":10,"min":5,"max":30,"menu":"fit"},"cuffEase":{"pct":20,"min":0,"max":200,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":15,"min":0,"max":30,"menu":"style"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"waistEase":0.08,"sleeveLengthBonus":{"pct":3,"min":0,"max":10,"menu":"style"},"ribbingHeight":{"pct":8,"min":3,"max":15,"menu":"style"},"hipsEase":{"pct":8,"min":-4,"max":20,"menu":"fit"},"ribbing":{"bool":true,"menu":"style"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"},"ribbingStretch":{"pct":15,"min":0,"max":30,"menu":"fit"}},"tamiko":{"armholeDepthFactor":{"pct":50,"min":40,"max":60,"menu":"fit"},"chestEase":{"pct":2,"min":1,"max":20,"menu":"fit"},"flare":{"deg":15,"min":-10,"max":30,"menu":"style"},"lengthBonus":{"pct":13,"min":0,"max":60,"menu":"style"},"shoulderseamLength":{"pct":10,"min":5,"max":25,"menu":"style"},"draftForHighBust":{"bool":false,"menu":"fit"}},"teagan":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":0.05,"chestEase":{"pct":12,"min":5,"max":25,"menu":"fit"},"collarEase":0,"cuffEase":0,"draftForHighBust":{"bool":false,"menu":"fit"},"shoulderEase":0,"lengthBonus":{"pct":5,"min":-20,"max":60,"menu":"style"},"s3Collar":0,"s3Armhole":0,"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":8,"min":4,"max":12,"menu":"fit"},"frontArmholeDeeper":0.005,"shoulderSlopeReduction":0,"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"sleeveWidthGuarantee":0.85,"sleeveLength":{"pct":30,"min":20,"max":100,"menu":"fit"},"fitWaist":{"bool":false,"menu":"fit"},"waistEase":{"pct":25,"min":8,"max":40},"hipsEase":{"pct":18,"min":8,"max":30,"menu":"fit"},"necklineDepth":{"pct":25,"min":20,"max":40,"menu":"style"},"necklineWidth":{"pct":30,"min":10,"max":50,"menu":"style"},"necklineBend":{"pct":30,"min":0,"max":70,"menu":"style"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveEase":{"pct":15,"min":5,"max":35,"menu":"style"}},"tiberius":{"headRatio":{"pct":100,"min":80,"max":120,"menu":"fit"},"armholeDrop":{"pct":110,"min":100,"max":150,"menu":"fit"},"lengthBonus":{"pct":90,"min":60,"max":130,"menu":"style"},"widthBonus":{"pct":100,"min":50,"max":130,"menu":"style"},"clavi":{"bool":false,"menu":"style.clavi"},"clavusLocation":{"pct":65,"min":50,"max":80,"menu":"style.clavi"},"clavusWidth":{"pct":100,"min":50,"max":150,"menu":"style.clavi"},"length":{"list":["toKnee","toMidLeg","toFloor"],"dflt":"toKnee","menu":"style"},"width":{"list":["toElbow","toShoulder","toMidArm"],"dflt":"toMidArm","menu":"style"},"forceWidth":{"bool":false,"menu":"advanced"}},"titan":{"fitCrossSeam":true,"fitCrossSeamFront":true,"fitCrossSeamBack":true,"fitGuides":true,"waistEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"seatEase":{"pct":2,"min":0,"max":10,"menu":"fit"},"kneeEase":{"pct":6,"min":1,"max":25,"menu":"fit"},"waistHeight":{"pct":100,"min":0,"max":100,"menu":"style"},"lengthBonus":{"pct":2,"min":-20,"max":10,"menu":"style"},"crotchDrop":{"pct":2,"min":0,"max":15,"menu":"style"},"fitKnee":{"bool":false,"menu":"style"},"legBalance":{"pct":57.5,"min":52.5,"max":62.5,"menu":"advanced"},"crossSeamCurveStart":{"pct":85,"min":60,"max":100,"menu":"advanced"},"crossSeamCurveBend":{"pct":65,"min":45,"max":85,"menu":"advanced"},"crossSeamCurveAngle":{"deg":12,"min":0,"max":20,"menu":"advanced"},"crotchSeamCurveStart":{"pct":80,"min":60,"max":95,"menu":"advanced"},"crotchSeamCurveBend":{"pct":80,"min":45,"max":100,"menu":"advanced"},"crotchSeamCurveAngle":{"deg":25,"min":0,"max":35,"menu":"advanced"},"waistBalance":{"pct":60,"min":30,"max":90,"menu":"advanced"},"grainlinePosition":{"pct":45,"min":30,"max":60,"menu":"advanced"},"waistbandWidth":{"pct":3,"min":1,"max":6,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"advanced"}},"trayvon":{"tipWidth":{"pct":15,"min":5,"max":35,"snap":{"metric":1,"imperial":0.79375},"menu":"style"},"knotWidth":{"pct":8,"min":4,"max":12,"snap":{"metric":1,"imperial":0.79375},"menu":"style"},"lengthBonus":{"pct":0,"min":-50,"max":50,"menu":"style"}},"tristan":{"acrossBackFactor":0.925,"shoulderSlopeBack":1.23,"neckWidthBack":0.197,"neckWidthFront":0.17,"backDartLocation":0.145,"backCenterWaistReduction":0.35,"collarFactor":0.19,"bustSpanEase":{"pct":0,"min":-5,"max":20,"menu":"fit"},"chestEase":{"pct":11,"min":5,"max":20,"menu":"fit"},"fullChestEaseReduction":{"pct":4,"min":0,"max":8,"menu":"fit"},"shoulderToShoulderEase":{"pct":-0.5,"min":-1,"max":5,"menu":"fit"},"waistEase":{"pct":5,"min":1,"max":20,"menu":"fit"},"backDartHeight":0.46,"bustDartCurve":1,"bustDartLength":0.9,"waistDartLength":{"pct":90,"min":75,"max":95,"menu":"advanced"},"armholeDepth":{"pct":44,"min":38,"max":55,"menu":"style"},"backArmholeCurvature":0.63,"backArmholePitchDepth":0.035,"backArmholeSlant":5,"frontArmholeCurvature":0.63,"frontArmholePitchDepth":0.29,"backHemSlope":2.5,"backNeckCutout":0.06,"frontShoulderWidth":{"pct":95,"max":98,"min":92,"menu":"advanced"},"highBustWidth":{"pct":86,"max":92,"min":80,"menu":"advanced"},"armholeDartPosition":0.5,"dartPosition":"shoulder","shoulderDartCurvature":{"pct":0,"min":-5,"max":2.5},"shoulderDartPosition":{"pct":50,"min":10,"max":90,"menu":"style"},"shoulderToShoulderCorrection":0.995,"upperDartLength":{"pct":90,"min":80,"max":95,"menu":"advanced"},"waistdartposition":{"pct":0,"min":-100,"max":100,"menu":"darts"},"armholeBackDepth":0.6,"armholeBackIn":0.6,"armholeFrontDepth":0.65,"armholeFrontIn":0.2,"cutDepthBack":{"pct":40,"min":5,"max":90,"menu":"style"},"cutDepthFront":{"pct":80,"min":0,"max":125,"menu":"style"},"cutRoundnessBack":{"pct":20,"min":0,"max":100,"menu":"style"},"cutRoundnessFront":{"pct":10,"min":0,"max":100,"menu":"style"},"strapWidth":{"pct":45,"min":5,"max":90,"menu":"style"},"hemSize":{"pct":5.62,"min":1,"max":25},"zipperLocation":{"dflt":"side","list":["front","side","back"],"menu":"options"},"hem":{"bool":false},"lacing":{"bool":true,"menu":"options"},"lacingLocation":{"dflt":"front","list":["front","back"]},"lacingWidth":{"pct":20,"min":0,"max":50},"peplum":{"bool":false,"menu":"options"},"peplumSize":{"pct":10,"min":5,"max":250},"peplumFullness":{"deg":180,"min":180,"max":360}},"uma":{"xStretch":{"pct":15,"min":0,"max":30,"menu":"fit"},"yStretch":{"pct":5,"min":0,"max":15,"menu":"fit"},"gussetWidth":{"pct":15,"min":5,"max":24,"menu":"fit"},"gussetLength":{"pct":12.7,"min":10,"max":16,"menu":"fit"},"gussetPosition":{"pct":70,"min":5,"max":95,"menu":"fit"},"bulge":{"deg":0,"min":0,"max":30,"menu":"fit"},"rise":{"pct":50,"min":30,"max":100,"menu":"style"},"legRise":{"pct":54,"min":5,"max":95,"menu":"style"},"frontDip":{"pct":10,"min":0,"max":25,"menu":"style"},"frontExposure":{"pct":70,"min":5,"max":100,"menu":"style"},"backDip":{"pct":-5,"min":-15,"max":10,"menu":"style"},"backExposure":{"pct":30,"min":0,"max":115,"menu":"style"}},"wahid":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":false},"chestEase":{"pct":2,"min":1,"max":10,"menu":"fit"},"collarEase":{"pct":5,"min":0,"max":10,"menu":false},"cuffEase":{"pct":20,"min":0,"max":200,"menu":false},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":false},"lengthBonus":{"pct":1,"min":0,"max":8,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":false},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":false},"acrossBackFactor":0.97,"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":70,"min":60,"max":80,"menu":"fit"},"backNeckCutout":{"pct":5,"min":-2,"max":8,"menu":false},"frontArmholeDeeper":0.005,"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":false},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"frontOverlap":0.01,"necklineDrop":{"pct":50,"min":35,"max":85,"menu":"style"},"frontStyle":{"dflt":"classic","list":["classic","rounded"],"menu":"style"},"frontInset":{"pct":15,"min":10,"max":20,"menu":"advanced"},"shoulderInset":{"pct":10,"min":0,"max":20,"menu":"advanced"},"neckInset":{"pct":5,"min":0,"max":10,"menu":"advanced"},"hemStyle":{"dflt":"classic","list":["classic","rounded","square"],"menu":"style"},"hemRadius":{"pct":6,"min":2,"max":12,"menu":"style"},"pocketWidth":{"pct":10,"max":15,"min":8,"menu":"style"},"pocketAngle":{"deg":5,"min":0,"max":5,"menu":"advanced"},"pocketLocation":{"pct":35,"min":25,"max":55,"menu":"style"},"frontScyeDart":{"deg":6,"min":0,"max":12,"menu":"fit"},"buttons":{"count":6,"min":4,"max":12,"menu":"style"},"waistEase":{"pct":8,"min":2,"max":15,"menu":"fit"},"hipsEase":{"pct":8,"min":2,"max":15,"menu":"fit"},"backInset":{"pct":15,"min":10,"max":20,"menu":"advanced"},"centerBackDart":{"pct":2,"min":0,"max":5,"menu":"fit"},"backScyeDart":{"deg":2,"min":0,"max":6,"menu":"fit"},"weltHeight":{"pct":12.5,"max":20,"min":10,"menu":"style"}},"walburga":{"headRatio":{"pct":100,"min":80,"max":120,"menu":"fit"},"lengthBonus":{"pct":85,"min":60,"max":130,"menu":"style"},"widthBonus":{"pct":95,"min":50,"max":130,"menu":"style"},"length":{"list":["toKnee","toMidLeg","toFloor"],"dflt":"toKnee","menu":"style"},"neckline":{"bool":true,"menu":"style"},"neckoRatio":{"pct":100,"min":10,"max":190,"menu":"style"}},"waralee":{"backRaise":{"pct":10,"min":0,"max":25,"menu":"fit"},"waistRaise":{"pct":0,"min":-20,"max":40,"menu":"fit"},"fitWaist":{"bool":true,"menu":"fit"},"hemWidth":{"pct":1.75,"min":1,"max":2.5,"menu":"style"},"legSize":{"pct":75,"max":90,"min":50,"menu":"style"},"waistOverlap":{"pct":50,"min":10,"max":100,"menu":"style"},"frontPocket":{"bool":true,"menu":"style"},"backPocket":{"bool":true,"menu":"style"},"waistbandWidth":{"pct":3.5,"min":2,"max":5,"menu":"style"},"frontPocketStyle":{"dflt":"welt","list":["welt","waistband"],"menu":"style"},"separateWaistband":{"bool":false,"menu":"style"},"knotInFront":{"bool":true,"menu":"style"},"crotchFront":{"pct":30,"min":10,"max":70,"menu":"advanced"},"crotchBack":{"pct":45,"min":10,"max":70,"menu":"advanced"},"crotchFactorFrontHor":{"pct":90,"min":10,"max":100,"menu":"advanced"},"crotchFactorFrontVer":{"pct":30,"min":10,"max":70,"menu":"advanced"},"crotchFactorBackHor":{"pct":90,"min":10,"max":100,"menu":"advanced"},"crotchFactorBackVer":{"pct":60,"min":20,"max":90,"menu":"advanced"},"backWaistAdjustment":0.3,"frontPocketVerticalOffset":0.07,"frontPocketHorizontalOffset":0.18,"frontPocketSize":0.45,"frontPocketWidthHeightRatio":0.076,"frontPocketDepthFactor":1.6,"frontWaistAdjustment":0.163,"backPocketDepth":0.5,"backPocketVerticalOffset":0.2,"backPocketHorizontalOffset":0.045,"backPocketSize":0.45,"crotchEase":1.08},"yuri":{"brianFitSleeve":true,"brianFitCollar":true,"collarFactor":4.8,"bicepsEase":{"pct":15,"min":0,"max":50,"menu":"fit"},"chestEase":{"pct":15,"min":-4,"max":35,"menu":"fit"},"collarEase":{"pct":20,"min":10,"max":30,"menu":"fit"},"cuffEase":{"pct":30,"min":20,"max":60,"menu":"fit"},"draftForHighBust":{"bool":false},"shoulderEase":{"pct":0,"min":-2,"max":6,"menu":"fit"},"lengthBonus":{"pct":10,"min":5,"max":15,"menu":"fit"},"s3Collar":{"pct":0,"min":-100,"max":100,"menu":"style"},"s3Armhole":{"pct":0,"min":-100,"max":100,"menu":"style"},"acrossBackFactor":{"pct":98,"min":93,"max":100,"menu":"advanced"},"armholeDepth":{"pct":2,"min":-10,"max":50},"armholeDepthFactor":{"pct":55,"min":50,"max":70},"backNeckCutout":{"pct":5,"min":2,"max":8,"menu":"advanced"},"frontArmholeDeeper":{"pct":0.2,"min":0,"max":0.5,"menu":"advanced"},"shoulderSlopeReduction":{"pct":0,"min":0,"max":80,"menu":"advanced"},"legacyArmholeDepth":{"bool":false,"menu":"advanced"},"sleeveLengthBonus":{"pct":1,"min":0,"max":10,"menu":"fit"},"hipsEase":{"pct":0,"min":0,"max":10,"menu":"fit"},"sleevecapEase":{"pct":0,"min":0,"max":10,"menu":"advanced.sleevecap"},"sleevecapTopFactorX":{"pct":50,"min":25,"max":75,"menu":"advanced.sleevecap"},"sleevecapTopFactorY":{"pct":45,"min":35,"max":125,"menu":"advanced.sleevecap"},"sleevecapBackFactorX":{"pct":60,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapBackFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorX":{"pct":55,"min":35,"max":65,"menu":"advanced.sleevecap"},"sleevecapFrontFactorY":{"pct":33,"min":30,"max":65,"menu":"advanced.sleevecap"},"sleevecapQ1Offset":{"pct":1.7,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ2Offset":{"pct":3.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ3Offset":{"pct":2.5,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ4Offset":{"pct":1,"min":0,"max":7,"menu":"advanced.sleevecap"},"sleevecapQ1Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ1Spread2":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread1":{"pct":15,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ2Spread2":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread1":{"pct":10,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ3Spread2":{"pct":8,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread1":{"pct":7,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleevecapQ4Spread2":{"pct":6.3,"min":4,"max":20,"menu":"advanced.sleevecap"},"sleeveWidthGuarantee":{"pct":90,"min":25,"max":100,"menu":"advanced"}},"lily":{"fitCrossSeam":true,"fitCrossSeamFront":true,"fitCrossSeamBack":true,"fitGuides":{"bool":false,"menu":"advanced"},"waistEase":{"pct":-4,"min":-20,"max":0,"menu":"fit"},"seatEase":{"pct":-4,"min":-20,"max":0,"menu":"fit"},"kneeEase":{"pct":-4,"min":-20,"max":0,"menu":"fit"},"waistHeight":{"pct":50,"min":0,"max":100,"menu":"style"},"lengthBonus":0,"crotchDrop":{"pct":0,"min":0,"max":15,"menu":"advanced"},"fitKnee":{"bool":true,"hide":true},"legBalance":0.5,"crossSeamCurveStart":{"pct":85,"min":60,"max":100,"menu":"advanced"},"crossSeamCurveBend":{"pct":65,"min":45,"max":85,"menu":"advanced"},"crossSeamCurveAngle":{"deg":12,"min":0,"max":20,"menu":"advanced"},"crotchSeamCurveStart":{"pct":80,"min":60,"max":95,"menu":"advanced"},"crotchSeamCurveBend":{"pct":80,"min":45,"max":100,"menu":"advanced"},"crotchSeamCurveAngle":{"deg":25,"min":0,"max":35,"menu":"advanced"},"waistBalance":0.5,"grainlinePosition":{"pct":45,"min":30,"max":60,"menu":"advanced"},"waistbandWidth":{"pct":3,"min":1,"max":6,"snap":{"metric":[3.5,5,10,12,20,25,30,40,50,60,80,100,120],"imperial":[3.175,6.35,9.524999999999999,12.7,15.875,19.049999999999997,25.4,31.75,38.099999999999994,44.449999999999996,50.8,76.19999999999999,101.6,127]},"menu":"style"},"fabricStretch":{"pct":40,"min":0,"max":50,"menu":"fit"},"lengthReduction":{"pct":0,"min":0,"max":100,"menu":"style"}}}
diff --git a/sites/shared/prebuild/data/designs.mjs b/sites/shared/prebuild/data/designs.mjs
index cd5a54e8286..aa0c6341577 100644
--- a/sites/shared/prebuild/data/designs.mjs
+++ b/sites/shared/prebuild/data/designs.mjs
@@ -1,3 +1,3 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// This file is auto-generated by the prebuild script | Any changes will be overwritten
-export const designs = ["aaron","albert","bee","bella","benjamin","bent","bob","breanna","brian","bruce","carlita","carlton","cathrin","charlie","cornelius","diana","examples","florence","florent","gozer","hi","holmes","hortensia","huey","hugo","jaeger","legend","lucy","lumina","lumira","lunetius","magde","naomiwu","noble","octoplushy","onyx","otis","paco","penelope","plugintest","rendertest","sandy","shelly","shin","simon","simone","skully","sven","tamiko","teagan","tiberius","titan","trayvon","tristan","uma","wahid","walburga","waralee","yuri"]
+export const designs = ["aaron","albert","bee","bella","benjamin","bent","bob","breanna","brian","bruce","carlita","carlton","cathrin","charlie","cornelius","diana","examples","florence","florent","gozer","hi","holmes","hortensia","huey","hugo","jaeger","legend","lucy","lumina","lumira","lunetius","magde","naomiwu","noble","octoplushy","onyx","otis","paco","penelope","plugintest","rendertest","sandy","shelly","shin","simon","simone","skully","sven","tamiko","teagan","tiberius","titan","trayvon","tristan","uma","wahid","walburga","waralee","yuri","lily"]
diff --git a/yarn.lock b/yarn.lock
index a5378275f5a..031eac621f2 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -10024,6 +10024,32 @@ mocha-steps@1.3.0:
resolved "https://registry.npmjs.org/mocha-steps/-/mocha-steps-1.3.0.tgz"
integrity sha512-KZvpMJTqzLZw3mOb+EEuYi4YZS41C9iTnb7skVFRxHjUd1OYbl64tCMSmpdIRM9LnwIrSOaRfPtNpF5msgv6Eg==
+mocha@10.3.0:
+ version "10.3.0"
+ resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.3.0.tgz#0e185c49e6dccf582035c05fa91084a4ff6e3fe9"
+ integrity sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==
+ dependencies:
+ ansi-colors "4.1.1"
+ browser-stdout "1.3.1"
+ chokidar "3.5.3"
+ debug "4.3.4"
+ diff "5.0.0"
+ escape-string-regexp "4.0.0"
+ find-up "5.0.0"
+ glob "8.1.0"
+ he "1.2.0"
+ js-yaml "4.1.0"
+ log-symbols "4.1.0"
+ minimatch "5.0.1"
+ ms "2.1.3"
+ serialize-javascript "6.0.0"
+ strip-json-comments "3.1.1"
+ supports-color "8.1.1"
+ workerpool "6.2.1"
+ yargs "16.2.0"
+ yargs-parser "20.2.4"
+ yargs-unparser "2.0.0"
+
mocha@10.4.0, mocha@^10.0.0:
version "10.4.0"
resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.4.0.tgz#ed03db96ee9cfc6d20c56f8e2af07b961dbae261"