(x,y)=(0,0)

(x,y)=(0,0)

(x,y)=(-2,-2)

(x,y)=(0,0),\;(x,y)=(-1,-1)

(x,y)=(0,0)

(x,y)=(-1,0)

x=-1

x=-2

(x,y)=(-1,0)

x=-11

#4D4D4D

$\text{Check}$

$\text{NEW PROBLEM}$

Fix position and allow selection for all text objects

Empty all input boxes

$a=\vphantom{b}$

$b=$

Reset app

\text{This is the hint for a typical error}

#006758

#B00020

#252525

#757575

#949494

#E44461

#DA2570

#E66B9E

#3A6ED6

#5991FF

#008475

#0F8538

#00a83c

#5145A8

#6557D2

#8575FF

#903D14

#BD6C43

#C75000

#E07415

#eeeeee

#2E006758

#2EB00020

\text{Drag to start}

count = 64
problType = Shuffle(Sequence[15])
valType = Element(problType, Mod[count, Length[problType]] + 1)
allA = Shuffle(Sequence[t, t, 2, 5, 1])
valA = Element(allA, Mod[count, Length[allA]] + 1)
allB = Shuffle(Sequence[t, t, 2, 5, 1])
valB = Element(allB, Mod[count, Length[allB]] + 1)
allC = Shuffle(Sequence[t, t, 6, 9, 1])
valC = Element(allC, Mod[count, Length[allC]] + 1)
text13: "" + (LaTeX[valA]) + "x+y<" + (LaTeX[valC]) + ""
text12: "" + (LaTeX[valA]) + "x+y>" + (LaTeX[valC]) + ""
text9: "" + (LaTeX[valA]) + "x+" + (LaTeX[valB]) + "<" + (LaTeX[valC]) + ""
text8: "" + (LaTeX[valA]) + "x+" + (LaTeX[valB]) + ">" + (LaTeX[valC]) + ""
text4: "" + (LaTeX[valA]) + "x+y=" + (LaTeX[valC]) + ""
text2: "" + (LaTeX[valA]) + "x+" + (LaTeX[valB]) + "=" + (LaTeX[valC]) + ""
text15: "x+" + (LaTeX[valB]) + "y<" + (LaTeX[valC]) + ""
text14: "x+" + (LaTeX[valB]) + "y>" + (LaTeX[valC]) + ""
text7: "x+" + (LaTeX[valB]) + "<" + (LaTeX[valC]) + ""
text6: "x+" + (LaTeX[valB]) + ">" + (LaTeX[valC]) + ""
text5: "x+" + (LaTeX[valB]) + "y=" + (LaTeX[valC]) + ""
text1: "x+" + (LaTeX[valB]) + "=" + (LaTeX[valC]) + ""
text11: "x+y<" + (LaTeX[valC]) + ""
text10: "x+y>" + (LaTeX[valC]) + ""
text3: "x+y=" + (LaTeX[valC]) + ""
allEqIneq: {text1, text2, text3, text4, text5, text6, text7, text8, text9, text10, text11, text12, text13, text14, text15}
option74: "x=" + (LaTeX[valC + valB]) + ""
option73: "x=" + (LaTeX[valC - valB]) + ""
option72: "x=" + (LaTeX[valC - valB - 1]) + ""
option71: "x=" + (LaTeX[valC - valB + 1]) + ""
dd7: {"$\textsf{-- Select one -- }$", option71, option72, option73, option74}
is7 = SelectedIndex(dd7)
textSolution15: "\textsf{Substitute }x=0  \textsf{ and } y=0  \textsf{ into }" + (LaTeX[Element[allEqIneq, 15]]) + " .\\\\  0+" + (LaTeX[valB]) + " \cdot 0<" + (LaTeX[valC]) + "\;\rightarrow\;  0<" + (LaTeX[valC]) + " \;\;\;   \textsf{is true.}"
textSolution14: "\textsf{Substitute }x=0  \textsf{ and } y=" + (LaTeX[FractionText[(valC + valB) / valB]]) + "  \textsf{ into }" + (LaTeX[Element[allEqIneq, 14]]) + " .\\\\  0+ " + (LaTeX[valB]) + "\cdot " + (LaTeX[FractionText[(valC + valB) / valB]]) + ">" + (LaTeX[valC]) + "\;\rightarrow\;  " + (LaTeX[valC + valB]) + ">" + (LaTeX[valC]) + " \;\;\; \textsf{is true.}"
textSolution13: "\textsf{Substitute }x=0  \textsf{ and } y=0  \textsf{ into } " + (LaTeX[Element[allEqIneq, 13]]) + " .\\\\ " + (LaTeX[valA]) + "\cdot 0+  0<" + (LaTeX[valC]) + "\;\rightarrow\; 0<" + (LaTeX[valC]) + " \;\;\;  \textsf{is true.}\\\\\\\\
\textsf{Substitute }x=-1  \textsf{ and } y=-1  \textsf{ into } " + (LaTeX[Element[allEqIneq, 13]]) + " .\\\\  " + (LaTeX[valA]) + "\cdot (-1)+  (-1)<" + (LaTeX[valC]) + " \;\rightarrow\; " + (LaTeX[(-valA) - 1]) + " <" + (LaTeX[valC]) + " \;\;\;  \textsf{is true.}"
textSolution12: "\textsf{Substitute }x=2  \textsf{ and } y=" + (LaTeX[(-2 * valA) + valC + 1]) + "  \textsf{ into }" + (LaTeX[Element[allEqIneq, 12]]) + " .\\\\ " + (LaTeX[valA]) + "\cdot 2 " + (LaTeX[(If[(-2 * valA) + valC + 1 ≥ 0, "+", "-"] * abs((-2 * valA) + valC + 1))]) + "  >" + (LaTeX[valC]) + " \;\rightarrow\; " + (LaTeX[valC + 1]) + " >" + (LaTeX[valC]) + " \;\;\; \textsf{is true.}"
textSolution11: "\textsf{Substitute }x=0  \textsf{ and } y=" + (LaTeX[valC - 1]) + "  \textsf{ into }" + (LaTeX[Element[allEqIneq, 11]]) + " .\\\\ 0+ " + (LaTeX[valC - 1]) + " <" + (LaTeX[valC]) + "\;\rightarrow\;  " + (LaTeX[valC - 1]) + "<" + (LaTeX[valC]) + " \;\;\; \textsf{is true.}"
textSolution10: "\textsf{Substitute }x=0  \textsf{ and } y=" + (LaTeX[valC + 1]) + " \textsf{ into }  " + (LaTeX[Element[allEqIneq, 10]]) + " .\\\\ 0+" + (LaTeX[valC + 1]) + "  >" + (LaTeX[valC]) + " \;\rightarrow\; " + (LaTeX[valC + 1]) + " >" + (LaTeX[valC]) + " \;\;\;\textsf{is true.}\\\\\\\\
\textsf{Substitute }x=" + (LaTeX[valC + 1]) + "  \textsf{ and } y=0  \textsf{ into } " + (LaTeX[Element[allEqIneq, 10]]) + "   .\\\\ " + (LaTeX[valC + 1]) + "+  0 >" + (LaTeX[valC]) + " \;\rightarrow\; " + (LaTeX[valC + 1]) + " >" + (LaTeX[valC]) + " \;\;\; \textsf{is true.}"
textSolution9: "\textsf{Substitute }x=" + (LaTeX[FractionText[(valC - valB - valA) / valA, false]]) + "   \textsf{ into }" + (LaTeX[Element[allEqIneq, 9]]) + "  .\\\\" + (LaTeX[valA]) + " \cdot \left(  " + (LaTeX[FractionText[(valC - valB - valA) / valA, false]]) + "\right) + " + (LaTeX[valB]) + " <" + (LaTeX[valC]) + " \;\rightarrow\; " + (LaTeX[valC - valA]) + " <" + (LaTeX[valC]) + " \;\;\;

