{
  "information": {
    "Title": "LOLmaster_v18",
    "Author": [
      "lookang",
      "Coco",
      "Paco",
      "Felix",
      "sithu"
    ],
    "AuthorLogo": [
      "./Settings/1authorlookangphoto5050.png",
      "./Settings/zedd.png",
      "./Settings/01authorPacoEsquembre2011.png",
      "./Settings/01authorFelix_J_Garcia_Clemente.png",
      ""
    ],
    "Password": "",
    "Keywords": "",
    "Abstract": "",
    "Copyright": "",
    "Level": "",
    "Language": "",
    "Logo": [
      "./Settings/SimLogo.png"
    ],
    "RunAlways": "true",
    "ModelTab": "",
    "ModelTabTitle": "",
    "ModelName": "",
    "FixedNavigationBar": "false",
    "CSSFile": "",
    "DetectedFiles": [
      "./Settings/01authorFelix_J_Garcia_Clemente.png",
      "./Settings/01authorPacoEsquembre2011.png",
      "./Settings/1authorlookangphoto5050.png",
      "./Settings/SimLogo.png",
      "./Settings/zedd.png"
    ],
    "AuxiliaryFiles": [
      "./Settings/",
      "./lib/",
      "./lib/FileSaver.js",
      "./lib/jszip.js",
      "./lib/xapiwrapper.min.js"
    ],
    "HTMLHead": "<script src=\"./lib/jszip.js\"></script>\n<script src=\"./lib/FileSaver.js\"></script>\n<script src=\"./lib/xapiwrapper.min.js\"></script>\n<style type=\"text/css\">\n.metadata { display: none; }\n</style>\n <script>\n    // Using a namespace to prevent global variable clashes\n    const XAPIUtils = {\n      parameters: null, // Parameters store\n      getParameters: function () {\n        if (!this.parameters) { // Ensure fetch once\n          var urlParams = new URLSearchParams(window.location.search);\n          var endpoint = urlParams.get('endpoint');\n          var auth = urlParams.get('auth');\n          var agent = JSON.parse(urlParams.get('agent'));\n          var stateId = urlParams.get('stateId');\n          var activityId = urlParams.get('activityId');\n\n          ADL.XAPIWrapper.changeConfig({\n            \"endpoint\": endpoint + \"/\",\n            \"auth\": `Basic ${auth}`\n          });\n\n          this.parameters = {\n            agent,\n            stateId,\n            activityId\n          };\n        }\n\n        return this.parameters;\n      }\n    };\n\n    // Immediately invoke getParameters on page load\n    document.addEventListener(\"DOMContentLoaded\", function() {\n      XAPIUtils.getParameters(); // Fetch parameters once on load\n    });\n\n    function sendScore(score) {\n      try {\n        const parameters = XAPIUtils.getParameters(); // Retrieve parameters from store\n        const activityid = parameters.activityId;\n        const stateId = parameters.stateId;\n        const agent = parameters.agent;\n        const registration = null;\n\n        const stateValue = {\n          score: score\n        };\n\n        ADL.XAPIWrapper.sendState(activityid, agent, stateId, registration, stateValue);\n      } catch (err) {\n        console.error(\"An error has occurred!\", err);\n      }\n    }\n</script>\n<script async=\"true\" src=\"https://www.googletagmanager.com/gtag/js?id=G-S9EWRY1CPJ\"></script>\n<script>\n  window.dataLayer = window.dataLayer || [];\n  function gtag(){dataLayer.push(arguments);}\n  gtag('js', new Date());\n\n  gtag('config', 'G-S9EWRY1CPJ');\n</script>\n\n\n\n\n\n",
    "SaveInXMLFormat": "false",
    "IncludeSource": "true",
    "IncludeLibrary": "true",
    "UglifyJS": "false",
    "PreviewFullModel": "false",
    "UseInterpreter": "true",
    "UseDeltaForODE": "false"
  },
  "description": {
    "pages": []
  },
  "model": {
    "variables": {
      "pages": [
        {
          "Name": "toEdit",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "title",
              "Value": "\"<b>Scenario 1</b>: A Moving Toy Car\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "systemText2",
              "Value": "\"Toy car\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "initialState",
              "Value": "\"<b>Initial State:</b> \"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "initialState2",
              "Value": "\"A toy car was moving at constant speed along a smooth horizontal surface.\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "finalState",
              "Value": "\"<b>Final State: </b>\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "finalState2",
              "Value": "\"The toy car moved at a higher constant speed after a child pushed it.\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "remarks2",
              "Value": "\"Nil\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "properties",
              "Value": "",
              "Type": "Object",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            }
          ]
        },
        {
          "Name": "layout",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "Width",
              "Value": "(_isEPub)?\"400\":\"100%\"",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "Height",
              "Value": "(_isEPub)?\"500\":\"100%\"",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "Width1",
              "Value": "\"100%\"",
              "Type": "double",
              "Dimension": "",
              "Comment": "For :// plottingPanel / simulation panel",
              "Domain": "public"
            },
            {
              "Name": "Width2",
              "Value": "\"50%\"",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "debuggg",
              "Value": "\"\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "To be placed at Top Left corner of plotting panel",
              "Domain": "public"
            },
            {
              "Name": "debugggTR",
              "Value": "\"\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "To be placed at Top Right corner of plotting panel",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            }
          ]
        },
        {
          "Name": "settings",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "editing",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "physicsonly",
              "Value": "true",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "versions",
              "Value": "editing?[\"Blank Version\",\"Scenario 1\",\"---To Add On---\"]:[\"User Set\"]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "revealRadioButton",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "\"----- check 2 -----\"",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "isC",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "isE",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "isG",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "isI",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "isK",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "isN",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "ignoreEnergyLst",
              "Value": "[]",
              "Type": "double",
              "Dimension": "",
              "Comment": "0-C; 1-E; 2-G; 3-I; 4-K; 5-N",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "\"----- check 3&4 -----\"",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "check3a",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "check3b",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "check4a",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "check4b",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "check3aEnergy",
              "Value": "\"mechanically\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "\"electrically\" , \"through heating\", \"mechanically\", \"through propagation of waves\",\"chemically\" \u2192 :/HtmlView/ check3 / buttons",
              "Domain": "public"
            },
            {
              "Name": "check3bEnergy",
              "Value": "\"\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "\"electrically\" , \"through heating\", \"mechanically\", \"through propagation of waves\",\"chemically\" \u2192 :/HtmlView/ check4 / buttons",
              "Domain": "public"
            },
            {
              "Name": "check4aEnergy",
              "Value": "\"\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "\"electrically\" , \"through heating\", \"mechanically\", \"through propagation of waves\",\"chemically\" \u2192 :/HtmlView/ check4 / buttons",
              "Domain": "public"
            },
            {
              "Name": "check4bEnergy",
              "Value": "\"\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "\"electrically\" , \"through heating\", \"mechanically\", \"through propagation of waves\" ,\"chemically\"\u2192 :/HtmlView/ check4 / buttons",
              "Domain": "public"
            },
            {
              "Name": "check3aReason",
              "Value": "\"the work done by the child on the car.\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "\"electrically\" , \"through heating\", \"mechanically\", \"through propagation of waves\" \u2192 :/HtmlView/ check4 / buttons",
              "Domain": "public"
            },
            {
              "Name": "check3bReason",
              "Value": "\"\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "check4aReason",
              "Value": "\"\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "check4bReason",
              "Value": "\"\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "\"----- check 5 -----\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "iniC",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "iniE",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "iniG",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "iniI",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "iniK",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "iniN",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "\"----- check 6 -----\"",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "finC",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "finE",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "finG",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "finI",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "finK",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "finN",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "\"----- check 7 -----\"",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "check7a",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "if true, edit userPlay under Initialisation",
              "Domain": "public"
            },
            {
              "Name": "operators",
              "Value": "[\"\ufe65\",\"\u2265\",\"\u00d72=\",\"=\",\"=2\u00d7\",\"\uff1c\",\"\u2264\"]",
              "Type": "double",
              "Dimension": "",
              "Comment": "[\"\ufe65\",\"\u2265\",\"\u00d72=\",\"=\",\"=2\u00d7\",\"\uff1c\",\"\u2264\"] \u21d2 cannot use keyboard \">\" and \"<\" \u21d2 NOT USED",
              "Domain": "public"
            },
            {
              "Name": "finalC",
              "Value": "fC",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "finalE",
              "Value": "fE",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "finalG",
              "Value": "fG",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "finalI",
              "Value": "fI",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "finalK",
              "Value": "fK",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "finalN",
              "Value": "fN",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "passfail",
              "Value": "[]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "inequalityCheckLst",
              "Value": "[]",
              "Type": "double",
              "Dimension": "",
              "Comment": "'' \u21d2nothing || true \u21d2correct || false \u21d2 wrong inequality",
              "Domain": "public"
            },
            {
              "Name": "userPlay",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "\"----- check 1 -----\"",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "displayChemical",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "displayElastic",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "displayGravitational",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "displayInternal",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "displayKinetic",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "displayNuclear",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "PropagationofWaves",
              "Value": "\"Propagation of Waves\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "Mechanically",
              "Value": "\"Mechanically\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "Electrically",
              "Value": "\"Electrically\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "userPlay",
              "Value": "\"\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            }
          ]
        },
        {
          "Name": "Var Table",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "nEnergy",
              "Value": "6",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "C",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "Chemical Energy, measured with Y axis",
              "Domain": "public"
            },
            {
              "Name": "E",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "Elastic Energy, measured with Y axis",
              "Domain": "public"
            },
            {
              "Name": "G",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "Gravitational Potential Energy, measured with Y axis",
              "Domain": "public"
            },
            {
              "Name": "I",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "Internal Energy, measured with Y axis",
              "Domain": "public"
            },
            {
              "Name": "K",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "Kinetic Energy, measured with Y axis",
              "Domain": "public"
            },
            {
              "Name": "N",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "Nuclear Energy, measured with Y axis",
              "Domain": "public"
            },
            {
              "Name": "iniTotalEnergy",
              "Value": "[C,E,G,I,K,N]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "fC",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "Final Chemical Energy, measured with Y axis",
              "Domain": "public"
            },
            {
              "Name": "fE",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "Final Elastic Energy, measured with Y axis",
              "Domain": "public"
            },
            {
              "Name": "fG",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "Final Gravitational Potential Energy, measured with Y axis",
              "Domain": "public"
            },
            {
              "Name": "fI",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "Final Internal Energy, measured with Y axis",
              "Domain": "public"
            },
            {
              "Name": "fK",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "Final Kinetic Energy, measured with Y axis",
              "Domain": "public"
            },
            {
              "Name": "fN",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "Final Nuclear Energy, measured with Y axis",
              "Domain": "public"
            },
            {
              "Name": "finTotalEnergy",
              "Value": "[fC,fE,fG,fI,fK,fN]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "updateTransIN",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "ID to lst: [ 1 is waves, 2 is \"Mechanically\", 3 is \"Heating\", 4 is \"Electrically\", 5 is \"Chemically\" ]",
              "Domain": "public"
            },
            {
              "Name": "transIN",
              "Value": "[\"- Ein\u2081 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\",\"Chemically\"]",
              "Type": "String",
              "Dimension": "[5]",
              "Comment": "unused after 20240624 by lookang[\"- Tin\u2081 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\", \"Chemically\" ]",
              "Domain": "public"
            },
            {
              "Name": "updateTransOUT",
              "Value": "updateTransIN",
              "Type": "double",
              "Dimension": "",
              "Comment": "ID to lst: [ 1 is waves, 2 is \"Mechanically\", 3 is \"Heating\", 4 is \"Electrically\", 5 is \"Chemically\" ]",
              "Domain": "public"
            },
            {
              "Name": "transOUT",
              "Value": "[\"- Eout\u2081 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\",\"Chemically\"]",
              "Type": "double",
              "Dimension": "",
              "Comment": "[\"- Tout\u2081 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\",\"Chemically\" ]",
              "Domain": "public"
            },
            {
              "Name": "EtransIN",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "variable to calc",
              "Domain": "public"
            },
            {
              "Name": "EtransOUT",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "variable to calc",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "transIN2",
              "Value": "[\"- Ein\u2082 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\",\"Chemically\"]",
              "Type": "String",
              "Dimension": "[5]",
              "Comment": "[\"- Tout\u2082 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\",\"Chemically\" ]",
              "Domain": "public"
            },
            {
              "Name": "transOUT2",
              "Value": "[\"- Eout\u2082 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\",\"Chemically\"]",
              "Type": "double",
              "Dimension": "",
              "Comment": "[\"- Tin\u2082 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\",\"Chemically\" ]",
              "Domain": "public"
            },
            {
              "Name": "updateTransIN2",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "ID to lst2: [ 1 is waves, 2 is \"Mechanically\", 3 is \"Heating\", 4 is \"Electrically\", 5 is \"Chemically\" ]",
              "Domain": "public"
            },
            {
              "Name": "updateTransOUT2",
              "Value": "updateTransIN2",
              "Type": "double",
              "Dimension": "",
              "Comment": "ID to lst2: [ 1 is waves, 2 is \"Mechanically\", 3 is \"Heating\", 4 is \"Electrically\", 5 is \"Chemically\" ]",
              "Domain": "public"
            },
            {
              "Name": "EtransIN2",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "variable to calc",
              "Domain": "public"
            },
            {
              "Name": "EtransOUT2",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "variable to calc",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            }
          ]
        },
        {
          "Name": "draw_L",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "energyXpos",
              "Value": "[]",
              "Type": "double",
              "Dimension": "",
              "Comment": "X positions --> :// initialization",
              "Domain": "public"
            },
            {
              "Name": "interactPrompt1",
              "Value": "false",
              "Type": "double",
              "Dimension": "[nEnergy]",
              "Comment": "array instead of a single variable by lookang",
              "Domain": "public"
            },
            {
              "Name": "interactPrompt2",
              "Value": "false",
              "Type": "double",
              "Dimension": "[nEnergy]",
              "Comment": "array instead of a single variable by lookang",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "show3D",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "for the cube pictures",
              "Domain": "public"
            },
            {
              "Name": "show2D",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "size2DX",
              "Value": "0.85",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "size2DY",
              "Value": "1",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "size3DX",
              "Value": "size2DX",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "size3DY",
              "Value": "1.2",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "energyColour",
              "Value": "\"rgba(0,200,255,1.0)\"",
              "Type": "double",
              "Dimension": "",
              "Comment": "blue",
              "Domain": "public"
            },
            {
              "Name": "promptLineColour",
              "Value": "\"rgba(0,255,255,0.2)\"",
              "Type": "double",
              "Dimension": "",
              "Comment": "light blue",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            }
          ]
        },
        {
          "Name": "draw_O",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "pi",
              "Value": "Math.PI",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "imgIN",
              "Value": "[\"./Settings/qnmark.png\",\"./Settings/Propagation of waves.png\",\"./Settings/Mechanically.png\",\"./Settings/Heating.png\",\"./Settings/Electrically.png\",\"./Settings/Chemically.png\"]",
              "Type": "double",
              "Dimension": "",
              "Comment": "[\"./Settings/qnmark.png\",\"./Settings/Propagation of waves.png\",\"./Settings/Mechanically.png\",\"./Settings/Heating.png\",\"./Settings/Electrically.png\"]",
              "Domain": "public"
            },
            {
              "Name": "imgOUT",
              "Value": "imgIN",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "imgIN2",
              "Value": "imgIN",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "imgOUT2",
              "Value": "imgIN",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "imgSIZE",
              "Value": "1",
              "Type": "double",
              "Dimension": "",
              "Comment": "4",
              "Domain": "public"
            },
            {
              "Name": "imgIconSIZE",
              "Value": "1",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "energyWidth",
              "Value": "1",
              "Type": "double",
              "Dimension": "",
              "Comment": "2",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "updateAnswer",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "0 for unbalanced, 1 for balanced",
              "Domain": "public"
            },
            {
              "Name": "answer",
              "Value": "[\"Unbalanced\",\"Balanced\"]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "answerY",
              "Value": "-5",
              "Type": "double",
              "Dimension": "",
              "Comment": "12",
              "Domain": "public"
            },
            {
              "Name": "answerColour",
              "Value": "[\"Red\",\"Green\"]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "showAnswer",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "showHint",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "not used yet. currently tied up with \"showAnswer\"",
              "Domain": "public"
            },
            {
              "Name": "hintY",
              "Value": "-4.5",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "hint",
              "Value": "\"-\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "hintFont",
              "Value": "",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "INimgX",
              "Value": "energyInArrowX-1",
              "Type": "double",
              "Dimension": "",
              "Comment": "-10",
              "Domain": "public"
            },
            {
              "Name": "INimgY",
              "Value": "energyInArrowY+1",
              "Type": "double",
              "Dimension": "",
              "Comment": "10",
              "Domain": "public"
            },
            {
              "Name": "INenergyX",
              "Value": "-5",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "INenergyY",
              "Value": "-5",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "INtextX",
              "Value": "INenergyX",
              "Type": "double",
              "Dimension": "",
              "Comment": "-6*2",
              "Domain": "public"
            },
            {
              "Name": "INtextY",
              "Value": "INenergyY -0.25",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "INinteract",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "IN2imgX",
              "Value": "energyIn2ArrowX-1",
              "Type": "double",
              "Dimension": "",
              "Comment": "-10",
              "Domain": "public"
            },
            {
              "Name": "IN2imgY",
              "Value": "energyIn2ArrowY-1",
              "Type": "double",
              "Dimension": "",
              "Comment": "10",
              "Domain": "public"
            },
            {
              "Name": "IN2energyX",
              "Value": "-4",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "IN2energyY",
              "Value": "-5",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "IN2textX",
              "Value": "IN2energyX",
              "Type": "double",
              "Dimension": "",
              "Comment": "-6*2",
              "Domain": "public"
            },
            {
              "Name": "IN2textY",
              "Value": "IN2energyY -0.25",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "IN2interact",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "T\u2081",
              "Domain": "public"
            },
            {
              "Name": "OUTimgX",
              "Value": "energyOutArrowX+1.1",
              "Type": "double",
              "Dimension": "",
              "Comment": "follows energyOutArrowX with drag + radius 1",
              "Domain": "public"
            },
            {
              "Name": "OUTimgY",
              "Value": "energyOutArrowY+1.1",
              "Type": "double",
              "Dimension": "",
              "Comment": "follows energyOutArrowY with drag + radius 1",
              "Domain": "public"
            },
            {
              "Name": "OUTenergyX",
              "Value": "-IN2energyX",
              "Type": "double",
              "Dimension": "",
              "Comment": "in relative to the positioning for INenergyX \u2192 T\u2081",
              "Domain": "public"
            },
            {
              "Name": "OUTenergyY",
              "Value": "IN2energyY",
              "Type": "double",
              "Dimension": "",
              "Comment": "in relative to the positioning for INenergyY \u2192 T\u2081",
              "Domain": "public"
            },
            {
              "Name": "OUTtextX",
              "Value": "OUTenergyX",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "OUTtextY",
              "Value": "OUTenergyY -0.25",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "OUTinteract",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "T\u2082",
              "Domain": "public"
            },
            {
              "Name": "OUT2imgX",
              "Value": "energyOut2ArrowX+1",
              "Type": "double",
              "Dimension": "",
              "Comment": "follows energyOut2ArrowX with drag + radius 1",
              "Domain": "public"
            },
            {
              "Name": "OUT2imgY",
              "Value": "energyOut2ArrowY-1",
              "Type": "double",
              "Dimension": "",
              "Comment": "follows energyOut2ArrowY with drag + radius 1",
              "Domain": "public"
            },
            {
              "Name": "OUT2energyX",
              "Value": "-INenergyX",
              "Type": "double",
              "Dimension": "",
              "Comment": "in relative to the positioning for INenergyX \u2192 T\u2082",
              "Domain": "public"
            },
            {
              "Name": "OUT2energyY",
              "Value": "INenergyY",
              "Type": "double",
              "Dimension": "",
              "Comment": "in relative to the positioning for IN2energyY \u2192 T\u2082",
              "Domain": "public"
            },
            {
              "Name": "OUT2textX",
              "Value": "OUT2energyX",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "OUT2textY",
              "Value": "OUT2energyY -0.25",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "OUT2interact",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            }
          ]
        },
        {
          "Name": "lookang",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "fillColorforDrag",
              "Value": "\"rgba(0,0,255,0.1)\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragSizeY",
              "Value": "1.5",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "editBackgroundColor",
              "Value": "\"LightGray\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "systemText",
              "Value": "\"<b>System:</b>\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "elementInteracted",
              "Value": "-1",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "remarks",
              "Value": "\"<b>Remarks: </b>\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "font",
              "Value": "setResponsiveFontSize()",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "arrowLength",
              "Value": "2",
              "Type": "double",
              "Dimension": "",
              "Comment": "3",
              "Domain": "public"
            },
            {
              "Name": "energyInArrowX",
              "Value": "-2",
              "Type": "double",
              "Dimension": "",
              "Comment": "-4*2",
              "Domain": "public"
            },
            {
              "Name": "energyInArrowY",
              "Value": "2",
              "Type": "double",
              "Dimension": "",
              "Comment": "4*2",
              "Domain": "public"
            },
            {
              "Name": "angleIN",
              "Value": "Math.atan2(energyInArrowY, energyInArrowX)",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "angleOUT",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "energyOutArrowX",
              "Value": "-energyInArrowX",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "energyOutArrowY",
              "Value": "energyInArrowY",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "energyIn2ArrowX",
              "Value": "energyInArrowX",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "energyIn2ArrowY",
              "Value": "-energyInArrowY",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "energyOut2ArrowX",
              "Value": "energyOutArrowX",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "energyOut2ArrowY",
              "Value": "-energyOutArrowY",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragCY",
              "Value": "iniTotalEnergy[0]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragEY",
              "Value": "iniTotalEnergy[1]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragGY",
              "Value": "iniTotalEnergy[2]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragIY",
              "Value": "iniTotalEnergy[3]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragKY",
              "Value": "iniTotalEnergy[4]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragNY",
              "Value": "iniTotalEnergy[5]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragC2Y",
              "Value": "finTotalEnergy[0]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragE2Y",
              "Value": "finTotalEnergy[1]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragG2Y",
              "Value": "finTotalEnergy[2]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragI2Y",
              "Value": "finTotalEnergy[3]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragK2Y",
              "Value": "finTotalEnergy[4]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragN2Y",
              "Value": "finTotalEnergy[5]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragEtransIN",
              "Value": "EtransIN",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragEtransIN2",
              "Value": "EtransIN2",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragEtransOUT",
              "Value": "EtransOUT",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragEtransOUT2",
              "Value": "EtransOUT2",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "iniEnergiesLst",
              "Value": "[iniC, iniE, iniG, iniI, iniK, iniN]",
              "Type": "double",
              "Dimension": "[6]",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "finEnergiesLst",
              "Value": "[finC, finE, finG, finI, finK, finN]",
              "Type": "double",
              "Dimension": "[6]",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragEnergiesLst",
              "Value": "[dragCY, dragEY, dragGY, dragIY, dragKY, dragNY]",
              "Type": "double",
              "Dimension": "[6]",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "dragEnergies2Lst",
              "Value": "[dragC2Y, dragE2Y, dragG2Y, dragI2Y, dragK2Y, dragN2Y]",
              "Type": "double",
              "Dimension": "[6]",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "customOrder",
              "Value": "[1, 2, 3, 4,5,6]",
              "Type": "double",
              "Dimension": "[6]",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            }
          ]
        },
        {
          "Name": "description",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "refer to  .// Model / Initialization to read the wordings",
          "Variables": [
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "formulaText",
              "Value": "\"\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "refer to  .// Model / Initialization",
              "Domain": "public"
            },
            {
              "Name": "legendText",
              "Value": "\"\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "eTooltip",
              "Value": "\"\"",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "hTooltip",
              "Value": "\"\"",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "mTooltip",
              "Value": "\"\"",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "pTooltip",
              "Value": "\"\"",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            }
          ]
        }
      ]
    },
    "initialization": {
      "pages": [
        {
          "Name": "initial",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "",
          "Code": "/*\n// draw X positions of the energy: //\nfor (let i=1; i<= iniTotalEnergy.length; i++){\n  energyXpos.push(i);  // gives [1,2,3,4,5,6]\n  }\n  */\n // let customOrder = [1, 2, 5, 4, 6, 3];  // Your desired order\n//pushCustomOrder(customOrder, energyXpos);\nenergyXpos[0] = 1  //C\nenergyXpos[1] = 2 // E\nenergyXpos[2] = 6 //G\nenergyXpos[3] = 4 //I\nenergyXpos[4] = 3 //K\nenergyXpos[5] = 5 // N to acheive Desired order CEGIKN\n//customOrder = [1, 2, 6, 4, 3, 5];  // Desired order CEKING\ncustomOrder = [1, 2, 3, 4, 5, 6];  // Desired order CEGIKN\n//customOrder = [5, 6, 4, 2, 1, 3]  // Desired order KINGCE\n\n\n\n// writing here cuz there's space to read //\nformulaText = \"Initial Energy of the System <b>+</b> Energy Transferred Into the System \"\nformulaText += \"<b>=</b> Energy Transferred Out of the System <b>+</b> Final Energy of the System\"\n\nlegendText = \"<b><u>Legend</u>:</b>\"\nlegendText += \"\\nC - Chemical || \"\nlegendText += \"\\nE - Elastic || \"\nlegendText += \"\\nG - Gravitational || \"\nlegendText += \"\\nI - Internal || \"\nlegendText += \"\\nK - Kinetic || \"\nlegendText += \"\\nN - Nuclear \"\n\neTooltip = \"Electrically: \\nTransfer of energy from the chemical store of a power supply to the kinetic store of a fan motor.\"\neTooltip+= \"\\nE.g. switching on a fan.\"\nhTooltip = \"Heating: \\nTransfer of energy from the internal store of a heating element to the internal store of water molecules.\"\nhTooltip+= \"\\nE.g. Boiling water in a kettle.\"\nmTooltip = \"Mechanically: \\nTransfer of energy from the chemical store of a person to the kinetic store of a trolley.\"\nmTooltip+= \"\\nE.g. Pushing a trolley.\"\npTooltip = \"Propogation of waves: \\nTransfer of energy from the chemical store of a power supply to the kinetic store of a fan motor.\"\npTooltip+= \"\\nE.g. Switching on a fan.\"\n"
        },
        {
          "Name": "userPlay",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "(fC,fE,fG,fI,fK,fN)   ",
          "Code": "userPlay =\n\"// Pls ENSURE that the above checks have been gone through before proceeding in this check, especially in the initial & final state.\\n\"+\n\"// initial energy variables are \u21d2 C, E, G, I, K, N\\n\"+\n\"// final energy variables are   \u21d2 finalC, finalE, finalG, finalI, finalK, finalN\\n\"+\n\"// To edit the following codes, please remove the comments '//' to implement the line of the code.\\n\"+\n\"// Edit the following codes (Change magnitude) to get desired conditions:\\n\\n\"+\n\"//finalC = 0.5 * C\\n\"+\n\"//finalE = 2 * E\\n\"+\n\"//finalG = 1 * G\\n\"+\n\"//finalI = 1 * I\\n\"+\n\"//finalK = 1 * K\\n\"+\n\"//finalN = 1 * N\\n\\n\"+\n\n\"// Final energy variables becomes \u21d2 fC, fE, fG, fI, fK, fN\\n\"+\n\"// Edit the following INEQUALITY formulas & the operators in the brackets () to get desired conditions: uncomment '//' for required formulas \\n\\n\"+\n\n\"//if (fC < C){inequalityCheckLst += true} else{inequalityCheckLst += false}\\n\"+\n\"//if (fE <= E){inequalityCheckLst += true} else{inequalityCheckLst += false}\\n\"+\n\"//if (fG > G) {inequalityCheckLst += true} else{inequalityCheckLst += false}\\n\"+\n\"//if (fI > I) {inequalityCheckLst += true} else{inequalityCheckLst += false}\\n\"+\n\"//if (fK >= K){inequalityCheckLst += true} else{inequalityCheckLst += false}\\n\"+\n\"//if (fN >= N){inequalityCheckLst += true} else{inequalityCheckLst += false}\\n\"+\n\n\"//if (fI < EtransIN){inequalityCheckLst += true} else{inequalityCheckLst += false}\\n\"+\n\"//if (fI < EtransIN2){inequalityCheckLst += true} else{inequalityCheckLst += false}\\n\"+\n\"//if (fI < EtransOUT){inequalityCheckLst += true} else{inequalityCheckLst += false}\\n\"+\n\"//if (fI < EtransOUT2){inequalityCheckLst += true} else{inequalityCheckLst += false}\\n\"+\n\n\"//customOrder = [1, 2, 3, 4, 5, 6];  // Desired alphabetic order CEGIKN \\n\"+\n\"//customOrder = [1, 2, 6, 4, 3, 5];  // Desired easy to recall order CEKING \\n\"+\n\"//customOrder = [5, 6, 4, 2, 1, 3]  // Desired easy to recall order KINGCE \\n\"\n\n\n\n\n\n_view.userCode.setValue(userPlay);\n// var userPlay = _view.userCode.getValue(); // \u21d2 to be included \n\n///////////////\n// REFERENCE //\n///////////////\n/*\n\" M = [ [1,2,3,4], //M matrix is declared globally\\n\"+\n\"          [5,6,7,8], \\n\"+\n\"          [9,1,2,3],  \\n\"+\n\"          [4,5,9,7] ]; \\n\"+\n\"function det(M) { \\n\"+\n\"    if (M.length==1) { return (M[0][0]);} // handle case M is 1x1 \\n\"+\n\"if (M.length==2) { return (M[0][0]*M[1][1])-(M[0][1]*M[1][0]); } // handle case M is 2x2\\n\"+\n\"    var answer = 0; \\n\"+\n\"    for (var i=0; i< M.length; i++) { answer += Math.pow(-1,i)*M[0][i]*det(deleteRowAndColumn(M,i)); } // handle case M >= 3x3\\n\"+\n\"    return answer;\\n\"+\n\"}\\n\"+\n\"function deleteRowAndColumn(M,index) { \\n\"+\n\"    var temp = []; // copy the array first \\n\"+\n\"    for (var i=0; i<M.length; i++) {  \\n\"+\n\"temp.push(M[i].slice(0));  } \\n\"+\n\"    temp.splice(0,1);   // delete the first row  \\n\"+\n\"    for (var i=0; i<temp.length; i++) {  \\n\"+\n\"       temp[i].splice(index,1); } // delete the column at the index specified \\n\"+\n\"    return temp;   \\n\"+\n\"} \\n\"\n*/\n"
        },
        {
          "Name": "properties",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "",
          "Code": "// properties\n\nproperties = [\n  'title',\n  'systemText2',\n  'initialState2',\n  'finalState2',\n  'remarks2',\n  'show2D',\n  'show3D',\n  'revealRadioButton',\n  // Check 1\n  'displayChemical',\n  'displayElastic',\n  'displayGravitational',\n  'displayInternal',\n  'displayKinetic',\n  'displayNuclear',\n  // Check 2\n  'isC',\n  'isE',\n  'isG',\n  'isI',\n  'isK',\n  'isN',\n  'ignoreEnergyLst',\n  // Check 3/4\n  'check3a',\n  'check3b',\n  'check4a',\n  'check4b',\n  'check3aEnergy',\n  'check3bEnergy',\n  'check4aEnergy',\n  'check4bEnergy',\n  'check3aReason',\n  'check3bReason',\n  'check4aReason',\n  'check4bReason',\n  // Check 5\n  'iniC',\n  'iniE',\n  'iniG',\n  'iniI',\n  'iniK',\n  'iniN',\n  // Check 6\n  'finC',\n  'finE',\n  'finG',\n  'finI',\n  'finK',\n  'finN',\n  // Check 7\n  'check7a',\n  'finalC',\n  'finalE',\n  'finalG',\n  'finalI',\n  'finalK',\n  'finalN',\n  'passfail',\n  'inequalityCheckLst',\n  'userPlay'\n];\n\n"
        },
        {
          "Name": "import",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "",
          "Code": "if (!editing) {\n  //if (!newsim) {\n    attemptLoadGraph().then(function(data) {\n      //alert( \"loading new values\")\n      ////////////////////////////////////////////\n      // data to be loaded into export & import //\n      ////////////////////////////////////////////\n      // Setting: // \n    //   title = data.title; \n    //   systemText2 = data.systemText2;\n    //   initialState2 = data.initialState2;\n    //   finalState2 = data.finalState2;\n    //   remarks2 = data.remarks2;\n    //   show2D = data.show2D;\n    //   show3D = data.show3D;\n    //   revealRadioButton = data.revealRadioButton;\n      \n      \n    //   //check 1\n    //   displayChemical = data.displayChemical;\n    //   displayElastic = data.displayElastic;\n    //   displayGravitational= data.displayGravitational;\n    //   displayInternal= data.displayInternal;\n    //   displayKinetic = data.displayKinetic;\n    //   displayNuclear = data.displayNuclear;\n      \n      \n    //   // check2 - ignoring of energy: //\n    //   isC = data.isC;\n    //   isE = data.isE;\n    //   isG = data.isG;\n    //   isI = data.isI;\n    //   isK = data.isK;\n    //   isN = data.isN;\n    //   ignoreEnergyLst = data.ignoreEnergyLst;\n      \n    //   // check3/4 - Transferable Energy: //\n    //   check3a = data.check3a;  \n    //   check3b = data.check3b;\n    //   check4a = data.check4a;\n    //   check4b = data.check4b;\n      \n    //   check3aEnergy = data.check3aEnergy;\n    //   check3bEnergy = data.check3bEnergy;\n    //   check4aEnergy = data.check4aEnergy;\n    //   check4bEnergy = data.check4bEnergy;\n      \n    //   check3aReason = data.check3aReason;\n    //   check3bReason = data.check3bReason;\n    //   check4aReason = data.check4aReason;\n    //   check4bReason = data.check4bReason;\n      \n    //   // check5 - avail energy initially: //\n    //   iniC = data.iniC;\n    //   iniE = data.iniE;\n    //   iniG = data.iniG;\n    //   iniI = data.iniI;\n    //   iniK = data.iniK;\n    //   iniN = data.iniN;\n      \n    //   // check6 - final state energy: //\n    //   finC = data.finC;\n    //   finE = data.finE;\n    //   finG = data.finG;\n    //   finI = data.finI;\n    //   finK = data.finK;\n    //   finN = data.finN;\n      \n    //   // check7 - formula: //\n    //   check7a = data.check7a;\n    //   finalC = data.finalC;\n    //   finalE = data.finalE;\n    //   finalG = data.finalG;\n    //   finalI = data.finalI;\n    //   finalK = data.finalK;\n    //   finalN = data.finalN;\n    //   passfail = data.passfail;\n    //   inequalityCheckLst = data.inequalityCheckLst;\n    //   userPlay = data.userPlay;\n    \n    \n      properties.forEach(prop => {\n        eval(prop + ' = data[\"' + prop + '\"];');\n        //eval(prop + ' = data[' + prop + '];');\n      });\n      \n      _view.userCode.setValue(userPlay);\n      runUserCode(\"Error in code, please check.\");\n      // ... to be continued if necessary ...\n      \n      //_view._addInteraction(function(){}  ,\"Q1\",{\"property\":\"value\", \"element\":\"question\"}); // use to detect beginning of Q1\n      //alert( \"add interaction\")\n      \n      _update();\n      //alert( not working if use \"_view._update\")\n    } );\n\n\n  }"
        }
      ]
    },
    "evolution": {
      "information": {
        "FPS": "20",
        "SPD": "1",
        "RealTimeVariable": "",
        "Autoplay": "true"
      },
      "pages": []
    },
    "fixed_relations": {
      "pages": [
        {
          "Name": "scaleWrestrictions_INITIAL",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "",
          "Code": "\nfor (let i=0; i< iniTotalEnergy.length; i++){\n  // 0 <= Boundary limits <=10 //\n  if (iniTotalEnergy[i] >10){\n    iniTotalEnergy[i] = 10;\n    }\n  else if (iniTotalEnergy[i] <0){\n    if (i!=2){\n      iniTotalEnergy[i] = 0;\n      }\n    else if (i==2 && iniTotalEnergy[i] < -10) {iniTotalEnergy[i] =-10}\n    }\n  // update number of pictures w Y position //\n  //chemicalY = numberedLst( iniTotalEnergy[i] );\n  /*\n  for (let j=0; j < Math.round(iniTotalEnergy[i]); j++){\n    chemicalY.push(j);  // gives [0,1,2, ... ]\n    }\n  */\n  // Restrict numbers to integers --> Makes dragging difficult --> fixed by moving to OnRelease //\n  /*\n  iniTotalEnergy[i] =  Math.round(iniTotalEnergy[i]);\n  */\n  \n  }\n\n// Restrict EtransIN at O diagram //\nif (EtransIN < 0){EtransIN = 0}\n  else if (EtransIN > 10){EtransIN = 10}\nif (dragEtransIN < 0){dragEtransIN = 0}\n  else if (dragEtransIN > 10){dragEtransIN = 10}\n\n// Restrict EtransIN2 at O diagram //\nif (EtransIN2 < 0){EtransIN2 = 0}\n  else if (EtransIN2 > 10){EtransIN2 = 10}\nif (dragEtransIN2 < 0){dragEtransIN2 = 0}\n  else if (dragEtransIN2 > 10){dragEtransIN2 = 10}\n\n// Restrict dragHelpers at L diagram // \nif (dragCY < 0){dragCY = 0}\nelse if (dragCY > 10){dragCY = 10}\n\nif (dragEY < 0){dragEY = 0}\nelse if (dragEY > 10){dragEY = 10}\n\n//if (dragGY < -10){dragGY = -10}    // G can go -ve till -10\nif (dragGY < 0){dragGY = 0}   \nelse if (dragGY > 10){dragGY = 10}\n\nif (dragIY < 0){dragIY = 0}\nelse if (dragIY > 10){dragIY = 10}\n\nif (dragKY < 0){dragKY = 0}\nelse if (dragKY > 10){dragKY = 10}\n\nif (dragNY < 0){dragNY = 0}\nelse if (dragNY > 10){dragNY = 10}\n\n\n"
        },
        {
          "Name": "scaleWrestrictions_FINAL",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "",
          "Code": "\nfor (let i=0; i< finTotalEnergy.length; i++){\n  // 0 <= Boundary limits <=10 //\n  if (finTotalEnergy[i] >10){\n    finTotalEnergy[i] = 10;\n    }\n  else if (finTotalEnergy[i] <0){\n    if (i!=2){\n      finTotalEnergy[i] = 0;\n      }\n    else if (i==2 && finTotalEnergy[i] < -10) {finTotalEnergy[i] =-10}\n    }\n  }\n\n// Restrict EtransOUT at O diagram //\nif (EtransOUT < 0){EtransOUT = 0}\n  else if (EtransOUT > 10){EtransOUT = 10}\nif (dragEtransOUT < 0){dragEtransOUT = 0}\n  else if (dragEtransOUT > 10){dragEtransOUT = 10}\n\n// Restrict EtransOUT2 at O diagram //\nif (EtransOUT2 < 0){EtransOUT2 = 0}\n  else if (EtransOUT2 > 10){EtransOUT2 = 10}\nif (dragEtransOUT2 < 0){dragEtransOUT2 = 0}\n  else if (dragEtransOUT2 > 10){dragEtransOUT2 = 10}\n\n// Restrict dragHelpers at L diagram // \nif (dragC2Y < 0){dragC2Y = 0}\nelse if (dragC2Y > 10){dragC2Y = 10}\n\nif (dragE2Y < 0){dragE2Y = 0}\nelse if (dragE2Y > 10){dragE2Y = 10}\n\n//if (dragG2Y < -10){dragG2Y = -10}  // G can go -ve till -10\nif (dragG2Y < 0){dragG2Y = 0} \nelse if (dragG2Y > 10){dragG2Y = 10}\n\nif (dragI2Y < 0){dragI2Y = 0}\nelse if (dragI2Y > 10){dragI2Y = 10}\n\nif (dragK2Y < 0){dragK2Y = 0}\nelse if (dragK2Y > 10){dragK2Y = 10}\n\nif (dragN2Y < 0){dragN2Y = 0}\nelse if (dragN2Y > 10){dragN2Y = 10}\n"
        },
        {
          "Name": "answer",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "",
          "Code": "C = iniTotalEnergy[0];\nE = iniTotalEnergy[1];\nG = iniTotalEnergy[2];\nI = iniTotalEnergy[3];\nK = iniTotalEnergy[4];\nN = iniTotalEnergy[5];\n\nfC = finTotalEnergy[0];\nfE = finTotalEnergy[1];\nfG = finTotalEnergy[2];\nfI = finTotalEnergy[3];\nfK = finTotalEnergy[4];\nfN = finTotalEnergy[5];\n\n// Using original variables for energy transfer in and out\n\nanswers1 ();\n//myOwnCode ()\n\n\n"
        },
        {
          "Name": "EnableToDebug",
          "Active": "false",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "",
          "Code": "////////////////////////////////////////////////////////\n// To include Variables on PlottingPanel TR/TLMessage //\n////////////////////////////////////////////////////////\n\n//debuggg = \"\";\ndebugggTR = \"\";\n\ndebugggTR += \"EtransIN= \"+EtransIN;\ndebugggTR += \"\\nEtransIN2= \"+EtransIN2;\ndebugggTR += \"\\nEtransOUT= \"+EtransOUT;\ndebugggTR += \"\\nEtransOUT2= \"+EtransOUT2;\ndebugggTR += \"\\ndragCY= \"+dragCY;\n//debugggTR += \"\\ncheck3aEnergy= \"+check3aEnergy;\n//debugggTR += \"\\ncheck3bEnergy= \"+check3bEnergy;\n//debugggTR += \"\\nupdateTransIN= \" + updateTransIN;\n//debugggTR += \"\\nupdateTransIN2= \" + updateTransIN2;\n//debugggTR += \"\\nINenergyY= \"+INenergyY;\n\n//debugggTR += \"\\niniEnergiesLst= \"+ [iniC, iniE, iniG, iniI, iniK, iniN];\n//debugggTR += \"\\niniTotalEnergy= \"+iniTotalEnergy;\n//debugggTR += \"\\nfinTotalEnergy= \"+finTotalEnergy;\n//debugggTR += \"\\nfinalC= \"+finalC;\n//debugggTR += \"\\nfC= \"+fC;\n//debugggTR += \"\\ndisplayChemical= \"+displayChemical;\n//debugggTR += \"\\nisG= \"+isG;\n\n//debugggTR += \"\\nMath.ceil(Math.random() * 10)= \"+ Math.ceil(Math.random() * 10);\n\n\n\n\n\n"
        },
        {
          "Name": "reOrder",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "",
          "Code": "for (let i = 0; i < customOrder.length; i++) {\n  energyXpos[i] = customOrder[i];\n}"
        }
      ]
    },
    "custom": {
      "pages": [
        {
          "Name": "toEdit_AnswerTemplate",
          "Active": "false",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "Template to copy & paste --> Previous version",
          "Code": "function answers1 () {    // depends on SCENARIO, need to include in Fixed relations. \n  var LHS = 0;\n  var RHS = 0;\n  for (let i=0; i< iniTotalEnergy.length; i++){\n    LHS += iniTotalEnergy[i];\n    RHS += finTotalEnergy[i];\n    }\n  // (1) Total initial + transferred in = total final + transferred out\n  if (LHS+EtransIN == RHS+EtransOUT){\n    // (2) Zero C, E, G, I and N in the initial and final amount \u2192 only has kinetic \u2192 depends on SCENARIO\n    if (zeroExceptEnergy(false,false,false,false,true,false) ){  // (C,E,G,I,K,N)\n      // (3) Zero transfer out \n      if (EtransOUT ==0){\n        // (4) Some transfer in mechanically --> depends on SCENARIO\n        if (updateTransIN == 2 && EtransIN > 0){    \n          // (5) Initial state only has K --> depends on SCENARIO\n          if (iniTotalEnergy[4] >= 1){\n            // (6) Final state K > initial state K --> depends on SCENARIO\n            if ( finTotalEnergy[4] >= 1 && (finTotalEnergy[4] > iniTotalEnergy[4])  ){\n              updateAnswer = 1;\n              hint = '';\n              }\n            // (6) is wrong\n            else {\n              updateAnswer = 0;\n              hint = \"There should be more energy in the kinetic\\nstore in the final state of the system.\";\n              }\n            }\n          // (5) is wrong\n          else {\n            updateAnswer = 0;\n            hint = \"There should only be energy in the kinetic\\nstore in the initial state of the system.\";\n            }\n          }\n        // (4) is wrong\n        else {\n          updateAnswer = 0;\n          hint = \"There should be some energy transferred\\n into the system mechanically due to the \\nwork done by the child on the car. \"; // --> depends on SCENARIO\n          }\n        }\n      // (3) is wrong\n      else {\n        updateAnswer = 0;\n        hint = \"The energy transferred out of the \\nsystem should be zero.\"\n        }\n      }\n    // (2) is wrong\n    else {\n      updateAnswer = 0;\n      hint = \"The amount of energy in the chemical,\\nelastic, gravitational, internal and nuclear\\nstores should be zero.\";\n      }\n    }\n  // (1) is wrong\n  else {\n    updateAnswer = 0;\n    hint = \"Total energy in the initial state of the system \\n+ the energy transferred into the system should be\\n = to the total energy in the final state of the system \\n+ the energy transferred out of the system.\";\n    }\n  \n  }"
        },
        {
          "Name": "generalAnswer",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "Template",
          "Code": "function answers1 () {    // depends on SCENARIO, need to include in Fixed relations. \n  var LHS = 0;\n  var RHS = 0;\n  for (let i=0; i< iniTotalEnergy.length; i++){\n    LHS += iniTotalEnergy[i];\n    RHS += finTotalEnergy[i];\n    }\n  debuggg = \"LHS +EtransIN+EtransIN2: \"+LHS +EtransIN+EtransIN2+ \"\\nRHS: \"+RHS +EtransOUT+EtransOUT2;\n  // (1) Total initial + transferred in = total final + transferred out\n  if (LHS + EtransIN + EtransIN2 == RHS + EtransOUT + EtransOUT2){\n    // (2) Zero C, E, G, I and N in the initial and final amount \u2192 only has kinetic\n    //if (zeroExceptEnergy(isC,isE,isG,isI,isK,isN) ||true){  // (C,E,G,I,K,N) || true to skip check\n    if (zeroExceptEnergy(isC,isE,isG,isI,isK,isN) ){ // to fix a bug report by weihao 20250401\n        ignoreEnergyLst = energyToIgnore(isC,isE,isG,isI,isK,isN);\n      // (3) identify energy being transferred IN\n      if ( check3assistant() ){\n        // (4) identify energy being transferred OUT\n        if ( check4assistant() ){    \n          // (5) Initial state only has check5 energies (iniC,iniE,iniG,iniI,iniK,iniN) \u2192 T/F\n          if ( check5n6assistant(iniC,iniE,iniG,iniI,iniK,iniN, iniTotalEnergy, \"INITIAL\") ){\n            // (6)  Final state only has check6 energies (finC,finE,finG,finI,finK,finN)\u2192 T/F\n            if ( check5n6assistant(finC,finE,finG,finI,finK,finN, finTotalEnergy, \"FINAL\")  ){\n              // (7) Other criteria: Final state K > initial state K\n              if ( (check7a==false) || (check7a==true && check7assistant() ) ){ \n                updateAnswer = 1;\n                sendScore(updateAnswer); // xAPI manually correct\n                hint = '';\n                debuggg = '';\n                }\n              else {\n                updateAnswer = 0;\n                debuggg += \"\\nDid not pass check 7\"\n                }\n              }\n            // (6) is wrong\n            else {\n              updateAnswer = 0;\n              //debuggg = \"Did not pass check 6\";\n              }\n            }\n          // (5) is wrong\n          else {\n            updateAnswer = 0;\n            //debuggg = \"Did not pass check 5\";\n            }\n          }\n        // (4) is wrong\n        else {\n          updateAnswer = 0;\n          // hints kept w the assistant\n          }\n        }\n      // (3) is wrong\n      else {\n        updateAnswer = 0;\n        // hints kept w the assistant\n        debuggg = \"Did not pass check 3\";\n        }\n      }\n    // (2) is wrong\n    else {\n      updateAnswer = 0;\n      hint = \"The amount of energy in the \\n\";\n      if (isC == false){hint += \"chemical, \"}\n      if (isE == false){hint += \"elastic, \"}\n      if (isG == false){hint += \"gravitational, \"}\n      if (isI == false){hint += \"internal, \"}\n      if (isK == false){hint += \"kinetic, \"}\n      if (isN == false){hint += \"nuclear \"}\n      hint += \"\\nstores should be zero.\";\n      }\n    }\n  // (1) is wrong\n  else {\n    updateAnswer = 0;\n    hint = \"Total energy in the initial state of the system \\n+ the energy transferred into the system should be\\n = to the total energy in the final state of the system \\n+ the energy transferred out of the system.\";\n    hint = \"Total energy in the initial state of the system + the energy transferred into\\nthe system should be = to the total energy in the final state of the system\\n+ the energy transferred out of the system.\";\n    }\n  \n  }"
        },
        {
          "Name": "answerAssistants",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "//////////////////////////////////////\n// 1) Energy displayed / considered //  ** Affects checks and displays\n//////////////////////////////////////\n\nfunction isLastEnergyDisplayed(){\n  displayEnergiesLst = [displayChemical, displayElastic, displayGravitational,\n                        displayInternal, displayKinetic, displayNuclear];\n  let trueCount = displayEnergiesLst.filter(item => item === true).length;\n  if (trueCount==1){\n    alert(\"At least one energy should be considered to play the simulation!\");\n    // narrow down to that energy and disable it. \n    if (displayChemical==true){document.getElementById(\"displayChemical\").disabled = true;}\n    else if (displayElastic==true){document.getElementById(\"displayElastic\").disabled = true;}\n    else if (displayGravitational==true){document.getElementById(\"displayGravitational\").disabled = true;}\n    else if (displayInternal==true){document.getElementById(\"displayInternal\").disabled = true;}\n    else if (displayKinetic==true){document.getElementById(\"displayKinetic\").disabled = true;}\n    else if (displayNuclear==true){document.getElementById(\"displayNuclear\").disabled = true;}\n    }\n  else{\n    document.getElementById(\"displayChemical\").disabled = false;\n    document.getElementById(\"displayElastic\").disabled = false;\n    document.getElementById(\"displayGravitational\").disabled = false;\n    document.getElementById(\"displayInternal\").disabled = false;\n    document.getElementById(\"displayKinetic\").disabled = false;\n    document.getElementById(\"displayNuclear\").disabled = false;\n    }\n  }\n  \nfunction updateVariables(){\n  displayEnergiesLst = [displayChemical, displayElastic, displayGravitational,\n                        displayInternal, displayKinetic, displayNuclear];\n  // ID is same as iniTotalEnergy and finTotalEnergy //\n  for (let i=0; i < iniTotalEnergy.length; i++){\n    if (displayEnergiesLst[i] == false){\n      iniTotalEnergy[i] = 0;    // Update iniTotalEnergy\n      finTotalEnergy[i] = 0;    // Update finTotalEnergy\n      }\n    }\n  // update check2, check 5 and check6 by restarting them to false //\n  if (displayChemical==false)     {isC =false; iniC =false; finC =false;}\n  if (displayElastic==false)      {isE =false; iniE =false; finE =false;}\n  if (displayGravitational==false){isG =false; iniG =false; finG =false;}\n  if (displayInternal==false)     {isI =false; iniI =false; finI =false;}\n  if (displayKinetic==false)      {isK =false; iniK =false; finK =false;}\n  if (displayNuclear==false)      {isN =false; iniN =false; finN =false;}\n  }\n\n\n///////////////////////////////////////////////\n// 2) Check what energy to ignore its amount //  ** Affects check 5 and 6\n///////////////////////////////////////////////  returns a list ID to ignore\n\nfunction energyToIgnore(C,E,G,I,K,N){\n  let checkLst = [C,E,G,I,K,N];  // lst contains T/F\n  let indexLst = [];\n  for (let i=0; i < checkLst.length; i++){\n    if (checkLst[i]==true){indexLst.push(i);}\n    }\n  return indexLst\n  }\n\nfunction zeroExceptEnergy(C,E,G,I,K,N){  // Scenario 1: (false, false, false, false, TRUE, false)\n  // check which index gives false from the argument --> index to check //\n  let indexLst = [];\n  if (C==false){indexLst.push(0)}\n  if (E==false){indexLst.push(1)}\n  if (G==false){indexLst.push(2)}\n  if (I==false){indexLst.push(3)}\n  if (K==false){indexLst.push(4)}\n  if (N==false){indexLst.push(5)}\n  // checking process: //\n  for (let i=0; i< iniTotalEnergy.length; i++){\n    // Skip any energy that is true, so to check for 0 //\n    for (let j=0; j < indexLst.length; j++){\n      if ( (indexLst[j] ==i) && ( (iniTotalEnergy[i] !=0)||(finTotalEnergy[i] !=0)  ) ){\n        return false\n        }\n      }\n    }\n  return true\n  }\n  \n/////////////////////////////////////////////////\n// 3) Check what energy is being transfered IN // (O)\n/////////////////////////////////////////////////\nfunction check3assistant(){  \n  // check3b is true, means confirm 2 types of energy are transferred\n  if (check3b){\n    // \u2192 if 2, need check IN correct, followed by IN2 and vice versa. \n    if (check3a && (EtransIN >= 0 && EtransIN2 >= 0) ){\n      if ((EtransIN > 0 && updateTransIN == 0) || (EtransIN2 > 0 && updateTransIN2 == 0)) {\n          hint = \"Unspecified energy cannot have a value of more than 0.\";\n          return false\n      }\n      if ((updateTransIN == 0 && check3aEnergy == \"\") ||\n          (updateTransIN == 1 && check3aEnergy == \"through propagation of waves\") || \n          (updateTransIN == 2 && check3aEnergy == \"mechanically\") || \n          (updateTransIN == 3 && check3aEnergy == \"through heating\") || \n          (updateTransIN == 4 && check3aEnergy == \"electrically\") || \n          (updateTransIN == 5 && check3aEnergy == \"chemically\") ){\n        if (updateTransIN2 == 0 && check3bEnergy == \"\"){return true}\n        else if (updateTransIN2 == 1 && check3bEnergy == \"through propagation of waves\"){return true}\n        else if (updateTransIN2 == 2 && check3bEnergy == \"mechanically\"){return true}\n        else if (updateTransIN2 == 3 && check3bEnergy == \"through heating\"){return true}\n        else if (updateTransIN2 == 4 && check3bEnergy == \"electrically\"){return true}\n        else if (updateTransIN2 == 5 && check3bEnergy == \"chemically\"){return true}\n        else{\n          hint = \"There should be some energy transferred into\\nthe system \"+check3bEnergy+\" due to \\n\"+check3bReason;\n          return false\n          }\n        }\n      else if ((updateTransIN2 == 0 && check3aEnergy == \"\") ||\n          (updateTransIN2 == 1 && check3aEnergy == \"through propagation of waves\") || \n          (updateTransIN2 == 2 && check3aEnergy == \"mechanically\") || \n          (updateTransIN2 == 3 && check3aEnergy == \"through heating\") || \n          (updateTransIN2 == 4 && check3aEnergy == \"electrically\") ||\n          (updateTransIN2 == 5 && check3aEnergy == \"chemically\") ){\n        if (updateTransIN == 0 && check3bEnergy == \"\"){return true}\n        else if (updateTransIN == 1 && check3bEnergy == \"through propagation of waves\"){return true}\n        else if (updateTransIN == 2 && check3bEnergy == \"mechanically\"){return true}\n        else if (updateTransIN == 3 && check3bEnergy == \"through heating\"){return true}\n        else if (updateTransIN == 4 && check3bEnergy == \"electrically\"){return true}\n        else if (updateTransIN == 5 && check3bEnergy == \"chemically\"){return true}\n        else{\n          hint = \"There should be some energy transferred\\ninto the system \"+check3bEnergy+\" due to \\n\"+check3bReason;\n          return false\n          }\n        }\n      else{\n        hint = \"There should be some energy transferred\\ninto the system \"+check3aEnergy+\" due to \\n\"+check3aReason;\n        return false\n        }\n      }\n    else{\n      hint = \"There should have some energy\\ntransferred into the system\\n\"+check3aEnergy+\" and \"+check3bEnergy+\".\";\n      }\n    }\n  // check3a is true, means there can be 1 or 2 types of energy transferred \u2192 no need check for 2 cuz check3b wldve been T\n  else if (check3a){\n    if ((EtransIN > 0 && updateTransIN == 0)) {\n        hint = \"Unspecified energy cannot have a value of more than 0.\";\n        return false\n     }\n    // \u2192 if only 1, just need to check whether the IN or IN2 is correctly identified\n    if (EtransIN >= 0 && EtransIN2 == 0){\n      if (updateTransIN == 0 && check3aEnergy == \"\"){return true}\n      if (updateTransIN == 1 && check3aEnergy == \"through propagation of waves\"){return true}\n      if (updateTransIN == 2 && check3aEnergy == \"mechanically\"){return true}\n      if (updateTransIN == 3 && check3aEnergy == \"through heating\"){return true}\n      if (updateTransIN == 4 && check3aEnergy == \"electrically\"){return true}\n      if (updateTransIN == 5 && check3aEnergy == \"chemically\"){return true}\n      }\n    else if (EtransIN == 0 && EtransIN2 >= 0){\n      if (updateTransIN2 == 0 && check3aEnergy == \"\"){return true}\n      if (updateTransIN2 == 1 && check3aEnergy == \"through propagation of waves\"){return true}\n      if (updateTransIN2 == 2 && check3aEnergy == \"mechanically\"){return true}\n      if (updateTransIN2 == 3 && check3aEnergy == \"through heating\"){return true}\n      if (updateTransIN2 == 4 && check3aEnergy == \"electrically\"){return true}\n      if (updateTransIN2 == 5 && check3aEnergy == \"chemically\"){return true}\n      }\n    else if (EtransIN >= 0 && EtransIN2 >= 0){\n      if (updateTransIN == 0 && updateTransIN2 == 0 && check3aEnergy == \"\"){return true}\n      if (updateTransIN == 1 && updateTransIN2 == 1 && check3aEnergy == \"through propagation of waves\"){return true}\n      if (updateTransIN == 2 && updateTransIN2 == 2 && check3aEnergy == \"mechanically\"){return true}\n      if (updateTransIN == 3 && updateTransIN2 == 3 && check3aEnergy == \"through heating\"){return true}\n      if (updateTransIN == 4 && updateTransIN2 == 4 && check3aEnergy == \"electrically\"){return true}\n      if (updateTransIN == 5 && updateTransIN2 == 5 && check3aEnergy == \"chemically\"){return true}\n      hint = \"There should only be some energy transferred\\ninto the system \"+ check3aEnergy+\".\";\n      return false\n      }\n    /*\n    else{\n      hint = \"There should be some energy transferred\\ninto the system \"+check3aEnergy+\" due to \\n\"+check3aReason;\n      return false\n      }\n    */\n    hint = \"There should be some energy transferred\\ninto the system \"+check3aEnergy+\" due to \\n\"+check3aReason;\n    return false\n    }\n  else if (check3a ==false && check3b ==false){\n    if (EtransIN ==0 && EtransIN2 ==0){return true}\n    else{\n      hint = \"The energy transferred into\\nthe system should be zero.\";\n      return false\n      }\n    }\n  else{\n    debuggg=\"smth wrong at check3 :( \";\n    return true\n    }\n  }\n  \n//////////////////////////////////////////////////////////\n// 5,6) Check what energy is present in both L diagrams //\n//////////////////////////////////////////////////////////\n\nfunction check5n6assistant(C,E,G,I,K,N,energyLst,stateWord){\n  // works similarly to zeroExceptEnergy() where it checks arguments for FALSE\n  // C is either (iniC) or (finC), which give T or F \u2192 same goes for the other variables\n  // energyLst - [iniTotalEnergy] or [finTotalEnergy]\n  // stateWord - \"initial\" or \"final\" strings to put in the hint\n  ///////////////////////////////////////////////////////////////////////////////////////\n  \n  // Setting up: //\n  let checkLst = [C,E,G,I,K,N]    // lst contains T / F\n  let wordings = [\"Chemical\",\"Elastic\",\"Gravitational\",\"Internal\",\"Kinetic\",\"Nuclear\"]\n  \n  // checking process: //\n  for (let i=0; i< energyLst.length; i++){\n    if ( (checkLst[i] ==false) && ( energyLst[i] !=0) && (!ignoreEnergyLst.includes(i)) ){\n      // Hint to wrong energy stored //\n      hint = \"\"\n      for (let wordID=0; wordID < wordings.length; wordID++){\n        if (i==wordID){hint += wordings[wordID]}\n        }\n      hint += \" energy should NOT be\\nstored in the \"+stateWord+\" state of the system.\"\n      return false\n      }\n    else if ( (checkLst[i] ==true) && (energyLst[i] ==0) ){\n      // Hint to store correct energy //\n      hint = \"\"\n      for (let wordID=0; wordID < wordings.length; wordID++){\n        if (i==wordID){hint += wordings[wordID]}\n        }\n      hint += \" energy should be\\nstored in the \"+stateWord+\" state of the system.\"\n      return false\n      }\n    }\n  return true\n  }\n  \n//////////////////////////////////////////////////////////\n// 7) Check the amount of energy with the formula given //\n//////////////////////////////////////////////////////////\n\nfunction check7assistant(){\n  let wordings = [\"chemical\",\"elastic\",\"gravitational potential\",\"internal\",\"kinetic\",\"nuclear\"]\n  // load formula from userCode //\n  finalC=999; finalE=999; finalG=999; finalI=999; finalK=999; finalN=999; // to check whether user edited var\n  inequalityCheckLst = []  // final judgement\n  runUserCode(\"Error in code, please review code again.\");\n  // checking process: //\n  passfail = []; // final judgement\n  let finalLst = [finalC, finalE, finalG, finalI, finalK, finalN];\n  //let finalLst = [fC,fE, fG, fI, fK, fN]; // = this is finTotalEnergy\n  let checkLst = [finC,finE,finG,finI,finK,finN];    // lst contains T/F\n  debuggg = finalLst+\"\\ncheckLst: \"+checkLst+\"\\ninequalityCheckLst: \"+inequalityCheckLst;\n  // check for the correct energy present in the initial state before checking condition // \n  for (let i=0; i < finTotalEnergy.length ; i++){\n    if ( checkLst[i] ==true && finalLst[i]!=999 ) {\n      if (finalLst[i] == finTotalEnergy[i]) {\n        passfail += true\n        }\n      else{\n        //alert(\"wrong\")\n        hint = \"The amount of \"+wordings[i]+\" energy in the final state is wrong\"\n        passfail += false\n        }\n      }\n    }\n  // Final judgement: //\n  debuggg += \"\\npassfail: \"+passfail;  // Equality formulas\n  if ( !inequalityCheckLst.includes(false) ){  // check inequality formula(s) if any\n    if ( allFalseLst(checkLst) ){  // highly unlikely this will occur\n      hint = \"There should be no energy\\npresent in the FINAL state.\";\n      return false\n      }\n    if ( !passfail.includes(false) ){return true}  // check equality formula(s) if any\n    if ( passfail.includes(false) ){return false} \n    return true  \n    }\n  else if ( inequalityCheckLst.includes(false) ){\n    hint = \"The amount of energy in the final state is wrong.\";\n    return false\n    }\n  }\n"
        },
        {
          "Name": "check4assistant",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "\n//////////////////////////////////////////////////\n// 4) Check what energy is being transfered OUT //\n//////////////////////////////////////////////////\n\nfunction check4assistant(){\n  if (check4b){    // \u2192 confirm 2 types of energy are transferred\n    if (check4b && (EtransOUT >= 0 && EtransOUT2 >= 0) ){\n        if ((EtransOUT > 0 && updateTransOUT == 0) || (EtransOUT2 > 0 && updateTransOUT2 == 0)) {\n          hint = \"Unspecified energy cannot have a value of more than 0.\";\n          return false\n        }\n      if ((updateTransOUT == 0 && check4aEnergy == \"\") ||\n          (updateTransOUT == 1 && check4aEnergy == \"through propagation of waves\") || \n          (updateTransOUT == 2 && check4aEnergy == \"mechanically\") || \n          (updateTransOUT == 3 && check4aEnergy == \"through heating\") || \n          (updateTransOUT == 4 && check4aEnergy == \"electrically\") ||\n          (updateTransOUT == 5 && check4aEnergy == \"chemically\") ){\n        if (updateTransOUT2 == 0 && check4bEnergy == \"\"){return true}\n        else if (updateTransOUT2 == 1 && check4bEnergy == \"through propagation of waves\"){return true}\n        else if (updateTransOUT2 == 2 && check4bEnergy == \"mechanically\"){return true}\n        else if (updateTransOUT2 == 3 && check4bEnergy == \"through heating\"){return true}\n        else if (updateTransOUT2 == 4 && check4bEnergy == \"electrically\"){return true}\n        else if (updateTransOUT2 == 5 && check4bEnergy == \"chemically\"){return true}\n        else{\n          hint = \"There should be some energy transferred out\\nof the system \"+check4bEnergy+\" due to \\n\"+check4bReason;\n          return false\n          }\n        }\n      else if ((updateTransOUT2 == 0 && check4aEnergy == \"\") ||\n          (updateTransOUT2 == 1 && check4aEnergy == \"through propagation of waves\") || \n          (updateTransOUT2 == 2 && check4aEnergy == \"mechanically\") || \n          (updateTransOUT2 == 3 && check4aEnergy == \"through heating\") ||  \n          (updateTransOUT2 == 4 && check4aEnergy == \"electrically\") ||\n          (updateTransOUT2 == 5 && check4aEnergy == \"chemically\") ){\n        if (updateTransOUT == 0 && check4bEnergy == \"\"){return true}\n        else if (updateTransOUT == 1 && check4bEnergy == \"through propagation of waves\"){return true}\n        else if (updateTransOUT == 2 && check4bEnergy == \"mechanically\"){return true}\n        else if (updateTransOUT == 3 && check4bEnergy == \"through heating\"){return true}\n        else if (updateTransOUT == 4 && check4bEnergy == \"electrically\"){return true}\n        else if (updateTransOUT == 5 && check4bEnergy == \"chemically\"){return true}\n        else{\n          hint = \"There should be some energy transferred\\nout of the system \"+check4bEnergy+\" due to \\n\"+check4bReason;\n          return false\n          }\n        }\n      else{\n        hint = \"There should be some energy transferred\\nout of the system \"+check4aEnergy+\" due to \\n\"+check4aReason;\n        return false\n        }\n      }\n    else{\n      hint = \"There should have some energy\\ntransferred out of the system\\n\"+check4aEnergy+\" and \"+check4bEnergy+\".\";\n      }\n    }\n  else if (check4a){\n    if ((EtransOUT > 0 && updateTransOUT == 0)) {\n        hint = \"Unspecified energy cannot have a value of more than 0.\";\n        return false\n    }\n    if (EtransOUT >= 0 && EtransOUT2 ==0){\n      if (updateTransOUT == 0 && check4aEnergy == \"\"){return true}\n      if (updateTransOUT == 1 && check4aEnergy == \"through propagation of waves\"){return true}\n      if (updateTransOUT == 2 && check4aEnergy == \"mechanically\"){return true}\n      if (updateTransOUT == 3 && check4aEnergy == \"through heating\"){return true}\n      if (updateTransOUT == 4 && check4aEnergy == \"electrically\"){return true}\n      if (updateTransOUT == 5 && check4aEnergy == \"chemically\"){return true}\n      }\n    else if (EtransOUT ==0 && EtransOUT2 >= 0){\n      if (updateTransOUT2 == 0 && check4aEnergy == \"\"){return true}\n      if (updateTransOUT2 == 1 && check4aEnergy == \"through propagation of waves\"){return true}\n      if (updateTransOUT2 == 2 && check4aEnergy == \"mechanically\"){return true}\n      if (updateTransOUT2 == 3 && check4aEnergy == \"through heating\"){return true}\n      if (updateTransOUT2 == 4 && check4aEnergy == \"electrically\"){return true}\n      if (updateTransOUT2 == 5 && check4aEnergy == \"chemically\"){return true}\n      }\n    else if (EtransOUT >= 0 && EtransOUT2 >= 0){\n      if (updateTransOUT == 0 && updateTransOUT2 == 0 && check4aEnergy == \"\"){return true}\n      if (updateTransOUT == 1 && updateTransOUT2 == 1 && check4aEnergy == \"through propagation of waves\"){return true}\n      if (updateTransOUT == 2 && updateTransOUT2 == 2 && check4aEnergy == \"mechanically\"){return true}\n      if (updateTransOUT == 3 && updateTransOUT2 == 3 && check4aEnergy == \"through heating\"){return true}\n      if (updateTransOUT == 4 && updateTransOUT2 == 4 && check4aEnergy == \"electrically\"){return true}\n      if (updateTransOUT == 5 && updateTransOUT2 == 5 && check4aEnergy == \"chemically\"){return true}\n      hint = \"There should only be some energy transferred\\nout of the system \"+ check4aEnergy+\".\";\n      return false\n      }\n    hint = \"There should be some energy transferred\\nout of the system \"+check4aEnergy+\" due to \\n\"+check4aReason;\n    return false\n    }\n  else if (check4a ==false && check4b ==false){\n    if (EtransOUT ==0 && EtransOUT2 ==0){return true}\n    else{\n      hint = \"The energy transferred out\\nof the system should be zero.\";\n      return false\n      }\n    }\n  else{\n    debuggg=\"smth wrong at check4 :( \";\n    return true\n    }\n  }"
        },
        {
          "Name": "fullscreen",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "//https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode\n// does not work for iOS \n/*jslint browser:true */\nfunction toggleFullScreen() {\n  if (!document.fullscreenElement &&    // alternative standard method\n      !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement ) {  // current working methods\n    if (document.documentElement.requestFullscreen) {\n      document.documentElement.requestFullscreen();\n    } else if (document.documentElement.msRequestFullscreen) {\n      document.documentElement.msRequestFullscreen();\n    } else if (document.documentElement.mozRequestFullScreen) {\n      document.documentElement.mozRequestFullScreen();\n    } else if (document.documentElement.webkitRequestFullscreen) {\n      document.documentElement.webkitRequestFullscreen();\n    }\n  } else {\n    if (document.exitFullscreen) {\n      document.exitFullscreen();\n    } else if (document.msExitFullscreen) {\n      document.msExitFullscreen();\n    } else if (document.mozCancelFullScreen) {\n      document.mozCancelFullScreen();\n    } else if (document.webkitExitFullscreen) {\n      document.webkitExitFullscreen();\n    }\n  }\n}"
        },
        {
          "Name": "changeOrientation",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "// code to be copied to EJSS source code under Custom and used in drawingPanel3D and plottingPanel2D\n// address the problem is height difference is iOS app , epub, and Firefox\n// user need to change only k and kepub\n// copy %changeOrientation()% into the Height Field of drawingPanel3D and plottingPanel2D\nfunction changeOrientation() {\n \nvar k =0.90 ; // k control height 1 is for full screen, 0.9 shorten etc\nvar kapple =0.90 // control apple app height\nvar kepub =0.90 ;\n// check platform for Apps\ntry { // allow code to run in Student Learning Space \n  var iOSapp =  (typeof parent.device != 'undefined' && parent.device.platform == \"iOS\");\n  var Androidapp = (typeof parent.device != 'undefined' && parent.device.platform == \"Android\");\n} catch(e) {\n  var iOSapp = false;\n  var Androidapp = false;\n}\n// check platform for web browsers\nvar iOS =/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\nvar iPad =/iPad/.test(navigator.userAgent) && !window.MSStream;\nvar iPhone = /iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\nvar Android= /Android|android/i.test(navigator.userAgent);\n\n//navigator\nvar Firefox = navigator.userAgent.indexOf(\"Firefox\") != -1;\n \nswitch (window.orientation) { // using window.orientation as deciding factor\n  case 0:\n  case 180:\n    this.screenOrientation = 'portrait';\n    if (iOSapp){ // does not seems to work\n      \n      return window.screen.height*kapple;  //0.1 for app and 0.1 for nonfullscreenapp  \n    \n    }\n    else if (_isEPub){ // does not seems to work\n      //   return Math.max(window.screen.width,window.screen.height)*0.9;\n      return window.innerHeight*kepub;  //0.1 for app and 0.1 for nonfullscreenapp  \n      // return window.screen.height;\n      //  return window.innerHeight;\n      // return document.documentElement.clientHeight;\n    }\n   \n    else {\n     \n      return 100*k+\"vh\";\n    }\n    break;\n  case 90:\n  case -90:\n    this.screenOrientation = 'landscape';\n \n    if (iOSapp){ // App\n      return window.screen.width*kapple;  \n      // return window.screen.height;\n      //  return window.innerHeight;\n      //  return document.documentElement.clientHeight;\n    }\n    else if (_isEPub){ // does not seems to work\n      //   return Math.max(window.screen.width,window.screen.height)*0.9;\n      return window.innerHeight*kepub;  //0.1 for app and 0.1 for nonfullscreenapp  \n      // return window.screen.height;\n      //  return window.innerHeight;\n      // return document.documentElement.clientHeight;\n    }\n   \n    else {\n      return 100*k+\"vh\";\n      }\n    break;\n  default:\n    this.screenOrientation = 'unknown';\n    //       return (iPad)?\"\"+(window.screen.width+window.screen.height)*0.4:((iPhone)?\"\"+window.screen.width:_view._format(window.innerHeight*0.9,\"0\"));\n     if (Firefox){\n      return window.innerHeight*k;// number as of 20180831 Firefox does not support vh yet so need a separate line to handle\n      }\n   //   else if (iOS&&(window.orientation==0)||(window.orientation==180)){\n   //   return  window.screen.height*k;// number as of 20180831 Firefox does not support vh yet so need a separate line to handle\n   //   }\n    //  else if (iOS&&(window.orientation==90)||(window.orientation==-90)){\n   //   return  window.screen.width*k;// number as of 20180831 Firefox does not support vh yet so need a separate line to handle\n   //   }\n      else {\n      //alert();\n      // return 100*k+\"%\"; // work on fullscreen works in EJSS6.0beta\n        //  works in EjsS_5.3_180131\n      return  window.innerHeight*k; // work on panel \n       \n}\n\n}\n \n}"
        },
        {
          "Name": "speech",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "// copy this custom function\n// in iOS need to add speech to the play button as On iOS the API works but must be triggered by a user action callback, like a response to a tap event, to provide a better experience to users and avoid unexpected sounds out of your phone\nfunction speech (option) {\n\n\ntry { // allow code to run in Student Learning Space \nvar isCordova = (!!this.parent.cordova || !!window.cordova);\nif(isCordova) { // check it is running in Android or iOS\n       // parent.TTS.speak({text:option,locale:'zh-CN'});\n\tparent.TTS.speak({text:option,locale:'us-EN'});\n\t// parent.TTS.speak({text:option,locale:'en-US'});\n\t// parent.TTS.speak({text:option,locale:'id-ID'});\n} \n} \ncatch(e) {\n  var isCordova = false;\n  }\n  \n   var msg = new SpeechSynthesisUtterance(option);\n\n  //https://stackoverflow.com/questions/43983845/speechsynthesis-api-for-chinese-firefox\n  // Set the text.\n\t//msg.text = option; \n\t//https://forums.developer.apple.com/message/323564#323564\n\t// comment out the next 2 lines for english\n//msg.voice = speechSynthesis.getVoices().filter(function(voice) { return voice.name == 'Ting-Ting'; })[0];\n//msg.lang = 'zh-CH'; // need for android?\n//msg.lang = 'id-ID'; // need for android?\nmsg.lang = 'us-EN'; // need for android?\n\n//https://flaviocopes.com/speech-synthesis-api/\n//debug\n//console.log(`Voices #: ${speechSynthesis.getVoices().length}`)\n//speechSynthesis.getVoices().forEach(voice => {\n// console.log(voice.name, voice.lang)\n//})\n//debug\n\n// Queue this utterance.\nwindow.speechSynthesis.speak(msg);\n\n\n\n \n\n}"
        },
        {
          "Name": "css",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "Using the space to explore the use of CSS. - ROUGH WORK TO DISABLE -",
          "Code": "function setResponsiveFontSize(percent = 0.03, minFontSize = 10) {\n    // Get the viewport dimensions\n    var viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n    var viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n\n    // Calculate the font size based on viewport width or height\n    var fontSize = Math.min(viewportWidth * percent, viewportHeight * percent);\n\n    // Ensure the font size is at least the minimum specified\n    fontSize = Math.max(fontSize, minFontSize);\n\n    // Set the font size\n    var font = \"normal normal \" + fontSize + \"px\";\n\n    // Apply the font size to your elements\n    // Example: Apply to the body or a specific element\n    document.body.style.fontSize = fontSize + \"px\";\n}\n\n\n// setResponsiveFontSize(0.04, 14); // Custom multiplier and minimum font size\n// setResponsiveFontSize(); // Defaults to 3% multiplier and 10px minimum font size\n"
        },
        {
          "Name": "runUserCode",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "function runUserCode (errorMsg) {\n  userPlay = _view.userCode.getValue();\n  try {\n    eval(userPlay);\n    }\n  catch(error){\n    _tools.showOkDialog(errorMsg);\n    }\n}"
        },
        {
          "Name": "revealSol",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "function revealSolution () {    // used in the reveal button\n  // to handle infinite loops causing page timeout\n  let loopCount = 0;\n  let maxIterations = 500;  \n  // Read through the checks for answer --> Update var in control of displaying the answers //\n  while (true){\n    // Read through check 3 //\n    if (true){\n      if (check3a && check3aEnergy == \"\"){updateTransIN =0; EtransIN =0;_view.energyTypeIN.setSelectedOptions([\"- Ein\u2081 -\"]);\n      }\n      else if (check3aEnergy == \"through propagation of waves\"){updateTransIN =1; EtransIN =Math.ceil( Math.random()*10 );_view.energyTypeIN.setSelectedOptions([\"Propagation of waves\"]);\n      }\n      else if (check3aEnergy == \"mechanically\")           {updateTransIN =2;EtransIN =Math.ceil( Math.random()*10 );_view.energyTypeIN.setSelectedOptions([\"Mechanically\"]);\n      }\n      else if (check3aEnergy == \"through heating\")        {updateTransIN =3; EtransIN =Math.ceil( Math.random()*10 );_view.energyTypeIN.setSelectedOptions([\"Heating\"]);\n      }\n      else if (check3aEnergy == \"electrically\")           {updateTransIN =4; EtransIN =Math.ceil( Math.random()*10 );_view.energyTypeIN.setSelectedOptions([\"Electrically\"]);\n      }\n      else if (check3aEnergy == \"chemically\")             {updateTransIN =5; EtransIN =Math.ceil( Math.random()*10 );_view.energyTypeIN.setSelectedOptions([\"Chemically\"]);\n      }\n      else{  updateTransIN =0; EtransIN =0;}\n      // Correctly set the combobox\n      \n      //_view.energyTypeIN.setSelectedOptions([\"Mechanically\"];\n      //alert(check3aEnergy)\n      dragEtransIN =EtransIN;\n      }\n    if (true){\n      if (check3b && check3bEnergy == \"\"){updateTransIN2 =0; EtransIN2 =0;_view.energyTypeIN2.setSelectedOptions([\"- Ein\u2081 -\"]);\n      }\n      else if (check3bEnergy == \"through propagation of waves\"){updateTransIN2 =1; EtransIN2 =Math.ceil( Math.random()*10 );_view.energyTypeIN2.setSelectedOptions([\"Propagation of waves\"])\n      }\n      else if (check3bEnergy == \"mechanically\")           {updateTransIN2 =2; EtransIN2 =Math.ceil( Math.random()*10 );_view.energyTypeIN2.setSelectedOptions([\"Mechanically\"])\n      }\n      else if (check3bEnergy == \"through heating\")        {updateTransIN2 =3; EtransIN2 =Math.ceil( Math.random()*10 );_view.energyTypeIN2.setSelectedOptions([\"Heating\"])\n      }\n      else if (check3bEnergy == \"electrically\")           {updateTransIN2 =4; EtransIN2 =Math.ceil( Math.random()*10 );_view.energyTypeIN2.setSelectedOptions([\"Electrically\"])\n      }\n      else if (check3bEnergy == \"chemically\")             {updateTransIN2 =5; EtransIN2 =Math.ceil( Math.random()*10 );_view.energyTypeIN2.setSelectedOptions([\"Chemically\"])\n      }\n      else{  updateTransIN2 =0; EtransIN2 =0;}\n      dragEtransIN2 =EtransIN2;\n      }\n    // Read through check 4 //\n    if (true){\n      if (check4a && check4aEnergy == \"\"){updateTransOUT =0; EtransOUT =0;_view.energyTypeOUT.setSelectedOptions([\"- Ein\u2081 -\"])\n      }\n      else if (check4aEnergy == \"through propagation of waves\"){updateTransOUT =1; EtransOUT =Math.ceil( Math.random()*10 );_view.energyTypeOUT.setSelectedOptions([\"Propagation of waves\"])\n      }\n      else if (check4aEnergy == \"mechanically\")           {updateTransOUT =2; EtransOUT =Math.ceil( Math.random()*10 );_view.energyTypeOUT.setSelectedOptions([\"Mechanically\"]);\n      }\n      else if (check4aEnergy == \"through heating\")        {updateTransOUT =3; EtransOUT =Math.ceil( Math.random()*10 );_view.energyTypeOUT.setSelectedOptions([\"Heating\"]);\n      }\n      else if (check4aEnergy == \"electrically\")           {updateTransOUT =4; EtransOUT =Math.ceil( Math.random()*10 );_view.energyTypeOUT.setSelectedOptions([\"Electrically\"])\n      }\n      else if (check4aEnergy == \"chemically\")             {updateTransOUT =5; EtransOUT =Math.ceil( Math.random()*10 );_view.energyTypeOUT.setSelectedOptions([\"Chemically\"])\n      }\n      else{  updateTransOUT =0; EtransOUT =0;}\n      dragEtransOUT =EtransOUT;\n      }\n    if (true){\n      if (check4b && check4bEnergy == \"\"){updateTransOUT2 =0; EtransOUT2 =0;_view.energyTypeOUT2.setSelectedOptions([\"- Ein\u2081 -\"])\n      }\n      else if (check4bEnergy == \"through propagation of waves\"){updateTransOUT2 =1; EtransOUT2 =Math.ceil( Math.random()*10 );_view.energyTypeOUT2.setSelectedOptions([\"Propagation of waves\"])\n      }\n      else if (check4bEnergy == \"mechanically\")           {updateTransOUT2 =2; EtransOUT2 =Math.ceil( Math.random()*10 );_view.energyTypeOUT2.setSelectedOptions([\"Mechanically\"]);\n      }\n      else if (check4bEnergy == \"through heating\")        {updateTransOUT2 =3; EtransOUT2 =Math.ceil( Math.random()*10 );_view.energyTypeOUT2.setSelectedOptions([\"Heating\"]);\n      }\n      else if (check4bEnergy == \"electrically\")           {updateTransOUT2 =4; EtransOUT2 =Math.ceil( Math.random()*10 );_view.energyTypeOUT2.setSelectedOptions([\"Electrically\"])\n      }\n      else if (check4bEnergy == \"chemically\")             {updateTransOUT2 =5; EtransOUT2 =Math.ceil( Math.random()*10 );_view.energyTypeOUT2.setSelectedOptions([\"Chemically\"])\n      }\n      else{  updateTransOUT2 =0; EtransOUT2 =0;}\n      dragEtransOUT2 =EtransOUT2;\n      }\n    // Read through check 5n6 //\n\n \n     iniEnergiesLst = [iniC, iniE, iniG, iniI, iniK, iniN];\n     finEnergiesLst = [finC, finE, finG, finI, finK, finN];\n     dragEnergiesLst = [dragCY, dragEY, dragGY, dragIY, dragKY, dragNY];\n     dragEnergies2Lst = [dragC2Y, dragE2Y, dragG2Y, dragI2Y, dragK2Y, dragN2Y];\n    for (let i=0; i < iniEnergiesLst.length; i++){  // ID is same as iniTotalEnergy and finTotalEnergy\n      if (iniEnergiesLst[i] == true){\n        iniTotalEnergy[i] =dragEnergiesLst[i] = Math.ceil( Math.random()*10 );\n        //dragEnergiesLst[i] = iniTotalEnergy[i];\n       // alert(dragEnergiesLst[4])\n       // alert(\"dragKY =\"+ dragKY)\n        } // fixed by lookang dragEnergiesLst\n      else if (iniEnergiesLst[i] == false){ \n      iniTotalEnergy[i] =0;\n      dragEnergiesLst[i] = iniTotalEnergy[i];\n      }\n      \n      if (finEnergiesLst[i] == true){\n        finTotalEnergy[i]  = Math.ceil( Math.random()*10 );\n        dragEnergies2Lst[i] = finTotalEnergy[i];\n        } // fixed by lookang dragEnergies2Lst\n      else{ \n      finTotalEnergy[i] =0;\n      dragEnergies2Lst[i] = finTotalEnergy[i];\n      }\n      //update dragYs after loop fix by lookang 20240624\n      dragCY = dragEnergiesLst[0];\n      dragEY = dragEnergiesLst[1]\n      dragGY = dragEnergiesLst[2]\n      dragIY = dragEnergiesLst[3]\n      dragKY = dragEnergiesLst[4];\n      dragNY = dragEnergiesLst[5]\n      dragC2Y = dragEnergies2Lst[0];\n      dragE2Y = dragEnergies2Lst[1]\n      dragG2Y = dragEnergies2Lst[2]\n      dragI2Y = dragEnergies2Lst[3]\n      dragK2Y = dragEnergies2Lst[4];\n      dragN2Y = dragEnergies2Lst[5]\n      \n  \n\n      }\n\n\n    \n    // Read through check 7 //\n   // if (check7a==true){ maxIterations = 5000;    // let it load longer\n    if (check7a==true){ maxIterations;    // let it load longer\n      _update();\n      let equalityEnergies = [finalC, finalE, finalG, finalI, finalK, finalN];\n      for (let i=0; i < equalityEnergies; i++){  // ID is same as finTotalEnergy\n        finTotalEnergy[i] = Math.round( equalityEnergies[i] );\n        }\n      }\n    // Check if all variables meet the criteria\n    try{\n      answers1();\n      loopCount++;\n      if (loopCount >= maxIterations) {throw new Error(\"Maximum \"+maxIterations+\" iteration limit reached, exiting loop.\");}\n      if (updateAnswer ==1)  {alert(\"solution found after \"+loopCount+\" tries\"); sendScore(updateAnswer); break;}\n      } catch (error){alert(\"Did not find a solution after \"+maxIterations+\" tries, Error in generating answer key. Please continue to find the solution by yourself.\");break;}\n\n    }\n  }"
        },
        {
          "Name": "revealSolnlookang",
          "Active": "false",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "function revealSolution() {\n  // Ensure variables are globally accessible\n  updateTransIN = 0;\n  EtransIN = 0;\n  updateTransIN2 = 0;\n  EtransIN2 = 0;\n  updateTransOUT = 0;\n  EtransOUT = 0;\n  updateTransOUT2 = 0;\n  EtransOUT2 = 0;\n\n  // Function to map energy type strings to codes and values\n  function setEnergyTransfer(energyType) {\n    switch (energyType) {\n      case \"\":\n        return { updateTrans: 0, Etrans: 0, selectedOption: \"- Ein\u2081 -\" };\n      case \"through propagation of waves\":\n        return { updateTrans: 1, Etrans: 0, selectedOption: \"Propagation of waves\" };\n      case \"mechanically\":\n        return { updateTrans: 2, Etrans: 0, selectedOption: \"Mechanically\" };\n      case \"through heating\":\n        return { updateTrans: 3, Etrans: 0, selectedOption: \"Heating\" };\n      case \"electrically\":\n        return { updateTrans: 4, Etrans: 0, selectedOption: \"Electrically\" };\n      case \"chemically\":\n        return { updateTrans: 5, Etrans: 0, selectedOption: \"Chemically\" };\n      default:\n        return { updateTrans: 0, Etrans: 0, selectedOption: \"- Ein\u2081 -\" };\n    }\n  }\n\n  // Set energy transfers based on checks and energy types\n  if (check3a) {\n    const energyData = setEnergyTransfer(check3aEnergy);\n    updateTransIN = energyData.updateTrans;\n    EtransIN = 0; // Will assign random value later\n    _view.energyTypeIN.setSelectedOptions([energyData.selectedOption]);\n    dragEtransIN = EtransIN;\n  }\n\n  if (check3b) {\n    const energyData = setEnergyTransfer(check3bEnergy);\n    updateTransIN2 = energyData.updateTrans;\n    EtransIN2 = 0; // Will assign random value later\n    _view.energyTypeIN2.setSelectedOptions([energyData.selectedOption]);\n    dragEtransIN2 = EtransIN2;\n  }\n\n  if (check4a) {\n    const energyData = setEnergyTransfer(check4aEnergy);\n    updateTransOUT = energyData.updateTrans;\n    EtransOUT = 0; // Will assign random value later\n    _view.energyTypeOUT.setSelectedOptions([energyData.selectedOption]);\n    dragEtransOUT = EtransOUT;\n  }\n\n  if (check4b) {\n    const energyData = setEnergyTransfer(check4bEnergy);\n    updateTransOUT2 = energyData.updateTrans;\n    EtransOUT2 = 0; // Will assign random value later\n    _view.energyTypeOUT2.setSelectedOptions([energyData.selectedOption]);\n    dragEtransOUT2 = EtransOUT2;\n  }\n\n  // Initialize energy arrays\n  iniEnergiesLst = [iniC, iniE, iniG, iniI, iniK, iniN];\n  finEnergiesLst = [finC, finE, finG, finI, finK, finN];\n  energyTypes = [\"C\", \"E\", \"G\", \"I\", \"K\", \"N\"];\n\n  // Initialize energy values\n  iniTotalEnergy = [0, 0, 0, 0, 0, 0];\n  finTotalEnergy = [0, 0, 0, 0, 0, 0];\n  dragEnergiesLst = [0, 0, 0, 0, 0, 0];\n  dragEnergies2Lst = [0, 0, 0, 0, 0, 0];\n\n  // Randomly assign initial energies\n  totalIniEnergy = 0;\n  maxEnergyPerStore = 10;\n  iniEnergyStores = [];\n\n  for (let i = 0; i < iniEnergiesLst.length; i++) {\n    if (iniEnergiesLst[i]) {\n      iniEnergyStores.push(i);\n    }\n  }\n\n  // Distribute random energies to initial stores\n  remainingEnergy = 10; // Total available energy to distribute\n  iniEnergyStores.forEach((index, idx) => {\n    if (idx === iniEnergyStores.length - 1) {\n      // Assign remaining energy to last store\n      iniTotalEnergy[index] = remainingEnergy;\n    } else {\n      // Assign random energy between 0 and remainingEnergy\n      let energy = Math.floor(Math.random() * (remainingEnergy + 1));\n      iniTotalEnergy[index] = energy;\n      remainingEnergy -= energy;\n    }\n    dragEnergiesLst[index] = iniTotalEnergy[index];\n    totalIniEnergy += iniTotalEnergy[index];\n  });\n\n  // Randomly assign energy transfers in\n  totalEtransIN = 0;\n  if (updateTransIN || updateTransIN2) {\n    let maxTransferIn = 10;\n    if (updateTransIN && updateTransIN2) {\n      EtransIN = Math.floor(Math.random() * (maxTransferIn + 1));\n      EtransIN2 = maxTransferIn - EtransIN;\n      dragEtransIN = EtransIN;\n      dragEtransIN2 = EtransIN2;\n    } else if (updateTransIN) {\n      EtransIN = Math.floor(Math.random() * (maxTransferIn + 1));\n      dragEtransIN = EtransIN;\n    } else if (updateTransIN2) {\n      EtransIN2 = Math.floor(Math.random() * (maxTransferIn + 1));\n      dragEtransIN2 = EtransIN2;\n    }\n    totalEtransIN = EtransIN + EtransIN2;\n  }\n\n  // Randomly assign energy transfers out\n  totalEtransOUT = 0;\n  if (updateTransOUT || updateTransOUT2) {\n    let maxTransferOut = 10;\n    if (updateTransOUT && updateTransOUT2) {\n      EtransOUT = Math.floor(Math.random() * (maxTransferOut + 1));\n      EtransOUT2 = maxTransferOut - EtransOUT;\n      dragEtransOUT = EtransOUT;\n      dragEtransOUT2 = EtransOUT2;\n    } else if (updateTransOUT) {\n      EtransOUT = Math.floor(Math.random() * (maxTransferOut + 1));\n      dragEtransOUT = EtransOUT;\n    } else if (updateTransOUT2) {\n      EtransOUT2 = Math.floor(Math.random() * (maxTransferOut + 1));\n      dragEtransOUT2 = EtransOUT2;\n    }\n    totalEtransOUT = EtransOUT + EtransOUT2;\n  }\n\n  // Compute total available energy for final energies\n  availableEnergy = totalIniEnergy + totalEtransIN - totalEtransOUT;\n\n  if (availableEnergy < 0 || availableEnergy > 10) {\n    // Adjust energy transfers to keep availableEnergy within 0 to 10\n    alert(\"Unable to find a solution: Energy balance out of bounds.\");\n    return;\n  }\n\n  // Randomly assign final energies\n  totalFinEnergy = 0;\n  finEnergyStores = [];\n\n  for (let i = 0; i < finEnergiesLst.length; i++) {\n    if (finEnergiesLst[i]) {\n      finEnergyStores.push(i);\n    }\n  }\n\n  remainingEnergy = availableEnergy;\n\n  finEnergyStores.forEach((index, idx) => {\n    if (idx === finEnergyStores.length - 1) {\n      // Assign remaining energy to last store\n      finTotalEnergy[index] = remainingEnergy;\n    } else {\n      // Assign random energy between 0 and remainingEnergy\n      let energy = Math.floor(Math.random() * (remainingEnergy + 1));\n      finTotalEnergy[index] = energy;\n      remainingEnergy -= energy;\n    }\n    dragEnergies2Lst[index] = finTotalEnergy[index];\n    totalFinEnergy += finTotalEnergy[index];\n  });\n\n  // Recalculate totals after assignments\n  totalInitialEnergy = totalIniEnergy + totalEtransIN;\n  totalFinalEnergy = totalFinEnergy + totalEtransOUT;\n\n  // Final check for energy conservation\n  if (totalInitialEnergy !== totalFinalEnergy) {\n    alert(\"Energy is not conserved. Adjusting energy transfers to balance.\");\n    let energyDifference = totalInitialEnergy - totalFinalEnergy;\n    if (energyDifference > 0) {\n      // Adjust transfers out\n      if (updateTransOUT) {\n        EtransOUT += energyDifference;\n        if (EtransOUT > 10) EtransOUT = 10;\n        dragEtransOUT = EtransOUT;\n      } else if (updateTransOUT2) {\n        EtransOUT2 += energyDifference;\n        if (EtransOUT2 > 10) EtransOUT2 = 10;\n        dragEtransOUT2 = EtransOUT2;\n      } else {\n        alert(\"Unable to balance energy. No transfers out to adjust.\");\n        return;\n      }\n    } else if (energyDifference < 0) {\n      // Adjust transfers in\n      energyDifference = -energyDifference;\n      if (updateTransIN) {\n        EtransIN += energyDifference;\n        if (EtransIN > 10) EtransIN = 10;\n        dragEtransIN = EtransIN;\n      } else if (updateTransIN2) {\n        EtransIN2 += energyDifference;\n        if (EtransIN2 > 10) EtransIN2 = 10;\n        dragEtransIN2 = EtransIN2;\n      } else {\n        alert(\"Unable to balance energy. No transfers in to adjust.\");\n        return;\n      }\n    }\n    // Update totals after adjustment\n    totalEtransIN = EtransIN + EtransIN2;\n    totalEtransOUT = EtransOUT + EtransOUT2;\n    totalInitialEnergy = totalIniEnergy + totalEtransIN;\n    totalFinalEnergy = totalFinEnergy + totalEtransOUT;\n    if (totalInitialEnergy !== totalFinalEnergy) {\n      alert(\"Energy is still not conserved after adjustments.\");\n      return;\n    }\n  }\n\n  // Ensure all energy values are between 0 and 10\n  const allEnergies = [\n    ...iniTotalEnergy,\n    ...finTotalEnergy,\n    EtransIN,\n    EtransIN2,\n    EtransOUT,\n    EtransOUT2,\n  ];\n  for (const energy of allEnergies) {\n    if (energy < 0 || energy > 10) {\n      alert(\"Energy values must be between 0 and 10.\");\n      return;\n    }\n  }\n\n  // Update drag variables for initial energies\n  dragCY = dragEnergiesLst[0];\n  dragEY = dragEnergiesLst[1];\n  dragGY = dragEnergiesLst[2];\n  dragIY = dragEnergiesLst[3];\n  dragKY = dragEnergiesLst[4];\n  dragNY = dragEnergiesLst[5];\n\n  // Update drag variables for final energies\n  dragC2Y = dragEnergies2Lst[0];\n  dragE2Y = dragEnergies2Lst[1];\n  dragG2Y = dragEnergies2Lst[2];\n  dragI2Y = dragEnergies2Lst[3];\n  dragK2Y = dragEnergies2Lst[4];\n  dragN2Y = dragEnergies2Lst[5];\n\n  // Handle check7a if needed\n  if (check7a === true) {\n    _update();\n    equalityEnergies = [finalC, finalE, finalG, finalI, finalK, finalN];\n    for (let i = 0; i < equalityEnergies.length; i++) {\n      finTotalEnergy[i] = Math.round(equalityEnergies[i]);\n      dragEnergies2Lst[i] = finTotalEnergy[i];\n    }\n  }\n\n  // Debug output before calling answers1()\n  console.log(\"Initial Energies:\", iniTotalEnergy);\n  console.log(\"Final Energies:\", finTotalEnergy);\n  console.log(\"Energy Transfers In:\", EtransIN, EtransIN2);\n  console.log(\"Energy Transfers Out:\", EtransOUT, EtransOUT2);\n  console.log(\"Total Initial Energy:\", totalInitialEnergy);\n  console.log(\"Total Final Energy:\", totalFinalEnergy);\n\n  // Call answers1() once since we have set all variables\n  try {\n    answers1();\n    if (updateAnswer !== 1) {\n      alert(\"Unable to find a solution: answers1() did not update the answer.\");\n    }\n  } catch (error) {\n    alert(\"Error in generating answer key: \" + error.message);\n  }\n}\n"
        },
        {
          "Name": "roundTheLst",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "Modifying elements in list makes easy here",
          "Code": "function roundTheLst(lst){\n  for (let i=0; i<lst.length; i++){\n    lst[i] = Math.round(lst[i]);\n    }\n  return lst\n}\n\nfunction oneTrueLst(lst,element){         // used on interactPrompt lst \n  for (let i=0; i<lst.length; i++){\n    lst[i] = false;\n    if (i==element){  lst[i] = true  };\n    }\n  }\n\nfunction numberedLst(number) {\n  let lst = [];\n\n  // Populate the list with negative numbers if number is negative\n  if (number < 0) {\n    for (let i = -1; i >= number; i--) {\n      lst.push(i);\n    }\n  }\n\n  // Append positive numbers starting from 1 up to the absolute value of the input number\n  for (let i = 0; i < Math.floor(number); i++) {\n    lst.push(i);\n  }\n\n  return lst;\n}\n\n\n/*\nfunction numberedLst(number){          // used in iconsPicts (L)\n  lst = [];\n  for (let i=0; i < Math.floor(number); i++){\n    lst.push(i);\n    }\n  //alert(lst);\n  return lst    // return [0,1,2, ...]\n  }\n*/\nfunction numberedLstFromX(number,X){  // used in iconsPicts (O)\n  lst = numberedLst(number);\n  for (let i=0; i < lst.length; i++){\n    lst[i] = lst[i] + X; \n    }\n  //alert(lst)\n  return lst    // return [X,X+1, ...]\n  }\n  \nfunction allFalseLst(lst){          // used the check7 for checkLst\n  for (let i=0; i<lst.length; i++){\n    if (lst[i] == true){return false}\n    }\n  debuggg += \"\\ninside allFalseLst\"\n  return true\n  }\n  \n/////////////////////////////////////  Function serves to label the\n// specifically for trans_Text (O) //  trans_Text where ID=0 gives \n/////////////////////////////////////  textLst[0] but img otherwise\n// ERROR: (Text != ImageUrl)  \u2192\u2192\u2192 FUNCTION NOT USED, IDEA DECLINED  \u2192\u2192\u2192  just (T\u2081) will do\n\n// :/ HtmlView / transIN_text / Text \u2192 % transIN[updateTransIN] %\n// \u2192 % textToImgLst(transIN, imgIN, updateTransIN) %\nfunction textToImgLst(textLst, imgLst, updateID){  \n  if (updateID==0){return textLst[updateID]}\n  else  {return imgLst[updateID]}\n  }\n"
        },
        {
          "Name": "FileSaver",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EXTERNAL_EDITOR",
          "Comment": "",
          "Code": ""
        },
        {
          "Name": "jszip",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EXTERNAL_EDITOR",
          "Comment": "",
          "Code": ""
        },
        {
          "Name": "import",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "//written by ryan451\n//copy to custom function of ejss\n\n//version 2\n/**\n * @async\n * @function attemptLoadGraph\n * @returns {Promise<object>} Promise resolved: an object representing the data that was loaded\n */\n\nasync function attemptLoadGraph() {\n  const graphResponse = await fetch(\"records.json\");\n  const graphSettings = await graphResponse.json();\n  return graphSettings;\n}\n/*\nUse like this:\n\nattemptLoadGraph().then(function(data) {\n  uiVariable1 = data.uiVariable1;\n  buttonText = data.buttonText;\n  _view.update();\n});\n\n*/"
        },
        {
          "Name": "export",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "async function exportGraph(exportObject, filename=\"export.zip\") {\n  console.log(\"exporting\", exportObject);\n  // Get the zipped export template\n  const exportTemplatePath = \"export-template.zip\";\n  const graphFileName = \"records.json\";\n\n  //const IS_TESTING_EXPORT = true;\n\n  let exportZip;\n  //if (IS_TESTING_EXPORT) {\n   // exportZip = new JSZip();\n  //} else {\n    exportZip = await getZipFromPath(exportTemplatePath);\n  //}\n\n  exportZip.file(graphFileName, JSON.stringify(exportObject));\n\n  exportZip.generateAsync({type: \"blob\"}).then(blob => saveAs(blob, filename));\n}\n\nfunction onGraphExportComplete() {\n  alert(\"Export complete\");\n}\n\nasync function getZipFromPath(path) {\n  return await JSZip.loadAsync(await (await fetch(path)).blob());\n}\n\nfunction saveBlob(blob, filename) {\n  var elem = window.document.createElement(\"a\");\n  var objectUrl = window.URL.createObjectURL(blob);\n  elem.href = objectUrl;\n  elem.download = filename;\n  elem.click();\n  \n  // Cleanup allocated objects to avoid memory leaks\n  // These objects do not get GCed\n  setTimeout(function(elem, objectUrl) {\n    elem.remove();\n    window.URL.revokeObjectURL(objectUrl);\n  }, 1_000, elem, objectUrl);\n}\n"
        },
        {
          "Name": "onFileUpload",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "// onFileUpload\n\nfunction onFileUpload(event) {\n  const file = event.target.files[0]; // Get the selected file\n  if (file && file.type === 'application/json') {\n    const reader = new FileReader();\n    \n    reader.onload = function(e) {\n      try {\n        const data = JSON.parse(e.target.result); // Parse JSON content\n        console.log(data); // Log the contents\n        \n          //alert( \"loading new values\")\n          ////////////////////////////////////////////\n          // data to be loaded into export & import //\n          ////////////////////////////////////////////\n          // Setting: // \n        //   title = data.title; \n        //   systemText2 = data.systemText2;\n        //   initialState2 = data.initialState2;\n        //   finalState2 = data.finalState2;\n        //   remarks2 = data.remarks2;\n        //   show2D = data.show2D;\n        //   show3D = data.show3D;\n        //   revealRadioButton = data.revealRadioButton;\n          \n          \n        //   //check 1\n        //   displayChemical = data.displayChemical;\n        //   displayElastic = data.displayElastic;\n        //   displayGravitational= data.displayGravitational;\n        //   displayInternal= data.displayInternal;\n        //   displayKinetic = data.displayKinetic;\n        //   displayNuclear = data.displayNuclear;\n          \n          \n        //   // check2 - ignoring of energy: //\n        //   isC = data.isC;\n        //   isE = data.isE;\n        //   isG = data.isG;\n        //   isI = data.isI;\n        //   isK = data.isK;\n        //   isN = data.isN;\n        //   ignoreEnergyLst = data.ignoreEnergyLst;\n          \n        //   // check3/4 - Transferable Energy: //\n        //   check3a = data.check3a;  \n        //   check3b = data.check3b;\n        //   check4a = data.check4a;\n        //   check4b = data.check4b;\n          \n        //   check3aEnergy = data.check3aEnergy;\n        //   check3bEnergy = data.check3bEnergy;\n        //   check4aEnergy = data.check4aEnergy;\n        //   check4bEnergy = data.check4bEnergy;\n          \n        //   check3aReason = data.check3aReason;\n        //   check3bReason = data.check3bReason;\n        //   check4aReason = data.check4aReason;\n        //   check4bReason = data.check4bReason;\n          \n        //   // check5 - avail energy initially: //\n        //   iniC = data.iniC;\n        //   iniE = data.iniE;\n        //   iniG = data.iniG;\n        //   iniI = data.iniI;\n        //   iniK = data.iniK;\n        //   iniN = data.iniN;\n          \n        //   // check6 - final state energy: //\n        //   finC = data.finC;\n        //   finE = data.finE;\n        //   finG = data.finG;\n        //   finI = data.finI;\n        //   finK = data.finK;\n        //   finN = data.finN;\n          \n        //   // check7 - formula: //\n        //   check7a = data.check7a;\n        //   finalC = data.finalC;\n        //   finalE = data.finalE;\n        //   finalG = data.finalG;\n        //   finalI = data.finalI;\n        //   finalK = data.finalK;\n        //   finalN = data.finalN;\n        //   passfail = data.passfail;\n        //   inequalityCheckLst = data.inequalityCheckLst;\n        //   userPlay = data.userPlay;\n        \n        \n        \n        \n          properties.forEach(prop => {\n  if (data.hasOwnProperty(prop)) {\n    eval(prop + ' = data[\"' + prop + '\"];');\n    //eval(prop + ' = data[prop];');\n  } else {\n    console.warn(`Property ${prop} is missing in JSON data.`);\n  }\n});\n\n            \n          _view.userCode.setValue(userPlay);\n          runUserCode(\"Error in code, please check.\");\n          \n          // ... to be continued if necessary ...\n          \n          //_view._addInteraction(function(){}  ,\"Q1\",{\"property\":\"value\", \"element\":\"question\"}); // use to detect beginning of Q1\n          //alert( \"add interaction\")\n          \n          _update();\n          //alert( not working if use \"_view._update\")\n      } catch (error) {\n        console.error('Invalid JSON format', error);\n      }\n    };\n\n    reader.onerror = function() {\n      console.error('Error reading file', reader.error);\n    };\n\n    reader.readAsText(file); // Read file as text\n  } else {\n    console.error('Please upload a valid JSON file.');\n  }\n}"
        }
      ]
    },
    "elements": {
      "list": []
    }
  },
  "view": {
    "Tree": [
      {
        "Name": "fullscreen",
        "Type": "Panel",
        "Expanded": "true",
        "Properties": [
          {
            "name": "Width",
            "value": "\"100%\""
          },
          {
            "name": "Font",
            "value": "%font%"
          },
          {
            "name": "Display",
            "value": "\"inlne-block\""
          }
        ],
        "Children": [
          {
            "Name": "answersTOEDIT",
            "Type": "Panel",
            "Expanded": "false",
            "Properties": [
              {
                "name": "CSS",
                "value": "{   \"padding\": \"5px\",\n\"vertical-align\": \"top\"\n}"
              },
              {
                "name": "Background",
                "value": "%editBackgroundColor%"
              },
              {
                "name": "Tooltip",
                "value": "\"change all the text in Grey color on the Master Template and click Download the Simulation\""
              },
              {
                "name": "BorderColor",
                "value": "\"Black\""
              },
              {
                "name": "Html",
                "value": "<p><b> Checks </b> </p>"
              },
              {
                "name": "BorderWidth",
                "value": "2"
              },
              {
                "name": "Width",
                "value": "\"25%\""
              },
              {
                "name": "Font",
                "value": "%font%"
              },
              {
                "name": "Display",
                "value": "editing ?\"inline-block\":\"none\""
              }
            ],
            "Children": [
              {
                "Name": "fileUpload",
                "Type": "FileUpload",
                "Properties": [
                  {
                    "name": "Tooltip",
                    "value": "\"you can find this file in the EJS model\""
                  },
                  {
                    "name": "OnChange",
                    "value": "onFileUpload(event)"
                  },
                  {
                    "name": "Text",
                    "value": "\"records.json FileUpload\""
                  }
                ]
              },
              {
                "Name": "check1",
                "Type": "Panel",
                "Expanded": "true",
                "Properties": [],
                "Children": [
                  {
                    "Name": "check1words",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "TextAlign",
                        "value": "\"left\""
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"Hide Unnecessary Energy Stores:  Identify any energy forms that are not relevant or do not contribute significantly to the understanding of the context. Ensure these irrelevant energy forms or stores are not displayed to avoid confusion or clutter.\""
                      },
                      {
                        "name": "Text",
                        "value": "\"Check 1) What energy stores to show? Hide unnecessary stores\""
                      }
                    ]
                  },
                  {
                    "Name": "panel22",
                    "Type": "Panel",
                    "Expanded": "true",
                    "Properties": [],
                    "Children": [
                      {
                        "Name": "displayChemical",
                        "Type": "CheckBox",
                        "Properties": [
                          {
                            "name": "Checked",
                            "value": "%displayChemical%"
                          },
                          {
                            "name": "OnCheckOff",
                            "value": "displayChemical = false;"
                          },
                          {
                            "name": "OnChange",
                            "value": "isLastEnergyDisplayed();\nupdateVariables();\n"
                          },
                          {
                            "name": "Text",
                            "value": "\"C\""
                          },
                          {
                            "name": "OnCheckOn",
                            "value": "displayChemical = true;"
                          }
                        ]
                      },
                      {
                        "Name": "displayElastic",
                        "Type": "CheckBox",
                        "Properties": [
                          {
                            "name": "Checked",
                            "value": "%displayElastic%"
                          },
                          {
                            "name": "OnCheckOff",
                            "value": "displayElastic = false;"
                          },
                          {
                            "name": "OnChange",
                            "value": "isLastEnergyDisplayed();\nupdateVariables();"
                          },
                          {
                            "name": "Text",
                            "value": "\"E\""
                          },
                          {
                            "name": "OnCheckOn",
                            "value": "displayElastic = true;"
                          }
                        ]
                      },
                      {
                        "Name": "displayGravitational",
                        "Type": "CheckBox",
                        "Properties": [
                          {
                            "name": "Checked",
                            "value": "%displayGravitational%"
                          },
                          {
                            "name": "OnCheckOff",
                            "value": "displayGravitational = false;"
                          },
                          {
                            "name": "OnChange",
                            "value": "isLastEnergyDisplayed();\nupdateVariables();"
                          },
                          {
                            "name": "Text",
                            "value": "\"G\""
                          },
                          {
                            "name": "OnCheckOn",
                            "value": "displayGravitational = true;"
                          }
                        ]
                      },
                      {
                        "Name": "displayInternal",
                        "Type": "CheckBox",
                        "Properties": [
                          {
                            "name": "Checked",
                            "value": "%displayInternal%"
                          },
                          {
                            "name": "OnCheckOff",
                            "value": "displayInternal = false;"
                          },
                          {
                            "name": "OnChange",
                            "value": "isLastEnergyDisplayed();\nupdateVariables();"
                          },
                          {
                            "name": "Text",
                            "value": "\"I\""
                          },
                          {
                            "name": "OnCheckOn",
                            "value": "displayInternal = true;"
                          }
                        ]
                      },
                      {
                        "Name": "displayKinetic",
                        "Type": "CheckBox",
                        "Properties": [
                          {
                            "name": "Checked",
                            "value": "%displayKinetic%"
                          },
                          {
                            "name": "OnCheckOff",
                            "value": "displayKinetic = false;"
                          },
                          {
                            "name": "OnChange",
                            "value": "isLastEnergyDisplayed();\nupdateVariables();"
                          },
                          {
                            "name": "Text",
                            "value": "\"K\""
                          },
                          {
                            "name": "OnCheckOn",
                            "value": "displayKinetic = true;"
                          }
                        ]
                      },
                      {
                        "Name": "displayNuclear",
                        "Type": "CheckBox",
                        "Properties": [
                          {
                            "name": "Checked",
                            "value": "%displayNuclear%"
                          },
                          {
                            "name": "OnCheckOff",
                            "value": "displayNuclear = false;"
                          },
                          {
                            "name": "OnChange",
                            "value": "isLastEnergyDisplayed();\nupdateVariables();"
                          },
                          {
                            "name": "Text",
                            "value": "\"N\""
                          },
                          {
                            "name": "OnCheckOn",
                            "value": "displayNuclear = true;"
                          }
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "check2",
                "Type": "Panel",
                "Expanded": "false",
                "Properties": [
                  {
                    "name": "Tooltip",
                    "value": "\"Some energy may be ignored in check 5 and 6 as it does not affect the system.\""
                  }
                ],
                "Children": [
                  {
                    "Name": "check2words",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "TextAlign",
                        "value": "\"left\""
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"Identify which forms of energy can be non-zero, such as gravitational potential energy (GPE)\""
                      },
                      {
                        "name": "Text",
                        "value": "\"Check 2) What energy can be non-zero, like GPE?\""
                      }
                    ]
                  },
                  {
                    "Name": "panel2",
                    "Type": "Panel",
                    "Expanded": "false",
                    "Properties": [],
                    "Children": [
                      {
                        "Name": "isC",
                        "Type": "CheckBox",
                        "Properties": [
                          {
                            "name": "Checked",
                            "value": "%isC%"
                          },
                          {
                            "name": "OnCheckOff",
                            "value": "isC = false;"
                          },
                          {
                            "name": "Text",
                            "value": "\"C\""
                          },
                          {
                            "name": "Disabled",
                            "value": "physicsonly"
                          },
                          {
                            "name": "OnCheckOn",
                            "value": "isC = true;"
                          },
                          {
                            "name": "Display",
                            "value": "displayChemical? \"inline\":\"none\""
                          }
                        ]
                      },
                      {
                        "Name": "isE",
                        "Type": "CheckBox",
                        "Properties": [
                          {
                            "name": "Checked",
                            "value": "%isE%"
                          },
                          {
                            "name": "OnCheckOff",
                            "value": "isE = false;"
                          },
                          {
                            "name": "Text",
                            "value": "\"E\""
                          },
                          {
                            "name": "Disabled",
                            "value": "physicsonly"
                          },
                          {
                            "name": "OnCheckOn",
                            "value": "isE = true;"
                          },
                          {
                            "name": "Display",
                            "value": "displayElastic? \"inline\":\"none\""
                          }
                        ]
                      },
                      {
                        "Name": "isG",
                        "Type": "CheckBox",
                        "Properties": [
                          {
                            "name": "Checked",
                            "value": "%isG%"
                          },
                          {
                            "name": "OnCheckOff",
                            "value": "isG = false;"
                          },
                          {
                            "name": "Text",
                            "value": "\"G\""
                          },
                          {
                            "name": "Disabled",
                            "value": "physicsonly"
                          },
                          {
                            "name": "OnCheckOn",
                            "value": "isG = true;"
                          },
                          {
                            "name": "Display",
                            "value": "displayGravitational? \"inline\":\"none\""
                          }
                        ]
                      },
                      {
                        "Name": "isI",
                        "Type": "CheckBox",
                        "Properties": [
                          {
                            "name": "Checked",
                            "value": "%isI%"
                          },
                          {
                            "name": "OnCheckOff",
                            "value": "isI = false;"
                          },
                          {
                            "name": "Text",
                            "value": "\"I\""
                          },
                          {
                            "name": "Disabled",
                            "value": "physicsonly"
                          },
                          {
                            "name": "OnCheckOn",
                            "value": "isI = true;"
                          },
                          {
                            "name": "Display",
                            "value": "displayInternal? \"inline\":\"none\""
                          }
                        ]
                      },
                      {
                        "Name": "isK",
                        "Type": "CheckBox",
                        "Properties": [
                          {
                            "name": "Checked",
                            "value": "%isK%"
                          },
                          {
                            "name": "OnCheckOff",
                            "value": "isK = false;"
                          },
                          {
                            "name": "Text",
                            "value": "\"K\""
                          },
                          {
                            "name": "Disabled",
                            "value": "physicsonly"
                          },
                          {
                            "name": "OnCheckOn",
                            "value": "isK = true;"
                          },
                          {
                            "name": "Display",
                            "value": "displayKinetic? \"inline\":\"none\""
                          }
                        ]
                      },
                      {
                        "Name": "isN",
                        "Type": "CheckBox",
                        "Properties": [
                          {
                            "name": "Checked",
                            "value": "%isN%"
                          },
                          {
                            "name": "OnCheckOff",
                            "value": "isN = false;"
                          },
                          {
                            "name": "Text",
                            "value": "\"N\""
                          },
                          {
                            "name": "Disabled",
                            "value": "physicsonly"
                          },
                          {
                            "name": "OnCheckOn",
                            "value": "isN = true;"
                          },
                          {
                            "name": "Display",
                            "value": "displayNuclear? \"inline\":\"none\""
                          }
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "check3",
                "Type": "Panel",
                "Expanded": "false",
                "Properties": [
                  {
                    "name": "Background",
                    "value": "\"rgba(222,222,222,1)\""
                  }
                ],
                "Children": [
                  {
                    "Name": "check3words",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Tooltip",
                        "value": "\"Determine how many types of energy are being transferred in.\""
                      },
                      {
                        "name": "Text",
                        "value": "\"Check 3) How many type(s) of energy is/are transferred IN?\""
                      }
                    ]
                  },
                  {
                    "Name": "zeroIN",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "(check3a==false && check3b==false) ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "\"0\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check3a = false;\ncheck3aEnergy = \"\";\n\ncheck3b = false;\ncheck3bEnergy = \"\";"
                      }
                    ]
                  },
                  {
                    "Name": "oneIN",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "(check3a==true && check3b==false) ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "\"1\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check3a = true;\ncheck3b = false;\ncheck3bEnergy = \"\";\n"
                      }
                    ]
                  },
                  {
                    "Name": "twoIN",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "(check3a==true && check3b==true) ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "\"2\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check3a = true;\ncheck3b = true;\n"
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "check3a",
                "Type": "Panel",
                "Expanded": "false",
                "Properties": [
                  {
                    "name": "Background",
                    "value": "\"rgba(222,222,222,1)\""
                  },
                  {
                    "name": "Display",
                    "value": "check3a ? \"\":\"none\""
                  }
                ],
                "Children": [
                  {
                    "Name": "check3Awords",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Tooltip",
                        "value": "\"Identify which types of energy are being transferred in\""
                      },
                      {
                        "name": "Text",
                        "value": "\"Check 3a) What type of energy is transferred in?\""
                      }
                    ]
                  },
                  {
                    "Name": "isPropagationIN",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check3aEnergy == \"through propagation of waves\" ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "%PropagationofWaves%"
                      },
                      {
                        "name": "Disabled",
                        "value": "check3bEnergy==\"through propagation of waves\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check3aEnergy = \"through propagation of waves\""
                      }
                    ]
                  },
                  {
                    "Name": "isMechanicIN",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check3aEnergy == \"mechanically\" ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "%Mechanically%"
                      },
                      {
                        "name": "Disabled",
                        "value": "check3bEnergy==\"mechanically\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check3aEnergy = \"mechanically\""
                      }
                    ]
                  },
                  {
                    "Name": "isHeatingIN",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check3aEnergy == \"through heating\" ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "\"Heating\""
                      },
                      {
                        "name": "Disabled",
                        "value": "check3bEnergy==\"through heating\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check3aEnergy = \"through heating\""
                      }
                    ]
                  },
                  {
                    "Name": "isElectricIN",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check3aEnergy == \"electrically\" ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "%Electrically%"
                      },
                      {
                        "name": "Disabled",
                        "value": "check3bEnergy==\"electrically\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check3aEnergy= \"electrically\""
                      }
                    ]
                  },
                  {
                    "Name": "isChemicalIN",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check3aEnergy == \"chemically\" ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "physicsonly?\"\":\"Chemically\""
                      },
                      {
                        "name": "Disabled",
                        "value": "check3bEnergy==\"chemically\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check3aEnergy= \"chemically\""
                      },
                      {
                        "name": "Display",
                        "value": "physicsonly?\"none\":\"inline-block\""
                      }
                    ]
                  },
                  {
                    "Name": "check3Areaonss",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Text",
                        "value": "\", due to \""
                      }
                    ]
                  },
                  {
                    "Name": "check3Areason",
                    "Type": "TextField",
                    "Properties": [
                      {
                        "name": "Tooltip",
                        "value": "\"Reasoning for type of energy being transfered.\""
                      },
                      {
                        "name": "Value",
                        "value": "%check3aReason%"
                      },
                      {
                        "name": "Height",
                        "value": "\"2vh\""
                      },
                      {
                        "name": "Width",
                        "value": "\"90%\""
                      },
                      {
                        "name": "Font",
                        "value": "%font%"
                      },
                      {
                        "name": "Display",
                        "value": "\"inline\""
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "check3b",
                "Type": "Panel",
                "Expanded": "false",
                "Properties": [
                  {
                    "name": "Background",
                    "value": "\"rgba(222,222,222,1)\""
                  },
                  {
                    "name": "Display",
                    "value": "check3b ? \"\":\"none\""
                  }
                ],
                "Children": [
                  {
                    "Name": "check3Bwords",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Text",
                        "value": "\"Check 3b) What type of energy is transferred in?\""
                      }
                    ]
                  },
                  {
                    "Name": "isPropagationIN2",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check3bEnergy == \"through propagation of waves\" ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "%PropagationofWaves%"
                      },
                      {
                        "name": "Disabled",
                        "value": "check3aEnergy==\"through propagation of waves\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check3bEnergy = \"through propagation of waves\""
                      }
                    ]
                  },
                  {
                    "Name": "isMechanicIN2",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check3bEnergy == \"mechanically\" ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "%Mechanically%"
                      },
                      {
                        "name": "Disabled",
                        "value": "check3aEnergy==\"mechanically\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check3bEnergy = \"mechanically\""
                      }
                    ]
                  },
                  {
                    "Name": "isHeatingIN2",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check3bEnergy == \"through heating\" ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "\"Heating\""
                      },
                      {
                        "name": "Disabled",
                        "value": "check3aEnergy==\"through heating\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check3bEnergy = \"through heating\""
                      }
                    ]
                  },
                  {
                    "Name": "isElectricIN2",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "(check3b && check3bEnergy!=\"electrically\") ? false:true"
                      },
                      {
                        "name": "Text",
                        "value": "%Electrically%"
                      },
                      {
                        "name": "Disabled",
                        "value": "check3aEnergy==\"electrically\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check3bEnergy = \"electrically\"\n//(check3aEnergy==\"electrically\") ?\"true\":\"false\"\n"
                      }
                    ]
                  },
                  {
                    "Name": "isChemicalIN2",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "(check3b && check3bEnergy!=\"chemically\") ? false:true"
                      },
                      {
                        "name": "Text",
                        "value": "physicsonly?\"\":\"Chemically\""
                      },
                      {
                        "name": "Disabled",
                        "value": "check3aEnergy==\"chemically\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check3bEnergy = \"chemically\"\n//(check3aEnergy==\"electrically\") ?\"true\":\"false\"\n"
                      },
                      {
                        "name": "Display",
                        "value": "physicsonly?\"none\":\"inline-block\""
                      }
                    ]
                  },
                  {
                    "Name": "check3Areaonss2",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Text",
                        "value": "\", due to \""
                      }
                    ]
                  },
                  {
                    "Name": "check3Breason",
                    "Type": "TextField",
                    "Properties": [
                      {
                        "name": "Tooltip",
                        "value": "\"Reasoning for type of energy being transfered.\""
                      },
                      {
                        "name": "Value",
                        "value": "%check3bReason%"
                      },
                      {
                        "name": "Height",
                        "value": "\"2vh\""
                      },
                      {
                        "name": "Width",
                        "value": "\"90%\""
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      },
                      {
                        "name": "Display",
                        "value": "\"inline\""
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "check4",
                "Type": "Panel",
                "Expanded": "false",
                "Properties": [],
                "Children": [
                  {
                    "Name": "check4words",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Tooltip",
                        "value": "\"Determine how many types of energy are being transferred out\""
                      },
                      {
                        "name": "Text",
                        "value": "\"Check 4) How many type(s) of energy is/are transferred OUT?\""
                      }
                    ]
                  },
                  {
                    "Name": "zeroOUT",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "(check4a==false && check4b==false) ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "\"0\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check4a = false;\ncheck4aEnergy = \"\";\ncheck4b = false;\ncheck4bEnergy = \"\";\n"
                      }
                    ]
                  },
                  {
                    "Name": "oneOUT",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "(check4a==true && check4b==false) ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "\"1\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check4a = true;\ncheck4b = false;\ncheck4bEnergy = \"\";\n"
                      }
                    ]
                  },
                  {
                    "Name": "twoOUT",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "(check4a==true && check4b==true) ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "\"2\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check4a = true;\ncheck4b = true;\n"
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "check4a",
                "Type": "Panel",
                "Expanded": "false",
                "Properties": [
                  {
                    "name": "Display",
                    "value": "check4a ? \"\":\"none\""
                  }
                ],
                "Children": [
                  {
                    "Name": "check4Awords",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Text",
                        "value": "\"Check 4a) What type of energy is transferred out?\""
                      }
                    ]
                  },
                  {
                    "Name": "isPropagationOUT",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check4aEnergy == \"through propagation of waves\" ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "%PropagationofWaves%"
                      },
                      {
                        "name": "Disabled",
                        "value": "check4bEnergy==\"through propagation of waves\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check4aEnergy = \"through propagation of waves\""
                      }
                    ]
                  },
                  {
                    "Name": "isMechanicOUT",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check4aEnergy == \"mechanically\" ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "%Mechanically%"
                      },
                      {
                        "name": "Disabled",
                        "value": "check4bEnergy==\"mechanically\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check4aEnergy = \"mechanically\""
                      }
                    ]
                  },
                  {
                    "Name": "isHeatingOUT",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check4aEnergy == \"through heating\" ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "\"Heating\""
                      },
                      {
                        "name": "Disabled",
                        "value": "check4bEnergy==\"through heating\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check4aEnergy = \"through heating\""
                      }
                    ]
                  },
                  {
                    "Name": "isElectricOUT",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check4aEnergy == \"electrically\" ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "%Electrically%"
                      },
                      {
                        "name": "Disabled",
                        "value": "check4bEnergy==\"electrically\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check4aEnergy = \"electrically\""
                      }
                    ]
                  },
                  {
                    "Name": "isChemicalOUT",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check4aEnergy == \"chemically\" ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "physicsonly?\"\":\"Chemically\""
                      },
                      {
                        "name": "Disabled",
                        "value": "check4bEnergy==\"chemically\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check4aEnergy = \"chemically\""
                      },
                      {
                        "name": "Display",
                        "value": "physicsonly?\"none\":\"inline-block\""
                      }
                    ]
                  },
                  {
                    "Name": "check3Areaonss3",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Text",
                        "value": "\", due to \""
                      }
                    ]
                  },
                  {
                    "Name": "check4Areason",
                    "Type": "TextField",
                    "Properties": [
                      {
                        "name": "Tooltip",
                        "value": "\"Reasoning for type of energy being transfered.\""
                      },
                      {
                        "name": "Value",
                        "value": "%check4aReason%"
                      },
                      {
                        "name": "Height",
                        "value": "\"2vh\""
                      },
                      {
                        "name": "Width",
                        "value": "\"90%\""
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      },
                      {
                        "name": "Display",
                        "value": "\"inline\""
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "check4b",
                "Type": "Panel",
                "Expanded": "false",
                "Properties": [
                  {
                    "name": "Display",
                    "value": "check4b ? \"\":\"none\""
                  }
                ],
                "Children": [
                  {
                    "Name": "check4Bwords",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Text",
                        "value": "\"Check 4b) What type of energy is transferred out?\""
                      }
                    ]
                  },
                  {
                    "Name": "isPropagationOUT2",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check4bEnergy == \"through propagation of waves\" ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "%PropagationofWaves%"
                      },
                      {
                        "name": "Disabled",
                        "value": "check4aEnergy==\"through propagation of waves\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check4bEnergy = \"through propagation of waves\""
                      }
                    ]
                  },
                  {
                    "Name": "isMechanicOUT2",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check4bEnergy == \"mechanically\" ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "%Mechanically%"
                      },
                      {
                        "name": "Disabled",
                        "value": "check4aEnergy==\"mechanically\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check4bEnergy = \"mechanically\""
                      }
                    ]
                  },
                  {
                    "Name": "isHeatingOUT2",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check4bEnergy == \"through heating\" ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "\"Heating\""
                      },
                      {
                        "name": "Disabled",
                        "value": "check4aEnergy==\"through heating\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check4bEnergy = \"through heating\""
                      }
                    ]
                  },
                  {
                    "Name": "isElectricOUT2",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "(check4b && check4bEnergy!=\"electrically\") ? false:true"
                      },
                      {
                        "name": "Text",
                        "value": "%Electrically%"
                      },
                      {
                        "name": "Disabled",
                        "value": "check4aEnergy==\"electrically\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check4bEnergy = \"electrically\""
                      }
                    ]
                  },
                  {
                    "Name": "isChemicalOUT2",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check4bEnergy == \"chemically\" ? true:false"
                      },
                      {
                        "name": "Text",
                        "value": "physicsonly?\"\":\"Chemically\""
                      },
                      {
                        "name": "Disabled",
                        "value": "check4aEnergy==\"chemically\" ?true:false"
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check4bEnergy = \"chemically\""
                      },
                      {
                        "name": "Display",
                        "value": "physicsonly?\"none\":\"inline-block\""
                      }
                    ]
                  },
                  {
                    "Name": "check3Areaonss32",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Text",
                        "value": "\", due to \""
                      }
                    ]
                  },
                  {
                    "Name": "check4Breason",
                    "Type": "TextField",
                    "Properties": [
                      {
                        "name": "Tooltip",
                        "value": "\"Reasoning for type of energy being transfered.\""
                      },
                      {
                        "name": "Value",
                        "value": "%check4bReason%"
                      },
                      {
                        "name": "Height",
                        "value": "\"2vh\""
                      },
                      {
                        "name": "Width",
                        "value": "\"90%\""
                      },
                      {
                        "name": "Display",
                        "value": "\"inline\""
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "check5",
                "Type": "Panel",
                "Expanded": "false",
                "Properties": [
                  {
                    "name": "Background",
                    "value": "\"rgba(222,222,222,1)\""
                  }
                ],
                "Children": [
                  {
                    "Name": "check2words2",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Tooltip",
                        "value": "\"Identify the types of energy present in the initial state.\""
                      },
                      {
                        "name": "Text",
                        "value": "\"Check 5) What energy(ies) is/are present, ie.>0 in the INITIAL state?\""
                      }
                    ]
                  },
                  {
                    "Name": "iniC",
                    "Type": "CheckBox",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "%iniC%"
                      },
                      {
                        "name": "OnCheckOff",
                        "value": "iniC = false;"
                      },
                      {
                        "name": "Text",
                        "value": "\"C\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "iniC = true;"
                      },
                      {
                        "name": "Display",
                        "value": "displayChemical? \"inline\":\"none\""
                      }
                    ]
                  },
                  {
                    "Name": "iniE",
                    "Type": "CheckBox",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "%iniE%"
                      },
                      {
                        "name": "OnCheckOff",
                        "value": "iniE = false;"
                      },
                      {
                        "name": "Text",
                        "value": "\"E\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "iniE = true;"
                      },
                      {
                        "name": "Display",
                        "value": "displayElastic? \"inline\":\"none\""
                      }
                    ]
                  },
                  {
                    "Name": "iniG",
                    "Type": "CheckBox",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "%iniG%"
                      },
                      {
                        "name": "OnCheckOff",
                        "value": "iniG = false;"
                      },
                      {
                        "name": "Text",
                        "value": "\"G\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "iniG = true;"
                      },
                      {
                        "name": "Display",
                        "value": "displayGravitational? \"inline\":\"none\""
                      }
                    ]
                  },
                  {
                    "Name": "iniI",
                    "Type": "CheckBox",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "%iniI%"
                      },
                      {
                        "name": "OnCheckOff",
                        "value": "iniI = false;"
                      },
                      {
                        "name": "Text",
                        "value": "\"I\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "iniI = true;"
                      },
                      {
                        "name": "Display",
                        "value": "displayInternal? \"inline\":\"none\""
                      }
                    ]
                  },
                  {
                    "Name": "iniK",
                    "Type": "CheckBox",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "%iniK%"
                      },
                      {
                        "name": "OnCheckOff",
                        "value": "iniK = false;"
                      },
                      {
                        "name": "Text",
                        "value": "\"K\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "iniK = true;"
                      },
                      {
                        "name": "Display",
                        "value": "displayKinetic? \"inline\":\"none\""
                      }
                    ]
                  },
                  {
                    "Name": "iniN",
                    "Type": "CheckBox",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "%iniN%"
                      },
                      {
                        "name": "OnCheckOff",
                        "value": "iniN = false;"
                      },
                      {
                        "name": "Text",
                        "value": "\"N\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "iniN = true;"
                      },
                      {
                        "name": "Display",
                        "value": "displayNuclear? \"inline\":\"none\""
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "check6",
                "Type": "Panel",
                "Expanded": "false",
                "Properties": [],
                "Children": [
                  {
                    "Name": "check2words22",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Text",
                        "value": "\"Check 6) What energy(ies) is/are present, ie>0 in the FINAL state?\""
                      }
                    ]
                  },
                  {
                    "Name": "finC",
                    "Type": "CheckBox",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "%finC%"
                      },
                      {
                        "name": "OnCheckOff",
                        "value": "finC = false;"
                      },
                      {
                        "name": "Text",
                        "value": "\"C\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "finC = true;"
                      },
                      {
                        "name": "Display",
                        "value": "displayChemical? \"inline\":\"none\""
                      }
                    ]
                  },
                  {
                    "Name": "finE",
                    "Type": "CheckBox",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "%finE%"
                      },
                      {
                        "name": "OnCheckOff",
                        "value": "finE = false;"
                      },
                      {
                        "name": "Text",
                        "value": "\"E\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "finE = true;"
                      },
                      {
                        "name": "Display",
                        "value": "displayElastic? \"inline\":\"none\""
                      }
                    ]
                  },
                  {
                    "Name": "finG",
                    "Type": "CheckBox",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "%finG%"
                      },
                      {
                        "name": "OnCheckOff",
                        "value": "finG = false;"
                      },
                      {
                        "name": "Text",
                        "value": "\"G\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "finG = true;"
                      },
                      {
                        "name": "Display",
                        "value": "displayGravitational? \"inline\":\"none\""
                      }
                    ]
                  },
                  {
                    "Name": "finI",
                    "Type": "CheckBox",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "%finI%"
                      },
                      {
                        "name": "OnCheckOff",
                        "value": "finI = false;"
                      },
                      {
                        "name": "Text",
                        "value": "\"I\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "finI = true;"
                      },
                      {
                        "name": "Display",
                        "value": "displayInternal? \"inline\":\"none\""
                      }
                    ]
                  },
                  {
                    "Name": "finK",
                    "Type": "CheckBox",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "%finK%"
                      },
                      {
                        "name": "OnCheckOff",
                        "value": "finK = false;"
                      },
                      {
                        "name": "Text",
                        "value": "\"K\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "finK = true;"
                      },
                      {
                        "name": "Display",
                        "value": "displayKinetic? \"inline\":\"none\""
                      }
                    ]
                  },
                  {
                    "Name": "finN",
                    "Type": "CheckBox",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "%finN%"
                      },
                      {
                        "name": "OnCheckOff",
                        "value": "finN = false;"
                      },
                      {
                        "name": "Text",
                        "value": "\"N\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "finN = true;"
                      },
                      {
                        "name": "Display",
                        "value": "displayNuclear? \"inline\":\"none\""
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "check7_conditions",
                "Type": "Panel",
                "Expanded": "true",
                "Properties": [
                  {
                    "name": "Background",
                    "value": "\"rgba(222,222,222,1)\""
                  }
                ],
                "Children": [
                  {
                    "Name": "check7words",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Text",
                        "value": "\"Check 7) Code other conditions?\""
                      },
                      {
                        "name": "OnClick",
                        "value": "// (<, >, 2\u00d7=, =2\u00d7)"
                      }
                    ]
                  },
                  {
                    "Name": "No",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "!check7a"
                      },
                      {
                        "name": "Text",
                        "value": "\"No\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check7a = false;\n"
                      }
                    ]
                  },
                  {
                    "Name": "Yes",
                    "Type": "RadioButton",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "check7a"
                      },
                      {
                        "name": "Text",
                        "value": "\"Yes\""
                      },
                      {
                        "name": "OnCheckOn",
                        "value": "check7a = true;"
                      }
                    ]
                  },
                  {
                    "Name": "runCodeButton",
                    "Type": "Button",
                    "Properties": [
                      {
                        "name": "Tooltip",
                        "value": "\"Please check your code.\""
                      },
                      {
                        "name": "TextAlign",
                        "value": "\"center\""
                      },
                      {
                        "name": "Foreground",
                        "value": "\"rgba(0,192,192,1)\""
                      },
                      {
                        "name": "Text",
                        "value": "\"\u2713 Apply Code\""
                      },
                      {
                        "name": "OnClick",
                        "value": "runUserCode(\"Error in code, please check.\\nRefresh the page if you need to restart.\");\n"
                      },
                      {
                        "name": "Display",
                        "value": "check7a ?\"inline-block\":\"none\""
                      }
                    ]
                  },
                  {
                    "Name": "check7a",
                    "Type": "Panel",
                    "Expanded": "true",
                    "Properties": [
                      {
                        "name": "Display",
                        "value": "check7a ?\"\":\"none\""
                      }
                    ],
                    "Children": [
                      {
                        "Name": "userCode",
                        "Type": "TextArea",
                        "Properties": [
                          {
                            "name": "OnChange",
                            "value": "runUserCode(\"Error in code, please check.\");\n\n///////////////\n// REFERENCE //\n///////////////\n/*\nuserPlay = _view.autoplayTextAreaMgeneral.getValue();\n try {\n eval(userPlay);\n //xgeneral=numeric.dot(matrix_invert(Mgeneral),bgeneral);\ndet(M);\n}\ncatch(error) {\n  _tools.showOkCancelDialog(\"you can define your own variables. There should be an output for the solution I, or that could be some error in code, try again!\");\n  }\n*/\n"
                          },
                          {
                            "name": "Height",
                            "value": "\"30vh\""
                          },
                          {
                            "name": "Width",
                            "value": "\"90%\""
                          }
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "download",
                "Type": "Panel",
                "Expanded": "true",
                "Properties": [],
                "Children": [
                  {
                    "Name": "downloadButton",
                    "Type": "Button",
                    "Properties": [
                      {
                        "name": "Tooltip",
                        "value": "\"only works on server\""
                      },
                      {
                        "name": "Text",
                        "value": "\"\u230a\u21a7\u230b Download the simulation\""
                      },
                      {
                        "name": "OnClick",
                        "value": "var records = {};\n\n////////////////////////////////////////////\n// data to be loaded into export & import //\n////////////////////////////////////////////\n// Setting:\n\n// Assign variables to records object\nproperties.forEach(prop => {\n    records[prop] = eval(prop);\n});\n\nexportGraph(records).then(onGraphExportComplete);\n\n\n/*\nrecords['title'] = title\nrecords['systemText2'] = systemText2\nrecords['initialState2'] = initialState2\nrecords['finalState2'] = finalState2\nrecords['remarks2'] = remarks2\nrecords['show2D']= show2D //lookang\nrecords['show3D']= show3D //lookang\nrecords['revealRadioButton'] = revealRadioButton //lookang\n\n//check 1 fixed by lookang 20240624\nrecords['displayChemical'] = displayChemical\nrecords['displayElastic'] = displayElastic\nrecords['displayGravitational'] = displayGravitational\nrecords['displayInternal'] = displayInternal\nrecords['displayKinetic'] = displayKinetic\nrecords['displayNuclear'] = displayNuclear\n\n\n// check2 - ignoring of energy: //\nrecords['isC'] = isC\nrecords['isE'] = isE\nrecords['isG'] = isG\nrecords['isI'] = isI\nrecords['isK'] = isK\nrecords['isN'] = isN\nrecords['ignoreEnergyLst'] = ignoreEnergyLst\n\n// check3/4 - Transferable Energy: //\nrecords['check3a'] = check3a\nrecords['check3b'] = check3b\nrecords['check4a'] = check4a\nrecords['check4b'] = check4b\n\nrecords['check3aEnergy'] = check3aEnergy\nrecords['check3bEnergy'] = check3bEnergy\nrecords['check4aEnergy'] = check4aEnergy\nrecords['check4bEnergy'] = check4bEnergy\n\nrecords['check3aReason'] = check3aReason\nrecords['check3bReason'] = check3bReason\nrecords['check4aReason'] = check4aReason\nrecords['check4bReason'] = check4bReason\n\n// check5 - initial state energy: //\nrecords['iniC'] = iniC\nrecords['iniE'] = iniE\nrecords['iniG'] = iniG\nrecords['iniI'] = iniI\nrecords['iniK'] = iniK\nrecords['iniN'] = iniN\n\n// check6 - final state energy: //\nrecords['finC'] = finC\nrecords['finE'] = finE\nrecords['finG'] = finG\nrecords['finI'] = finI\nrecords['finK'] = finK\nrecords['finN'] = finN\n\n// check7 - formula: //\nrecords['check7a'] = check7a\nrecords['finalC'] = finalC\nrecords['finalE'] = finalE\nrecords['finalG'] = finalG\nrecords['finalI'] = finalI\nrecords['finalK'] = finalK\nrecords['finalN'] = finalN\nrecords['passfail'] = passfail\nrecords['inequalityCheckLst'] = inequalityCheckLst\nrecords['userPlay'] = userPlay\n*/"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "Name": "masterPanel",
            "Type": "Panel",
            "Expanded": "true",
            "Properties": [
              {
                "name": "Width",
                "value": "editing ?\"65%\":\"100%\""
              },
              {
                "name": "Display",
                "value": "\"inline-block\""
              }
            ],
            "Children": [
              {
                "Name": "setting",
                "Type": "Panel",
                "Expanded": "true",
                "Properties": [
                  {
                    "name": "Width",
                    "value": "\"100%\""
                  },
                  {
                    "name": "Font",
                    "value": "%font%"
                  }
                ],
                "Children": [
                  {
                    "Name": "Titlepanel2",
                    "Type": "Panel",
                    "Expanded": "true",
                    "Properties": [
                      {
                        "name": "Width",
                        "value": "\"100%\""
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      }
                    ],
                    "Children": [
                      {
                        "Name": "MAster",
                        "Type": "Label",
                        "Properties": [
                          {
                            "name": "Text",
                            "value": "editing?\"Master Template for all LOL diagrams\":title"
                          },
                          {
                            "name": "Display",
                            "value": "\"none\""
                          }
                        ]
                      },
                      {
                        "Name": "title3_bold",
                        "Type": "Label",
                        "Properties": [
                          {
                            "name": "TextAlign",
                            "value": "\"left\""
                          },
                          {
                            "name": "Text",
                            "value": "\"<b>Title:</b>\""
                          },
                          {
                            "name": "Display",
                            "value": "editing ?\"inline-block\":\"none\""
                          }
                        ]
                      },
                      {
                        "Name": "title",
                        "Type": "Label",
                        "Properties": [
                          {
                            "name": "Text",
                            "value": "%title%"
                          },
                          {
                            "name": "Width",
                            "value": "\"50%\""
                          },
                          {
                            "name": "Display",
                            "value": "editing ?\"none\":\"inline-block\""
                          }
                        ]
                      },
                      {
                        "Name": "title2",
                        "Type": "TextField",
                        "Properties": [
                          {
                            "name": "Background",
                            "value": "%editBackgroundColor%"
                          },
                          {
                            "name": "Value",
                            "value": "%title%"
                          },
                          {
                            "name": "Width",
                            "value": "\"30%\""
                          },
                          {
                            "name": "Font",
                            "value": "%font%"
                          },
                          {
                            "name": "Display",
                            "value": "editing ?\"inline-block\":\"none\""
                          }
                        ]
                      },
                      {
                        "Name": "showNone",
                        "Type": "RadioButton",
                        "Properties": [
                          {
                            "name": "Checked",
                            "value": "false"
                          },
                          {
                            "name": "Background",
                            "value": "\"Pink\""
                          },
                          {
                            "name": "Text",
                            "value": "\"Show Bar\""
                          },
                          {
                            "name": "OnCheckOn",
                            "value": "show2D = false;\nshow3D = false;\nenergyColour=\"rgba(0,200,255,1.0)\";"
                          },
                          {
                            "name": "Display",
                            "value": "editing?\"inline-block\":\"none\""
                          }
                        ]
                      },
                      {
                        "Name": "show2D",
                        "Type": "RadioButton",
                        "Properties": [
                          {
                            "name": "Checked",
                            "value": "show2D"
                          },
                          {
                            "name": "OnCheckOff",
                            "value": "/*\nshow2D = false;\nshow3D = true;\n*/"
                          },
                          {
                            "name": "Background",
                            "value": "\"Pink\""
                          },
                          {
                            "name": "Text",
                            "value": "\"Show Squares\""
                          },
                          {
                            "name": "OnCheckOn",
                            "value": "show2D = true;\nshow3D = false;\nenergyColour=\"rgba(0,200,255,1.0)\";"
                          },
                          {
                            "name": "Display",
                            "value": "editing?\"inline-block\":\"none\""
                          }
                        ]
                      },
                      {
                        "Name": "show3D",
                        "Type": "RadioButton",
                        "Properties": [
                          {
                            "name": "Checked",
                            "value": "show3D"
                          },
                          {
                            "name": "OnCheckOff",
                            "value": "/*\nshow3D = false;\nshow2D = true;\n*/"
                          },
                          {
                            "name": "Background",
                            "value": "\"Pink\""
                          },
                          {
                            "name": "Text",
                            "value": "\"Show Cubes\""
                          },
                          {
                            "name": "OnCheckOn",
                            "value": "show3D = true;\nshow2D = false;\n//energyColour = \"White\";\nenergyColour=\"rgba(255,150,0,1.0)\";  // orange\n"
                          },
                          {
                            "name": "Display",
                            "value": "editing?\"inline-block\":\"none\""
                          }
                        ]
                      },
                      {
                        "Name": "scenarios",
                        "Type": "ComboBox",
                        "Properties": [
                          {
                            "name": "Options",
                            "value": "%versions%"
                          },
                          {
                            "name": "OnChange",
                            "value": "// versions = [\"Blank Version\",  \"Scenario 1\",  \"---To Add On---\"]\nvar opts = _view.scenarios.getProperty(\"SelectedOptions\");  // array of options\nvar option = (opts.length > 0)? opts[0]:\"\"; // selected option \n    \n// use option == \"\"\n\nif (option==\"Blank Version\"){\n  editing = true;\n  }\n  \nif (option==\"Scenario 1\"){\n  editing = false;\n  }\n"
                          },
                          {
                            "name": "Display",
                            "value": "\"none\""
                          }
                        ]
                      },
                      {
                        "Name": "showAnswer",
                        "Type": "CheckBox",
                        "Properties": [
                          {
                            "name": "Checked",
                            "value": "true"
                          },
                          {
                            "name": "OnCheckOff",
                            "value": "showAnswer = false;"
                          },
                          {
                            "name": "Background",
                            "value": "\"Pink\""
                          },
                          {
                            "name": "Text",
                            "value": "\"Show Answer\""
                          },
                          {
                            "name": "Disabled",
                            "value": "editing"
                          },
                          {
                            "name": "OnCheckOn",
                            "value": "showAnswer = true;\n\n\n\n"
                          },
                          {
                            "name": "Display",
                            "value": "\"none\""
                          }
                        ]
                      },
                      {
                        "Name": "EditAnswer",
                        "Type": "TwoStateButton",
                        "Properties": [
                          {
                            "name": "OffClick",
                            "value": "editing = false"
                          },
                          {
                            "name": "TextOn",
                            "value": "\"\u270e Edit Answer Key\""
                          },
                          {
                            "name": "State",
                            "value": "!editing"
                          },
                          {
                            "name": "TextOff",
                            "value": "\"\u2713 Save Edits\""
                          },
                          {
                            "name": "OnClick",
                            "value": "editing = true\nalert(\"Scroll down to see the conditions to get the answers!\")\n"
                          },
                          {
                            "name": "Display",
                            "value": "\"none\""
                          }
                        ]
                      },
                      {
                        "Name": "checkBox",
                        "Type": "CheckBox",
                        "Properties": [
                          {
                            "name": "Checked",
                            "value": "revealRadioButton"
                          },
                          {
                            "name": "Background",
                            "value": "%editBackgroundColor%"
                          },
                          {
                            "name": "Display",
                            "value": "editing?\"inline-block\":\"none\""
                          }
                        ]
                      },
                      {
                        "Name": "revealBtn",
                        "Type": "Button",
                        "Properties": [
                          {
                            "name": "Tooltip",
                            "value": "\"Reveal a possible solution\""
                          },
                          {
                            "name": "Text",
                            "value": "\"Reveal \ud83d\udcd6\""
                          },
                          {
                            "name": "OnClick",
                            "value": "EJSS_INTERFACE.BoxPanel.showOkCancelDialog(\"\u26a0\ufe0fWarning! Your work will be erased and a possible solution will be shown.\u26a0\ufe0fSimulation loads longer when there are too many of external conditions applied.\u26a0\ufe0fProceed or Cancel?\",\n  function()  {// User click OK  \n    revealSolution();\n    _update();\n    },\n\n  function(){  // User click Cancel\n    // Nothing happens :)\n    });\n\n\n//revealSolution();"
                          },
                          {
                            "name": "Display",
                            "value": "revealRadioButton?\"inline-block\":\"none\""
                          }
                        ]
                      },
                      {
                        "Name": "hintButton",
                        "Type": "Button",
                        "Properties": [
                          {
                            "name": "Background",
                            "value": "\"Pink\""
                          },
                          {
                            "name": "Text",
                            "value": "\"Hint \ud83d\udd0d\""
                          },
                          {
                            "name": "OnPress",
                            "value": "alert(\"Hint1:\\nConsider the principle of conservation of energy.\");"
                          }
                        ]
                      },
                      {
                        "Name": "xAPIbutton",
                        "Type": "Button",
                        "Properties": [
                          {
                            "name": "Text",
                            "value": "\"xAPIbutton\""
                          },
                          {
                            "name": "OnRelease",
                            "value": "sendState(1)"
                          },
                          {
                            "name": "Display",
                            "value": "\"none\""
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "Name": "systemWords",
                    "Type": "Panel",
                    "Expanded": "true",
                    "Properties": [
                      {
                        "name": "Width",
                        "value": "\"100%\""
                      },
                      {
                        "name": "Display",
                        "value": "\"inline-block\""
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      }
                    ],
                    "Children": [
                      {
                        "Name": "system_panel",
                        "Type": "Panel",
                        "Expanded": "true",
                        "Properties": [
                          {
                            "name": "CSS",
                            "value": "{\"float\": \"left\"}"
                          },
                          {
                            "name": "BorderColor",
                            "value": "\"rgba(225,0,0,0.5)\""
                          },
                          {
                            "name": "BorderWidth",
                            "value": "2"
                          },
                          {
                            "name": "Width",
                            "value": "\"45%\""
                          },
                          {
                            "name": "Display",
                            "value": "\"inline-block\""
                          }
                        ],
                        "Children": [
                          {
                            "Name": "systemBolded",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "TextAlign",
                                "value": "\"left\""
                              },
                              {
                                "name": "Text",
                                "value": "systemText"
                              },
                              {
                                "name": "Display",
                                "value": "\"inline-block\""
                              },
                              {
                                "name": "Font",
                                "value": "setResponsiveFontSize()"
                              }
                            ]
                          },
                          {
                            "Name": "system2",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "TextAlign",
                                "value": "\"left\""
                              },
                              {
                                "name": "Text",
                                "value": "systemText2"
                              },
                              {
                                "name": "Display",
                                "value": "editing ?\"none\":\"inline-block\""
                              },
                              {
                                "name": "Font",
                                "value": "setResponsiveFontSize()"
                              }
                            ]
                          },
                          {
                            "Name": "system_textField",
                            "Type": "TextField",
                            "Properties": [
                              {
                                "name": "Background",
                                "value": "%editBackgroundColor%"
                              },
                              {
                                "name": "Tooltip",
                                "value": "\"System\""
                              },
                              {
                                "name": "Value",
                                "value": "%systemText2%"
                              },
                              {
                                "name": "Height",
                                "value": "\"2vh\""
                              },
                              {
                                "name": "Width",
                                "value": "\"70%\""
                              },
                              {
                                "name": "Font",
                                "value": "%font%"
                              },
                              {
                                "name": "Display",
                                "value": "\"none\""
                              }
                            ]
                          },
                          {
                            "Name": "systemtextArea",
                            "Type": "TextArea",
                            "Properties": [
                              {
                                "name": "Background",
                                "value": "%editBackgroundColor%"
                              },
                              {
                                "name": "Tooltip",
                                "value": "\"System\""
                              },
                              {
                                "name": "Value",
                                "value": "%systemText2%"
                              },
                              {
                                "name": "Width",
                                "value": "\"70%\""
                              },
                              {
                                "name": "Font",
                                "value": "%font%"
                              },
                              {
                                "name": "Display",
                                "value": "editing ?\"inline-block\":\"none\""
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "Name": "remarks_panel",
                        "Type": "Panel",
                        "Expanded": "true",
                        "Properties": [
                          {
                            "name": "CSS",
                            "value": "{\"float\": \"left\"}"
                          },
                          {
                            "name": "BorderColor",
                            "value": "\"rgba(225,0,0,0.5)\""
                          },
                          {
                            "name": "BorderWidth",
                            "value": "2"
                          },
                          {
                            "name": "Width",
                            "value": "\"45%\""
                          },
                          {
                            "name": "Display",
                            "value": "\"inline-block\""
                          }
                        ],
                        "Children": [
                          {
                            "Name": "remarks",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "TextAlign",
                                "value": "\"left\""
                              },
                              {
                                "name": "Text",
                                "value": "remarks"
                              },
                              {
                                "name": "Display",
                                "value": "\"inline-block\""
                              }
                            ]
                          },
                          {
                            "Name": "finalState22",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "TextAlign",
                                "value": "\"left\""
                              },
                              {
                                "name": "Text",
                                "value": "remarks2"
                              },
                              {
                                "name": "Display",
                                "value": "editing ?\"none\":\"inline-block\""
                              }
                            ]
                          },
                          {
                            "Name": "remarks_textField",
                            "Type": "TextField",
                            "Properties": [
                              {
                                "name": "Background",
                                "value": "%editBackgroundColor%"
                              },
                              {
                                "name": "Tooltip",
                                "value": "\"Remarks\""
                              },
                              {
                                "name": "Value",
                                "value": "%remarks2%"
                              },
                              {
                                "name": "Height",
                                "value": "\"2vh\""
                              },
                              {
                                "name": "Width",
                                "value": "\"70%\""
                              },
                              {
                                "name": "Font",
                                "value": "%font%"
                              },
                              {
                                "name": "Display",
                                "value": "\"none\""
                              }
                            ]
                          },
                          {
                            "Name": "remarktextArea",
                            "Type": "TextArea",
                            "Properties": [
                              {
                                "name": "Background",
                                "value": "%editBackgroundColor%"
                              },
                              {
                                "name": "Tooltip",
                                "value": "\"Remarks\""
                              },
                              {
                                "name": "Value",
                                "value": "%remarks2%"
                              },
                              {
                                "name": "Width",
                                "value": "\"70%\""
                              },
                              {
                                "name": "Font",
                                "value": "%font%"
                              },
                              {
                                "name": "Display",
                                "value": "editing ?\"inline-block\":\"none\""
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "Name": "stateWords",
                    "Type": "Panel",
                    "Expanded": "false",
                    "Properties": [
                      {
                        "name": "Width",
                        "value": "\"100%\""
                      },
                      {
                        "name": "Display",
                        "value": "\"block\""
                      }
                    ],
                    "Children": [
                      {
                        "Name": "initialState_panel",
                        "Type": "Panel",
                        "Expanded": "false",
                        "Properties": [
                          {
                            "name": "BorderColor",
                            "value": "\"rgba(225,0,0,0.5)\""
                          },
                          {
                            "name": "BorderWidth",
                            "value": "2"
                          },
                          {
                            "name": "Width",
                            "value": "\"90%\""
                          },
                          {
                            "name": "Display",
                            "value": "\"inline-block\""
                          }
                        ],
                        "Children": [
                          {
                            "Name": "initialState",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "TextAlign",
                                "value": "\"left\""
                              },
                              {
                                "name": "Text",
                                "value": "initialState"
                              },
                              {
                                "name": "Display",
                                "value": "\"inline-block\""
                              }
                            ]
                          },
                          {
                            "Name": "initialState2",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "TextAlign",
                                "value": "\"left\""
                              },
                              {
                                "name": "Text",
                                "value": "initialState2"
                              },
                              {
                                "name": "Display",
                                "value": "editing ?\"none\":\"block\""
                              }
                            ]
                          },
                          {
                            "Name": "initialState_textField",
                            "Type": "TextField",
                            "Properties": [
                              {
                                "name": "Background",
                                "value": "%editBackgroundColor%"
                              },
                              {
                                "name": "Tooltip",
                                "value": "\"Initial State\""
                              },
                              {
                                "name": "Value",
                                "value": "%initialState2%"
                              },
                              {
                                "name": "Height",
                                "value": "\"2vh\""
                              },
                              {
                                "name": "Width",
                                "value": "\"80%\""
                              },
                              {
                                "name": "Font",
                                "value": "%font%"
                              },
                              {
                                "name": "Display",
                                "value": "editing ?\"inline-block\":\"none\""
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "Name": "finalState_panel",
                        "Type": "Panel",
                        "Expanded": "false",
                        "Properties": [
                          {
                            "name": "BorderColor",
                            "value": "\"rgba(225,0,0,0.5)\""
                          },
                          {
                            "name": "BorderWidth",
                            "value": "2"
                          },
                          {
                            "name": "Width",
                            "value": "\"90%\""
                          },
                          {
                            "name": "Display",
                            "value": "\"inline-block\""
                          }
                        ],
                        "Children": [
                          {
                            "Name": "finalState",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "TextAlign",
                                "value": "\"left\""
                              },
                              {
                                "name": "Text",
                                "value": "finalState"
                              },
                              {
                                "name": "Display",
                                "value": "\"inline-block\""
                              }
                            ]
                          },
                          {
                            "Name": "finalState2",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "TextAlign",
                                "value": "\"left\""
                              },
                              {
                                "name": "Text",
                                "value": "finalState2"
                              },
                              {
                                "name": "Display",
                                "value": "editing ?\"none\":\"block\""
                              }
                            ]
                          },
                          {
                            "Name": "finalState_textField",
                            "Type": "TextField",
                            "Properties": [
                              {
                                "name": "Background",
                                "value": "%editBackgroundColor%"
                              },
                              {
                                "name": "Tooltip",
                                "value": "\"Final State\""
                              },
                              {
                                "name": "Value",
                                "value": "%finalState2%"
                              },
                              {
                                "name": "Height",
                                "value": "\"2vh\""
                              },
                              {
                                "name": "Width",
                                "value": "\"80%\""
                              },
                              {
                                "name": "Font",
                                "value": "%font%"
                              },
                              {
                                "name": "Display",
                                "value": "editing ?\"inline-block\":\"none\""
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "Name": "energyTransferONE",
                    "Type": "Panel",
                    "Expanded": "true",
                    "Properties": [
                      {
                        "name": "Width",
                        "value": "\"100%\""
                      },
                      {
                        "name": "Display",
                        "value": "\"inline-block\""
                      }
                    ],
                    "Children": [
                      {
                        "Name": "IN",
                        "Type": "Panel",
                        "Expanded": "true",
                        "Properties": [
                          {
                            "name": "Background",
                            "value": "\"rgba(0,150,255,1.0)\""
                          },
                          {
                            "name": "Display",
                            "value": "check3a?\"inline-block\":\"none\""
                          }
                        ],
                        "Children": [
                          {
                            "Name": "energyIN",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "Text",
                                "value": "\"<b>Energy Transfer In: </b>\""
                              }
                            ]
                          },
                          {
                            "Name": "energyTypeIN",
                            "Type": "ComboBox",
                            "Properties": [
                              {
                                "name": "Options",
                                "value": "physicsonly?[\"- Ein\u2081 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\"]:[\"- Tin\u2081 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\",\"Chemically\"]"
                              },
                              {
                                "name": "OnChange",
                                "value": "var opts = _view.energyTypeIN.getProperty(\"SelectedOptions\");  // array of options\n    var option = (opts.length > 0)? opts[0]:\"\"; // selected option \n    \n//transIN == [\"- Tin\u2081 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\",\"Chemically\"]\n\nif (option == \"- Ein\u2081 -\"){updateTransIN = 0};\nif (option == \"Propagation of waves\"){updateTransIN = 1};\nif (option == \"Mechanically\"){updateTransIN = 2};\nif (option == \"Heating\"){updateTransIN = 3};\nif (option == \"Electrically\"){updateTransIN = 4};\nif (option == \"Chemically\"){updateTransIN = 5};"
                              },
                              {
                                "name": "Font",
                                "value": "%font%"
                              }
                            ]
                          },
                          {
                            "Name": "field",
                            "Type": "ParsedField",
                            "Properties": [
                              {
                                "name": "Format",
                                "value": "\"1\""
                              },
                              {
                                "name": "Tooltip",
                                "value": "\"EtransIN\""
                              },
                              {
                                "name": "Value",
                                "value": "EtransIN"
                              },
                              {
                                "name": "Width",
                                "value": "\"3vw\""
                              },
                              {
                                "name": "Font",
                                "value": "%font%"
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "Name": "OUT",
                        "Type": "Panel",
                        "Expanded": "true",
                        "Properties": [
                          {
                            "name": "Background",
                            "value": "\"rgba(0,150,255,1.0)\""
                          },
                          {
                            "name": "Display",
                            "value": "check4a?\"inline-block\":\"none\""
                          }
                        ],
                        "Children": [
                          {
                            "Name": "energyOUT",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "TextAlign",
                                "value": "\"right\""
                              },
                              {
                                "name": "Text",
                                "value": "\"<b>Energy Transfer Out: </b>\""
                              }
                            ]
                          },
                          {
                            "Name": "energyTypeOUT",
                            "Type": "ComboBox",
                            "Properties": [
                              {
                                "name": "Options",
                                "value": "physicsonly?[\"- Eout\u2081 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\"]:[\"- Tout\u2081 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\",\"Chemically\"]"
                              },
                              {
                                "name": "OnChange",
                                "value": "var opts = _view.energyTypeOUT.getProperty(\"SelectedOptions\");  // array of options\n    var option = (opts.length > 0)? opts[0]:\"\"; // selected option \n    \n//updateTransOUT == [\"- Tout\u2081 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\",\"Chemically\"]\n\nif (option == \"- Eout\u2081 -\"){updateTransOUT = 0};\nif (option == \"Propagation of waves\"){updateTransOUT = 1};\nif (option == \"Mechanically\"){updateTransOUT = 2};\nif (option == \"Heating\"){updateTransOUT = 3};\nif (option == \"Electrically\"){updateTransOUT = 4};\nif (option == \"Chemically\"){updateTransOUT = 5};\n"
                              },
                              {
                                "name": "Font",
                                "value": "%font%"
                              }
                            ]
                          },
                          {
                            "Name": "field2",
                            "Type": "ParsedField",
                            "Properties": [
                              {
                                "name": "Format",
                                "value": "\"1\""
                              },
                              {
                                "name": "Tooltip",
                                "value": "\"EtransOUT\""
                              },
                              {
                                "name": "Value",
                                "value": "EtransOUT"
                              },
                              {
                                "name": "Width",
                                "value": "\"3vw\""
                              },
                              {
                                "name": "Font",
                                "value": "%font%"
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "Name": "energyTransferTWO",
                    "Type": "Panel",
                    "Expanded": "true",
                    "Properties": [
                      {
                        "name": "Width",
                        "value": "\"100%\""
                      },
                      {
                        "name": "Display",
                        "value": "\"inline-block\""
                      }
                    ],
                    "Children": [
                      {
                        "Name": "IN2",
                        "Type": "Panel",
                        "Expanded": "true",
                        "Properties": [
                          {
                            "name": "Background",
                            "value": "\"rgba(0,255,255,1.0)\""
                          },
                          {
                            "name": "Display",
                            "value": "check3b?\"inline-block\":\"none\""
                          }
                        ],
                        "Children": [
                          {
                            "Name": "energyIN3",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "Text",
                                "value": "\"<b>Energy Transfer In: </b>\""
                              }
                            ]
                          },
                          {
                            "Name": "energyTypeIN2",
                            "Type": "ComboBox",
                            "Properties": [
                              {
                                "name": "Options",
                                "value": "physicsonly?[\"- Ein\u2082 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\"]:[\"- Tin\u2082 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\",\"Chemically\"]"
                              },
                              {
                                "name": "OnChange",
                                "value": "var opts = _view.energyTypeIN2.getProperty(\"SelectedOptions\");  // array of options\n    var option = (opts.length > 0)? opts[0]:\"\"; // selected option \n    \n//transIN2 == [\"- Tin\u2082 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\",\"Chemically\"]\n\nif (option == \"- Ein\u2082 -\"){updateTransIN2 = 0};\nif (option == \"Propagation of waves\"){updateTransIN2 = 1};\nif (option == \"Mechanically\"){updateTransIN2 = 2};\nif (option == \"Heating\"){updateTransIN2 = 3};\nif (option == \"Electrically\"){updateTransIN2 = 4};\nif (option == \"Chemically\"){updateTransIN2 = 5};\n"
                              },
                              {
                                "name": "Font",
                                "value": "%font%"
                              }
                            ]
                          },
                          {
                            "Name": "field3",
                            "Type": "ParsedField",
                            "Properties": [
                              {
                                "name": "Format",
                                "value": "\"1\""
                              },
                              {
                                "name": "Tooltip",
                                "value": "\"EtransIN2\""
                              },
                              {
                                "name": "Value",
                                "value": "EtransIN2"
                              },
                              {
                                "name": "Width",
                                "value": "\"3vw\""
                              },
                              {
                                "name": "Font",
                                "value": "%font%"
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "Name": "OUT2",
                        "Type": "Panel",
                        "Expanded": "false",
                        "Properties": [
                          {
                            "name": "Background",
                            "value": "\"rgba(0,255,255,1)\""
                          },
                          {
                            "name": "Display",
                            "value": "check4b?\"inline-block\":\"none\""
                          }
                        ],
                        "Children": [
                          {
                            "Name": "energyOUT3",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "TextAlign",
                                "value": "\"right\""
                              },
                              {
                                "name": "Text",
                                "value": "\"<b>Energy Transfer Out: </b>\""
                              }
                            ]
                          },
                          {
                            "Name": "energyTypeOUT2",
                            "Type": "ComboBox",
                            "Properties": [
                              {
                                "name": "Options",
                                "value": "physicsonly?[\"- Tout\u2082 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\"]:[\"- Tout\u2082 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\",\"Chemically\"]"
                              },
                              {
                                "name": "OnChange",
                                "value": "var opts = _view.energyTypeOUT2.getProperty(\"SelectedOptions\");  // array of options\n    var option = (opts.length > 0)? opts[0]:\"\"; // selected option \n    \n//updateTransOUT == [\"- Tout\u2082 -\",\"Propagation of waves\",\"Mechanically\",\"Heating\",\"Electrically\",\"Chemically\"]\n\nif (option == \"- Tout\u2082 -\"){updateTransOUT2 = 0};\nif (option == \"Propagation of waves\"){updateTransOUT2 = 1};\nif (option == \"Mechanically\"){updateTransOUT2 = 2};\nif (option == \"Heating\"){updateTransOUT2 = 3};\nif (option == \"Electrically\"){updateTransOUT2 = 4};\nif (option == \"Chemically\"){updateTransOUT2 = 5};\n\n"
                              },
                              {
                                "name": "Font",
                                "value": "%font%"
                              }
                            ]
                          },
                          {
                            "Name": "field22",
                            "Type": "ParsedField",
                            "Properties": [
                              {
                                "name": "Format",
                                "value": "\"1\""
                              },
                              {
                                "name": "Tooltip",
                                "value": "\"EtransOUT2\""
                              },
                              {
                                "name": "Value",
                                "value": "EtransOUT2"
                              },
                              {
                                "name": "Width",
                                "value": "\"3vw\""
                              },
                              {
                                "name": "Font",
                                "value": "%font%"
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "panel",
                "Type": "Panel",
                "Expanded": "true",
                "Properties": [],
                "Children": [
                  {
                    "Name": "L",
                    "Type": "PlottingPanel",
                    "Expanded": "false",
                    "Properties": [
                      {
                        "name": "ShowAreaRectangle",
                        "value": "false"
                      },
                      {
                        "name": "Gutters",
                        "value": "[50,50,0,50]"
                      },
                      {
                        "name": "YScalePrecision",
                        "value": "0"
                      },
                      {
                        "name": "XFixedTick",
                        "value": "0"
                      },
                      {
                        "name": "AxisXShow",
                        "value": "false"
                      },
                      {
                        "name": "YFixedTick",
                        "value": "0"
                      },
                      {
                        "name": "AxisYLineWidth",
                        "value": "2"
                      },
                      {
                        "name": "TRMessage",
                        "value": "%debugggTR%"
                      },
                      {
                        "name": "XTickStep",
                        "value": "1"
                      },
                      {
                        "name": "YTickStep",
                        "value": "1"
                      },
                      {
                        "name": "XAutoTicks",
                        "value": "false"
                      },
                      {
                        "name": "Width",
                        "value": "\"33%\""
                      },
                      {
                        "name": "TitleYFont",
                        "value": "font"
                      },
                      {
                        "name": "TitleXFont",
                        "value": "font"
                      },
                      {
                        "name": "Title",
                        "value": "\"Initial Amount of Energy of the System\""
                      },
                      {
                        "name": "Enabled",
                        "value": "true"
                      },
                      {
                        "name": "MaximumY",
                        "value": "11"
                      },
                      {
                        "name": "MaximumX",
                        "value": "7"
                      },
                      {
                        "name": "YAutoTicks",
                        "value": "false"
                      },
                      {
                        "name": "MinimumX",
                        "value": "0"
                      },
                      {
                        "name": "MinimumY",
                        "value": "-2"
                      },
                      {
                        "name": "TitleY",
                        "value": "\"Energy / Units\""
                      },
                      {
                        "name": "TitleX",
                        "value": "\"Energy\""
                      },
                      {
                        "name": "AutoScaleY",
                        "value": "true"
                      },
                      {
                        "name": "TitleFont",
                        "value": "font"
                      }
                    ],
                    "Children": [
                      {
                        "Name": "xAxis",
                        "Type": "Arrow2D",
                        "Properties": [
                          {
                            "name": "SizeX",
                            "value": "6.5"
                          },
                          {
                            "name": "X",
                            "value": "0"
                          },
                          {
                            "name": "Y",
                            "value": "0"
                          },
                          {
                            "name": "SizeY",
                            "value": "0"
                          },
                          {
                            "name": "LineWidth",
                            "value": "2"
                          }
                        ]
                      },
                      {
                        "Name": "interactPROMPT",
                        "Type": "ShapeSet2D",
                        "Properties": [
                          {
                            "name": "NumberOfElements",
                            "value": "6"
                          },
                          {
                            "name": "FillColor",
                            "value": "\"White\""
                          },
                          {
                            "name": "SizeX",
                            "value": "1"
                          },
                          {
                            "name": "RelativePosition",
                            "value": "\"SOUTH\""
                          },
                          {
                            "name": "ShapeType",
                            "value": "\"ROUND_RECTANGLE\""
                          },
                          {
                            "name": "X",
                            "value": "energyXpos"
                          },
                          {
                            "name": "LineColor",
                            "value": "%promptLineColour%"
                          },
                          {
                            "name": "Y",
                            "value": "0"
                          },
                          {
                            "name": "Visibility",
                            "value": "interactPrompt1"
                          },
                          {
                            "name": "SizeY",
                            "value": "iniTotalEnergy"
                          },
                          {
                            "name": "LineWidth",
                            "value": "10"
                          }
                        ]
                      },
                      {
                        "Name": "shapeSet",
                        "Type": "ShapeSet2D",
                        "Properties": [
                          {
                            "name": "FillColor",
                            "value": "%energyColour%"
                          },
                          {
                            "name": "OnExit",
                            "value": "interactPrompt1[elementInteracted] = false;\n\n"
                          },
                          {
                            "name": "RelativePosition",
                            "value": "\"SOUTH\""
                          },
                          {
                            "name": "ShapeType",
                            "value": "\"RECTANGLE\""
                          },
                          {
                            "name": "ElementInteracted",
                            "value": "elementInteracted"
                          },
                          {
                            "name": "NumberOfElements",
                            "value": "6"
                          },
                          {
                            "name": "OnRelease",
                            "value": "// Restrict numbers to integers //\nfor (let i=0; i< iniTotalEnergy.length; i++){\n  iniTotalEnergy[i] = Math.round(iniTotalEnergy[i]);\n  }\n"
                          },
                          {
                            "name": "Sensitivity",
                            "value": "30"
                          },
                          {
                            "name": "SizeX",
                            "value": "0.8"
                          },
                          {
                            "name": "EnabledSize",
                            "value": "\"ENABLED_NONE\""
                          },
                          {
                            "name": "X",
                            "value": "energyXpos"
                          },
                          {
                            "name": "OnEnter",
                            "value": "//interactPrompt[elementInteracted]= true;\n\n// Fixed bug on element remaining true when moved to another part of the same ShapeSet: //\noneTrueLst(interactPrompt1, elementInteracted);\n"
                          },
                          {
                            "name": "Y",
                            "value": "0"
                          },
                          {
                            "name": "Visibility",
                            "value": "[displayChemical, displayElastic, displayGravitational, displayInternal, displayKinetic, displayNuclear]"
                          },
                          {
                            "name": "SizeY",
                            "value": "iniTotalEnergy"
                          },
                          {
                            "name": "LineWidth",
                            "value": "1"
                          }
                        ]
                      },
                      {
                        "Name": "xlabel",
                        "Type": "TextSet2D",
                        "Properties": [
                          {
                            "name": "NumberOfElements",
                            "value": "6"
                          },
                          {
                            "name": "X",
                            "value": "energyXpos"
                          },
                          {
                            "name": "Y",
                            "value": "-0.5"
                          },
                          {
                            "name": "Text",
                            "value": "[\"C\",\"E\",\"G\",\"I\",\"K\",\"N\"]"
                          },
                          {
                            "name": "Visibility",
                            "value": "[displayChemical, displayElastic, displayGravitational, displayInternal, displayKinetic, displayNuclear]"
                          }
                        ]
                      },
                      {
                        "Name": "offsety",
                        "Type": "Group2D",
                        "Expanded": "false",
                        "Properties": [
                          {
                            "name": "Y",
                            "value": "0.2"
                          }
                        ],
                        "Children": [
                          {
                            "Name": "amt",
                            "Type": "TextSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "6"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos"
                              },
                              {
                                "name": "Y",
                                "value": "iniTotalEnergy"
                              },
                              {
                                "name": "Text",
                                "value": "%roundTheLst(iniTotalEnergy)%"
                              },
                              {
                                "name": "Visibility",
                                "value": "[displayChemical, displayElastic, displayGravitational, displayInternal, displayKinetic, displayNuclear]"
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "Name": "dragHelper",
                        "Type": "Group2D",
                        "Expanded": "true",
                        "Properties": [],
                        "Children": [
                          {
                            "Name": "dragC",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "%fillColorforDrag%"
                              },
                              {
                                "name": "OnExit",
                                "value": "elementInteracted = 0 \ninteractPrompt1[elementInteracted] = false;\n\n"
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "OnDrag",
                                "value": "//interactPrompt[elementInteracted]= true;\nelementInteracted = 0 \n// Fixed bug on element remaining true when moved to another part of the same ShapeSet: //\noneTrueLst(interactPrompt1, elementInteracted);\n\n //iniTotalEnergy[elementInteracted] = dragCY\n\n\n  //iniTotalEnergy[elementInteracted] = Math.round(iniTotalEnergy[elementInteracted]);"
                              },
                              {
                                "name": "OnRelease",
                                "value": "// Restrict numbers to integers //\n//for (let i=0; i< iniTotalEnergy.length; i++){\n  elementInteracted = 0 \n  iniTotalEnergy[elementInteracted] = Math.round(dragCY);\n  //}\n"
                              },
                              {
                                "name": "Sensitivity",
                                "value": "0"
                              },
                              {
                                "name": "SizeX",
                                "value": "0.8"
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[0]"
                              },
                              {
                                "name": "Y",
                                "value": "dragCY"
                              },
                              {
                                "name": "Visibility",
                                "value": "displayChemical"
                              },
                              {
                                "name": "SizeY",
                                "value": "dragSizeY"
                              },
                              {
                                "name": "LineWidth",
                                "value": "0"
                              },
                              {
                                "name": "EnabledPosition",
                                "value": "\"ENABLED_Y\""
                              }
                            ]
                          },
                          {
                            "Name": "dragE",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "%fillColorforDrag%"
                              },
                              {
                                "name": "OnExit",
                                "value": "elementInteracted = 1\ninteractPrompt1[elementInteracted] = false;\n\n"
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "OnDrag",
                                "value": "//interactPrompt[elementInteracted]= true;\n\n// Fixed bug on element remaining true when moved to another part of the same ShapeSet: //\nelementInteracted = 1 \noneTrueLst(interactPrompt1, elementInteracted);\n\n //iniTotalEnergy[elementInteracted] = Math.round(dragEY)"
                              },
                              {
                                "name": "OnRelease",
                                "value": "// Restrict numbers to integers //\n//for (let i=0; i< iniTotalEnergy.length; i++){\n  elementInteracted = 1 \n  iniTotalEnergy[elementInteracted] = Math.round(dragEY);\n  //}\n"
                              },
                              {
                                "name": "Sensitivity",
                                "value": "0"
                              },
                              {
                                "name": "SizeX",
                                "value": "0.8"
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[1]"
                              },
                              {
                                "name": "Y",
                                "value": "dragEY"
                              },
                              {
                                "name": "Visibility",
                                "value": "displayElastic"
                              },
                              {
                                "name": "SizeY",
                                "value": "dragSizeY"
                              },
                              {
                                "name": "LineWidth",
                                "value": "0"
                              },
                              {
                                "name": "EnabledPosition",
                                "value": "\"ENABLED_Y\""
                              }
                            ]
                          },
                          {
                            "Name": "dragG",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "%fillColorforDrag%"
                              },
                              {
                                "name": "OnExit",
                                "value": "elementInteracted = 2\ninteractPrompt1[elementInteracted] = false;\n\n"
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "OnDrag",
                                "value": "//interactPrompt[elementInteracted]= true;\n\n// Fixed bug on element remaining true when moved to another part of the same ShapeSet: //\nelementInteracted = 2 \noneTrueLst(interactPrompt1, elementInteracted);\n\n //iniTotalEnergy[elementInteracted] = Math.round(dragGY)"
                              },
                              {
                                "name": "OnRelease",
                                "value": "// Restrict numbers to integers //\n//for (let i=0; i< iniTotalEnergy.length; i++){\n  elementInteracted = 2\n  iniTotalEnergy[elementInteracted] = Math.round(dragGY);\n  //}\n"
                              },
                              {
                                "name": "Sensitivity",
                                "value": "0"
                              },
                              {
                                "name": "SizeX",
                                "value": "0.8"
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[2]"
                              },
                              {
                                "name": "LineColor",
                                "value": "\"Red\""
                              },
                              {
                                "name": "Y",
                                "value": "dragGY"
                              },
                              {
                                "name": "Visibility",
                                "value": "displayGravitational"
                              },
                              {
                                "name": "SizeY",
                                "value": "dragSizeY"
                              },
                              {
                                "name": "LineWidth",
                                "value": "0"
                              },
                              {
                                "name": "EnabledPosition",
                                "value": "\"ENABLED_Y\""
                              }
                            ]
                          },
                          {
                            "Name": "dragI",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "%fillColorforDrag%"
                              },
                              {
                                "name": "OnExit",
                                "value": "elementInteracted = 3 \ninteractPrompt1[elementInteracted] = false;\n\n"
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "OnDrag",
                                "value": "//interactPrompt[elementInteracted]= true;\nelementInteracted = 3 \n// Fixed bug on element remaining true when moved to another part of the same ShapeSet: //\noneTrueLst(interactPrompt1, elementInteracted);\n\n //iniTotalEnergy[elementInteracted] = Math.round(dragIY)"
                              },
                              {
                                "name": "OnRelease",
                                "value": "// Restrict numbers to integers //\n//for (let i=0; i< iniTotalEnergy.length; i++){\n  elementInteracted = 3 \n  iniTotalEnergy[elementInteracted] = Math.round(dragIY);\n  //}\n"
                              },
                              {
                                "name": "Sensitivity",
                                "value": "0"
                              },
                              {
                                "name": "SizeX",
                                "value": "0.8"
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[3]"
                              },
                              {
                                "name": "Y",
                                "value": "dragIY"
                              },
                              {
                                "name": "Visibility",
                                "value": "displayInternal"
                              },
                              {
                                "name": "SizeY",
                                "value": "dragSizeY"
                              },
                              {
                                "name": "LineWidth",
                                "value": "0"
                              },
                              {
                                "name": "EnabledPosition",
                                "value": "\"ENABLED_Y\""
                              }
                            ]
                          },
                          {
                            "Name": "dragK",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "%fillColorforDrag%"
                              },
                              {
                                "name": "OnExit",
                                "value": "elementInteracted = 4 \ninteractPrompt1[elementInteracted] = false;\n\n"
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "OnDrag",
                                "value": "//interactPrompt[elementInteracted]= true;\nelementInteracted = 4 \n// Fixed bug on element remaining true when moved to another part of the same ShapeSet: //\noneTrueLst(interactPrompt1, elementInteracted);\n\n //iniTotalEnergy[elementInteracted] = Math.round(dragKY)"
                              },
                              {
                                "name": "OnRelease",
                                "value": "// Restrict numbers to integers //\n//for (let i=0; i< iniTotalEnergy.length; i++){\n  elementInteracted = 4 \n  iniTotalEnergy[elementInteracted] = Math.round(dragKY);\n  //}\n"
                              },
                              {
                                "name": "Sensitivity",
                                "value": "0"
                              },
                              {
                                "name": "SizeX",
                                "value": "0.8"
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[4]"
                              },
                              {
                                "name": "Y",
                                "value": "dragKY"
                              },
                              {
                                "name": "Visibility",
                                "value": "displayKinetic"
                              },
                              {
                                "name": "SizeY",
                                "value": "dragSizeY"
                              },
                              {
                                "name": "LineWidth",
                                "value": "0"
                              },
                              {
                                "name": "EnabledPosition",
                                "value": "\"ENABLED_Y\""
                              }
                            ]
                          },
                          {
                            "Name": "dragN",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "%fillColorforDrag%"
                              },
                              {
                                "name": "OnExit",
                                "value": "elementInteracted = 5 \ninteractPrompt1[elementInteracted] = false;\n\n"
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "OnDrag",
                                "value": "//interactPrompt[elementInteracted]= true;\nelementInteracted = 5 \n// Fixed bug on element remaining true when moved to another part of the same ShapeSet: //\noneTrueLst(interactPrompt1, elementInteracted);\n\n //iniTotalEnergy[elementInteracted] = Math.round(dragNY)\n //iniTotalEnergy[elementInteracted] = Math.round(_info.point[1])\n"
                              },
                              {
                                "name": "OnRelease",
                                "value": "// Restrict numbers to integers //\n//for (let i=0; i< iniTotalEnergy.length; i++){\n  elementInteracted = 5 \n  iniTotalEnergy[elementInteracted] = Math.round(dragNY);\n  //}\n"
                              },
                              {
                                "name": "Sensitivity",
                                "value": "0"
                              },
                              {
                                "name": "SizeX",
                                "value": "0.8"
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[5]"
                              },
                              {
                                "name": "Y",
                                "value": "dragNY"
                              },
                              {
                                "name": "Visibility",
                                "value": "displayNuclear"
                              },
                              {
                                "name": "SizeY",
                                "value": "dragSizeY"
                              },
                              {
                                "name": "LineWidth",
                                "value": "0"
                              },
                              {
                                "name": "EnabledPosition",
                                "value": "\"ENABLED_Y\""
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "Name": "images",
                        "Type": "Group2D",
                        "Expanded": "false",
                        "Properties": [
                          {
                            "name": "Visibility",
                            "value": "show2D"
                          }
                        ],
                        "Children": [
                          {
                            "Name": "chemical",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(iniTotalEnergy[0])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size2DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[0]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/chemical.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( iniTotalEnergy[0] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "iniTotalEnergy[0]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size2DY"
                              }
                            ]
                          },
                          {
                            "Name": "elastic",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(iniTotalEnergy[1])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size2DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[1]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/elestic.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( iniTotalEnergy[1] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "iniTotalEnergy[1]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size2DY"
                              }
                            ]
                          },
                          {
                            "Name": "gravity",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.abs(Math.round(iniTotalEnergy[2]))"
                              },
                              {
                                "name": "SizeX",
                                "value": "size2DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[2]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/gravity.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( iniTotalEnergy[2] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "Math.abs(iniTotalEnergy[2])>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size2DY"
                              }
                            ]
                          },
                          {
                            "Name": "internal",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(iniTotalEnergy[3])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size2DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[3]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/internal.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( iniTotalEnergy[3] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "iniTotalEnergy[3]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size2DY"
                              }
                            ]
                          },
                          {
                            "Name": "kinetic",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(iniTotalEnergy[4])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size2DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[4]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/kinetic.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( iniTotalEnergy[4] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "iniTotalEnergy[4]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size2DY"
                              }
                            ]
                          },
                          {
                            "Name": "nuclear",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(iniTotalEnergy[5])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size2DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[5]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/nuclear.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( iniTotalEnergy[5] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "iniTotalEnergy[5]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size2DY"
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "Name": "images3D",
                        "Type": "Group2D",
                        "Expanded": "false",
                        "Properties": [
                          {
                            "name": "Visibility",
                            "value": "show3D"
                          }
                        ],
                        "Children": [
                          {
                            "Name": "chemical3",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(iniTotalEnergy[0])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size3DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[0]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/chemical3D.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( iniTotalEnergy[0] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "iniTotalEnergy[0]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size3DY"
                              }
                            ]
                          },
                          {
                            "Name": "elastic3",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(iniTotalEnergy[1])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size3DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[1]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/elestic3D.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( iniTotalEnergy[1] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "iniTotalEnergy[1]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size3DY"
                              }
                            ]
                          },
                          {
                            "Name": "gravity3",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.abs(Math.round(iniTotalEnergy[2]))"
                              },
                              {
                                "name": "SizeX",
                                "value": "size3DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[2]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/gravity3D.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( iniTotalEnergy[2] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "Math.abs(iniTotalEnergy[2])>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size3DY"
                              }
                            ]
                          },
                          {
                            "Name": "internal3",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(iniTotalEnergy[3])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size3DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[3]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/internal3D.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( iniTotalEnergy[3] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "iniTotalEnergy[3]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size3DY"
                              }
                            ]
                          },
                          {
                            "Name": "kinetic3",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(iniTotalEnergy[4])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size3DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[4]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/kinetic3D.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( iniTotalEnergy[4] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "iniTotalEnergy[4]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size3DY"
                              }
                            ]
                          },
                          {
                            "Name": "nuclear3",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(iniTotalEnergy[5])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size3DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[5]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/nuclear3D.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( iniTotalEnergy[5] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "iniTotalEnergy[5]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size3DY"
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "Name": "O",
                    "Type": "PlottingPanel",
                    "Expanded": "true",
                    "Properties": [
                      {
                        "name": "Gutters",
                        "value": "[0,50,0,50]"
                      },
                      {
                        "name": "ShowAreaRectangle",
                        "value": "false"
                      },
                      {
                        "name": "YScalePrecision",
                        "value": "0"
                      },
                      {
                        "name": "XFixedTick",
                        "value": "-6"
                      },
                      {
                        "name": "Title",
                        "value": "\"System\""
                      },
                      {
                        "name": "Enabled",
                        "value": "true"
                      },
                      {
                        "name": "AxisXShow",
                        "value": "false"
                      },
                      {
                        "name": "MaximumY",
                        "value": "6"
                      },
                      {
                        "name": "MaximumX",
                        "value": "6"
                      },
                      {
                        "name": "YFixedTick",
                        "value": "-6"
                      },
                      {
                        "name": "YAutoTicks",
                        "value": "false"
                      },
                      {
                        "name": "MinimumX",
                        "value": "-6"
                      },
                      {
                        "name": "MinimumY",
                        "value": "-6"
                      },
                      {
                        "name": "XTickStep",
                        "value": "12"
                      },
                      {
                        "name": "AxisYShow",
                        "value": "false"
                      },
                      {
                        "name": "YTickStep",
                        "value": "12"
                      },
                      {
                        "name": "TitleX",
                        "value": "%hint%"
                      },
                      {
                        "name": "XAutoTicks",
                        "value": "false"
                      },
                      {
                        "name": "TitleFont",
                        "value": "font"
                      },
                      {
                        "name": "XScalePrecision",
                        "value": "0"
                      },
                      {
                        "name": "Width",
                        "value": "\"33%\""
                      }
                    ],
                    "Children": [
                      {
                        "Name": "Closed_System",
                        "Type": "Shape2D",
                        "Properties": [
                          {
                            "name": "FillColor",
                            "value": "\"White\""
                          },
                          {
                            "name": "SizeX",
                            "value": "5.5"
                          },
                          {
                            "name": "ShapeType",
                            "value": "\"ELLIPSE\""
                          },
                          {
                            "name": "LineColor",
                            "value": "\"Black\""
                          },
                          {
                            "name": "X",
                            "value": "0"
                          },
                          {
                            "name": "Attributes",
                            "value": "{ \"stroke-dasharray\":\"8 8 8 8\" } "
                          },
                          {
                            "name": "Y",
                            "value": "0"
                          },
                          {
                            "name": "SizeY",
                            "value": "5.5"
                          },
                          {
                            "name": "LineWidth",
                            "value": "2"
                          }
                        ]
                      },
                      {
                        "Name": "textObject",
                        "Type": "Text2D",
                        "Properties": [
                          {
                            "name": "RelativePosition",
                            "value": "\"CENTERED\""
                          },
                          {
                            "name": "X",
                            "value": "0"
                          },
                          {
                            "name": "Attributes",
                            "value": "{\"text-anchor\":\"middle\"}\n"
                          },
                          {
                            "name": "Y",
                            "value": "0"
                          },
                          {
                            "name": "Text",
                            "value": "%systemText2%"
                          }
                        ]
                      },
                      {
                        "Name": "arrowIN",
                        "Type": "Arrow2D",
                        "Properties": [
                          {
                            "name": "Sensitivity",
                            "value": "50"
                          },
                          {
                            "name": "SizeX",
                            "value": "-arrowLength"
                          },
                          {
                            "name": "Rotate",
                            "value": "Math.atan2(energyInArrowY, energyInArrowX)"
                          },
                          {
                            "name": "X",
                            "value": "energyInArrowX"
                          },
                          {
                            "name": "LineColor",
                            "value": "\"rgba(0,150,255,1.0)\""
                          },
                          {
                            "name": "Y",
                            "value": "energyInArrowY"
                          },
                          {
                            "name": "Visibility",
                            "value": "check3a"
                          },
                          {
                            "name": "SizeY",
                            "value": "0"
                          },
                          {
                            "name": "LineWidth",
                            "value": "5"
                          },
                          {
                            "name": "EnabledPosition",
                            "value": "\"ENABLED_ANY\""
                          },
                          {
                            "name": "OnDrag",
                            "value": "// Calculate the magnitude of the vector\nvar magnitude = Math.sqrt(energyInArrowX * energyInArrowX + energyInArrowY * energyInArrowY);\nvar angle = Math.atan2(energyInArrowY, energyInArrowX)\nvar minDistance = 3;\nvar maxDistance = 9;\nvar radius = 2.5\nenergyInArrowX = radius * Math.cos(angle);\nenergyInArrowY = radius * Math.sin(angle);\n\n// update the image positions\nradius += 2;\nINimgX = radius * Math.cos(angle);\nINimgY = radius * Math.sin(angle);\n  \n   /*\n   // If magnitude exceeds maxDistance, scale down the vector\n    if (magnitude > maxDistance) {\n        var scaleFactor = maxDistance / magnitude;\n        energyInArrowX *= scaleFactor;\n        energyInArrowY *= scaleFactor;\n    }\n    else if (magnitude < minDistance) {\n        var scaleFactor = maxDistance / magnitude;\n        energyInArrowX *= scaleFactor;\n        energyInArrowY *= scaleFactor;\n    }\n*/"
                          },
                          {
                            "name": "Offset",
                            "value": "\"CENTERED\""
                          }
                        ]
                      },
                      {
                        "Name": "arrowIN2",
                        "Type": "Arrow2D",
                        "Properties": [
                          {
                            "name": "Sensitivity",
                            "value": "50"
                          },
                          {
                            "name": "SizeX",
                            "value": "-arrowLength"
                          },
                          {
                            "name": "Rotate",
                            "value": "Math.atan2(energyIn2ArrowY, energyIn2ArrowX)"
                          },
                          {
                            "name": "X",
                            "value": "energyIn2ArrowX"
                          },
                          {
                            "name": "LineColor",
                            "value": "\"rgba(0,255,255,1.0)\""
                          },
                          {
                            "name": "Y",
                            "value": "energyIn2ArrowY"
                          },
                          {
                            "name": "Visibility",
                            "value": "check3b"
                          },
                          {
                            "name": "SizeY",
                            "value": "0"
                          },
                          {
                            "name": "LineWidth",
                            "value": "5"
                          },
                          {
                            "name": "EnabledPosition",
                            "value": "\"ENABLED_ANY\""
                          },
                          {
                            "name": "OnDrag",
                            "value": "// Calculate the magnitude of the vector\nvar magnitude = Math.sqrt(energyIn2ArrowX * energyIn2ArrowX + energyIn2ArrowY * energyIn2ArrowY);\nvar angle = Math.atan2(energyIn2ArrowY, energyIn2ArrowX)\nvar minDistance = 3;\nvar maxDistance = 9;\nvar radius = 2.5\nenergyIn2ArrowX = radius * Math.cos(angle);\nenergyIn2ArrowY = radius * Math.sin(angle);\n\n// update the image positions\nradius += 2;\nIN2imgX = radius * Math.cos(angle);\nIN2imgY = radius * Math.sin(angle);\n  \n"
                          },
                          {
                            "name": "Offset",
                            "value": "\"CENTERED\""
                          }
                        ]
                      },
                      {
                        "Name": "arrowOUT",
                        "Type": "Arrow2D",
                        "Properties": [
                          {
                            "name": "Sensitivity",
                            "value": "50"
                          },
                          {
                            "name": "SizeX",
                            "value": "arrowLength"
                          },
                          {
                            "name": "Rotate",
                            "value": "Math.atan2(energyOutArrowY, energyOutArrowX)"
                          },
                          {
                            "name": "X",
                            "value": "energyOutArrowX"
                          },
                          {
                            "name": "LineColor",
                            "value": "\"rgba(0,150,255,1.0)\""
                          },
                          {
                            "name": "Y",
                            "value": "energyOutArrowY"
                          },
                          {
                            "name": "Visibility",
                            "value": "check4a"
                          },
                          {
                            "name": "SizeY",
                            "value": "0"
                          },
                          {
                            "name": "LineWidth",
                            "value": "5"
                          },
                          {
                            "name": "EnabledPosition",
                            "value": "\"ENABLED_ANY\""
                          },
                          {
                            "name": "OnDrag",
                            "value": "// Calculate the magnitude of the vector\nvar magnitude = Math.sqrt(energyOutArrowX * energyOutArrowX + energyOutArrowY * energyOutArrowY);\nvar angle = Math.atan2(energyOutArrowY, energyOutArrowX)\nvar minDistance = 3;\nvar maxDistance = 9;\nvar radius = 2.5\nenergyOutArrowX = radius * Math.cos(angle);\nenergyOutArrowY = radius * Math.sin(angle);\n\n// Update the image positions\nradius += 2;\nOUTimgX = radius * Math.cos(angle);\nOUTimgY = radius * Math.sin(angle);\n"
                          },
                          {
                            "name": "Offset",
                            "value": "\"CENTERED\""
                          }
                        ]
                      },
                      {
                        "Name": "arrowOUT2",
                        "Type": "Arrow2D",
                        "Properties": [
                          {
                            "name": "Sensitivity",
                            "value": "50"
                          },
                          {
                            "name": "SizeX",
                            "value": "arrowLength"
                          },
                          {
                            "name": "Rotate",
                            "value": "Math.atan2(energyOut2ArrowY, energyOut2ArrowX)"
                          },
                          {
                            "name": "X",
                            "value": "energyOut2ArrowX"
                          },
                          {
                            "name": "LineColor",
                            "value": "\"rgba(0,255,255,1.0)\""
                          },
                          {
                            "name": "Y",
                            "value": "energyOut2ArrowY"
                          },
                          {
                            "name": "Visibility",
                            "value": "check4b"
                          },
                          {
                            "name": "SizeY",
                            "value": "0"
                          },
                          {
                            "name": "LineWidth",
                            "value": "5"
                          },
                          {
                            "name": "EnabledPosition",
                            "value": "\"ENABLED_ANY\""
                          },
                          {
                            "name": "OnDrag",
                            "value": "// Calculate the magnitude of the vector\nvar magnitude = Math.sqrt(energyOut2ArrowX * energyOut2ArrowX + energyOut2ArrowY * energyOut2ArrowY);\nvar angle = Math.atan2(energyOut2ArrowY, energyOut2ArrowX)\nvar minDistance = 3;\nvar maxDistance = 9;\nvar radius = 2.5\nenergyOut2ArrowX = radius * Math.cos(angle);\nenergyOut2ArrowY = radius * Math.sin(angle);\n\n// Update the image positions\nradius += 2;\nOUT2imgX = radius * Math.cos(angle);\nOUT2imgY = radius * Math.sin(angle);\n"
                          },
                          {
                            "name": "Offset",
                            "value": "\"CENTERED\""
                          }
                        ]
                      },
                      {
                        "Name": "groupIN",
                        "Type": "Group2D",
                        "Expanded": "true",
                        "Properties": [
                          {
                            "name": "Y",
                            "value": "0.9"
                          }
                        ],
                        "Children": [
                          {
                            "Name": "imageIN",
                            "Type": "Image2D",
                            "Properties": [
                              {
                                "name": "SizeX",
                                "value": "imgSIZE"
                              },
                              {
                                "name": "X",
                                "value": "INimgX"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "%imgIN[updateTransIN]%"
                              },
                              {
                                "name": "Y",
                                "value": "INimgY"
                              },
                              {
                                "name": "Visibility",
                                "value": "check3a"
                              },
                              {
                                "name": "SizeY",
                                "value": "imgSIZE"
                              }
                            ]
                          },
                          {
                            "Name": "interactPrompt",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "\"White\""
                              },
                              {
                                "name": "SizeX",
                                "value": "energyWidth+0.1"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"ROUND_RECTANGLE\""
                              },
                              {
                                "name": "LineColor",
                                "value": "%promptLineColour%"
                              },
                              {
                                "name": "X",
                                "value": "INenergyX"
                              },
                              {
                                "name": "Y",
                                "value": "INenergyY"
                              },
                              {
                                "name": "Visibility",
                                "value": "INinteract"
                              },
                              {
                                "name": "SizeY",
                                "value": "EtransIN+0.1"
                              },
                              {
                                "name": "LineWidth",
                                "value": "10"
                              }
                            ]
                          },
                          {
                            "Name": "energyIN2",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "%energyColour%"
                              },
                              {
                                "name": "OnExit",
                                "value": "INinteract = false;"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "OnDrag",
                                "value": "// Restrict numbers to integers //\n//EtransIN = Math.round(EtransIN);\n//EtransIN = Math.round(EtransIN)\n\n"
                              },
                              {
                                "name": "OnRelease",
                                "value": "// Restrict numbers to integers //\n//EtransIN = Math.round(EtransIN);\nEtransIN = Math.round(EtransIN)"
                              },
                              {
                                "name": "SizeX",
                                "value": "energyWidth"
                              },
                              {
                                "name": "EnabledSize",
                                "value": "\"ENABLED_NONE\""
                              },
                              {
                                "name": "X",
                                "value": "INenergyX"
                              },
                              {
                                "name": "OnEnter",
                                "value": "INinteract = true;"
                              },
                              {
                                "name": "Y",
                                "value": "INenergyY"
                              },
                              {
                                "name": "OnPress",
                                "value": "INinteract = true;"
                              },
                              {
                                "name": "SizeY",
                                "value": "EtransIN"
                              },
                              {
                                "name": "LineWidth",
                                "value": "1"
                              }
                            ]
                          },
                          {
                            "Name": "transIN_text",
                            "Type": "Text2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "\"rgba(0,150,255,1.0)\""
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"NORTH\""
                              },
                              {
                                "name": "X",
                                "value": "INtextX"
                              },
                              {
                                "name": "Y",
                                "value": "INtextY"
                              },
                              {
                                "name": "Text",
                                "value": "\"Ein\u2081\""
                              },
                              {
                                "name": "Visibility",
                                "value": "check3a"
                              }
                            ]
                          },
                          {
                            "Name": "iconINamt",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(EtransIN)"
                              },
                              {
                                "name": "SizeX",
                                "value": "imgIconSIZE"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "INenergyX"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "%imgIN[updateTransIN]%"
                              },
                              {
                                "name": "Y",
                                "value": "numberedLstFromX(EtransIN,INenergyY)"
                              },
                              {
                                "name": "Visibility",
                                "value": "EtransIN>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "imgIconSIZE"
                              }
                            ]
                          },
                          {
                            "Name": "amtIN",
                            "Type": "Text2D",
                            "Properties": [
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "INenergyX"
                              },
                              {
                                "name": "Y",
                                "value": "INenergyY+EtransIN+0.2"
                              },
                              {
                                "name": "Text",
                                "value": "%Math.round(EtransIN)%"
                              },
                              {
                                "name": "Visibility",
                                "value": "check3a"
                              }
                            ]
                          },
                          {
                            "Name": "drag3Helper",
                            "Type": "Group2D",
                            "Expanded": "true",
                            "Properties": [
                              {
                                "name": "Y",
                                "value": "INenergyY"
                              }
                            ],
                            "Children": [
                              {
                                "Name": "dragTin1",
                                "Type": "Shape2D",
                                "Properties": [
                                  {
                                    "name": "FillColor",
                                    "value": "%fillColorforDrag%"
                                  },
                                  {
                                    "name": "OnExit",
                                    "value": "INinteract = false;"
                                  },
                                  {
                                    "name": "ShapeType",
                                    "value": "\"RECTANGLE\""
                                  },
                                  {
                                    "name": "OnDrag",
                                    "value": "INinteract = true;\n\n"
                                  },
                                  {
                                    "name": "OnRelease",
                                    "value": "// Restrict numbers to integers //\n  //EtransIN = Math.round(EtransIN);    // \u2192 restrict movements in Ipad Pro :(\n  //EtransIN = Math.round(_info.point[1]);\n\nEtransIN = Math.round(dragEtransIN);\nINinteract = false;\n"
                                  },
                                  {
                                    "name": "Sensitivity",
                                    "value": "0"
                                  },
                                  {
                                    "name": "SizeX",
                                    "value": "0.8"
                                  },
                                  {
                                    "name": "X",
                                    "value": "INenergyX"
                                  },
                                  {
                                    "name": "LineColor",
                                    "value": "\"Pink\""
                                  },
                                  {
                                    "name": "OnEnter",
                                    "value": "INinteract = true;"
                                  },
                                  {
                                    "name": "Y",
                                    "value": "dragEtransIN"
                                  },
                                  {
                                    "name": "Visibility",
                                    "value": "check3a"
                                  },
                                  {
                                    "name": "SizeY",
                                    "value": "dragSizeY"
                                  },
                                  {
                                    "name": "LineWidth",
                                    "value": "0"
                                  },
                                  {
                                    "name": "EnabledPosition",
                                    "value": "\"ENABLED_Y\""
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "Name": "groupIN2",
                        "Type": "Group2D",
                        "Expanded": "true",
                        "Properties": [
                          {
                            "name": "Y",
                            "value": "0.9"
                          }
                        ],
                        "Children": [
                          {
                            "Name": "drag4Helper",
                            "Type": "Group2D",
                            "Expanded": "true",
                            "Properties": [
                              {
                                "name": "Y",
                                "value": "IN2energyY"
                              }
                            ],
                            "Children": [
                              {
                                "Name": "dragTin2",
                                "Type": "Shape2D",
                                "Properties": [
                                  {
                                    "name": "FillColor",
                                    "value": "%fillColorforDrag%"
                                  },
                                  {
                                    "name": "OnExit",
                                    "value": "IN2interact = false;"
                                  },
                                  {
                                    "name": "ShapeType",
                                    "value": "\"RECTANGLE\""
                                  },
                                  {
                                    "name": "OnDrag",
                                    "value": "IN2interact = true;"
                                  },
                                  {
                                    "name": "OnRelease",
                                    "value": "// Restrict numbers to integers //\n  //EtransIN2 = Math.round(EtransIN2);  // \u2192 restrict movements in Ipad Pro\nEtransIN2 = Math.round(dragEtransIN2); \nIN2interact = false;\n"
                                  },
                                  {
                                    "name": "Sensitivity",
                                    "value": "0"
                                  },
                                  {
                                    "name": "SizeX",
                                    "value": "0.8"
                                  },
                                  {
                                    "name": "X",
                                    "value": "IN2energyX"
                                  },
                                  {
                                    "name": "OnEnter",
                                    "value": "IN2interact = true;"
                                  },
                                  {
                                    "name": "Y",
                                    "value": "dragEtransIN2"
                                  },
                                  {
                                    "name": "Visibility",
                                    "value": "check3b"
                                  },
                                  {
                                    "name": "SizeY",
                                    "value": "dragSizeY"
                                  },
                                  {
                                    "name": "LineWidth",
                                    "value": "0"
                                  },
                                  {
                                    "name": "EnabledPosition",
                                    "value": "\"ENABLED_Y\""
                                  }
                                ]
                              }
                            ]
                          },
                          {
                            "Name": "imageIN2",
                            "Type": "Image2D",
                            "Properties": [
                              {
                                "name": "SizeX",
                                "value": "imgSIZE"
                              },
                              {
                                "name": "X",
                                "value": "IN2imgX"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "%imgIN2[updateTransIN2]%"
                              },
                              {
                                "name": "Y",
                                "value": "IN2imgY"
                              },
                              {
                                "name": "Visibility",
                                "value": "check3b"
                              },
                              {
                                "name": "SizeY",
                                "value": "imgSIZE"
                              }
                            ]
                          },
                          {
                            "Name": "interactPrompt3",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "\"White\""
                              },
                              {
                                "name": "SizeX",
                                "value": "energyWidth+0.1"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"ROUND_RECTANGLE\""
                              },
                              {
                                "name": "LineColor",
                                "value": "%promptLineColour%"
                              },
                              {
                                "name": "X",
                                "value": "IN2energyX"
                              },
                              {
                                "name": "Y",
                                "value": "IN2energyY"
                              },
                              {
                                "name": "Visibility",
                                "value": "IN2interact"
                              },
                              {
                                "name": "SizeY",
                                "value": "EtransIN2+0.1"
                              },
                              {
                                "name": "LineWidth",
                                "value": "10"
                              }
                            ]
                          },
                          {
                            "Name": "energyIN22",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "OnRelease",
                                "value": "// Restrict numbers to integers //\nEtransIN2 = Math.round(EtransIN2);"
                              },
                              {
                                "name": "FillColor",
                                "value": "%energyColour%"
                              },
                              {
                                "name": "OnExit",
                                "value": "IN2interact = false;"
                              },
                              {
                                "name": "SizeX",
                                "value": "energyWidth"
                              },
                              {
                                "name": "EnabledSize",
                                "value": "\"ENABLED_NONE\""
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "X",
                                "value": "IN2energyX"
                              },
                              {
                                "name": "OnEnter",
                                "value": "IN2interact = true;"
                              },
                              {
                                "name": "Y",
                                "value": "IN2energyY"
                              },
                              {
                                "name": "SizeY",
                                "value": "EtransIN2"
                              },
                              {
                                "name": "LineWidth",
                                "value": "1"
                              }
                            ]
                          },
                          {
                            "Name": "transIN_text2",
                            "Type": "Text2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "\"rgba(0,200,255,1.0)\""
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"NORTH\""
                              },
                              {
                                "name": "X",
                                "value": "IN2textX"
                              },
                              {
                                "name": "Y",
                                "value": "IN2textY"
                              },
                              {
                                "name": "Text",
                                "value": "\"Ein\u2082\""
                              },
                              {
                                "name": "Visibility",
                                "value": "check3b"
                              }
                            ]
                          },
                          {
                            "Name": "iconINamt2",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(EtransIN2)"
                              },
                              {
                                "name": "SizeX",
                                "value": "imgIconSIZE"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "IN2energyX"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "%imgIN2[updateTransIN2]%"
                              },
                              {
                                "name": "Y",
                                "value": "numberedLstFromX(EtransIN2,IN2energyY)"
                              },
                              {
                                "name": "Visibility",
                                "value": "EtransIN2>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "imgIconSIZE"
                              }
                            ]
                          },
                          {
                            "Name": "amtIN2",
                            "Type": "Text2D",
                            "Properties": [
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "IN2energyX"
                              },
                              {
                                "name": "Y",
                                "value": "IN2energyY+EtransIN2+0.2"
                              },
                              {
                                "name": "Text",
                                "value": "%Math.round(EtransIN2)%"
                              },
                              {
                                "name": "Visibility",
                                "value": "check3b"
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "Name": "groupOUT",
                        "Type": "Group2D",
                        "Expanded": "true",
                        "Properties": [
                          {
                            "name": "Y",
                            "value": "0.9"
                          }
                        ],
                        "Children": [
                          {
                            "Name": "imageOUT",
                            "Type": "Image2D",
                            "Properties": [
                              {
                                "name": "SizeX",
                                "value": "imgSIZE"
                              },
                              {
                                "name": "X",
                                "value": "OUTimgX"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "%imgOUT[updateTransOUT]%"
                              },
                              {
                                "name": "Y",
                                "value": "OUTimgY"
                              },
                              {
                                "name": "Visibility",
                                "value": "check4a"
                              },
                              {
                                "name": "SizeY",
                                "value": "imgSIZE"
                              }
                            ]
                          },
                          {
                            "Name": "interactPrompt2",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "\"White\""
                              },
                              {
                                "name": "SizeX",
                                "value": "energyWidth+0.1"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"ROUND_RECTANGLE\""
                              },
                              {
                                "name": "LineColor",
                                "value": "%promptLineColour%"
                              },
                              {
                                "name": "X",
                                "value": "OUTenergyX"
                              },
                              {
                                "name": "Y",
                                "value": "OUTenergyY"
                              },
                              {
                                "name": "Visibility",
                                "value": "OUTinteract"
                              },
                              {
                                "name": "SizeY",
                                "value": "EtransOUT+0.1"
                              },
                              {
                                "name": "LineWidth",
                                "value": "10"
                              }
                            ]
                          },
                          {
                            "Name": "energyOUT2",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "OnRelease",
                                "value": "// Restrict numbers to integers //\nEtransOUT = Math.round(EtransOUT);"
                              },
                              {
                                "name": "FillColor",
                                "value": "%energyColour%"
                              },
                              {
                                "name": "OnExit",
                                "value": "OUTinteract = false;"
                              },
                              {
                                "name": "SizeX",
                                "value": "energyWidth"
                              },
                              {
                                "name": "EnabledSize",
                                "value": "\"ENABLED_NONE\""
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "X",
                                "value": "OUTenergyX"
                              },
                              {
                                "name": "OnEnter",
                                "value": "OUTinteract = true;"
                              },
                              {
                                "name": "Y",
                                "value": "OUTenergyY"
                              },
                              {
                                "name": "SizeY",
                                "value": "EtransOUT"
                              },
                              {
                                "name": "LineWidth",
                                "value": "1"
                              }
                            ]
                          },
                          {
                            "Name": "out_text",
                            "Type": "Text2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "\"rgba(0,150,255,1.0)\""
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"NORTH\""
                              },
                              {
                                "name": "X",
                                "value": "OUTtextX"
                              },
                              {
                                "name": "Y",
                                "value": "OUTtextY"
                              },
                              {
                                "name": "Text",
                                "value": "\"Eout\u2081\""
                              },
                              {
                                "name": "Visibility",
                                "value": "check4a"
                              }
                            ]
                          },
                          {
                            "Name": "amtOUT",
                            "Type": "Text2D",
                            "Properties": [
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "OUTenergyX"
                              },
                              {
                                "name": "Y",
                                "value": "OUTenergyY + EtransOUT+0.2"
                              },
                              {
                                "name": "Text",
                                "value": "%Math.round(EtransOUT)%"
                              },
                              {
                                "name": "Visibility",
                                "value": "check4a"
                              }
                            ]
                          },
                          {
                            "Name": "iconOUTamt",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(EtransOUT)"
                              },
                              {
                                "name": "SizeX",
                                "value": "imgIconSIZE"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "OUTenergyX"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "%imgOUT[updateTransOUT]%"
                              },
                              {
                                "name": "Y",
                                "value": "numberedLstFromX(EtransOUT,OUTenergyY)"
                              },
                              {
                                "name": "Visibility",
                                "value": "EtransOUT>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "imgIconSIZE"
                              }
                            ]
                          },
                          {
                            "Name": "drag5Helper",
                            "Type": "Group2D",
                            "Expanded": "true",
                            "Properties": [
                              {
                                "name": "Y",
                                "value": "OUTenergyY"
                              }
                            ],
                            "Children": [
                              {
                                "Name": "dragTout1",
                                "Type": "Shape2D",
                                "Properties": [
                                  {
                                    "name": "FillColor",
                                    "value": "%fillColorforDrag%"
                                  },
                                  {
                                    "name": "OnExit",
                                    "value": "OUTinteract = false;"
                                  },
                                  {
                                    "name": "ShapeType",
                                    "value": "\"RECTANGLE\""
                                  },
                                  {
                                    "name": "OnDrag",
                                    "value": "OUTinteract = true;\n"
                                  },
                                  {
                                    "name": "OnRelease",
                                    "value": "// Restrict numbers to integers //\n  //EtransOUT = Math.round(EtransOUT);  // \u2192 restrict movements in Ipad Pro\n  \nEtransOUT = Math.round(dragEtransOUT);\nOUTinteract = false;"
                                  },
                                  {
                                    "name": "Sensitivity",
                                    "value": "0"
                                  },
                                  {
                                    "name": "SizeX",
                                    "value": "0.8"
                                  },
                                  {
                                    "name": "X",
                                    "value": "OUTenergyX"
                                  },
                                  {
                                    "name": "OnEnter",
                                    "value": "OUTinteract = true;"
                                  },
                                  {
                                    "name": "Y",
                                    "value": "dragEtransOUT"
                                  },
                                  {
                                    "name": "Visibility",
                                    "value": "check4a"
                                  },
                                  {
                                    "name": "SizeY",
                                    "value": "dragSizeY"
                                  },
                                  {
                                    "name": "DrawLines",
                                    "value": "0"
                                  },
                                  {
                                    "name": "EnabledPosition",
                                    "value": "\"ENABLED_Y\""
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "Name": "groupOUT2",
                        "Type": "Group2D",
                        "Expanded": "true",
                        "Properties": [
                          {
                            "name": "Y",
                            "value": "0.9"
                          }
                        ],
                        "Children": [
                          {
                            "Name": "imageOUT2",
                            "Type": "Image2D",
                            "Properties": [
                              {
                                "name": "SizeX",
                                "value": "imgSIZE"
                              },
                              {
                                "name": "X",
                                "value": "OUT2imgX"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "%imgOUT2[updateTransOUT2]%"
                              },
                              {
                                "name": "Y",
                                "value": "OUT2imgY"
                              },
                              {
                                "name": "Visibility",
                                "value": "check4b"
                              },
                              {
                                "name": "SizeY",
                                "value": "imgSIZE"
                              }
                            ]
                          },
                          {
                            "Name": "interactPrompt22",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "\"White\""
                              },
                              {
                                "name": "SizeX",
                                "value": "energyWidth+0.1"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"ROUND_RECTANGLE\""
                              },
                              {
                                "name": "LineColor",
                                "value": "%promptLineColour%"
                              },
                              {
                                "name": "X",
                                "value": "OUT2energyX"
                              },
                              {
                                "name": "Y",
                                "value": "OUT2energyY"
                              },
                              {
                                "name": "Visibility",
                                "value": "OUT2interact"
                              },
                              {
                                "name": "SizeY",
                                "value": "EtransOUT2 + 0.1"
                              },
                              {
                                "name": "LineWidth",
                                "value": "10"
                              }
                            ]
                          },
                          {
                            "Name": "energyOUT22",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "OnRelease",
                                "value": "// Restrict numbers to integers //\nEtransOUT2 = Math.round(EtransOUT2);\n//EtransOUT2 = Math.round(_info.point[0]);\n"
                              },
                              {
                                "name": "FillColor",
                                "value": "%energyColour%"
                              },
                              {
                                "name": "OnExit",
                                "value": "OUT2interact = false;"
                              },
                              {
                                "name": "SizeX",
                                "value": "energyWidth"
                              },
                              {
                                "name": "EnabledSize",
                                "value": "\"ENABLED_NONE\""
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "X",
                                "value": "OUT2energyX"
                              },
                              {
                                "name": "OnEnter",
                                "value": "OUT2interact = true;"
                              },
                              {
                                "name": "Y",
                                "value": "OUT2energyY"
                              },
                              {
                                "name": "SizeY",
                                "value": "EtransOUT2"
                              },
                              {
                                "name": "LineWidth",
                                "value": "1"
                              }
                            ]
                          },
                          {
                            "Name": "out_text2",
                            "Type": "Text2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "\"rgba(0,200,255,1.0)\""
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"NORTH\""
                              },
                              {
                                "name": "X",
                                "value": "OUT2textX"
                              },
                              {
                                "name": "Y",
                                "value": "OUT2textY"
                              },
                              {
                                "name": "Text",
                                "value": "\"Eout\u2082\""
                              },
                              {
                                "name": "Visibility",
                                "value": "check4b"
                              }
                            ]
                          },
                          {
                            "Name": "amtOUT2",
                            "Type": "Text2D",
                            "Properties": [
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "OUT2energyX"
                              },
                              {
                                "name": "Y",
                                "value": "OUT2energyY + EtransOUT2+0.2"
                              },
                              {
                                "name": "Text",
                                "value": "%Math.round(EtransOUT2)%"
                              },
                              {
                                "name": "Visibility",
                                "value": "check4b"
                              }
                            ]
                          },
                          {
                            "Name": "iconOUTamt2",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(EtransOUT2)"
                              },
                              {
                                "name": "SizeX",
                                "value": "imgIconSIZE"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "OUT2energyX"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "%imgOUT2[updateTransOUT2]%"
                              },
                              {
                                "name": "Y",
                                "value": "numberedLstFromX(EtransOUT2,OUT2energyY)"
                              },
                              {
                                "name": "Visibility",
                                "value": "EtransOUT2>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "imgIconSIZE"
                              }
                            ]
                          },
                          {
                            "Name": "drag6Helper",
                            "Type": "Group2D",
                            "Expanded": "false",
                            "Properties": [
                              {
                                "name": "Y",
                                "value": "OUT2energyY"
                              }
                            ],
                            "Children": [
                              {
                                "Name": "dragTout2",
                                "Type": "Shape2D",
                                "Properties": [
                                  {
                                    "name": "FillColor",
                                    "value": "%fillColorforDrag%"
                                  },
                                  {
                                    "name": "OnExit",
                                    "value": "OUT2interact = false;"
                                  },
                                  {
                                    "name": "ShapeType",
                                    "value": "\"RECTANGLE\""
                                  },
                                  {
                                    "name": "OnDrag",
                                    "value": "OUT2interact = true;"
                                  },
                                  {
                                    "name": "OnRelease",
                                    "value": "// Restrict numbers to integers //\n  //EtransOUT2 = Math.round(EtransOUT2);  // \u2192 restrict movements in Ipad Pro\n  EtransOUT2 = Math.round(dragEtransOUT2);\n  OUT2interact = false;"
                                  },
                                  {
                                    "name": "Sensitivity",
                                    "value": "0"
                                  },
                                  {
                                    "name": "SizeX",
                                    "value": "0.8"
                                  },
                                  {
                                    "name": "X",
                                    "value": "OUT2energyX"
                                  },
                                  {
                                    "name": "OnEnter",
                                    "value": "OUT2interact = true;"
                                  },
                                  {
                                    "name": "Y",
                                    "value": "dragEtransOUT2"
                                  },
                                  {
                                    "name": "Visibility",
                                    "value": "check4b"
                                  },
                                  {
                                    "name": "SizeY",
                                    "value": "dragSizeY"
                                  },
                                  {
                                    "name": "DrawLines",
                                    "value": "0"
                                  },
                                  {
                                    "name": "EnabledPosition",
                                    "value": "\"ENABLED_Y\""
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "Name": "answer",
                        "Type": "Text2D",
                        "Properties": [
                          {
                            "name": "FillColor",
                            "value": "%answerColour[updateAnswer]%"
                          },
                          {
                            "name": "Y",
                            "value": "answerY"
                          },
                          {
                            "name": "Text",
                            "value": "%answer[updateAnswer]%"
                          },
                          {
                            "name": "Visibility",
                            "value": "showAnswer"
                          }
                        ]
                      },
                      {
                        "Name": "answerHint",
                        "Type": "Text2D",
                        "Properties": [
                          {
                            "name": "OutlineColor",
                            "value": "\"DarkGray\""
                          },
                          {
                            "name": "Y",
                            "value": "hintY"
                          },
                          {
                            "name": "Text",
                            "value": "%hint%"
                          },
                          {
                            "name": "Visibility",
                            "value": "false"
                          },
                          {
                            "name": "Font",
                            "value": "\"normal normal 13px Georgia, serif\""
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "Name": "L2",
                    "Type": "PlottingPanel",
                    "Expanded": "false",
                    "Properties": [
                      {
                        "name": "ShowAreaRectangle",
                        "value": "false"
                      },
                      {
                        "name": "Gutters",
                        "value": "[50,50,0,50]"
                      },
                      {
                        "name": "ShowCoordinates",
                        "value": "false"
                      },
                      {
                        "name": "TitleYFont",
                        "value": "font"
                      },
                      {
                        "name": "YScalePrecision",
                        "value": "0"
                      },
                      {
                        "name": "TitleXFont",
                        "value": "font"
                      },
                      {
                        "name": "Title",
                        "value": "\"Final Amount of Energy of the System\""
                      },
                      {
                        "name": "Enabled",
                        "value": "true"
                      },
                      {
                        "name": "AxisXShow",
                        "value": "false"
                      },
                      {
                        "name": "MaximumY",
                        "value": "11"
                      },
                      {
                        "name": "MaximumX",
                        "value": "7"
                      },
                      {
                        "name": "YFixedTick",
                        "value": "0"
                      },
                      {
                        "name": "AxisYLineWidth",
                        "value": "2"
                      },
                      {
                        "name": "YAutoTicks",
                        "value": "false"
                      },
                      {
                        "name": "MinimumX",
                        "value": "0"
                      },
                      {
                        "name": "MinimumY",
                        "value": "-2"
                      },
                      {
                        "name": "TitleY",
                        "value": "\"Energy / Units\""
                      },
                      {
                        "name": "YTickStep",
                        "value": "1"
                      },
                      {
                        "name": "TitleX",
                        "value": "\"Energy\""
                      },
                      {
                        "name": "AutoScaleY",
                        "value": "true"
                      },
                      {
                        "name": "TitleFont",
                        "value": "font"
                      },
                      {
                        "name": "Width",
                        "value": "\"33%\""
                      }
                    ],
                    "Children": [
                      {
                        "Name": "xAxis2",
                        "Type": "Arrow2D",
                        "Properties": [
                          {
                            "name": "SizeX",
                            "value": "6.5"
                          },
                          {
                            "name": "X",
                            "value": "0"
                          },
                          {
                            "name": "Y",
                            "value": "0"
                          },
                          {
                            "name": "SizeY",
                            "value": "0"
                          },
                          {
                            "name": "LineWidth",
                            "value": "2"
                          }
                        ]
                      },
                      {
                        "Name": "interactPROMPT2",
                        "Type": "ShapeSet2D",
                        "Properties": [
                          {
                            "name": "NumberOfElements",
                            "value": "6"
                          },
                          {
                            "name": "FillColor",
                            "value": "\"White\""
                          },
                          {
                            "name": "SizeX",
                            "value": "1"
                          },
                          {
                            "name": "RelativePosition",
                            "value": "\"SOUTH\""
                          },
                          {
                            "name": "ShapeType",
                            "value": "\"ROUND_RECTANGLE\""
                          },
                          {
                            "name": "X",
                            "value": "energyXpos"
                          },
                          {
                            "name": "LineColor",
                            "value": "%promptLineColour%"
                          },
                          {
                            "name": "Y",
                            "value": "0"
                          },
                          {
                            "name": "Visibility",
                            "value": "interactPrompt2"
                          },
                          {
                            "name": "SizeY",
                            "value": "finTotalEnergy"
                          },
                          {
                            "name": "LineWidth",
                            "value": "10"
                          }
                        ]
                      },
                      {
                        "Name": "shapeSet2",
                        "Type": "ShapeSet2D",
                        "Properties": [
                          {
                            "name": "FillColor",
                            "value": "%energyColour%"
                          },
                          {
                            "name": "OnExit",
                            "value": "interactPrompt2[elementInteracted] = false;"
                          },
                          {
                            "name": "RelativePosition",
                            "value": "\"SOUTH\""
                          },
                          {
                            "name": "ShapeType",
                            "value": "\"RECTANGLE\""
                          },
                          {
                            "name": "ElementInteracted",
                            "value": "elementInteracted"
                          },
                          {
                            "name": "NumberOfElements",
                            "value": "6"
                          },
                          {
                            "name": "OnRelease",
                            "value": "// Restrict numbers to integers //\nfor (let i=0; i< finTotalEnergy.length; i++){\n  finTotalEnergy[i] = Math.round(finTotalEnergy[i]);\n  }\n"
                          },
                          {
                            "name": "SizeX",
                            "value": "0.8"
                          },
                          {
                            "name": "EnabledSize",
                            "value": "\"ENABLED_NO_MOVE\""
                          },
                          {
                            "name": "X",
                            "value": "energyXpos"
                          },
                          {
                            "name": "OnEnter",
                            "value": "//interactPrompt = true;\n\n// Fixed bug on element remaining true when moved to another part of the same ShapeSet: //\noneTrueLst(interactPrompt2, elementInteracted);\n\n"
                          },
                          {
                            "name": "Y",
                            "value": "0"
                          },
                          {
                            "name": "Visibility",
                            "value": "[displayChemical, displayElastic, displayGravitational, displayInternal, displayKinetic, displayNuclear]"
                          },
                          {
                            "name": "SizeY",
                            "value": "finTotalEnergy"
                          },
                          {
                            "name": "LineWidth",
                            "value": "1"
                          }
                        ]
                      },
                      {
                        "Name": "xlabel2",
                        "Type": "TextSet2D",
                        "Properties": [
                          {
                            "name": "NumberOfElements",
                            "value": "6"
                          },
                          {
                            "name": "X",
                            "value": "energyXpos"
                          },
                          {
                            "name": "Y",
                            "value": "-0.5"
                          },
                          {
                            "name": "Text",
                            "value": "[\"C\",\"E\",\"G\",\"I\",\"K\",\"N\"]"
                          },
                          {
                            "name": "Visibility",
                            "value": "[displayChemical, displayElastic, displayGravitational, displayInternal, displayKinetic, displayNuclear]"
                          }
                        ]
                      },
                      {
                        "Name": "offsety2",
                        "Type": "Group2D",
                        "Expanded": "false",
                        "Properties": [
                          {
                            "name": "Y",
                            "value": "0.2"
                          }
                        ],
                        "Children": [
                          {
                            "Name": "amt2",
                            "Type": "TextSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "6"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos"
                              },
                              {
                                "name": "Y",
                                "value": "finTotalEnergy"
                              },
                              {
                                "name": "Text",
                                "value": "%roundTheLst(finTotalEnergy)%"
                              },
                              {
                                "name": "Visibility",
                                "value": "[displayChemical, displayElastic, displayGravitational, displayInternal, displayKinetic, displayNuclear]"
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "Name": "images2D",
                        "Type": "Group2D",
                        "Expanded": "false",
                        "Properties": [
                          {
                            "name": "Visibility",
                            "value": "show2D"
                          }
                        ],
                        "Children": [
                          {
                            "Name": "chemical2",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(finTotalEnergy[0])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size2DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[0]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/chemical.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( finTotalEnergy[0] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "finTotalEnergy[0]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size2DY"
                              }
                            ]
                          },
                          {
                            "Name": "elastic2",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(finTotalEnergy[1])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size2DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[1]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/elestic.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( finTotalEnergy[1] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "finTotalEnergy[1]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size2DY"
                              }
                            ]
                          },
                          {
                            "Name": "gravity2",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.abs(Math.round(finTotalEnergy[2]))"
                              },
                              {
                                "name": "SizeX",
                                "value": "size2DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[2]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/gravity.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( finTotalEnergy[2] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "Math.abs(finTotalEnergy[2])>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size2DY"
                              }
                            ]
                          },
                          {
                            "Name": "internal2",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(finTotalEnergy[3])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size2DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[3]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/internal.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( finTotalEnergy[3] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "finTotalEnergy[3]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size2DY"
                              }
                            ]
                          },
                          {
                            "Name": "kinetic2",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(finTotalEnergy[4])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size2DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[4]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/kinetic.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( finTotalEnergy[4] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "finTotalEnergy[4]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size2DY"
                              }
                            ]
                          },
                          {
                            "Name": "nuclear2",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(finTotalEnergy[5])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size2DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[5]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/nuclear.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( finTotalEnergy[5] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "finTotalEnergy[5]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size2DY"
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "Name": "images3D2",
                        "Type": "Group2D",
                        "Expanded": "false",
                        "Properties": [
                          {
                            "name": "Visibility",
                            "value": "show3D"
                          }
                        ],
                        "Children": [
                          {
                            "Name": "chemical22",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(finTotalEnergy[0])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size3DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[0]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/chemical3D.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( finTotalEnergy[0] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "finTotalEnergy[0]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size3DY"
                              }
                            ]
                          },
                          {
                            "Name": "elastic22",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(finTotalEnergy[1])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size3DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[1]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/elestic3D.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( finTotalEnergy[1] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "finTotalEnergy[1]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size3DY"
                              }
                            ]
                          },
                          {
                            "Name": "gravity22",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.abs(Math.round(finTotalEnergy[2]))"
                              },
                              {
                                "name": "SizeX",
                                "value": "size3DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[2]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/gravity3D.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( finTotalEnergy[2] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "Math.abs(finTotalEnergy[2])>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size3DY"
                              }
                            ]
                          },
                          {
                            "Name": "internal22",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(finTotalEnergy[3])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size3DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[3]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/internal3D.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( finTotalEnergy[3] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "finTotalEnergy[3]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size3DY"
                              }
                            ]
                          },
                          {
                            "Name": "kinetic22",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(finTotalEnergy[4])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size3DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[4]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/kinetic3D.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( finTotalEnergy[4] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "finTotalEnergy[4]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size3DY"
                              }
                            ]
                          },
                          {
                            "Name": "nuclear22",
                            "Type": "ImageSet2D",
                            "Properties": [
                              {
                                "name": "NumberOfElements",
                                "value": "Math.round(finTotalEnergy[5])"
                              },
                              {
                                "name": "SizeX",
                                "value": "size3DX"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"SOUTH\""
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[5]"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/nuclear3D.png\""
                              },
                              {
                                "name": "Y",
                                "value": "numberedLst( finTotalEnergy[5] )"
                              },
                              {
                                "name": "Visibility",
                                "value": "finTotalEnergy[5]>0"
                              },
                              {
                                "name": "SizeY",
                                "value": "size3DY"
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "Name": "drag2Helper",
                        "Type": "Group2D",
                        "Expanded": "false",
                        "Properties": [],
                        "Children": [
                          {
                            "Name": "dragC2",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "%fillColorforDrag%"
                              },
                              {
                                "name": "OnExit",
                                "value": "elementInteracted = 0 \ninteractPrompt2[elementInteracted] = false;\n\n"
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "OnDrag",
                                "value": "//interactPrompt[elementInteracted]= true;\nelementInteracted = 0 \n// Fixed bug on element remaining true when moved to another part of the same ShapeSet: //\noneTrueLst(interactPrompt2, elementInteracted);\n\n// finTotalEnergy[elementInteracted] = Math.round(dragC2Y)"
                              },
                              {
                                "name": "OnRelease",
                                "value": "// Restrict numbers to integers //\n//for (let i=0; i< iniTotalEnergy.length; i++){\n  elementInteracted = 0 \n  finTotalEnergy[elementInteracted] = Math.round(dragC2Y);\n  //}\n"
                              },
                              {
                                "name": "Sensitivity",
                                "value": "0"
                              },
                              {
                                "name": "SizeX",
                                "value": "0.8"
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[0]"
                              },
                              {
                                "name": "Y",
                                "value": "dragC2Y"
                              },
                              {
                                "name": "Visibility",
                                "value": "displayChemical"
                              },
                              {
                                "name": "SizeY",
                                "value": "dragSizeY"
                              },
                              {
                                "name": "LineWidth",
                                "value": "0"
                              },
                              {
                                "name": "EnabledPosition",
                                "value": "\"ENABLED_Y\""
                              }
                            ]
                          },
                          {
                            "Name": "dragE2",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "%fillColorforDrag%"
                              },
                              {
                                "name": "OnExit",
                                "value": "elementInteracted = 1\ninteractPrompt2[elementInteracted] = false;\n\n"
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "OnDrag",
                                "value": "//interactPrompt[elementInteracted]= true;\n\n// Fixed bug on element remaining true when moved to another part of the same ShapeSet: //\nelementInteracted = 1 \noneTrueLst(interactPrompt2, elementInteracted);\n\n //finTotalEnergy[elementInteracted] = Math.round(dragE2Y)"
                              },
                              {
                                "name": "OnRelease",
                                "value": "// Restrict numbers to integers //\n//for (let i=0; i< iniTotalEnergy.length; i++){\n  elementInteracted = 1 \n  finTotalEnergy[elementInteracted] = Math.round(dragE2Y);\n  //}\n"
                              },
                              {
                                "name": "Sensitivity",
                                "value": "0"
                              },
                              {
                                "name": "SizeX",
                                "value": "0.8"
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[1]"
                              },
                              {
                                "name": "Y",
                                "value": "dragE2Y"
                              },
                              {
                                "name": "Visibility",
                                "value": "displayElastic"
                              },
                              {
                                "name": "SizeY",
                                "value": "dragSizeY"
                              },
                              {
                                "name": "LineWidth",
                                "value": "0"
                              },
                              {
                                "name": "EnabledPosition",
                                "value": "\"ENABLED_Y\""
                              }
                            ]
                          },
                          {
                            "Name": "dragG2",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "%fillColorforDrag%"
                              },
                              {
                                "name": "OnExit",
                                "value": "elementInteracted = 2\ninteractPrompt2[elementInteracted] = false;\n\n"
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "OnDrag",
                                "value": "//interactPrompt[elementInteracted]= true;\n\n// Fixed bug on element remaining true when moved to another part of the same ShapeSet: //\nelementInteracted = 2 \noneTrueLst(interactPrompt2, elementInteracted);\n\n// finTotalEnergy[elementInteracted] = Math.round(dragG2Y)"
                              },
                              {
                                "name": "OnRelease",
                                "value": "// Restrict numbers to integers //\n//for (let i=0; i< iniTotalEnergy.length; i++){\n  elementInteracted = 2\n  finTotalEnergy[elementInteracted] = Math.round(dragG2Y);\n  //}\n"
                              },
                              {
                                "name": "Sensitivity",
                                "value": "0"
                              },
                              {
                                "name": "SizeX",
                                "value": "0.8"
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[2]"
                              },
                              {
                                "name": "Y",
                                "value": "dragG2Y"
                              },
                              {
                                "name": "Visibility",
                                "value": "displayGravitational"
                              },
                              {
                                "name": "SizeY",
                                "value": "dragSizeY"
                              },
                              {
                                "name": "LineWidth",
                                "value": "0"
                              },
                              {
                                "name": "EnabledPosition",
                                "value": "\"ENABLED_Y\""
                              }
                            ]
                          },
                          {
                            "Name": "dragI2",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "%fillColorforDrag%"
                              },
                              {
                                "name": "OnExit",
                                "value": "elementInteracted = 3 \ninteractPrompt2[elementInteracted] = false;\n\n"
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "OnDrag",
                                "value": "//interactPrompt[elementInteracted]= true;\nelementInteracted = 3 \n// Fixed bug on element remaining true when moved to another part of the same ShapeSet: //\noneTrueLst(interactPrompt2, elementInteracted);\n\n //finTotalEnergy[elementInteracted] = Math.round(dragI2Y)"
                              },
                              {
                                "name": "OnRelease",
                                "value": "// Restrict numbers to integers //\n//for (let i=0; i< iniTotalEnergy.length; i++){\n  elementInteracted = 3 \n  finTotalEnergy[elementInteracted] = Math.round(dragI2Y);\n  //}\n"
                              },
                              {
                                "name": "Sensitivity",
                                "value": "0"
                              },
                              {
                                "name": "SizeX",
                                "value": "0.8"
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[3]"
                              },
                              {
                                "name": "Y",
                                "value": "dragI2Y"
                              },
                              {
                                "name": "Visibility",
                                "value": "displayInternal"
                              },
                              {
                                "name": "SizeY",
                                "value": "dragSizeY"
                              },
                              {
                                "name": "LineWidth",
                                "value": "0"
                              },
                              {
                                "name": "EnabledPosition",
                                "value": "\"ENABLED_Y\""
                              }
                            ]
                          },
                          {
                            "Name": "dragK2",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "%fillColorforDrag%"
                              },
                              {
                                "name": "OnExit",
                                "value": "elementInteracted = 4 \ninteractPrompt2[elementInteracted] = false;\n\n"
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "OnDrag",
                                "value": "//interactPrompt[elementInteracted]= true;\nelementInteracted = 4 \n// Fixed bug on element remaining true when moved to another part of the same ShapeSet: //\noneTrueLst(interactPrompt2, elementInteracted);\n\n// finTotalEnergy[elementInteracted] = Math.round(dragK2Y)"
                              },
                              {
                                "name": "OnRelease",
                                "value": "// Restrict numbers to integers //\n//for (let i=0; i< iniTotalEnergy.length; i++){\n  elementInteracted = 4 \n  finTotalEnergy[elementInteracted] = Math.round(dragK2Y);\n  //}\n"
                              },
                              {
                                "name": "Sensitivity",
                                "value": "0"
                              },
                              {
                                "name": "SizeX",
                                "value": "0.8"
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[4]"
                              },
                              {
                                "name": "Y",
                                "value": "dragK2Y"
                              },
                              {
                                "name": "Visibility",
                                "value": "displayKinetic"
                              },
                              {
                                "name": "SizeY",
                                "value": "dragSizeY"
                              },
                              {
                                "name": "LineWidth",
                                "value": "0"
                              },
                              {
                                "name": "EnabledPosition",
                                "value": "\"ENABLED_Y\""
                              }
                            ]
                          },
                          {
                            "Name": "dragN2",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "FillColor",
                                "value": "%fillColorforDrag%"
                              },
                              {
                                "name": "OnExit",
                                "value": "elementInteracted = 5 \ninteractPrompt2[elementInteracted] = false;\n\n"
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "OnDrag",
                                "value": "//interactPrompt[elementInteracted]= true;\nelementInteracted = 5 \n// Fixed bug on element remaining true when moved to another part of the same ShapeSet: //\noneTrueLst(interactPrompt2, elementInteracted);\n\n// finTotalEnergy[elementInteracted] = Math.round(dragN2Y)"
                              },
                              {
                                "name": "OnRelease",
                                "value": "// Restrict numbers to integers //\n//for (let i=0; i< iniTotalEnergy.length; i++){\n  elementInteracted = 5 \n  finTotalEnergy[elementInteracted] = Math.round(dragN2Y);\n  //}\n"
                              },
                              {
                                "name": "Sensitivity",
                                "value": "0"
                              },
                              {
                                "name": "SizeX",
                                "value": "0.8"
                              },
                              {
                                "name": "X",
                                "value": "energyXpos[5]"
                              },
                              {
                                "name": "Y",
                                "value": "dragN2Y"
                              },
                              {
                                "name": "Visibility",
                                "value": "displayNuclear"
                              },
                              {
                                "name": "SizeY",
                                "value": "dragSizeY"
                              },
                              {
                                "name": "LineWidth",
                                "value": "0"
                              },
                              {
                                "name": "EnabledPosition",
                                "value": "\"ENABLED_Y\""
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "descriptions",
                "Type": "Panel",
                "Expanded": "true",
                "Properties": [
                  {
                    "name": "Font",
                    "value": "%font%"
                  }
                ],
                "Children": [
                  {
                    "Name": "formula",
                    "Type": "Panel",
                    "Expanded": "false",
                    "Properties": [
                      {
                        "name": "CSS",
                        "value": "{\n  \"display\": \"inline-block\",\n  \"padding\": \"10px\",\n}"
                      },
                      {
                        "name": "Background",
                        "value": "\"Pink\""
                      },
                      {
                        "name": "BorderColor",
                        "value": "\"Black\""
                      },
                      {
                        "name": "BorderWidth",
                        "value": "2"
                      },
                      {
                        "name": "Width",
                        "value": "\"100%\""
                      },
                      {
                        "name": "Display",
                        "value": "\"inline-block\""
                      }
                    ],
                    "Children": [
                      {
                        "Name": "formulaText",
                        "Type": "Label",
                        "Properties": [
                          {
                            "name": "Text",
                            "value": "%formulaText%"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "Name": "legend",
                    "Type": "Panel",
                    "Expanded": "true",
                    "Properties": [
                      {
                        "name": "Width",
                        "value": "\"100%\""
                      }
                    ],
                    "Children": [
                      {
                        "Name": "legendText",
                        "Type": "Label",
                        "Properties": [
                          {
                            "name": "Background",
                            "value": "\"rgba(255,200,0,0.5)\""
                          },
                          {
                            "name": "Text",
                            "value": "%legendText%"
                          }
                        ]
                      },
                      {
                        "Name": "transfer",
                        "Type": "Panel",
                        "Expanded": "true",
                        "Properties": [
                          {
                            "name": "Width",
                            "value": "\"100%\""
                          }
                        ],
                        "Children": [
                          {
                            "Name": "label",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "Text",
                                "value": "\"<b><u>Legend for Transfers</u>:</b>\""
                              },
                              {
                                "name": "Width",
                                "value": "physicsonly?\"15%\":\"10%\""
                              }
                            ]
                          },
                          {
                            "Name": "waves",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "Background",
                                "value": "\"rgba(0,0,255,0.1)\""
                              },
                              {
                                "name": "Tooltip",
                                "value": "%pTooltip%"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/Propagation of waves.png\""
                              },
                              {
                                "name": "Text",
                                "value": "\"Propagation of waves\""
                              },
                              {
                                "name": "Disabled",
                                "value": "true"
                              },
                              {
                                "name": "Width",
                                "value": "physicsonly?\"25%\":\"20%\""
                              },
                              {
                                "name": "Display",
                                "value": "\"inline-block\""
                              }
                            ]
                          },
                          {
                            "Name": "mechanic",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "Background",
                                "value": "\"rgba(0,0,255,0.2)\""
                              },
                              {
                                "name": "Tooltip",
                                "value": "%mTooltip%"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/Mechanically.png\""
                              },
                              {
                                "name": "Text",
                                "value": "\"Mechanically\""
                              },
                              {
                                "name": "Disabled",
                                "value": "true"
                              },
                              {
                                "name": "Width",
                                "value": "physicsonly?\"20%\":\"15%\""
                              },
                              {
                                "name": "Display",
                                "value": "\"inline-block\""
                              }
                            ]
                          },
                          {
                            "Name": "fire",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "Background",
                                "value": "\"rgba(0,0,255,0.3)\""
                              },
                              {
                                "name": "Tooltip",
                                "value": "%hTooltip%"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/Heating.png\""
                              },
                              {
                                "name": "Text",
                                "value": "\"Heating\""
                              },
                              {
                                "name": "Disabled",
                                "value": "true"
                              },
                              {
                                "name": "Width",
                                "value": "physicsonly?\"20%\":\"15%\""
                              },
                              {
                                "name": "Display",
                                "value": "\"inline-block\""
                              }
                            ]
                          },
                          {
                            "Name": "electric",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "Background",
                                "value": "\"rgba(0,0,255,0.4)\""
                              },
                              {
                                "name": "Tooltip",
                                "value": "%eTooltip%"
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/Electrically.png\""
                              },
                              {
                                "name": "Text",
                                "value": "\"Electrically\""
                              },
                              {
                                "name": "Disabled",
                                "value": "true"
                              },
                              {
                                "name": "Width",
                                "value": "physicsonly?\"20%\":\"15%\""
                              },
                              {
                                "name": "Display",
                                "value": "\"inline-block\""
                              }
                            ]
                          },
                          {
                            "Name": "chemically",
                            "Type": "Label",
                            "Properties": [
                              {
                                "name": "Background",
                                "value": "\"rgba(0,0,255,0.4)\""
                              },
                              {
                                "name": "Tooltip",
                                "value": "\"Chemically\""
                              },
                              {
                                "name": "ImageUrl",
                                "value": "\"./Settings/Chemically.png\""
                              },
                              {
                                "name": "Text",
                                "value": "\"Chemically\""
                              },
                              {
                                "name": "Disabled",
                                "value": "true"
                              },
                              {
                                "name": "Width",
                                "value": "\"15%\""
                              },
                              {
                                "name": "Display",
                                "value": "physicsonly?\"none\":\"inline-block\""
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "RootProperties": []
  },
  "metadata": {
    "APP": "WebEJS",
    "CreatedWith": "WebEJS : The web version of Easy JavaScript Simulations",
    "MoreInfo": "WebEJS 1.1",
    "version": "https://www.um.es/fem/wikis/webejs/"
  }
}