\textsf{is true.}"
textSolution8: "\textsf{Substitute }x=" + (LaTeX[FractionText[(valC - valB + valA) / valA]]) + "   \textsf{ into } " + (LaTeX[Element[allEqIneq, 8]]) + "  .\\\\ " + (LaTeX[valA]) + " \cdot " + (LaTeX[FractionText[(valC - valB + valA) / valA]]) + "+  " + (LaTeX[valB]) + ">" + (LaTeX[valC]) + " \;\rightarrow\; " + (LaTeX[valC + valA]) + " >" + (LaTeX[valC]) + " \;\;\;

\textsf{is true.}"
textSolution6: "\textsf{Substitute }x=" + (LaTeX[valC - valB + 1]) + "   \textsf{ into }" + (LaTeX[Element[allEqIneq, 6]]) + " .\\\\ " + (LaTeX[valC - valB + 1]) + " +" + (LaTeX[valB]) + "  >" + (LaTeX[valC]) + " \;\rightarrow\;  " + (LaTeX[valC + 1]) + ">" + (LaTeX[valC]) + " \;\;\;
\textsf{is true.}\\\\\\
\textsf{Substitute }x=" + (LaTeX[valC - valB + 3]) + "    \textsf{ into } " + (LaTeX[Element[allEqIneq, 6]]) + " .\\\\ " + (LaTeX[valC - valB + 3]) + "  + " + (LaTeX[valB]) + "  >" + (LaTeX[valC]) + "  \;\rightarrow\; " + (LaTeX[valC + 3]) + "  > " + (LaTeX[valC]) + " \;\;\;
\textsf{is true.}"
textSolution5: "\textsf{Substitute }x=2 \textsf{ and } y=" + (LaTeX[FractionText[(valC - 2) / valB]]) + "   \textsf{ into }" + (LaTeX[Element[allEqIneq, 5]]) + ".\\\\ 2+" + (LaTeX[valB]) + "\cdot  " + (LaTeX[FractionText[(valC - 2) / valB]]) + "  = " + (LaTeX[valC]) + " \;\rightarrow\; " + (LaTeX[valC]) + " =" + (LaTeX[valC]) + " \;\;\;  
\textsf{is true.}"
textSolution4: "\textsf{Substitute }x=6 \textsf{ and } y=" + (LaTeX[valC - (6 * valA)]) + "  \textsf{ into }" + (LaTeX[Element[allEqIneq, 4]]) + " .\\\\" + (LaTeX[valA]) + "\cdot 6  + (" + (LaTeX[valC - (6 * valA)]) + ")  = " + (LaTeX[valC]) + " \;\rightarrow\;  " + (LaTeX[valC]) + "=" + (LaTeX[valC]) + " \;\;\; 
\textsf{is true.}"
textSolution3: "\textsf{Substitute }x=-1 \textsf{ and } y=" + (LaTeX[valC + 1]) + "  \textsf{ into } " + (LaTeX[Element[allEqIneq, 3]]) + " .\\\\-1  +" + (LaTeX[valC + 1]) + "  =" + (LaTeX[valC]) + " \;\rightarrow\;" + (LaTeX[valC]) + "  =" + (LaTeX[valC]) + " \;\;\; 
\textsf{is true.}\\\\\\\\
\textsf{Substitute }x=2 \textsf{ and } y= " + (LaTeX[valC - 2]) + "  \textsf{ into }  " + (LaTeX[Element[allEqIneq, 3]]) + " .\\\\2  +" + (LaTeX[valC - 2]) + "   =  " + (LaTeX[valC]) + "\;\rightarrow\; " + (LaTeX[valC]) + " =" + (LaTeX[valC]) + " \;\;\; 
\textsf{is true.}"
textSolution7: "\textsf{Substitute }x=" + (LaTeX[valC - valB - 1]) + "  \textsf{ into } " + (LaTeX[Element[allEqIneq, 7]]) + " :\\\\" + (LaTeX[valC - valB - 1]) + "+" + (LaTeX[valB]) + "<" + (LaTeX[valC]) + "\;\rightarrow\;" + (LaTeX[valC - 1]) + "  <" + (LaTeX[valC]) + " \;\;\;
\textsf{is true.}"
textSolution2: "\textsf{Substitute }x=" + (LaTeX[FractionText[(valC - valB) / valA, false]]) + " \textsf{ into }" + (LaTeX[Element[allEqIneq, 2]]) + " .\\\\" + (LaTeX[valA]) + " \cdot " + (LaTeX[FractionText[(valC - valB) / valA, false]]) + "  + " + (LaTeX[valB]) + " =" + (LaTeX[valC]) + " \;\rightarrow\;  " + (LaTeX[valC]) + "=" + (LaTeX[valC]) + " \;\;\;
\textsf{is true.}"
textSolution1: "\textsf{Substitute }x=" + (LaTeX[valC - valB]) + "  \textsf{ into } " + (LaTeX[Element[allEqIneq, 1]]) + " .\\\\" + (LaTeX[valC - valB]) + " +" + (LaTeX[valB]) + " =" + (LaTeX[valC]) + " \;\rightarrow\; " + (LaTeX[valC]) + "=" + (LaTeX[valC]) + "\;\;\;
\textsf{is true.}"
option153: "(x,y)=\left(2," + (LaTeX[FractionText[(-2 + valC + 1) / valB]]) + "\right)"
option152: "(x,y)=\left(0," + (LaTeX[FractionText[(valC + valB) / valB]]) + "\right)"
option151: "(x,y)=\left(2," + (LaTeX[FractionText[(valC - 2) / valB]]) + "\right)"
option142: "(x,y)=\left(1," + (LaTeX[FractionText[(valC - 1) / valB]]) + "\right)"
option141: "(x,y)=\left(0," + (LaTeX[FractionText[(valC + valB) / valB]]) + "\right)"
option134: "(x,y)=(0," + (LaTeX[valC + 1]) + ")"
option132: "(x,y)=(2," + (LaTeX[(-2 * valA) + valC + 1]) + ")"
option131: "(x,y)=(2," + (LaTeX[(-2 * valA) + valC]) + ")"
option124: "(x,y)=(2," + (LaTeX[(-2 * valA) + valC + 1]) + ")"
option123: "(x,y)=(1," + (LaTeX[(-valA) + valC - 1]) + ")"
option122: "(x,y)=(2," + (LaTeX[(-2 * valA) + valC]) + ")"
option112: "(x,y)=(" + (LaTeX[(2 * valC)]) + ",3)"
option114: "(x,y)=(-1," + (LaTeX[valC + 3]) + ")"
option113: "(x,y)=(1," + (LaTeX[valC]) + ")"
option111: "(x,y)=(0," + (LaTeX[valC - 1]) + ")"
option104: "(x,y)=(0," + (LaTeX[valC + 1]) + "),\;(x,y)=(" + (LaTeX[valC + 1]) + ",0)"
option103: "(x,y)=(0," + (LaTeX[valC - 1]) + ")"
option101: "(x,y)=(2," + (LaTeX[valC - 2]) + ")"
option94: "x=" + (LaTeX[FractionText[((2 * valC) - valB) / valA, false]]) + ""
option93: "x=" + (LaTeX[FractionText[(valC - valB) / valA, false]]) + ""
option92: "x=" + (LaTeX[FractionText[(valC - valB + valA) / valA, false]]) + ""
option91: "x=" + (LaTeX[FractionText[(valC - valB - valA) / valA, false]]) + ""
option83: "x=" + (LaTeX[FractionText[(valC - valB - valA) / valA, false]]) + ""
option82: "x=" + (LaTeX[FractionText[(valC - valB + valA) / valA, false]]) + ""
option81: "x=" + (LaTeX[FractionText[(valC - valB) / valA]]) + ""
option64: "x=" + (LaTeX[valC - valB - 1]) + ""
option63: "x=" + (LaTeX[valC - valB + 1]) + ",\;x=" + (LaTeX[valC - valB + 3]) + ""
option61: "x=" + (LaTeX[valC - valB]) + ""
option54: "(x,y)=\left(5," + (LaTeX[FractionText[5 / valB]]) + "\right)"
option53: "(x,y)=\left(2," + (LaTeX[FractionText[(valC - 2) / valB]]) + "\right)"
option52: "(x,y)=\left(1," + (LaTeX[FractionText[valC / valB]]) + "\right),\;(x,y)=\left(3," + (LaTeX[FractionText[valC / valB]]) + "\right)"
option51: "(x,y)=\left(3," + (LaTeX[FractionText[(valC + 3) / valB]]) + "\right)"
option44: "(x,y)=(0," + (LaTeX[(-valC)]) + ")"
option43: "(x,y)=(-1," + (LaTeX[(-valA) - valC]) + ")"
option42: "(x,y)=(6," + (LaTeX[valC - (6 * valA)]) + ")"
option41: "(x,y)=(2," + (LaTeX[valC + (2 * valA)]) + ")"
option33: "(x,y)=(2," + (LaTeX[(-valC) - 2]) + ")"
option32: "(x,y)=(-1," + (LaTeX[(-valC) + 1]) + ")"
option31: "(x,y)=(-1," + (LaTeX[valC + 1]) + "),\;(x,y)=(2," + (LaTeX[valC - 2]) + ")"
allCorrectIsMinusOne: {2, 4, 1, 2, 3, 3, 2, 2, 1, 4, 1, 4, 3, 1, 4}
option11: "x=" + (LaTeX[valC + valB]) + ""
option12: "x=" + (LaTeX[valC - valB]) + ""
option14: "" + (LaTeX[option11]) + ",\: " + (LaTeX[option12]) + ""
dd15: {"$\textsf{-- Select one -- }$", option151, option152, option153, option154}
is15 = SelectedIndex(dd15)
dd14: {"$\textsf{-- Select one -- }$", option141, option142, option143, option144}
is14 = SelectedIndex(dd14)
dd13: {"$\textsf{-- Select one -- }$", option131, option132, option133, option134}
is13 = SelectedIndex(dd13)
dd12: {"$\textsf{-- Select one -- }$", option121, option122, option123, option124}
is12 = SelectedIndex(dd12)
dd11: {"$\textsf{-- Select one -- }$", option111, option112, option113, option114}
is11 = SelectedIndex(dd11)
dd10: {"$\textsf{-- Select one -- }$", option101, option102, option103, option104}
is10 = SelectedIndex(dd10)
dd9: {"$\textsf{-- Select one -- }$", option91, option92, option93, option94}
is9 = SelectedIndex(dd9)
dd8: {"$\textsf{-- Select one -- }$", option81, option82, option83, option84}
is8 = SelectedIndex(dd8)
dd6: {"$\textsf{-- Select one -- }$", option61, option62, option63, option64}
is6 = SelectedIndex(dd6)
dd5: {"$\textsf{-- Select one -- }$", option51, option52, option53, option54}
is5 = SelectedIndex(dd5)
dd4: {"$\textsf{-- Select one -- }$", option41, option42, option43, option44}
is4 = SelectedIndex(dd4)
dd3: {"$\textsf{-- Select one -- }$", option31, option32, option33, option34}
is3 = SelectedIndex(dd3)
dd1: {"$\textsf{-- Select one -- }$", option11, option12, option13, option14}
is1 = SelectedIndex(dd1)
option21: "x=-" + (LaTeX[FractionText[(valC - valB) / valA]]) + ""
option22: "x=" + (LaTeX[FractionText[(valC + valB) / valA]]) + ""
option23: "x=" + (LaTeX[FractionText[(valC - valB) / valA]]) + ", \:x=" + (LaTeX[FractionText[(valC + valB) / valA]]) + ""
option24: "x=" + (LaTeX[FractionText[(valC - valB) / valA]]) + ""
dd2: {"$\textsf{-- Select one -- }$", option21, option22, option23, option24}
is2 = SelectedIndex(dd2)
allIs: {is1, is2, is3, is4, is5, is6, is7, is8, is9, is10, is11, is12, is13, is14, is15}
onboarding = false
inputSaved: {NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN}
input2 = NaN
input1 = NaN
A = (3.4347091871177713, 5.572495645015256)
inputCurrent: {is1, is2, is3, is4, is5, is6, is7, is8, is9, is10, is11, is12, is13, is14, is15}
countQuestion = 0
randomNum2 = Element(allA, Mod[countQuestion, 15] + 1)
randomNum1 = Element(problType, Mod[countQuestion, 20] + 1)
correct1: input1 ≟ randomNum1
validate = false
showanswer = false
showsolution = false
tries = 0
countCorrect = 0
showhint = false
InputBox1 = Textfield(input1)
InputBox2 = Textfield(input2)
correct2: input2 ≟ randomNum2
correct: Element[allIs, valType] - 1 ≟ Element[allCorrectIsMinusOne, valType]
isTypicalError: input2 ≟ input1 + 1
showbuttons = true
typicalError1: 0
typicalError2: 0
showhinttypicalerror = false
textCountCorrect: "\text{Number correct: " + (LaTeX[countCorrect]) + " }"
labelBtnValidate: "\text{CHECK (" + (LaTeX[3 - tries]) + ")}"
helpTextHint: "\text{Use substitution to find if the " + (LaTeX[If[valType ≤ 5, "equation", "inequality"]]) + " is satisfied.}"
pixelsRight: 16
pixelsLeft: 16
pixelsBottom: 16
pixelsTop: 24
borderBox = Polygon(Zip[PixelsToPoint[Corner[1], Corner[3], Corner[5], A], A, {(pixelsLeft, pixelsTop), (pixelsLeft, y(Corner[5]) - pixelsBottom), Corner[5] - (pixelsRight, pixelsBottom), (x(Corner[5]) - pixelsRight, pixelsTop)}])
textHint: "\text{\color{" + (LaTeX[colorOrange]) + "}\bold{Hint}\\" + (LaTeX[If[showhinttypicalerror, helpTextHintTypicalError7]]) + "" + (LaTeX[If[showhint ∧ showhinttypicalerror, "\\"]]) + "" + (LaTeX[If[showhint, helpTextHint]]) + "}"
layoutY: 178
enableInput: tries < 3 ∧ (¬(validate ∧ correct))
layoutX: 16
layoutAppSize = Corner(5)
enableBtnValidate: inputCurrent ≠ inputSaved ∧ inputCurrent ≠ {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
textFeedback: "" + (LaTeX[If[correct, "$\text{✓ Correct}$", "$\text{✕ " + (If[tries < 3, "Try again", "Maybe next time"]) + "}$"]]) + ""
B = (4.1638207264560645, 6.136241785204535)
displaySegment = Segment(A, B)
StartA = (3.4347091871177713, 5.572495645015256)
StartB = (4.1638207264560645, 6.136241785204535)
pulsingSpeed: 8
pulsing = 0.4 (slider from 0 to 1, step 0.1)
haloPixels: (pulsing * 7)
pulsingObject = expandSegment(A, B, (pulsing * 7), Corner[1], Corner[3], Corner[5])
onboardingCase: 1
onboardingX: 337
onboardingY: 150
OnboardingTextOffset = onboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5])
onboardingDisplayText: "" + (LaTeX[onboardingText]) + ""
useOnboarding: false
layoutCase: 1
layoutHintSolnY: layoutY + Element[{56, 88}, layoutCase]
layoutHintSolnX = Element({If[layoutX ≟ 16, layoutX - 5, 11], layoutX - 5}, layoutCase)
layoutFeedbackX: layoutX + Element[{If[correct ∨ tries ≟ 3, -5, 126], -5}, layoutCase]
layoutFeedbackY: layoutY + Element[{If[correct, 6, 1], If[correct, 6, If[tries ≟ 3, 1, 51]]}, layoutCase]
valCount: 1
textSolution: "\textsf{\bold{Solution}}\\\\" + (LaTeX[If[valType ≟ 1, textSolution1, valType ≟ 2, textSolution2, valType ≟ 3, textSolution3, valType ≟ 4, textSolution4, valType ≟ 5, textSolution5, valType ≟ 6, textSolution6, valType ≟ 7, textSolution7, valType ≟ 8, textSolution8, valType ≟ 9, textSolution9, valType ≟ 10, textSolution10, valType ≟ 11, textSolution11, valType ≟ 12, textSolution12, valType ≟ 13, textSolution13, valType ≟ 14, textSolution14, valType ≟ 15, textSolution15]]) + ""
textAnswer: "" + (LaTeX[If[valType ≟ 1, option12, valType ≟ 2, option24, valType ≟ 3, option31, valType ≟ 4, option42, valType ≟ 5, option53, valType ≟ 6, option63, valType ≟ 7, option72, valType ≟ 8, option82, valType ≟ 9, option91, valType ≟ 10, option104, valType ≟ 11, option111, valType ≟ 12, option124, valType ≟ 13, option133, valType ≟ 14, option141, valType ≟ 15, option154]]) + ""
textQuestion: "\textsf{Which value/values satisfy the " + (LaTeX[If[valType ≤ 5, "equation", "inequality"]]) + " } " + (LaTeX[Element[allEqIneq, valType]]) + " \textsf{ ?} "

Tool: PixelsToPoint
PixelsToPoint(Corner1,Corner3,Corner5,PixelCoords)
Input: Corner1, Corner3, Corner5, InputPixels
Output: OutputPoint

InputPixels: (100, 200)
xRight: x(Corner3)
xLeft: x(Corner1)
yTop: y(Corner3)
yBottom: y(Corner1)
yCoord: yTop - (y(InputPixels) / y(Corner5) * (yTop - yBottom))
xCoord: (x(InputPixels) / x(Corner5) * (xRight - xLeft)) + xLeft
OutputPoint: (xCoord, yCoord)

Tool: expandSegment
expandSegment(A,B,pixelGap,Corner1,Corner3,Corner5)
Input: A, B, pixelGap, Corner1, Corner3, Corner5
Output: newPoly

distanceX: (pixelGap / x(Corner5) * (x(Corner3) - x(Corner1)))
distanceY: (pixelGap / y(Corner5) * (y(Corner3) - y(Corner1)))
pointGap: distanceX
xyScale: distanceY / distanceX
A: (0, 0)
vecAB: B - A
pVec: (20 * UnitVector[(((-y(vecAB))) / xyScale, (x(vecAB) * xyScale))])
pVecAngle = Angle(xAxis, Line[(0, 0), pVec])
realAngle = If(pVecAngle ≟ pi / 2 ∨ pVecAngle ≟ (3 * pi / 2), pVecAngle, atand(tan(pVecAngle) / xyScale))
curveFunction = CurveCartesian((pointGap * cos(u)), ((pointGap * xyScale) * sin(u)), u, 0, (2 * pi))
K: curveFunction(realAngle)
vSpace = Vector(K)
allPoints: {A + vSpace, A - vSpace, B - vSpace, B + vSpace}
newPoly = Polygon(allPoints)

Tool: onboardingTextOffset
onboardingTextOffset(textCorner1,textCorner3,case,corner1,corner3,corner5)
Input: CornerText1, CornerText3, case, Corner1, Corner3, Corner5
Output: TextOffset

xPixels: ((x(CornerText3) - x(CornerText1)) * x(Corner5) / (x(Corner3) - x(Corner1)))
yPixels: ((y(CornerText3) - y(CornerText1)) * y(Corner5) / (y(Corner3) - y(Corner1)))
xOffset = Element({27, (-xPixels) + 2, 16 - xPixels / 2, 16 - xPixels / 2}, case)
yOffset = Element({-23, -23, yPixels - 27, -49}, case)
TextOffset: (xOffset, yOffset)