`)}popupDebug(){window.open(this.getDebugURI())}iframeDebug(){const e=document.createElement("iframe");e.width=""+window.innerWidth,e.height=""+window.innerHeight,e.style.position="absolute",e.style.left="0",e.style.top="0",e.style.zIndex="10000",document.body.appendChild(e),e.contentWindow.document.open(),e.contentWindow.document.write(this.getDebugHTML()),e.contentWindow.document.close(),e.contentWindow.document.body.style.background="white";const t=document.createElement("button");t.style.position="absolute",t.style.top="0",t.style.right="0",t.style.zIndex="10001",document.body.appendChild(t),t.textContent="close",["pointerdown","click","touchdown"].forEach(i=>{t.addEventListener(i,()=>{document.body.removeChild(e),document.body.removeChild(t)},!0)})}getPDOMDebugHTML(){let e="";const t="font-weight: bold; font-size: 120%; margin-top: 5px;",i="";e+=`
Accessible Instances
`,function t(n,s){e+=s+qs(`${n.isRootInstance?"":n.node.tagName} ${n.toString()}`)+"
",n.children.forEach(e=>{t(e,s+i)})}(this._rootPDOMInstance,""),e+=`
Parallel DOM
`;let n=this._rootPDOMInstance.peer.primarySibling.outerHTML;n=n.replace(/>\n<");const s=n.split("\n");let r="";for(let o=0;o",n||(r+=i)}return e}foreignObjectRasterization(e){const t={};let i=0;function n(e){e.id||(e.id="unknown-canvas-"+i++),t[e.id]=e.toDataURL()}!function e(t){if(t instanceof tu)_.each(t.blocks,t=>{e(t)});else if(t instanceof bc&&t.firstDrawable&&t.lastDrawable){for(let i=t.firstDrawable;i!==t.lastDrawable;i=i.nextDrawable)e(i);e(t.lastDrawable),(t instanceof xc||t instanceof qc)&&t.canvas&&t.canvas instanceof window.HTMLCanvasElement&&n(t.canvas)}fd&&t instanceof fd&&(t.domElement instanceof window.HTMLCanvasElement&&n(t.domElement),Array.prototype.forEach.call(t.domElement.getElementsByTagName("canvas"),e=>{n(e)}))}(this._rootBackbone);const s=document.implementation.createHTMLDocument("");s.documentElement.innerHTML=this.domElement.outerHTML,s.documentElement.setAttribute("xmlns",s.documentElement.namespaceURI),s.documentElement.appendChild(document.createElement("style")).innerHTML=`.${Ei.ROOT_CLASS_NAME} { display:none; } `;let r=s.documentElement.getElementsByTagName("canvas");r=Array.prototype.slice.call(r);for(let c=0;c{Bu.elementToSVGDataURL(s.documentElement,o,a,e)};let h=0,A=!1;const d=Array.prototype.slice.call(s.documentElement.getElementsByTagName("image"));for(let c=0;c{const i=new window.Image,n=e;i.onload=()=>{const e=document.createElement("canvas");e.width=i.width,e.height=i.height,e.getContext("2d").drawImage(i,0,0),n.setAttribute("xlink:href",e.toDataURL()),0==--h&&l()},i.onerror=()=>{0==--h&&l()},i.src=t})())}A||l()}popupRasterization(){this.foreignObjectRasterization(e=>{e&&window.open(e)})}getTrailFromPDOMIndicesString(e){if(!this._rootPDOMInstance)return null;let t=this._rootPDOMInstance;const i=e.split(ki.PDOM_UNIQUE_ID_SEPARATOR);for(let n=0;n${(new window.XMLSerializer).serializeToString(e)}
`,a=new window.Image;a.onload=()=>{r.drawImage(a,0,0),n(s.toDataURL())},a.onerror=()=>{n(null)};const l=new window.TextEncoderLite("utf-8").encode(o),h=window.fromByteArray(l);a.src="data:image/svg+xml;base64,"+h}static assertSubtreeDisposed(e){0}static addInputListener(e){_.includes(Bu.inputListeners,e)||Bu.inputListeners.push(e)}static removeInputListener(e){Bu.inputListeners.splice(_.indexOf(Bu.inputListeners,e),1)}static interruptInput(){const e=Bu.inputListeners.slice(0);for(let t=0;t{var t,i,n;null===(t=phet)||void 0===t||null===(i=t.joist)||void 0===i||null===(n=i.display)||void 0===n||n.interruptOtherPointers(null==e?void 0:e.pointer)}),j.register("Display",Bu),Bu.userGestureEmitter=new Fr.Z,Bu.inputListeners=[];var Pu=i(6292);const Du={};let Cu=0;function Eu(e,t,i){let n=e.indexOfChild(t)+i;for(;n>0&&n=0&&n{const t={index:null};return e.parents[0]&&(t.index=e.parents[0].indexOfChild(e)),t},applyState:(e,t)=>{const i=e.parents[0];if(i&&t.index){const n=i.children;n[i.indexOfChild(e)]=n[t.index],n[t.index]=e,i.setChildren(n)}},stateSchema:{index:(0,pt.Z)(se.Z)},methods:{linkIndex:{returnType:se.Z,parameterTypes:[(0,Pu.Z)(Rs.Z,[se.Z])],documentation:"Following the PropertyIO.link pattern, subscribe for notifications when the index in the parent changes, and receive a callback with the current value. The return value is a numeric ID for use with clearLinkIndex.",implementation:function(e){const t=()=>{const t=this.parents[0].indexOfChild(this);e(t)};this.parents[0].childrenChangedEmitter.addListener(t),t();const i=Cu;return Du[i]=t,Cu++,i}},unlinkIndex:{returnType:Rs.Z,parameterTypes:[se.Z],documentation:"Unlink a listener that has been added using linkIndex, by its numerical ID (like setTimeout/clearTimeout)",implementation:function(e){const t=Du[e];this.parents[0].childrenChangedEmitter.removeListener(t),delete Du[e]}},clearLinkIndex:{returnType:Rs.Z,parameterTypes:[se.Z],documentation:'Deprecated, see "unlinkIndex".',implementation:function(e){const t=Du[e];this.parents[0].childrenChangedEmitter.removeListener(t),delete Du[e]}},moveForward:{returnType:Rs.Z,parameterTypes:[],implementation:function(){var e;(e=this)._parents.forEach(t=>Eu(t,e,1))},documentation:"Move this Node one index forward in each of its parents, skipping invisible Nodes. If the Node is already at the front, this is a no-op."},moveBackward:{returnType:Rs.Z,parameterTypes:[],implementation:function(){var e;(e=this)._parents.forEach(t=>Eu(t,e,-1))},documentation:"Move this Node one index backward in each of its parents, skipping invisible Nodes. If the Node is already at the back, this is a no-op."}}});j.register("IndexedNodeIO",bu);const vu=bu;class Vu extends Mo.ZP{constructor(e,t,i){i=(0,Ft.Z)({nodeTandem:Zt.Z.REQUIRED},i),super([new Yt.Z(!0,{tandem:i.nodeTandem.createTandem("visibleProperty")}),...e],(function(e){for(var i=arguments.length,n=new Array(i>1?i-1:0),s=1;s{const e=window.phet.chipper.queryParameters.gameUpLogging,t=window.phet.chipper.queryParameters.gameUp,i=window.phet.chipper.queryParameters.gameUpTestHarness,n=t=>e&&console.log(t);if(t){n("Enabled Game Up Camera");const e=".brainpop.com";let t=!1,s=0;const r=()=>{!t&&s<10&&(parent.postMessage("captureReady","*"),s++,n("Posted captureReady, number of checks: "+s),setTimeout(r,1e3))},o=s=>{if(-1!==s.origin.indexOf(e,s.origin.length-e.length)||i)if("captureImage"===s.data){const e=window.phet.joist.ScreenshotGenerator.generateScreenshot(window.phet.joist.sim,"image/jpeg");a(e,s.origin,s.source),n("Sent image")}else"GameUpCaptureReady"===s.data&&(n("GameUpCaptureReady"),t=!0)},a=(e,t,i)=>{e=e.replace("data:image/jpeg;base64,",""),i.postMessage(e,t)};window.addEventListener?window.addEventListener("message",o,!1):window.attachEvent&&window.attachEvent("onmessage",o),r()}},3980:e=>{e.exports=function e(t,i,n){function s(o,a){if(!i[o]){if(!t[o]){if(r)return r(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}var h=i[o]={exports:{}};t[o][0].call(h.exports,(function(e){var i=t[o][1][e];return s(i||e)}),h,h.exports,e,t,i,n)}return i[o].exports}for(var r=void 0,o=0;o=0?(h.b[6][0]++,s):(h.b[6][1]++,n+s));for(h.s[12]++;o1&&void 0!==arguments[1]?arguments[1]:(h.b[0][0]++,m);h.f[0]++;var i=(h.s[1]++,(0,A.default)(e,t)),n=(h.s[2]++,(0,d.default)(i,t));return h.s[3]++,(0,c.format)(n,t)},i.stringify=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(h.b[1][0]++,m);return h.f[1]++,h.s[4]++,(0,u.toHTML)(e,t)};var A=p(e("./lexer")),d=p(e("./parser")),c=e("./format"),u=e("./stringify"),g=e("./tags");function p(e){return e&&e.__esModule?e:{default:e}}var m=i.parseDefaults=(h.s[0]++,{voidTags:g.voidTags,closingTags:g.closingTags,childlessTags:g.childlessTags,closingTagAncestorBreakers:g.closingTagAncestorBreakers,includePositions:!1})},{"./format":2,"./lexer":4,"./parser":5,"./stringify":6,"./tags":7}],4:[function(e,t,i){"use strict";var n,s,r,o,a,l,h=(n="/Users/chrisandrejewski/Desktop/Work/github-repos/himalaya/src/lexer.js",s="99f1269b85a36e02e6fcfa2eb5c9423a8a428848",r=new(0,function(){}.constructor)("return this")(),a={path:"/Users/chrisandrejewski/Desktop/Work/github-repos/himalaya/src/lexer.js",statementMap:{0:{start:{line:9,column:16},end:{line:9,column:30}},1:{start:{line:10,column:14},end:{line:10,column:42}},2:{start:{line:11,column:2},end:{line:19,column:3}},3:{start:{line:12,column:17},end:{line:12,column:30}},4:{start:{line:13,column:4},end:{line:18,column:5}},5:{start:{line:14,column:6},end:{line:14,column:21}},6:{start:{line:15,column:6},end:{line:15,column:25}},7:{start:{line:17,column:6},end:{line:17,column:23}},8:{start:{line:23,column:14},end:{line:23,column:34}},9:{start:{line:24,column:2},end:{line:24,column:41}},10:{start:{line:28,column:2},end:{line:32,column:3}},11:{start:{line:36,column:2},end:{line:40,column:3}},12:{start:{line:44,column:16},end:{line:49,column:3}},13:{start:{line:50,column:2},end:{line:50,column:12}},14:{start:{line:51,column:2},end:{line:51,column:21}},15:{start:{line:55,column:42},end:{line:55,column:47}},16:{start:{line:56,column:14},end:{line:56,column:24}},17:{start:{line:57,column:2},end:{line:72,column:3}},18:{start:{line:58,column:18},end:{line:58,column:38}},19:{start:{line:59,column:4},end:{line:59,column:18}},20:{start:{line:60,column:4},end:{line:71,column:5}},21:{start:{line:61,column:24},end:{line:61,column:57}},22:{start:{line:62,column:6},end:{line:70,column:7}},23:{start:{line:63,column:8},end:{line:63,column:25}},24:{start:{line:65,column:24},end:{line:65,column:37}},25:{start:{line:66,column:24},end:{line:66,column:45}},26:{start:{line:67,column:8},end:{line:69,column:9}},27:{start:{line:68,column:10},end:{line:68,column:36}},28:{start:{line:75,column:21},end:{line:75,column:34}},29:{start:{line:77,column:2},end:{line:87,column:3}},30:{start:{line:78,column:20},end:{line:78,column:43}},31:{start:{line:79,column:4},end:{line:81,column:5}},32:{start:{line:80,column:6},end:{line:80,column:20}},33:{start:{line:82,column:17},end:{line:82,column:40}},34:{start:{line:83,column:4},end:{line:85,column:5}},35:{start:{line:84,column:6},end:{line:84,column:20}},36:{start:{line:86,column:4},end:{line:86,column:23}},37:{start:{line:91,column:15},end:{line:91,column:21}},38:{start:{line:92,column:26},end:{line:92,column:31}},39:{start:{line:93,column:16},end:{line:93,column:48}},40:{start:{line:94,column:2},end:{line:94,column:40}},41:{start:{line:94,column:34},end:{line:94,column:40}},42:{start:{line:95,column:2},end:{line:97,column:3}},43:{start:{line:96,column:4},end:{line:96,column:24}},44:{start:{line:99,column:16},end:{line:99,column:38}},45:{start:{line:100,column:18},end:{line:100,column:52}},46:{start:{line:101,column:2},end:{line:101,column:38}},47:{start:{line:102,column:14},end:{line:102,column:36}},48:{start:{line:103,column:2},end:{line:103,column:60}},49:{start:{line:107,column:26},end:{line:107,column:31}},50:{start:{line:108,column:16},end:{line:108,column:38}},51:{start:{line:109,column:2},end:{line:109,column:32}},52:{start:{line:110,column:19},end:{line:110,column:53}},53:{start:{line:111,column:19},end:{line:111,column:33}},54:{start:{line:112,column:2},end:{line:114,column:3}},55:{start:{line:113,column:4},end:{line:113,column:40}},56:{start:{line:116,column:18},end:{line:116,column:55}},57:{start:{line:117,column:2},end:{line:117,column:41}},58:{start:{line:118,column:2},end:{line:125,column:4}},59:{start:{line:129,column:26},end:{line:129,column:31}},60:{start:{line:131,column:23},end:{line:131,column:53}},61:{start:{line:132,column:18},end:{line:132,column:36}},62:{start:{line:133,column:18},end:{line:133,column:40}},63:{start:{line:134,column:4},end:{line:134,column:46}},64:{start:{line:135,column:4},end:{line:135,column:68}},65:{start:{line:137,column:18},end:{line:137,column:35}},66:{start:{line:138,column:2},end:{line:138,column:25}},67:{start:{line:140,column:22},end:{line:140,column:48}},68:{start:{line:141,column:18},end:{line:141,column:35}},69:{start:{line:142,column:4},end:{line:142,column:46}},70:{start:{line:143,column:16},end:{line:143,column:38}},71:{start:{line:144,column:4},end:{line:144,column:64}},72:{start:{line:146,column:2},end:{line:146,column:16}},73:{start:{line:150,column:19},end:{line:150,column:23}},74:{start:{line:152,column:2},end:{line:152,column:30}},75:{start:{line:156,column:26},end:{line:156,column:31}},76:{start:{line:157,column:14},end:{line:157,column:24}},77:{start:{line:158,column:14},end:{line:158,column:28}},78:{start:{line:159,column:2},end:{line:164,column:3}},79:{start:{line:160,column:17},end:{line:160,column:34}},80:{start:{line:161,column:22},end:{line:161,column:79}},81:{start:{line:162,column:4},end:{line:162,column:24}},82:{start:{line:162,column:19},end:{line:162,column:24}},83:{start:{line:163,column:4},end:{line:163,column:11}},84:{start:{line:166,column:12},end:{line:166,column:21}},85:{start:{line:167,column:2},end:{line:172,column:3}},86:{start:{line:168,column:17},end:{line:168,column:32}},87:{start:{line:169,column:22},end:{line:169,column:79}},88:{start:{line:170,column:4},end:{line:170,column:25}},89:{start:{line:170,column:20},end:{line:170,column:25}},90:{start:{line:171,column:4},end:{line:171,column:9}},91:{start:{line:174,column:2},end:{line:174,column:34}},92:{start:{line:175,column:18},end:{line:175,column:39}},93:{start:{line:176,column:2},end:{line:179,column:4}},94:{start:{line:180,column:2},end:{line:180,column:16}},95:{start:{line:184,column:34},end:{line:184,column:39}},96:{start:{line:185,column:15},end:{line:185,column:29}},97:{start:{line:186,column:14},end:{line:186,column:18}},98:{start:{line:187,column:18},end:{line:187,column:24}},99:{start:{line:188,column:16},end:{line:188,column:18}},100:{start:{line:189,column:14},end:{line:189,column:24}},101:{start:{line:190,column:2},end:{line:227,column:3}},102:{start:{line:191,column:17},end:{line:191,column:35}},103:{start:{line:192,column:4},end:{line:199,column:5}},104:{start:{line:193,column:25},end:{line:193,column:39}},105:{start:{line:194,column:6},end:{line:196,column:7}},106:{start:{line:195,column:8},end:{line:195,column:20}},107:{start:{line:197,column:6},end:{line:197,column:14}},108:{start:{line:198,column:6},end:{line:198,column:14}},109:{start:{line:201,column:21},end:{line:201,column:49}},110:{start:{line:202,column:4},end:{line:207,column:5}},111:{start:{line:203,column:6},end:{line:205,column:7}},112:{start:{line:204,column:8},end:{line:204,column:48}},113:{start:{line:206,column:6},end:{line:206,column:11}},114:{start:{line:209,column:22},end:{line:209,column:44}},115:{start:{line:210,column:4},end:{line:217,column:5}},116:{start:{line:211,column:6},end:{line:213,column:7}},117:{start:{line:212,column:8},end:{line:212,column:48}},118:{start:{line:214,column:6},end:{line:214,column:28}},119:{start:{line:215,column:6},end:{line:215,column:14}},120:{start:{line:216,column:6},end:{line:216,column:14}},121:{start:{line:219,column:25},end:{line:219,column:54}},122:{start:{line:220,column:4},end:{line:224,column:5}},123:{start:{line:221,column:6},end:{line:221,column:18}},124:{start:{line:222,column:6},end:{line:222,column:14}},125:{start:{line:223,column:6},end:{line:223,column:14}},126:{start:{line:226,column:4},end:{line:226,column:12}},127:{start:{line:228,column:2},end:{line:228,column:37}},128:{start:{line:230,column:15},end:{line:230,column:27}},129:{start:{line:231,column:15},end:{line:231,column:26}},130:{start:{line:232,column:2},end:{line:269,column:3}},131:{start:{line:233,column:17},end:{line:233,column:25}},132:{start:{line:234,column:22},end:{line:234,column:46}},133:{start:{line:235,column:4},end:{line:253,column:5}},134:{start:{line:236,column:25},end:{line:236,column:37}},135:{start:{line:237,column:6},end:{line:252,column:7}},136:{start:{line:238,column:8},end:{line:243,column:9}},137:{start:{line:239,column:26},end:{line:239,column:43}},138:{start:{line:240,column:10},end:{line:240,column:47}},139:{start:{line:241,column:10},end:{line:241,column:16}},140:{start:{line:242,column:10},end:{line:242,column:18}},141:{start:{line:244,column:26},end:{line:244,column:38}},142:{start:{line:245,column:8},end:{line:245,column:14}},143:{start:{line:246,column:8},end:{line:251,column:9}},144:{start:{line:247,column:26},end:{line:247,column:48}},145:{start:{line:248,column:10},end:{line:248,column:47}},146:{start:{line:249,column:10},end:{line:249,column:16}},147:{start:{line:250,column:10},end:{line:250,column:18}},148:{start:{line:254,column:4},end:{line:266,column:5}},149:{start:{line:255,column:25},end:{line:255,column:37}},150:{start:{line:256,column:6},end:{line:261,column:7}},151:{start:{line:257,column:24},end:{line:257,column:41}},152:{start:{line:258,column:8},end:{line:258,column:45}},153:{start:{line:259,column:8},end:{line:259,column:14}},154:{start:{line:260,column:8},end:{line:260,column:16}},155:{start:{line:263,column:22},end:{line:263,column:39}},156:{start:{line:264,column:6},end:{line:264,column:43}},157:{start:{line:265,column:6},end:{line:265,column:14}},158:{start:{line:268,column:4},end:{line:268,column:38}},159:{start:{line:272,column:13},end:{line:272,column:20}},160:{start:{line:275,column:34},end:{line:275,column:39}},161:{start:{line:276,column:22},end:{line:276,column:43}},162:{start:{line:277,column:14},end:{line:277,column:24}},163:{start:{line:278,column:14},end:{line:278,column:28}},164:{start:{line:279,column:2},end:{line:311,column:3}},165:{start:{line:280,column:20},end:{line:280,column:44}},166:{start:{line:281,column:4},end:{line:284,column:5}},167:{start:{line:282,column:6},end:{line:282,column:20}},168:{start:{line:283,column:6},end:{line:283,column:11}},169:{start:{line:286,column:29},end:{line:286,column:51}},170:{start:{line:287,column:4},end:{line:287,column:48}},171:{start:{line:288,column:21},end:{line:288,column:66}},172:{start:{line:289,column:17},end:{line:289,column:33}},173:{start:{line:290,column:4},end:{line:293,column:5}},174:{start:{line:291,column:6},end:{line:291,column:37}},175:{start:{line:292,column:6},end:{line:292,column:14}},176:{start:{line:295,column:4},end:{line:306,column:5}},177:{start:{line:296,column:24},end:{line:296,column:46}},178:{start:{line:297,column:6},end:{line:297,column:42}},179:{start:{line:298,column:6},end:{line:305,column:8}},180:{start:{line:308,column:4},end:{line:308,column:39}},181:{start:{line:309,column:4},end:{line:309,column:56}},182:{start:{line:310,column:4},end:{line:310,column:9}}},fnMap:{0:{name:"feedPosition",decl:{start:{line:8,column:16},end:{line:8,column:28}},loc:{start:{line:8,column:50},end:{line:20,column:1}},line:8},1:{name:"jumpPosition",decl:{start:{line:22,column:16},end:{line:22,column:28}},loc:{start:{line:22,column:50},end:{line:25,column:1}},line:22},2:{name:"makeInitialPosition",decl:{start:{line:27,column:16},end:{line:27,column:35}},loc:{start:{line:27,column:39},end:{line:33,column:1}},line:27},3:{name:"copyPosition",decl:{start:{line:35,column:16},end:{line:35,column:28}},loc:{start:{line:35,column:40},end:{line:41,column:1}},line:35},4:{name:"lexer",decl:{start:{line:43,column:24},end:{line:43,column:29}},loc:{start:{line:43,column:45},end:{line:52,column:1}},line:43},5:{name:"lex",decl:{start:{line:54,column:16},end:{line:54,column:19}},loc:{start:{line:54,column:28},end:{line:73,column:1}},line:54},6:{name:"findTextEnd",decl:{start:{line:76,column:16},end:{line:76,column:27}},loc:{start:{line:76,column:41},end:{line:88,column:1}},line:76},7:{name:"lexText",decl:{start:{line:90,column:16},end:{line:90,column:23}},loc:{start:{line:90,column:32},end:{line:104,column:1}},line:90},8:{name:"lexComment",decl:{start:{line:106,column:16},end:{line:106,column:26}},loc:{start:{line:106,column:35},end:{line:126,column:1}},line:106},9:{name:"lexTag",decl:{start:{line:128,column:16},end:{line:128,column:22}},loc:{start:{line:128,column:31},end:{line:147,column:1}},line:128},10:{name:"isWhitespaceChar",decl:{start:{line:151,column:16},end:{line:151,column:32}},loc:{start:{line:151,column:40},end:{line:153,column:1}},line:151},11:{name:"lexTagName",decl:{start:{line:155,column:16},end:{line:155,column:26}},loc:{start:{line:155,column:35},end:{line:181,column:1}},line:155},12:{name:"lexTagAttributes",decl:{start:{line:183,column:16},end:{line:183,column:32}},loc:{start:{line:183,column:41},end:{line:270,column:1}},line:183},13:{name:"lexSkipTag",decl:{start:{line:274,column:16},end:{line:274,column:26}},loc:{start:{line:274,column:44},end:{line:312,column:1}},line:274}},branchMap:{0:{loc:{start:{line:13,column:4},end:{line:18,column:5}},type:"if",locations:[{start:{line:13,column:4},end:{line:18,column:5}},{start:{line:13,column:4},end:{line:18,column:5}}],line:13},1:{loc:{start:{line:60,column:4},end:{line:71,column:5}},type:"if",locations:[{start:{line:60,column:4},end:{line:71,column:5}},{start:{line:60,column:4},end:{line:71,column:5}}],line:60},2:{loc:{start:{line:62,column:6},end:{line:70,column:7}},type:"if",locations:[{start:{line:62,column:6},end:{line:70,column:7}},{start:{line:62,column:6},end:{line:70,column:7}}],line:62},3:{loc:{start:{line:67,column:8},end:{line:69,column:9}},type:"if",locations:[{start:{line:67,column:8},end:{line:69,column:9}},{start:{line:67,column:8},end:{line:69,column:9}}],line:67},4:{loc:{start:{line:79,column:4},end:{line:81,column:5}},type:"if",locations:[{start:{line:79,column:4},end:{line:81,column:5}},{start:{line:79,column:4},end:{line:81,column:5}}],line:79},5:{loc:{start:{line:83,column:4},end:{line:85,column:5}},type:"if",locations:[{start:{line:83,column:4},end:{line:85,column:5}},{start:{line:83,column:4},end:{line:85,column:5}}],line:83},6:{loc:{start:{line:83,column:8},end:{line:83,column:63}},type:"binary-expr",locations:[{start:{line:83,column:8},end:{line:83,column:20}},{start:{line:83,column:24},end:{line:83,column:36}},{start:{line:83,column:40},end:{line:83,column:63}}],line:83},7:{loc:{start:{line:94,column:2},end:{line:94,column:40}},type:"if",locations:[{start:{line:94,column:2},end:{line:94,column:40}},{start:{line:94,column:2},end:{line:94,column:40}}],line:94},8:{loc:{start:{line:95,column:2},end:{line:97,column:3}},type:"if",locations:[{start:{line:95,column:2},end:{line:97,column:3}},{start:{line:95,column:2},end:{line:97,column:3}}],line:95},9:{loc:{start:{line:112,column:2},end:{line:114,column:3}},type:"if",locations:[{start:{line:112,column:2},end:{line:114,column:3}},{start:{line:112,column:2},end:{line:114,column:3}}],line:112},10:{loc:{start:{line:134,column:32},end:{line:134,column:45}},type:"cond-expr",locations:[{start:{line:134,column:40},end:{line:134,column:41}},{start:{line:134,column:44},end:{line:134,column:45}}],line:134},11:{loc:{start:{line:142,column:32},end:{line:142,column:45}},type:"cond-expr",locations:[{start:{line:142,column:40},end:{line:142,column:41}},{start:{line:142,column:44},end:{line:142,column:45}}],line:142},12:{loc:{start:{line:161,column:24},end:{line:161,column:78}},type:"binary-expr",locations:[{start:{line:161,column:24},end:{line:161,column:46}},{start:{line:161,column:50},end:{line:161,column:62}},{start:{line:161,column:66},end:{line:161,column:78}}],line:161},13:{loc:{start:{line:162,column:4},end:{line:162,column:24}},type:"if",locations:[{start:{line:162,column:4},end:{line:162,column:24}},{start:{line:162,column:4},end:{line:162,column:24}}],line:162},14:{loc:{start:{line:169,column:24},end:{line:169,column:78}},type:"binary-expr",locations:[{start:{line:169,column:24},end:{line:169,column:46}},{start:{line:169,column:50},end:{line:169,column:62}},{start:{line:169,column:66},end:{line:169,column:78}}],line:169},15:{loc:{start:{line:170,column:4},end:{line:170,column:25}},type:"if",locations:[{start:{line:170,column:4},end:{line:170,column:25}},{start:{line:170,column:4},end:{line:170,column:25}}],line:170},16:{loc:{start:{line:192,column:4},end:{line:199,column:5}},type:"if",locations:[{start:{line:192,column:4},end:{line:199,column:5}},{start:{line:192,column:4},end:{line:199,column:5}}],line:192},17:{loc:{start:{line:194,column:6},end:{line:196,column:7}},type:"if",locations:[{start:{line:194,column:6},end:{line:196,column:7}},{start:{line:194,column:6},end:{line:196,column:7}}],line:194},18:{loc:{start:{line:201,column:21},end:{line:201,column:49}},type:"binary-expr",locations:[{start:{line:201,column:21},end:{line:201,column:33}},{start:{line:201,column:37},end:{line:201,column:49}}],line:201},19:{loc:{start:{line:202,column:4},end:{line:207,column:5}},type:"if",locations:[{start:{line:202,column:4},end:{line:207,column:5}},{start:{line:202,column:4},end:{line:207,column:5}}],line:202},20:{loc:{start:{line:203,column:6},end:{line:205,column:7}},type:"if",locations:[{start:{line:203,column:6},end:{line:205,column:7}},{start:{line:203,column:6},end:{line:205,column:7}}],line:203},21:{loc:{start:{line:210,column:4},end:{line:217,column:5}},type:"if",locations:[{start:{line:210,column:4},end:{line:217,column:5}},{start:{line:210,column:4},end:{line:217,column:5}}],line:210},22:{loc:{start:{line:211,column:6},end:{line:213,column:7}},type:"if",locations:[{start:{line:211,column:6},end:{line:213,column:7}},{start:{line:211,column:6},end:{line:213,column:7}}],line:211},23:{loc:{start:{line:219,column:25},end:{line:219,column:54}},type:"binary-expr",locations:[{start:{line:219,column:25},end:{line:219,column:38}},{start:{line:219,column:42},end:{line:219,column:54}}],line:219},24:{loc:{start:{line:220,column:4},end:{line:224,column:5}},type:"if",locations:[{start:{line:220,column:4},end:{line:224,column:5}},{start:{line:220,column:4},end:{line:224,column:5}}],line:220},25:{loc:{start:{line:235,column:4},end:{line:253,column:5}},type:"if",locations:[{start:{line:235,column:4},end:{line:253,column:5}},{start:{line:235,column:4},end:{line:253,column:5}}],line:235},26:{loc:{start:{line:237,column:6},end:{line:252,column:7}},type:"if",locations:[{start:{line:237,column:6},end:{line:252,column:7}},{start:{line:237,column:6},end:{line:252,column:7}}],line:237},27:{loc:{start:{line:237,column:10},end:{line:237,column:51}},type:"binary-expr",locations:[{start:{line:237,column:10},end:{line:237,column:20}},{start:{line:237,column:24},end:{line:237,column:51}}],line:237},28:{loc:{start:{line:238,column:8},end:{line:243,column:9}},type:"if",locations:[{start:{line:238,column:8},end:{line:243,column:9}},{start:{line:238,column:8},end:{line:243,column:9}}],line:238},29:{loc:{start:{line:246,column:8},end:{line:251,column:9}},type:"if",locations:[{start:{line:246,column:8},end:{line:251,column:9}},{start:{line:246,column:8},end:{line:251,column:9}}],line:246},30:{loc:{start:{line:254,column:4},end:{line:266,column:5}},type:"if",locations:[{start:{line:254,column:4},end:{line:266,column:5}},{start:{line:254,column:4},end:{line:266,column:5}}],line:254},31:{loc:{start:{line:256,column:6},end:{line:261,column:7}},type:"if",locations:[{start:{line:256,column:6},end:{line:261,column:7}},{start:{line:256,column:6},end:{line:261,column:7}}],line:256},32:{loc:{start:{line:256,column:10},end:{line:256,column:56}},type:"binary-expr",locations:[{start:{line:256,column:10},end:{line:256,column:20}},{start:{line:256,column:24},end:{line:256,column:56}}],line:256},33:{loc:{start:{line:281,column:4},end:{line:284,column:5}},type:"if",locations:[{start:{line:281,column:4},end:{line:284,column:5}},{start:{line:281,column:4},end:{line:284,column:5}}],line:281},34:{loc:{start:{line:290,column:4},end:{line:293,column:5}},type:"if",locations:[{start:{line:290,column:4},end:{line:293,column:5}},{start:{line:290,column:4},end:{line:293,column:5}}],line:290},35:{loc:{start:{line:295,column:4},end:{line:306,column:5}},type:"if",locations:[{start:{line:295,column:4},end:{line:306,column:5}},{start:{line:295,column:4},end:{line:306,column:5}}],line:295}},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0,145:0,146:0,147:0,148:0,149:0,150:0,151:0,152:0,153:0,154:0,155:0,156:0,157:0,158:0,159:0,160:0,161:0,162:0,163:0,164:0,165:0,166:0,167:0,168:0,169:0,170:0,171:0,172:0,173:0,174:0,175:0,176:0,177:0,178:0,179:0,180:0,181:0,182:0},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0},b:{0:[0,0],1:[0,0],2:[0,0],3:[0,0],4:[0,0],5:[0,0],6:[0,0,0],7:[0,0],8:[0,0],9:[0,0],10:[0,0],11:[0,0],12:[0,0,0],13:[0,0],14:[0,0,0],15:[0,0],16:[0,0],17:[0,0],18:[0,0],19:[0,0],20:[0,0],21:[0,0],22:[0,0],23:[0,0],24:[0,0],25:[0,0],26:[0,0],27:[0,0],28:[0,0],29:[0,0],30:[0,0],31:[0,0],32:[0,0],33:[0,0],34:[0,0],35:[0,0]},_coverageSchema:"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c"},(l=r[o="__coverage__"]||(r[o]={}))[n]&&l[n].hash===s?l[n]:(a.hash=s,l[n]=a));Object.defineProperty(i,"__esModule",{value:!0}),i.feedPosition=d,i.jumpPosition=c,i.makeInitialPosition=u,i.copyPosition=g,i.default=function(e,t){h.f[4]++;var i=(h.s[12]++,{str:e,options:t,position:u(),tokens:[]});return h.s[13]++,p(i),h.s[14]++,i.tokens},i.lex=p,i.findTextEnd=y,i.lexText=f,i.lexComment=w,i.lexTag=B,i.isWhitespaceChar=D,i.lexTagName=C,i.lexTagAttributes=E,i.lexSkipTag=v;var A=e("./compat");function d(e,t,i){h.f[0]++;var n=(h.s[0]++,e.index),s=(h.s[1]++,e.index=n+i);h.s[2]++;for(var r=n;r"===o)));if(h.s[81]++,a){h.b[13][0]++,h.s[82]++;break}h.b[13][1]++,h.s[83]++,r++}var l=(h.s[84]++,r+1);for(h.s[85]++;l"===A)));if(h.s[88]++,!d){h.b[15][0]++,h.s[89]++;break}h.b[15][1]++,h.s[90]++,l++}h.s[91]++,c(n,i,l);var u=(h.s[92]++,i.slice(r,l));return h.s[93]++,e.tokens.push({type:"tag",content:u}),h.s[94]++,u}function E(e){h.f[12]++;var t=(h.s[95]++,e),i=t.str,n=t.position,s=t.tokens,r=(h.s[96]++,n.index),o=(h.s[97]++,null),a=(h.s[98]++,r),l=(h.s[99]++,[]),d=(h.s[100]++,i.length);for(h.s[101]++;r"===u));if(h.s[110]++,p){h.b[19][0]++,h.s[111]++,r!==a?(h.b[20][0]++,h.s[112]++,l.push(i.slice(a,r))):h.b[20][1]++,h.s[113]++;break}h.b[19][1]++;var m=(h.s[114]++,D(u));if(h.s[115]++,m)h.b[21][0]++,h.s[116]++,r!==a?(h.b[22][0]++,h.s[117]++,l.push(i.slice(a,r))):h.b[22][1]++,h.s[118]++,a=r+1,h.s[119]++,r++,h.s[120]++;else{h.b[21][1]++;var y=(h.s[121]++,h.b[23][0]++,"'"===u||(h.b[23][1]++,'"'===u));h.s[122]++,y?(h.b[24][0]++,h.s[123]++,o=u,h.s[124]++,r++,h.s[125]++):(h.b[24][1]++,h.s[126]++,r++)}}}h.s[127]++,c(n,i,r);var f=(h.s[128]++,l.length),w=(h.s[129]++,"attribute");h.s[130]++;for(var B=0;B1){h.b[28][0]++;var b=(h.s[137]++,P+E);h.s[138]++,s.push({type:w,content:b}),h.s[139]++,B+=1,h.s[140]++;continue}h.b[28][1]++;var v=(h.s[141]++,l[B+2]);if(h.s[142]++,B+=1,h.s[143]++,v){h.b[29][0]++;var V=(h.s[144]++,P+"="+v);h.s[145]++,s.push({type:w,content:V}),h.s[146]++,B+=1,h.s[147]++;continue}h.b[29][1]++}else h.b[26][1]++}else h.b[25][1]++;if(h.s[148]++,(0,A.endsWith)(P,"=")){h.b[30][0]++;var I=(h.s[149]++,l[B+1]);if(h.s[150]++,h.b[32][0]++,I&&(h.b[32][1]++,!(0,A.stringIncludes)(I,"="))){h.b[31][0]++;var M=(h.s[151]++,P+I);h.s[152]++,s.push({type:w,content:M}),h.s[153]++,B+=1,h.s[154]++;continue}h.b[31][1]++;var S=(h.s[155]++,P.slice(0,-1));h.s[156]++,s.push({type:w,content:S}),h.s[157]++}else h.b[30][1]++,h.s[158]++,s.push({type:w,content:P})}}var b=(h.s[159]++,[].push);function v(e,t){h.f[13]++;var i=(h.s[160]++,t),n=i.str,s=i.position,r=i.tokens,o=(h.s[161]++,e.toLowerCase()),a=(h.s[162]++,n.length),l=(h.s[163]++,s.index);for(h.s[164]++;l=0;){var r=(h.s[8]++,t[s].tagName);if(h.s[9]++,r===e){h.b[1][0]++,h.s[10]++;break}if(h.b[1][1]++,h.s[11]++,(0,A.arrayIncludes)(n,r))return h.b[2][0]++,h.s[12]++,!0;h.b[2][1]++,h.s[13]++,s--}}else h.b[0][1]++;return h.s[14]++,!1}function c(e,t,i,n){h.f[2]++,h.s[15]++,e[t].position.end=n,h.s[16]++;for(var s=t+1,r=e.length;s-1;){if(h.s[37]++,s[m].tagName===p){h.b[5][0]++,h.s[38]++,y=!0,h.s[39]++;break}h.b[5][1]++}for(h.s[40]++;a0;){if(h.s[57]++,p===s[D].tagName){h.b[10][0]++,h.s[58]++,c(s,D,l.position.start,l.position.start);var C=(h.s[59]++,D-1);h.s[60]++,r=s[C].children,h.s[61]++;break}h.b[10][1]++,h.s[62]++,D-=1}}else h.b[9][1]++;var E=(h.s[63]++,[]),b=void 0;for(h.s[64]++;a"):(h.b[4][1]++,"<"+n+d(s)+">"+c(r,t)+""+n+">")})).join("")}i.default={toHTML:c}},{"./compat":1}],7:[function(e,t,i){"use strict";var n,s,r,o,a,l,h=(n="/Users/chrisandrejewski/Desktop/Work/github-repos/himalaya/src/tags.js",s="6039b9f65d15797c952509955976acf6930e65a4",r=new(0,function(){}.constructor)("return this")(),a={path:"/Users/chrisandrejewski/Desktop/Work/github-repos/himalaya/src/tags.js",statementMap:{0:{start:{line:5,column:29},end:{line:5,column:60}},1:{start:{line:11,column:27},end:{line:14,column:1}},2:{start:{line:23,column:42},end:{line:32,column:1}},3:{start:{line:38,column:24},end:{line:42,column:1}}},fnMap:{},branchMap:{},s:{0:0,1:0,2:0,3:0},f:{},b:{},_coverageSchema:"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c"},(l=r[o="__coverage__"]||(r[o]={}))[n]&&l[n].hash===s?l[n]:(a.hash=s,l[n]=a));Object.defineProperty(i,"__esModule",{value:!0}),i.childlessTags=(h.s[0]++,["style","script","template"]),i.closingTags=(h.s[1]++,["html","head","body","p","dt","dd","li","option","thead","th","tbody","tr","td","tfoot","colgroup"]),i.closingTagAncestorBreakers=(h.s[2]++,{li:["ul","ol","menu"],dt:["dl"],dd:["dl"],tbody:["table"],thead:["table"],tfoot:["table"],tr:["table"],td:["table"]}),i.voidTags=(h.s[3]++,["!doctype","area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"])},{}]},{},[3])(3)},7298:(e,t,i)=>{"use strict";i.d(t,{Z:()=>r});var n=i(4974);class s extends Error{constructor(){super("CouldNotYetDeserializeError")}}n.Z.register("CouldNotYetDeserializeError",s);const r=s},2976:(e,t,i)=>{"use strict";var n;let s;i.d(t,{Z:()=>d});var r=i(2956),o=i(4676),a=i(1091),l=i(4974),h=i(3409);s=a.Z.EVENT_TYPE_MODEL;class A extends o.Z{}_defineProperty(A,"USER",new(n=A)),_defineProperty(A,s,new n),_defineProperty(A,"WRAPPER",new n),_defineProperty(A,"OPT_OUT",new n),_defineProperty(A,"enumeration",new r.Z(n)),_defineProperty(A,"phetioType",(0,h.Z)(n)),l.Z.register("EventType",A);const d=A},7374:(e,t,i)=>{"use strict";i.d(t,{Z:()=>r});var n=i(4974);class s extends Map{constructor(e){super(e),s.caches.push(this)}static clearAll(){s.caches.forEach(e=>e.clear())}}_defineProperty(s,"caches",[]),n.Z.register("IOTypeCache",s);const r=s},5281:(e,t,i)=>{"use strict";var n;i.d(t,{Z:()=>B});var s=i(4974),r=i(3600),o=i(2550),a=i(1005),l=i(538),h=i(516),A=i(3061),d=i(8664),c=i(0),u=i(2306),g=i(2643),p=i(7374);const m=[];class y extends h.Z{constructor(e,t){var i;const n=(0,o.ZP)()({parameters:m,phetioOuterType:y.PhetioActionIO,phetioState:!1,phetioReadOnly:d.Z.DEFAULT_OPTIONS.phetioReadOnly,phetioHighFrequency:d.Z.DEFAULT_OPTIONS.phetioHighFrequency,phetioEventType:d.Z.DEFAULT_OPTIONS.phetioEventType,phetioDocumentation:"A class that wraps a function, adding API to execute that function and data stream capture."},t);super(n),this.action=e,this.isExecutingCount=0,this.disposeOnExecuteCompletion=!1,this.executedEmitter=new A.Z({parameters:n.parameters,tandem:null===(i=n.tandem)||void 0===i?void 0:i.createTandem("executedEmitter"),hasListenerOrderDependencies:n.hasListenerOrderDependencies,phetioState:n.phetioState,phetioReadOnly:n.phetioReadOnly,phetioHighFrequency:n.phetioHighFrequency,phetioEventType:n.phetioEventType,phetioDocumentation:"Emitter that emits when this actions work is complete"}),this.disposePhetioAction=()=>{this.executedEmitter.dispose()}}execute(){this.isExecutingCount++;for(var e=arguments.length,t=new Array(e),i=0;i0?this.disposeOnExecuteCompletion=!0:this.disposePhetioAction(),super.dispose()}}n=y,_defineProperty(y,"PhetioActionIO",e=>{const t=e.map(f).join(",");return w.has(t)||w.set(t,new r.Z(`PhetioActionIO<${e.map(f).join(", ")}>`,{valueType:n,documentation:"Executes when an event occurs",events:["executed"],parameterTypes:e,metadataDefaults:{phetioState:!1},methods:{execute:{returnType:l.Z,parameterTypes:e,implementation:function(){this.execute(...arguments)},documentation:"Executes the function the PhetioAction is wrapping.",invocableForReadOnlyElements:!1},getValidationErrors:{returnType:(0,c.Z)((0,u.Z)(g.Z)),parameterTypes:e,implementation:function(){return this.getValidationErrors(...arguments)},documentation:"Checks to see if the proposed values are valid. Returns an array of length N where each element is an error (string) or null if the value is valid."}}})),w.get(t)});const f=e=>e.typeName,w=new p.Z;s.Z.register("PhetioAction",y);const B=y},516:(e,t,i)=>{"use strict";i.d(t,{Z:()=>u});i(6212);var n=i(2550),s=i(8664),r=(i(1005),i(7922)),o=i(7959),a=i(4865);const l={validateValidator:!1},h=[],A=(["name","phetioType","phetioDocumentation","phetioPrivate"].concat(a.Z.VALIDATOR_KEYS),e=>e.phetioType),d=e=>e.name;class c extends s.Z{constructor(e){const t=(0,n.ZP)()({parameters:h,hasListenerOrderDependencies:!1,phetioPlayback:s.Z.DEFAULT_OPTIONS.phetioPlayback,phetioEventMetadata:s.Z.DEFAULT_OPTIONS.phetioEventMetadata,phetioDocumentation:""},e),i=t.parameters.filter(A);t.phetioType=t.phetioOuterType(i.map(A)),t.phetioPlayback&&(t.phetioEventMetadata=t.phetioEventMetadata||{},t.phetioEventMetadata.dataKeys=t.parameters.map(d)),t.phetioDocumentation=c.getPhetioDocumentation(t.phetioDocumentation,i),super(t),this.parameters=t.parameters}static validateParameters(e,t){(0,o.Z)(e,{valueType:Array});let i=!1;for(let n=0;na.Z.getValidationError(t[i],e,l))}getPhetioData(){let e=null;if(this.parameters.length>0){e={};for(var t=arguments.length,i=new Array(t),n=0;nNo parameters.":`
The parameters are:
${t.map(e=>{const t=e.phetioDocumentation?" - "+e.phetioDocumentation:"";return`- ${e.name}: ${e.phetioType.typeName}${t}
`}).join("
")}
`)}}r.Z.register("PhetioDataHandler",c);const u=c},8664:(e,t,i)=>{"use strict";i.d(t,{V:()=>E,Z:()=>C});i(732),i(7959);var n=i(9059),s=(i(6212),i(831)),r=i(2550),o=i(2976),a=i(1005),l=i(4974),h=i(3600),A=i(2643);const d=new h.Z("LinkedElementIO",{isValidValue:()=>!0,documentation:"A LinkedElement",toStateObject:e=>({elementID:e.element.tandem.phetioID}),applyState:_.noop,stateSchema:{elementID:A.Z}});l.Z.register("LinkedElementIO",d);const c=d,u=["phetioDynamicElement","phetioEventType","phetioIsArchetype","phetioPlayback","phetioReadOnly","phetioState","phetioTypeName"];const g=new class{constructor(){_defineProperty(this,"apiMismatches",[]),_defineProperty(this,"simHasStarted",!1),_defineProperty(this,"enabled",!1),_defineProperty(this,"everyPhetioType",{})}onSimStarted(){this.enabled&&phet.joist.sim.allScreensCreated&&(this.validateOverridesFile(),this.validatePreferencesModel()),phet.preloads.phetio.queryParameters.phetioPrintAPIProblems&&this.apiMismatches&&console.log("PhET-iO API problems detected: ",this.apiMismatches),this.simHasStarted=!0}validatePreferencesModel(){Object.keys(phet.phetio.phetioEngine.phetioElementMap).filter(e=>e.includes(".preferencesModel.")).forEach(e=>{let t=phet.phetio.phetioEngine.phetioElementMap[e];for(;t instanceof E;)t=t.element})}onPhetioObjectRemoved(e){if(!this.enabled)return;const t=e.tandem.phetioID;e.phetioDynamicElement||this.assertAPIError({phetioID:t,ruleInViolation:"2. Any static, registered PhetioObject can never be deregistered."})}onPhetioObjectAdded(e){if(!this.enabled)return;const t=e.phetioType;this.everyPhetioType[t.typeName]||(this.everyPhetioType[t.typeName]=t),this.simHasStarted&&phet.axon.animationFrameTimer.runOnNextTick(()=>{if(e.phetioDynamicElement){if(phet.preloads.phetio.createArchetypes&&!e.isDisposed){const t=e.tandem.getArchetypalPhetioID(),i=phet.phetio.phetioEngine.getPhetioElement(t).getMetadata();this.checkDynamicInstanceAgainstArchetype(e,i,"simulation archetype")}}else this.assertAPIError({phetioID:e.tandem.phetioID,ruleInViolation:"1. After startup, only dynamic instances prescribed by the baseline file can be registered."})})}validateOverridesFile(){const e=phet.phetio.phetioEngine.getPhetioElementsBaseline();for(const t in window.phet.preloads.phetio.phetioElementsOverrides){t.includes(a.i);if(phet.preloads.phetio.createArchetypes||e.hasOwnProperty(t))if(e.hasOwnProperty(t)){const i=window.phet.preloads.phetio.phetioElementsOverrides[t],n=e[t];0===Object.keys(i).length&&this.assertAPIError({phetioID:t,ruleInViolation:"4. Any schema entries in the overrides file must be different from its baseline counterpart.",message:"no metadata keys found for this override."});for(const e in i)n.hasOwnProperty(e)||this.assertAPIError({phetioID:t,ruleInViolation:"8. Any schema entries in the overrides file must be different from its baseline counterpart.",message:"phetioID metadata key not found in the baseline: "+e}),i[e]===n[e]&&this.assertAPIError({phetioID:t,ruleInViolation:"8. Any schema entries in the overrides file must be different from its baseline counterpart.",message:"phetioID metadata override value is the same as the corresponding metadata value in the baseline."})}else this.assertAPIError({phetioID:t,ruleInViolation:"3. Any schema entries in the overrides file must exist in the baseline file.",message:"phetioID expected in the baseline file but does not exist"});else;}}assertAPIError(e){e.phetioID?(e.phetioID,e.ruleInViolation):e.ruleInViolation;this.apiMismatches.push(e),this.simHasStarted||phet.preloads.phetio.queryParameters.phetioPrintAPIProblems}checkDynamicInstanceAgainstArchetype(e,t,i){const n=e.getMetadata();u.forEach(s=>{"phetioDynamicElement"!==s&&"phetioArchetypePhetioID"!==s&&"phetioIsArchetype"!==s&&t[s]!==n[s]&&e.tandem&&this.assertAPIError({phetioID:e.tandem.phetioID,ruleInViolation:"5. Dynamic element metadata should match the archetype in the API.",source:i,message:"mismatched metadata: "+s})})}};l.Z.register("phetioAPIValidation",g);const p=g;var m=i(1091),y=i(1731),f=i(1685);class w{static add(e,t){w.map.set(e.phetioID,t),w.inverseMap.set(t,e.phetioID);const i=e.phetioID.split(".");let n=w.root;for(let s=0;s=0;e--){const t=n[e];t&&0===Object.keys(t).length&&delete n[e]}}}}_defineProperty(w,"root",{}),_defineProperty(w,"map",new Map),_defineProperty(w,"inverseMap",new Map),_defineProperty(w,"addedEmitter",new f.Z),_defineProperty(w,"removedEmitter",new f.Z),l.Z.register("DescriptionRegistry",w);const B=a.Z.PHET_IO_ENABLED,P=(h.Z,o.Z,e=>e.tandem.phetioID),D={tandem:a.Z.OPTIONAL,descriptionTandem:a.Z.OPTIONAL,phetioType:h.Z.ObjectIO,phetioDocumentation:m.Z.PHET_IO_OBJECT_METADATA_DEFAULTS.phetioDocumentation,phetioState:m.Z.PHET_IO_OBJECT_METADATA_DEFAULTS.phetioState,phetioReadOnly:m.Z.PHET_IO_OBJECT_METADATA_DEFAULTS.phetioReadOnly,phetioEventType:o.Z.MODEL,phetioHighFrequency:m.Z.PHET_IO_OBJECT_METADATA_DEFAULTS.phetioHighFrequency,phetioPlayback:m.Z.PHET_IO_OBJECT_METADATA_DEFAULTS.phetioPlayback,phetioFeatured:m.Z.PHET_IO_OBJECT_METADATA_DEFAULTS.phetioFeatured,phetioDynamicElement:m.Z.PHET_IO_OBJECT_METADATA_DEFAULTS.phetioDynamicElement,phetioDesigned:m.Z.PHET_IO_OBJECT_METADATA_DEFAULTS.phetioDesigned,phetioEventMetadata:null,tandemNameSuffix:null};class C extends y.Z{constructor(e){super(),this.tandem=D.tandem,this.phetioID=this.tandem.phetioID,this.phetioObjectInitialized=!1,e&&this.initializePhetioObject({},e)}initializePhetioObject(e,t){if(this.initializeDisposable(t),t.tandem&&a.Z.onMissingTandem(t.tandem),t.tandem&&t.tandem.supplied&&w.add(t.tandem,this),!(B&&t.tandem&&t.tandem.supplied))return void(t.tandem&&(this.tandem=t.tandem,this.phetioID=this.tandem.phetioID));const i=(0,r.JA)({},D,e);let n=(0,r.ZP)()(i,t);this.phetioIsArchetype=!1,this.phetioBaselineMetadata=p.enabled||phet.preloads.phetio.queryParameters.phetioEmitAPIBaseline?this.getMetadata((0,s.Z)({phetioIsArchetype:this.phetioIsArchetype,phetioArchetypePhetioID:this.phetioArchetypePhetioID},n)):null;const o=n.tandem.getArchetypalPhetioID();if(window.phet.preloads.phetio.phetioElementsOverrides){const e=window.phet.preloads.phetio.phetioElementsOverrides[o];e&&(n=(0,r.ZP)()(n,e))}this.tandem=n.tandem,this.phetioID=this.tandem.phetioID,this._phetioType=n.phetioType,this._phetioState=n.phetioState,this._phetioReadOnly=n.phetioReadOnly,this._phetioDocumentation=n.phetioDocumentation,this._phetioEventType=n.phetioEventType,this._phetioHighFrequency=n.phetioHighFrequency,this._phetioPlayback=n.phetioPlayback,this._phetioDynamicElement=n.phetioDynamicElement,this._phetioFeatured=n.phetioFeatured,this._phetioEventMetadata=n.phetioEventMetadata,this._phetioDesigned=n.phetioDesigned,this.phetioArchetypePhetioID=null,this.linkedElements=[],this.phetioNotifiedObjectCreated=!1,this.phetioMessageStack=[],this._phetioPlayback&&(this._phetioEventMetadata=this._phetioEventMetadata||{},this._phetioEventMetadata.playback=!0),this.tandem.addPhetioObject(this),this.phetioObjectInitialized=!0}static swapCaseOfFirstCharacter(e){const t=e[0];return(t===t.toLowerCase()?t.toUpperCase():t.toLowerCase())+e.substring(1)}get phetioType(){return this._phetioType}get phetioState(){return this._phetioState}get phetioReadOnly(){return this._phetioReadOnly}get phetioDocumentation(){return this._phetioDocumentation}get phetioEventType(){return this._phetioEventType}get phetioHighFrequency(){return this._phetioHighFrequency}get phetioPlayback(){return this._phetioPlayback}get phetioDynamicElement(){return this._phetioDynamicElement}get phetioFeatured(){return this._phetioFeatured}get phetioEventMetadata(){return this._phetioEventMetadata}get phetioDesigned(){return this._phetioDesigned}phetioStartEvent(e,t){if(B&&this.isPhetioInstrumented()){const i=(0,r.ZP)()({data:null,getData:null},t);if(!_.hasIn(window,"phet.phetio.dataStream"))return void this.phetioMessageStack.push(-1);const n=this.phetioHighFrequency&&_.hasIn(window,"phet.preloads.phetio.queryParameters")&&!window.phet.preloads.phetio.queryParameters.phetioEmitHighFrequencyEvents&&!phet.phetio.dataStream.isEmittingLowFrequencyEvent(),s=!_.hasIn(window,"phet.phetio.dataStream");if(n||this.phetioEventType===o.Z.OPT_OUT||s)return void this.phetioMessageStack.push(-1);const a=i.getData?i.getData():i.data;this.phetioMessageStack.push(phet.phetio.dataStream.start(this.phetioEventType,this.tandem.phetioID,this.phetioType,e,a,this.phetioEventMetadata,this.phetioHighFrequency)),this.phetioPlayback&&phet.phetio.dataStream.pushNonPlaybackable()}}phetioEndEvent(){if(B&&this.isPhetioInstrumented()){const e=this.phetioMessageStack.pop();if(-1===e)return;this.phetioPlayback&&phet.phetio.dataStream.popNonPlaybackable(),phet.phetio.dataStream.end(e)}}propagateDynamicFlagsToDescendants(){const e=phet.phetio.phetioEngine,t=a.Z.launched?[]:a.Z.bufferedPhetioObjects.map(P);this.tandem.iterateDescendants(i=>{const n=i.phetioID;if(e.hasPhetioObject(n)||!a.Z.launched&&t.includes(n)){const i=e.hasPhetioObject(n)?e.getPhetioElement(n):a.Z.bufferedPhetioObjects[t.indexOf(n)];i.phetioIsArchetype=this.phetioIsArchetype,i.setPhetioDynamicElement(this.phetioDynamicElement),i.phetioBaselineMetadata&&(i.phetioBaselineMetadata.phetioIsArchetype=this.phetioIsArchetype)}})}setPhetioDynamicElement(e){this._phetioDynamicElement=!this.phetioIsArchetype&&e,this.phetioArchetypePhetioID=e?this.tandem.getArchetypalPhetioID():null,this.phetioBaselineMetadata&&(this.phetioBaselineMetadata.phetioDynamicElement=this.phetioDynamicElement)}markDynamicElementArchetype(){this.phetioIsArchetype=!0,this.setPhetioDynamicElement(!1),this.phetioBaselineMetadata&&(this.phetioBaselineMetadata.phetioIsArchetype=this.phetioIsArchetype),a.Z.PHET_IO_ENABLED&&this.propagateDynamicFlagsToDescendants()}isPhetioInstrumented(){return this.tandem&&this.tandem.supplied}addLinkedElement(e,t){if(this.isPhetioInstrumented()){if(B&&e.isPhetioInstrumented()){const i=(0,r.ZP)()({phetioFeatured:this.phetioFeatured&&e.phetioFeatured},t);let n=null;t&&t.tandem?n=t.tandem:t&&t.tandemName?n=this.tandem.createTandem(t.tandemName):!t&&e.tandem&&(n=this.tandem.createTandem(e.tandem.name)),n&&(i.tandem=n),this.linkedElements.push(new E(e,i))}}else this.linkedElements=null}removeLinkedElements(e){if(this.isPhetioInstrumented()&&this.linkedElements){this.linkedElements.filter(t=>t.element===e).forEach(e=>{e.dispose(),(0,n.Z)(this.linkedElements,e)})}}onSimulationConstructionCompleted(){this.phetioBaselineMetadata=null}getPhetioMouseHitTarget(){if(!(arguments.length>0&&void 0!==arguments[0]&&arguments[0])&&"linked"===phet.tandem.phetioElementSelectionProperty.value){const e=this.getCorrespondingLinkedElement();if("noCorrespondingLinkedElement"!==e)return e.getPhetioMouseHitTarget(!0);if(this.tandem.parentTandem){const e=phet.phetio.phetioEngine.phetioElementMap[this.tandem.parentTandem.phetioID];if(e){const t=e.getCorrespondingLinkedElement();if("noCorrespondingLinkedElement"!==t)return t.getPhetioMouseHitTarget(!0)}}}return"string"===phet.tandem.phetioElementSelectionProperty.value?"phetioNotSelectable":this.getPhetioMouseHitTargetSelf()}getPhetioMouseHitTargetSelf(){return this.isPhetioMouseHitSelectable()?this:"phetioNotSelectable"}isPhetioMouseHitSelectable(){const e="featured"!==phet.tandem.phetioElementsDisplayProperty.value||this.isDisplayedInFeaturedTree();return this.isPhetioInstrumented()&&e}isDisplayedInFeaturedTree(){if(this.isPhetioInstrumented()&&this.phetioFeatured)return!0;let e=!1;return this.tandem.iterateDescendants(t=>{const i=phet.phetio.phetioEngine.phetioElementMap[t.phetioID];i&&i.isPhetioInstrumented()&&i.phetioFeatured&&(e=!0)}),e}getCorrespondingLinkedElement(){const e=Object.keys(this.tandem.children),t=[];e.forEach(e=>{const i=phetio.PhetioIDUtils.append(this.tandem.phetioID,e),n=phet.phetio.phetioEngine.phetioElementMap[i];n instanceof E&&t.push(n)});const i=t.map(e=>phetio.PhetioIDUtils.getComponentName(e.phetioID));let n=null;if(1===t.length)n=t[0];else if(i.includes("property"))n=t[i.indexOf("property")];else{if(!i.includes("valueProperty"))return"noCorrespondingLinkedElement";n=t[i.indexOf("valueProperty")]}return n.element}dispose(){w.remove(this),this.tandem.removePhetioObject(this),this.linkedElements&&(this.linkedElements.forEach(e=>e.dispose()),this.linkedElements.length=0),super.dispose()}getMetadata(e){const t={phetioTypeName:(e=e||this).phetioType.typeName,phetioDocumentation:e.phetioDocumentation,phetioState:e.phetioState,phetioReadOnly:e.phetioReadOnly,phetioEventType:o.Z.phetioType.toStateObject(e.phetioEventType),phetioHighFrequency:e.phetioHighFrequency,phetioPlayback:e.phetioPlayback,phetioDynamicElement:e.phetioDynamicElement,phetioIsArchetype:e.phetioIsArchetype,phetioFeatured:e.phetioFeatured,phetioDesigned:e.phetioDesigned};return e.phetioArchetypePhetioID&&(t.phetioArchetypePhetioID=e.phetioArchetypePhetioID),t}static create(e){return new C(e)}}_defineProperty(C,"DEFAULT_OPTIONS",D),_defineProperty(C,"METADATA_DOCUMENTATION","Get metadata about the PhET-iO Element. This includes the following keys:- phetioTypeName: The name of the PhET-iO Type\n
- phetioDocumentation: default - null. Useful notes about a PhET-iO Element, shown in the PhET-iO Studio Wrapper
- phetioState: default - true. When true, includes the PhET-iO Element in the PhET-iO state\n
- phetioReadOnly: default - false. When true, you can only get values from the PhET-iO Element; no setting allowed.\n
- phetioEventType: default - MODEL. The category of event that this element emits to the PhET-iO Data Stream.\n
- phetioDynamicElement: default - false. If this element is a \"dynamic element\" that can be created and destroyed throughout the lifetime of the sim (as opposed to existing forever).\n
- phetioIsArchetype: default - false. If this element is an archetype for a dynamic element.\n
- phetioFeatured: default - false. If this is a featured PhET-iO Element.\n
- phetioArchetypePhetioID: default - ''. If an applicable dynamic element, this is the phetioID of its archetype.\n
");class E extends C{constructor(e,t){const i=(0,r.ZP)()({phetioType:c,phetioState:!0,phetioFeatured:e.phetioFeatured},t);i.phetioReadOnly=!0,super(i),this.element=e}}l.Z.register("PhetioObject",C)},1005:(e,t,i)=>{"use strict";var n;i.d(t,{Z:()=>C,i:()=>y});var s=i(9059),r=i(831),o=i(2550),a=i(1091),l=i(4974);const h=_.hasIn(window,"phet.chipper.packageObject")?phet.chipper.packageObject:{name:"placeholder"},A=_.hasIn(window,"phet.preloads.phetio"),d=A&&phet.preloads.phetio.queryParameters.phetioPrintMissingTandems,c=!_.hasIn(h,"phet.phet-io.validation")||!!h.phet["phet-io"].validation,u=window.QueryStringMachine&&QueryStringMachine.containsKey("phetioValidation"),g=A&&u?!!phet.preloads.phetio.queryParameters.phetioValidation:A&&c,p=A&&g&&!d,m=phetio.PhetioIDUtils.INTER_TERM_SEPARATOR,y=phetio.PhetioIDUtils.ARCHETYPE,f={required:[],optional:[]},w=[],B=[];class P{constructor(e,t,i){_defineProperty(this,"children",{}),_defineProperty(this,"isDisposed",!1),this.parentTandem=e,this.name=t,this.phetioID=this.parentTandem?window.phetio.PhetioIDUtils.append(this.parentTandem.phetioID,this.name):this.name;const n=(0,o.ZP)()({required:!0,supplied:!0,isValidTandemName:e=>P.getRegexFromCharacterClass().test(e)},i);this.children={},this.parentTandem&&this.parentTandem.addChild(t,this),this.required=n.required,this.supplied=n.supplied}static getRegexFromCharacterClass(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.Z.BASE_TANDEM_CHARACTER_CLASS;return new RegExp(`^[${e}]+$`)}static onMissingTandem(e){if(d&&!e.supplied){const t=P.captureStackTrace();e.required?f.required.push({phetioID:e.phetioID,stack:t}):t.includes("Font")||f.optional.push({phetioID:e.phetioID,stack:t})}}static captureStackTrace(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1/0;const t=Object.getOwnPropertyDescriptor(Error,"stackTraceLimit");if(t&&(t.writable||t.set&&"function"==typeof t.set)){const t=Error.stackTraceLimit;Error.stackTraceLimit=e;const i=(new Error).stack;return Error.stackTraceLimit=t,i}return(new Error).stack}addPhetioObject(e){if(A){if(!this.required&&!this.supplied)return;if(P.launched)for(let t=0;t0;)B.shift()()}static unlaunch(){P.launched=!1,P.bufferedPhetioObjects.length=0,B.length=0}static addLaunchListener(e){B.push(e)}createTandemFromPhetioID(e){return this.createTandem(e.split(window.phetio.PhetioIDUtils.SEPARATOR).join(m),{isValidTandemName:e=>P.getRegexFromCharacterClass(a.Z.BASE_DERIVED_TANDEM_CHARACTER_CLASS).test(e)})}static getStringsTandem(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:P.ROOT.name;return P.STRINGS.createTandem(e)}static getDerivedStringsTandem(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:P.ROOT.name;return P.getStringsTandem(e).createTandem("derivedStrings")}}n=P,_defineProperty(P,"SCREEN_TANDEM_NAME_SUFFIX","Screen"),_defineProperty(P,"missingTandems",f),_defineProperty(P,"PHET_IO_ENABLED",A),_defineProperty(P,"API_GENERATION",n.PHET_IO_ENABLED&&(phet.preloads.phetio.queryParameters.phetioPrintAPI||phet.preloads.phetio.queryParameters.phetioCompareAPI)),_defineProperty(P,"VALIDATION",p),_defineProperty(P,"METADATA_KEY","_metadata"),_defineProperty(P,"DATA_KEY","_data"),_defineProperty(P,"launched",!1),_defineProperty(P,"bufferedPhetioObjects",[]),_defineProperty(P,"RootTandem",class extends n{createTandem(e,t){if(n.VALIDATION){e===window.phetio.PhetioIDUtils.GLOBAL_COMPONENT_NAME||"requiredTandem"===e||"optionalTandem"===e||"test"===e||e===window.phetio.PhetioIDUtils.GENERAL_COMPONENT_NAME||_.endsWith(e,n.SCREEN_TANDEM_NAME_SUFFIX)}return super.createTandem(e,t)}}),_defineProperty(P,"ROOT",new n.RootTandem(null,_.camelCase(h.name))),_defineProperty(P,"GENERAL",n.ROOT.createTandem(window.phetio.PhetioIDUtils.GENERAL_COMPONENT_NAME)),_defineProperty(P,"ROOT_TEST",n.ROOT.createTandem("test")),_defineProperty(P,"GENERAL_MODEL",n.GENERAL.createTandem(window.phetio.PhetioIDUtils.MODEL_COMPONENT_NAME)),_defineProperty(P,"GENERAL_VIEW",n.GENERAL.createTandem(window.phetio.PhetioIDUtils.VIEW_COMPONENT_NAME)),_defineProperty(P,"GENERAL_CONTROLLER",n.GENERAL.createTandem(window.phetio.PhetioIDUtils.CONTROLLER_COMPONENT_NAME)),_defineProperty(P,"GLOBAL",n.ROOT.createTandem(window.phetio.PhetioIDUtils.GLOBAL_COMPONENT_NAME)),_defineProperty(P,"GLOBAL_MODEL",n.GLOBAL.createTandem(window.phetio.PhetioIDUtils.MODEL_COMPONENT_NAME)),_defineProperty(P,"GLOBAL_VIEW",n.GLOBAL.createTandem(window.phetio.PhetioIDUtils.VIEW_COMPONENT_NAME)),_defineProperty(P,"COLORS",n.GLOBAL_VIEW.createTandem(window.phetio.PhetioIDUtils.COLORS_COMPONENT_NAME)),_defineProperty(P,"STRINGS",n.GENERAL_MODEL.createTandem(window.phetio.PhetioIDUtils.STRINGS_COMPONENT_NAME)),_defineProperty(P,"OPTIONAL",n.ROOT.createTandem("optionalTandem",{required:!1,supplied:!1})),_defineProperty(P,"OPT_OUT",n.OPTIONAL),_defineProperty(P,"REQUIRED",n.ROOT.createTandem("requiredTandem",{required:p||d,supplied:!1})),_defineProperty(P,"PREFERENCES",n.GLOBAL_MODEL.createTandem("preferences")),P.addLaunchListener(()=>{for(;P.bufferedPhetioObjects.length>0;){const e=P.bufferedPhetioObjects.shift();e.tandem.addPhetioObject(e)}});class D extends P{constructor(e,t){super(e,t),this.groupName=t,this.groupMemberIndex=0}createNextTandem(){const e=this.parentTandem.createTandem(`${this.groupName}${this.groupMemberIndex}`);return this.groupMemberIndex++,e}}l.Z.register("Tandem",P);const C=P},1091:(e,t,i)=>{"use strict";i.d(t,{Z:()=>s});const n={OBJECT_IO_TYPE_NAME:"ObjectIO",EVENT_TYPE_MODEL:"MODEL",PHET_IO_OBJECT_METADATA_DEFAULTS:{phetioTypeName:"ObjectIO",phetioDocumentation:"",phetioState:!0,phetioReadOnly:!1,phetioEventType:"MODEL",phetioHighFrequency:!1,phetioPlayback:!1,phetioDynamicElement:!1,phetioIsArchetype:!1,phetioFeatured:!1,phetioDesigned:!1,phetioArchetypePhetioID:null},METADATA_KEY_NAME:"_metadata",DATA_KEY_NAME:"_data",BASE_TANDEM_CHARACTER_CLASS:"a-zA-Z0-9[\\],",BASE_DYNAMIC_TANDEM_CHARACTER_CLASS:"a-zA-Z0-9[\\],_",BASE_DERIVED_TANDEM_CHARACTER_CLASS:"a-zA-Z0-9[\\],_\\-"};i(4974).Z.register("TandemConstants",n);const s=n},1773:(e,t,i)=>{"use strict";i.d(t,{Z:()=>r});var n=i(4974);const s=new(i(8292).Z)(!1);n.Z.register("isClearingPhetioDynamicElementsProperty",s);const r=s},8047:(e,t,i)=>{"use strict";i.d(t,{Z:()=>r});var n=i(4974);const s=new(i(8292).Z)(!1);n.Z.register("isSettingPhetioStateProperty",s);const r=s},4974:(e,t,i)=>{"use strict";i.d(t,{Z:()=>n});const n=new(i(2492).Z)("tandem")},0:(e,t,i)=>{"use strict";i.d(t,{Z:()=>h});var n=i(4865),s=i(4974),r=i(3600),o=i(9196);const a=new(i(7374).Z),l=e=>(a.has(e)||a.set(e,new r.Z(`ArrayIO<${e.typeName}>`,{valueType:Array,isValidValue:t=>_.every(t,t=>n.Z.isValueValid(t,e.validator)),parameterTypes:[e],toStateObject:t=>t.map(e.toStateObject),fromStateObject:t=>t.map(e.fromStateObject),documentation:"IO Type for the built-in JS array type, with the element type specified.",stateSchema:o.Z.asValue(`Array<${e.typeName}>`,{isValidValue:t=>_.every(t,t=>e.isStateObjectValid(t))})})),a.get(e));s.Z.register("ArrayIO",l);const h=l},5602:(e,t,i)=>{"use strict";i.d(t,{Z:()=>l});var n=i(4974),s=i(3600),r=i(9196),o=i(6540);const a=new s.Z("BooleanIO",{supertype:o.Z,valueType:"boolean",documentation:"IO Type for Javascript's boolean primitive type",stateSchema:r.Z.asValue("boolean",{valueType:"boolean"}),toStateObject:_.identity});n.Z.register("BooleanIO",a);const l=a},3409:(e,t,i)=>{"use strict";i.d(t,{Z:()=>h});var n=i(3600),s=i(9196),r=i(4974);const o=new(i(7374).Z),a=e=>e.join("|"),l=e=>{const t=e.enumeration;if(!o.has(t)){const e=t.phetioDocumentation?" "+t.phetioDocumentation:"",i=t.keys,r=t.values,l=`EnumerationIO(${a(i)})`;o.set(t,new n.Z(l,{validValues:r,documentation:`Possible values: ${i.join(", ")}.${e}`,toStateObject:e=>t.getKey(e),fromStateObject:e=>t.getValue(e),stateSchema:s.Z.asValue(""+a(i),{isValidValue:e=>i.includes(e)})}))}return o.get(t)};r.Z.register("EnumerationIO",l);const h=l},6292:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(4974),s=i(3600);const r=new(i(7374).Z),o=(e,t)=>{for(let n=0;ne.typeName).join(",")}`;if(!r.has(i)){let n=t.map(e=>e.typeName).join(", ");""===n&&(n="none");const o=t.map(e=>e.typeName).join(",");r.set(i,new s.Z(`FunctionIO(${o})=>${e.typeName}`,{valueType:"function",isFunctionType:!0,parameterTypes:t.concat([e]),documentation:`Wrapper for the built-in JS function type.
Arguments: ${n}
Return Type: `+e.typeName}))}return r.get(i)};n.Z.register("FunctionIO",o);const a=o},3600:(e,t,i)=>{"use strict";i.d(t,{Z:()=>u});var n=i(7959),s=i(4865),r=i(2550),o=i(4974);const a={IO_TYPE_SUFFIX:"IO"};o.Z.register("PhetioConstants",a);const l=a;var h=i(1091),A=i(9196);const d={validateValidator:!1},c=e=>{const t=e.indexOf(l.IO_TYPE_SUFFIX);return e.substring(0,t)};class u{constructor(e,t){this.typeName=e;const i=t.supertype||u.ObjectIO,o=!!t.toStateObject,a=!!t.applyState,l=!!t.stateSchema,h=(0,r.ZP)()({supertype:u.ObjectIO,methods:{},events:[],metadataDefaults:{},dataDefaults:{},methodOrder:[],parameterTypes:[],documentation:"IO Type for "+c(e),isFunctionType:!1,toStateObject:i&&i.toStateObject,fromStateObject:i&&i.fromStateObject,stateObjectToCreateElementArguments:i&&i.stateObjectToCreateElementArguments,applyState:i&&i.applyState,stateSchema:null,defaultDeserializationMethod:"fromStateObject",addChildElement:i&&i.addChildElement},t);if(this.supertype=i,this.documentation=h.documentation,this.methods=h.methods,this.events=h.events,this.metadataDefaults=h.metadataDefaults,this.dataDefaults=h.dataDefaults,this.methodOrder=h.methodOrder,this.parameterTypes=h.parameterTypes,this.validator=_.pick(h,s.Z.VALIDATOR_KEYS),this.validator.validationMessage=this.validator.validationMessage||"Validation failed IOType Validator: "+this.typeName,this.defaultDeserializationMethod=h.defaultDeserializationMethod,null===h.stateSchema||h.stateSchema instanceof A.Z)this.stateSchema=h.stateSchema;else{const e="function"==typeof h.stateSchema?h.stateSchema(this):h.stateSchema;this.stateSchema=new A.Z({compositeSchema:e})}this.toStateObject=e=>{let t;return(0,n.Z)(e,this.validator,d),t=!o&&l&&this.stateSchema&&this.stateSchema.isComposite()?this.defaultToStateObject(e):h.toStateObject(e),t},this.fromStateObject=h.fromStateObject,this.stateObjectToCreateElementArguments=h.stateObjectToCreateElementArguments,this.applyState=(e,t)=>{(0,n.Z)(e,this.validator,d),!a&&l&&this.stateSchema&&this.stateSchema.isComposite()?this.defaultApplyState(e,t):h.applyState(e,t)},this.isFunctionType=h.isFunctionType,this.addChildElement=h.addChildElement}defaultToStateObject(e){let t={};return this.supertype&&(t=this.supertype.defaultToStateObject(e)),this.stateSchema&&this.stateSchema.isComposite()?_.merge(t,this.stateSchema.defaultToStateObject(e)):t}defaultApplyState(e,t){this.supertype&&this.supertype.defaultApplyState(e,t),this.stateSchema&&this.stateSchema.isComposite()&&this.stateSchema.defaultApplyState(e,t)}getTypeHierarchy(){const e=[];let t=this;for(;t;)e.push(t),t=t.supertype;return e}extends(e){return this.getTypeHierarchy().includes(e)}getAllMetadataDefaults(){return _.merge({},this.supertype?this.supertype.getAllMetadataDefaults():{},this.metadataDefaults)}getAllDataDefaults(){return _.merge({},this.supertype?this.supertype.getAllDataDefaults():{},this.dataDefaults)}isStateObjectValid(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=!0;if(this.stateSchema){const n=this.stateSchema.checkStateObjectValid(e,t,i);if(null!==n)return n}return this.supertype?n&&this.supertype.isStateObjectValid(e,t,i):!(!this.supertype&&e&&"string"!=typeof e&&!Array.isArray(e))||(Object.keys(e).forEach(e=>{const t=i.includes(e);t||(n=!1)}),n)}validateStateObject(e){this.isStateObjectValid(e,!0)}toString(){return this.typeName}}u.ObjectIO=new u(h.Z.OBJECT_IO_TYPE_NAME,{isValidValue:()=>!0,supertype:null,documentation:"The root of the IO Type hierarchy",toStateObject:e=>(phet&&phet.tandem&&phet.tandem.Tandem.VALIDATION,null),fromStateObject:()=>{throw new Error("ObjectIO.fromStateObject should not be called")},stateObjectToCreateElementArguments:()=>[],applyState:_.noop,metadataDefaults:h.Z.PHET_IO_OBJECT_METADATA_DEFAULTS,dataDefaults:{initialState:null},stateSchema:null}),o.Z.register("IOType",u)},4792:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(4974),s=i(3600),r=i(9196);const o=new s.Z("InfiniteNumberIO",{valueType:"number",documentation:"IO Type for Javascript's number primitive type",toStateObject:e=>e===Number.POSITIVE_INFINITY?"POSITIVE_INFINITY":e===Number.NEGATIVE_INFINITY?"NEGATIVE_INFINITY":e,fromStateObject:e=>"POSITIVE_INFINITY"===e?Number.POSITIVE_INFINITY:"NEGATIVE_INFINITY"===e?Number.NEGATIVE_INFINITY:e,stateSchema:r.Z.asValue("'POSITIVE_INFINITY'|'NEGATIVE_INFINITY'|number",{isValidValue:e=>"POSITIVE_INFINITY"===e||"NEGATIVE_INFINITY"===e||"number"==typeof e&&!isNaN(e)})});n.Z.register("InfiniteNumberIO",o);const a=o},2306:(e,t,i)=>{"use strict";i.d(t,{Z:()=>h});var n=i(4865),s=i(4974),r=i(3600),o=i(9196);const a=new(i(7374).Z),l=e=>(a.has(e)||a.set(e,new r.Z(`NullableIO<${e.typeName}>`,{documentation:"An IOType adding support for null in addition to the behavior of its parameter.",isValidValue:t=>null===t||n.Z.isValueValid(t,e.validator),parameterTypes:[e],toStateObject:t=>null===t?null:e.toStateObject(t),fromStateObject:t=>null===t?null:e.fromStateObject(t),stateSchema:o.Z.asValue(`null|<${e.typeName}>`,{isValidValue:t=>null===t||e.isStateObjectValid(t)})})),a.get(e));s.Z.register("NullableIO",l);const h=l},8585:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(4974),s=i(3600),r=i(9196);const o=new s.Z("NumberIO",{valueType:"number",documentation:"IO Type for Javascript's number primitive type",toStateObject:_.identity,fromStateObject:e=>e,stateSchema:r.Z.asValue("number",{isValidValue:e=>"number"==typeof e&&!isNaN(e)&&e!==Number.POSITIVE_INFINITY&&e!==Number.NEGATIVE_INFINITY})});n.Z.register("NumberIO",o);const a=o},170:(e,t,i)=>{"use strict";i.d(t,{Z:()=>h});var n=i(4974),s=i(3600),r=i(9196),o=i(6540);const a=e=>Object.getPrototypeOf(e)===Object.prototype,l=new s.Z("ObjectLiteralIO",{documentation:"IO Type for object literals",isValidValue:a,supertype:o.Z,stateSchema:r.Z.asValue("object",{valueType:Object,isValidValue:a}),toStateObject:_.identity});n.Z.register("ObjectLiteralIO",l);const h=l},1039:(e,t,i)=>{"use strict";i.d(t,{Z:()=>h});var n=i(4865),s=i(4974),r=i(3600),o=i(9196);const a=new(i(7374).Z),l=e=>{const t=e.map(e=>e.typeName),i=t.join(",");if(!a.has(i)){const s=t=>{for(let i=0;i`,{documentation:"An IOType adding support for a composite type that can be any of its parameters.",parameterTypes:e,isValidValue:s,toStateObject:t=>{for(let i=0;ie[t.index].fromStateObject(t.state),stateSchema:o.Z.asValue(""+t.join("|"),{isValidValue:t=>"number"==typeof t.index&&e[t.index].isStateObjectValid(t.state)})}))}return a.get(i)};s.Z.register("OrIO",l);const h=l},9883:(e,t,i)=>{"use strict";i.d(t,{Z:()=>A});var n=i(4865),s=i(7298),r=i(4974),o=i(3600),a=i(2643);const l=new(i(7374).Z),h=e=>{const t=e;return l.has(t)||l.set(t,new o.Z(`ReferenceIO<${e.typeName}>`,{isValidValue:t=>n.Z.isValueValid(t,e.validator),documentation:"Uses reference identity for serializing and deserializing, and validates based on its parameter IO Type.",parameterTypes:[e],toStateObject:e=>({phetioID:e.tandem.phetioID}),stateSchema:{phetioID:a.Z},fromStateObject(e){if(phet.phetio.phetioEngine.hasPhetioObject(e.phetioID))return phet.phetio.phetioEngine.getPhetioElement(e.phetioID);throw new s.Z},applyState(e){}})),l.get(t)};r.Z.register("ReferenceIO",h);const A=h},9196:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(4865),s=(i(6212),i(2550)),r=i(4974),o=i(3600);class a{constructor(e){const t=(0,s.ZP)()({displayString:"",validator:null,compositeSchema:null},e);this.displayString=t.displayString,this.validator=t.validator,this.compositeSchema=t.compositeSchema}defaultApplyState(e,t){for(const i in this.compositeSchema)if(this.compositeSchema.hasOwnProperty(i)){const n=this.compositeSchema[i],s=this.getCoreObjectAccessorName(i,e);"fromStateObject"===n.defaultDeserializationMethod?e[s]=this.compositeSchema[i].fromStateObject(t[i]):this.compositeSchema[i].applyState(e[s],t[i])}}defaultToStateObject(e){const t={};for(const i in this.compositeSchema)if(this.compositeSchema.hasOwnProperty(i)){const n=this.getCoreObjectAccessorName(i,e);0,t[i]=this.compositeSchema[i].toStateObject(e[n])}return t}getCoreObjectAccessorName(e,t){const i=e.startsWith("_")?e.substring(1):e,n="_"+i;let s;return s=t.hasOwnProperty(n)?n:i,s}isComposite(){return!!this.compositeSchema}checkStateObjectValid(e,t,i){if(this.isComposite()){const t=e,n=this.compositeSchema;let s=null;if(!t)return s=!1,s;return Object.keys(n).forEach(e=>{"string"==typeof e?(t.hasOwnProperty(e)&&n[e].isStateObjectValid(t[e],!1)||(s=!1),i.push(e)):console.error("key should be a string",e)}),s}{const t=e;return n.Z.isValueValid(t,this.validator)}}getRelatedTypes(){const e=[];if(this.compositeSchema){Object.keys(this.compositeSchema).forEach(t=>{this.compositeSchema[t]instanceof o.Z&&e.push(this.compositeSchema[t])})}return e}getStateSchemaAPI(){return this.isComposite()?_.mapValues(this.compositeSchema,e=>e.typeName):this.displayString}static asValue(e,t){return new a({validator:t,displayString:e})}}r.Z.register("StateSchema",a)},2643:(e,t,i)=>{"use strict";i.d(t,{Z:()=>l});var n=i(4974),s=i(3600),r=i(9196),o=i(6540);const a=new s.Z("StringIO",{supertype:o.Z,valueType:"string",documentation:"IO Type for Javascript's string primitive type",stateSchema:r.Z.asValue("string",{valueType:"string"}),toStateObject:_.identity});n.Z.register("StringIO",a);const l=a},6540:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(4974),s=i(3600),r=i(9196);const o=new s.Z("ValueIO",{isValidValue:_.stubTrue,supertype:s.Z.ObjectIO,toStateObject:e=>e,fromStateObject:e=>e,stateSchema:r.Z.asValue("*",{isValidValue:_.stubTrue})});n.Z.register("ValueIO",o);const a=o},538:(e,t,i)=>{"use strict";i.d(t,{Z:()=>r});var n=i(4974);const s=new(i(3600).Z)("VoidIO",{isValidValue:()=>!0,documentation:"Type for which there is no instance, usually to mark functions without a return value",toStateObject:()=>{}});n.Z.register("VoidIO",s);const r=s},2391:(e,t,i)=>{"use strict";var n;i.d(t,{Z:()=>p});var s=i(3061),r=i(2550),o=i(8664),a=i(3600),l=i(2306),h=i(8585),A=i(1039),d=i(2643),c=i(428),u=i(6692);class g extends o.Z{constructor(e){var t;const i=(0,r.ZP)()({respectResponseCollectorProperties:!0,phetioType:g.AnnouncerIO,phetioState:!1},e);super(i),_defineProperty(this,"readyToAnnounce",!0),_defineProperty(this,"hasSpoken",!1),this.respectResponseCollectorProperties=i.respectResponseCollectorProperties,this.announcementCompleteEmitter=new s.Z({parameters:[{name:"utterance",phetioType:c.Z.UtteranceIO},{name:"text",phetioType:(0,l.Z)((0,A.Z)([d.Z,h.Z]))}],tandem:null===(t=i.tandem)||void 0===t?void 0:t.createTandem("announcementCompleteEmitter"),phetioReadOnly:!0,phetioDocumentation:"The announcement that has just completed. The Utterance text could potentially differ from the exact text that was announced, so both are emitted. Use `text` for an exact match of what was announced."})}shouldUtteranceCancelOther(e,t){return t.priorityProperty.value{"use strict";i.d(t,{Z:()=>A});var n=i(1935),s=i(8292),r=i(2550),o=i(6975),a=i(6692);const l={nameResponse:null,objectResponse:null,contextResponse:null,hintResponse:null,ignoreProperties:!1,responsePatternCollection:o.Z.DEFAULT_RESPONSE_PATTERNS};class h{constructor(e){const t=(0,r.lB)()({},l,e);this._nameResponse=t.nameResponse,this._objectResponse=t.objectResponse,this._contextResponse=t.contextResponse,this._hintResponse=t.hintResponse,this.ignoreProperties=t.ignoreProperties,this.responsePatternCollection=t.responsePatternCollection}getNameResponse(){return h.getResponseText(this._nameResponse)}get nameResponse(){return this.getNameResponse()}set nameResponse(e){this.setNameResponse(e)}setNameResponse(e){this._nameResponse=e}getObjectResponse(){return h.getResponseText(this._objectResponse)}get objectResponse(){return this.getObjectResponse()}set objectResponse(e){this.setObjectResponse(e)}setObjectResponse(e){this._objectResponse=e}getContextResponse(){return h.getResponseText(this._contextResponse)}get contextResponse(){return this.getContextResponse()}set contextResponse(e){this.setContextResponse(e)}setContextResponse(e){this._contextResponse=e}getHintResponse(){return h.getResponseText(this._hintResponse)}get hintResponse(){return this.getHintResponse()}set hintResponse(e){this.setHintResponse(e)}setHintResponse(e){this._hintResponse=e}static getResponseText(e){return e instanceof n.Z||e instanceof s.Z?e.value:"function"==typeof e?e():e}copy(){return new h(this.serialize())}serialize(){return{nameResponse:this.nameResponse,objectResponse:this.objectResponse,contextResponse:this.contextResponse,hintResponse:this.hintResponse,ignoreProperties:this.ignoreProperties,responsePatternCollection:this.responsePatternCollection}}}_defineProperty(h,"DEFAULT_OPTIONS",l),a.Z.register("ResponsePacket",h);const A=h},6975:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(2550),s=i(6692);const r={nameObjectContextHint:"{{NAME}}, {{OBJECT}}, {{CONTEXT}} {{HINT}}",nameObjectContext:"{{NAME}}, {{OBJECT}}, {{CONTEXT}}",nameObjectHint:"{{NAME}}, {{OBJECT}}, {{HINT}}",nameContextHint:"{{NAME}}, {{CONTEXT}} {{HINT}}",nameObject:"{{NAME}}, {{OBJECT}}",nameContext:"{{NAME}}, {{CONTEXT}}",nameHint:"{{NAME}}, {{HINT}}",name:"{{NAME}}",objectContextHint:"{{OBJECT}}, {{CONTEXT}} {{HINT}}",objectContext:"{{OBJECT}}, {{CONTEXT}}",objectHint:"{{OBJECT}}, {{HINT}}",contextHint:"{{CONTEXT}} {{HINT}}",object:"{{OBJECT}}",context:"{{CONTEXT}}",hint:"{{HINT}}"};class o{constructor(e){const t=(0,n.lB)()({},r,e);this.nameObjectContextHint=t.nameObjectContextHint,this.nameObjectContext=t.nameObjectContext,this.nameObjectHint=t.nameObjectHint,this.nameContextHint=t.nameContextHint,this.nameObject=t.nameObject,this.nameContext=t.nameContext,this.nameHint=t.nameHint,this.name=t.name,this.objectContextHint=t.objectContextHint,this.objectContext=t.objectContext,this.objectHint=t.objectHint,this.contextHint=t.contextHint,this.object=t.object,this.context=t.context,this.hint=t.hint}getResponsePattern(e){const t=this[e];return t}static createPatternKey(e,t,i,n){let s="";return e&&(s=s.concat("NAME".concat("_"))),t&&(s=s.concat("OBJECT".concat("_"))),i&&(s=s.concat("CONTEXT".concat("_"))),n&&(s=s.concat("HINT".concat("_"))),_.camelCase(s)}}_defineProperty(o,"DEFAULT_RESPONSE_PATTERNS",new o),s.Z.register("ResponsePatternCollection",o);const a=o},621:(e,t,i)=>{"use strict";i.d(t,{Z:()=>S});var n=i(9806),s=i(4075),r=i(3061),o=i(4317),a=i(8036),l=i(592),h=i(5428),A=i(2550),d=i(8377),c=i(2391),u=i(428),g=i(6692);const p={initialize(){if(window.speechSynthesis||window.SpeechSynthesis||window.SpeechSynthesisUtterance)throw new Error("SpeechSynthesis is supported here, the polyfill should not overwrite it");window.SpeechSynthesis=window.parent.SpeechSynthesis,window.speechSynthesis=new window.parent.SpeechSynthesis,window.SpeechSynthesisUtterance=window.parent.SpeechSynthesisUtterance}};g.Z.register("SpeechSynthesisParentPolyfill",p);const m=p;var y=i(2221),f=i(2823),w=i(9969),B=i(3600),P=i(2306),D=i(7959),C=i(4865);window.phet&&phet.chipper&&phet.chipper.queryParameters&&phet.chipper.queryParameters.speechSynthesisFromParent&&m.initialize();const E=["Albert","Bad News","Bahh","Bells","Boing","Bubbles","Cellos","Good News","Jester","Organ","Superstar","Trinoids","Whisper","Wobble","Zarvox","Flo","Grandma","Grandpa","Junior"];const b={cmn:"zh_CN",yue:"zh_HK","yue-HK":"zh_HK",yue_HK:"zh_HK","fil-PH":"tl",fil_PH:"tl"},v={cancelSelf:!0,cancelOther:!0,voice:null};class V extends c.Z{constructor(e){var t,i,d,c;const g=(0,A.ZP)()({respectResponseCollectorProperties:!1,debug:!1},e);super(g),this.debug=g.debug,this.voiceProperty=new l.Z(null,{tandem:null===(t=g.tandem)||void 0===t?void 0:t.createTandem("voiceProperty"),phetioValueType:(0,P.Z)(M),phetioState:!1,phetioReadOnly:!0,phetioDocumentation:"the voice that is currently voicing responses"}),this.voiceRateProperty=new a.Z(1,{range:new h.Z(.75,2),tandem:null===(i=g.tandem)||void 0===i?void 0:i.createTandem("voiceRateProperty"),phetioState:!1,phetioDocumentation:"changes the rate of the voicing-feature voice"}),this.voicePitchProperty=new a.Z(1,{range:new h.Z(.5,2),tandem:null===(d=g.tandem)||void 0===d?void 0:d.createTandem("voicePitchProperty"),phetioState:!1,phetioDocumentation:"changes the pitch of the voicing-feature voice"}),this.voiceVolumeProperty=new a.Z(1,{range:new h.Z(0,1)}),this.hasSpoken=!1,this.timeSinceWakingEngine=0,this.timeSincePauseResume=0,this.timeSincePendingUtterance=0,this.timeSinceUtteranceEnd=125,this.startSpeakingEmitter=new r.Z({parameters:[{valueType:"string"},{valueType:u.Z}]}),this.endSpeakingEmitter=new r.Z({parameters:[{valueType:"string"},{valueType:u.Z}]}),this.enabledComponentImplementation=new o.Z({enabled:!1,tandem:g.tandem,enabledPropertyOptions:{phetioDocumentation:"toggles this controller of SpeechSynthesis on and off",phetioState:!1,phetioFeatured:!1}}),this.enabledProperty=this.enabledComponentImplementation.enabledProperty,this.mainWindowVoicingEnabledProperty=new n.Z(!0,{tandem:null===(c=g.tandem)||void 0===c?void 0:c.createTandem("mainWindowVoicingEnabledProperty"),phetioState:!1,phetioDocumentation:"toggles the voicing feature on and off for the simulation screen (not the voicing preferences and toolbar controls)"}),this.voicingFullyEnabledProperty=s.ZP.and([this.enabledProperty,this.mainWindowVoicingEnabledProperty]),this._speechAllowedAndFullyEnabledProperty=new n.Z(!1),this.speechAllowedAndFullyEnabledProperty=this._speechAllowedAndFullyEnabledProperty,this.synth=null,this.voicesProperty=new l.Z([]),this.speakingSpeechSynthesisUtteranceWrapper=null,this.isInitializedProperty=new n.Z(!1),this.canSpeakProperty=null,this.boundHandleCanSpeakChange=this.handleCanSpeakChange.bind(this),this.boundHandleCanAnnounceChange=this.handleCanAnnounceChange.bind(this),this.debug&&(this.announcementCompleteEmitter.addListener((e,t)=>{console.log("announcement complete",t)}),this.startSpeakingEmitter.addListener(e=>{this.debug&&console.log("startSpeakingListener",e)}),this.endSpeakingEmitter.addListener(e=>{this.debug&&console.log("endSpeakingListener",e)}))}get initialized(){return this.isInitializedProperty.value}initialize(e,t){0;const i=(0,A.ZP)()({speechAllowedProperty:new n.Z(!0)},t);this.synth=window.speechSynthesis,this.canSpeakProperty=s.ZP.and([i.speechAllowedProperty,this.enabledProperty]),this.canSpeakProperty.link(this.boundHandleCanSpeakChange),w.Z.multilink([i.speechAllowedProperty,this.voicingFullyEnabledProperty],(e,t)=>{this._speechAllowedAndFullyEnabledProperty.value=e&&t});const r=this.getSynth();r.addEventListener&&r.addEventListener("voiceschanged",()=>{this.populateVoices()}),this.populateVoices();const o=()=>{this.timeSinceWakingEngine=5e3,e.removeListener(o)};e.addListener(o),y.Z.addListener(this.step.bind(this)),this.isInitializedProperty.value=!0}step(e){e*=1e3;const t=this.getSynth();this.initialized&&t&&(this.hasSpoken||(this.hasSpoken=t.speaking),this.timeSinceUtteranceEnd=t.speaking?0:this.timeSinceUtteranceEnd+e,this.timeSincePendingUtterance=this.speakingSpeechSynthesisUtteranceWrapper&&!this.speakingSpeechSynthesisUtteranceWrapper.started?this.timeSincePendingUtterance+e:0,this.timeSincePendingUtterance>5e3&&(this.handleSpeechSynthesisEnd(this.speakingSpeechSynthesisUtteranceWrapper.announceText,this.speakingSpeechSynthesisUtteranceWrapper),this.speakingSpeechSynthesisUtteranceWrapper=null,this.cancelSynth()),this.timeSinceUtteranceEnd>125&&!this.speakingSpeechSynthesisUtteranceWrapper&&(this.readyToAnnounce=!0),f.Z.chromium&&!f.Z.android&&this.voiceProperty.value&&!this.voiceProperty.value.localService&&(this.timeSincePauseResume=t.speaking?this.timeSincePauseResume+e:0,this.timeSincePauseResume>1e4&&(this.timeSincePauseResume=0,t.pause(),t.resume())),f.Z.chromeOS&&(this.timeSinceWakingEngine+=e,!t.speaking&&this.timeSinceWakingEngine>5e3&&(this.timeSinceWakingEngine=0,t.speak(new SpeechSynthesisUtterance(" ")))))}handleCanSpeakChange(e){e||this.cancel()}populateVoices(){const e=this.getSynth();e&&(this.voicesProperty.value=_.uniqBy(e.getVoices(),e=>e.name))}getPrioritizedVoices(){const e=this.voicesProperty.value.slice(),t=_.filter(e,e=>!_.some(E,t=>e.name.includes(t))),i=e=>e.name.includes("Google")?-1:e.name.includes("Fred")?t.length:t.indexOf(e);return t.sort((e,t)=>i(e)-i(t))}getEnglishPrioritizedVoices(){return _.filter(this.getPrioritizedVoices(),e=>"en-US"===e.lang||"en_US"===e.lang)}getPrioritizedVoicesForLocale(e){const t=e,i=e.replace("_","-");return _.filter(this.getPrioritizedVoices(),e=>{const n=b.hasOwnProperty(e.lang)?b[e.lang]:e.lang;let s=!1;return(n.includes("_")||n.includes("-"))&&(s=t===n.slice(0,2)),s||t===n||i===n})}announce(e,t){this.initialized&&this.canSpeakProperty&&this.canSpeakProperty.value?this.requestSpeech(e,t):this.handleAnnouncementFailure(t,e)}handleAnnouncementFailure(e,t){this.debug&&console.log("announcement failure",t),this.announcementCompleteEmitter.emit(e,t)}speakIgnoringEnabled(e){this.initialized&&(this.cancel(),this.requestSpeech(e.getAlertText(this.respectResponseCollectorProperties),e))}requestSpeech(e,t){if(this.debug&&console.log("requestSpeech",e),!e)return void this.handleAnnouncementFailure(t,e);const i=(0,A.lB)()({},v,t.announcerOptions),n=(0,d.Z)(e+"").split("
").join(" ").split("
").join(" ");(0,D.Z)(n,C.Z.STRING_WITHOUT_TEMPLATE_VARS_VALIDATOR);const s=new SpeechSynthesisUtterance(n);s.voice=i.voice||this.voiceProperty.value,s.pitch=this.voicePitchProperty.value,s.rate=this.voiceRateProperty.value,s.volume=this.voiceVolumeProperty.value;const r=()=>{this.startSpeakingEmitter.emit(n,t),this.speakingSpeechSynthesisUtteranceWrapper.started=!0,s.removeEventListener("start",r)},o=()=>{this.handleSpeechSynthesisEnd(n,a)},a=new I(t,e,s,!1,o,r);this.speakingSpeechSynthesisUtteranceWrapper=a,s.addEventListener("start",r),s.addEventListener("end",o),s.addEventListener("error",o),this.readyToAnnounce=!1,this.timeSinceUtteranceEnd=0,t.canAnnounceProperty.link(this.boundHandleCanAnnounceChange),t.voicingCanAnnounceProperty.link(this.boundHandleCanAnnounceChange),this.getSynth().speak(s)}handleCanAnnounceChange(){this.speakingSpeechSynthesisUtteranceWrapper&&this.cancelUtteranceIfCanAnnounceFalse(this.speakingSpeechSynthesisUtteranceWrapper.utterance)}cancelUtteranceIfCanAnnounceFalse(e){e.canAnnounceProperty.value&&e.voicingCanAnnounceProperty.value||this.cancelUtterance(e)}handleSpeechSynthesisEnd(e,t){this.endSpeakingEmitter.emit(e,t.utterance),this.announcementCompleteEmitter.emit(t.utterance,t.speechSynthesisUtterance.text),t.speechSynthesisUtterance.removeEventListener("error",t.endListener),t.speechSynthesisUtterance.removeEventListener("end",t.endListener),t.speechSynthesisUtterance.removeEventListener("start",t.startListener);const i=t.utterance.canAnnounceProperty;i.hasListener(this.boundHandleCanAnnounceChange)&&i.unlink(this.boundHandleCanAnnounceChange);const n=t.utterance.voicingCanAnnounceProperty;n.hasListener(this.boundHandleCanAnnounceChange)&&n.unlink(this.boundHandleCanAnnounceChange),this.speakingSpeechSynthesisUtteranceWrapper=null}getSynth(){return this.synth}cancel(){this.initialized&&this.speakingSpeechSynthesisUtteranceWrapper&&this.cancelUtterance(this.speakingSpeechSynthesisUtteranceWrapper.utterance)}cancelUtterance(e){const t=this.speakingSpeechSynthesisUtteranceWrapper;t&&e===t.utterance&&(this.handleSpeechSynthesisEnd(t.announceText,t),this.cancelSynth())}shouldUtteranceCancelOther(e,t){const i=(0,A.lB)()({},v,e.announcerOptions);let n;return t.priorityProperty.value!==e.priorityProperty.value?n=t.priorityProperty.value!0,toStateObject:e=>e.name});g.Z.register("SpeechSynthesisAnnouncer",V);const S=V},428:(e,t,i)=>{"use strict";var n;i.d(t,{Z:()=>C});var s=i(4075),r=i(1935),o=i(8292),a=i(1383),l=i(8036),h=i(2550),A=i(3600),d=i(2643),c=i(6103),u=i(6629),g=i(6692),p=i(2306),m=i(8585),y=i(1039),f=i(592),w=i(1731);let B=1;class P extends w.Z{constructor(e){const t=(0,h.ZP)()({alert:null,predicate:function(){return!0},canAnnounceProperties:[],descriptionCanAnnounceProperties:[],voicingCanAnnounceProperties:[],alertStableDelay:200,alertMaximumDelay:Number.MAX_VALUE,announcerOptions:{},priority:1},e);super(t),this.id=B++,this._alert=t.alert,this.predicate=t.predicate,this.canAnnounceProperty=new D({dependentProperties:t.canAnnounceProperties}),this.descriptionCanAnnounceProperty=new D({dependentProperties:t.descriptionCanAnnounceProperties}),this.voicingCanAnnounceProperty=new D({dependentProperties:t.voicingCanAnnounceProperties}),this.alertStableDelay=t.alertStableDelay,this.alertMaximumDelay=t.alertMaximumDelay,this.announcerOptions=t.announcerOptions,this.priorityProperty=new l.Z(t.priority),this.previousAlertText=null}static getAlertStringFromResponsePacket(e,t){const i=e.serialize();return t||(i.ignoreProperties=!0),c.Z.collectResponses(i)}getAlertText(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const t=P.alertableToText(this._alert,e);return this.previousAlertText=t,t}getAlert(){return this._alert}get alert(){return this.getAlert()}set alert(e){this.setAlert(e)}setAlert(e){this._alert=e}setAlertStableDelay(e){this.alertStableDelay=e}toString(){return`Utterance_${this.id}#${this.getAlertText()}`}toStateObject(){return{alert:(0,p.Z)((0,y.Z)([d.Z,m.Z])).toStateObject(this.getAlertText())}}reset(){this.previousAlertText=null}setCanAnnounceProperties(e){this.canAnnounceProperty.setDependentProperties(e)}set canAnnounceProperties(e){this.setCanAnnounceProperties(e)}get canAnnounceProperties(){return this.getCanAnnounceProperties()}getCanAnnounceProperties(){return this.canAnnounceProperty.getDependentProperties()}setDescriptionCanAnnounceProperties(e){this.descriptionCanAnnounceProperty.setDependentProperties(e)}set descriptionCanAnnounceProperties(e){this.setDescriptionCanAnnounceProperties(e)}get descriptionCanAnnounceProperties(){return this.getDescriptionCanAnnounceProperties()}getDescriptionCanAnnounceProperties(){return this.descriptionCanAnnounceProperty.getDependentProperties()}setVoicingCanAnnounceProperties(e){this.voicingCanAnnounceProperty.setDependentProperties(e)}set voicingCanAnnounceProperties(e){this.setVoicingCanAnnounceProperties(e)}get voicingCanAnnounceProperties(){return this.getVoicingCanAnnounceProperties()}getVoicingCanAnnounceProperties(){return this.voicingCanAnnounceProperty.getDependentProperties()}dispose(){this.canAnnounceProperty.dispose(),this.descriptionCanAnnounceProperty.dispose(),this.voicingCanAnnounceProperty.dispose(),this.priorityProperty.dispose(),super.dispose()}static alertableToText(e){let t,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("function"==typeof e)t=e();else if(e instanceof u.Z)t=P.getAlertStringFromResponsePacket(e,i);else{if(e instanceof P)return e.getAlertText(i);t=e instanceof r.Z||e instanceof o.Z?e.value:e}return t}}n=P,_defineProperty(P,"TOP_PRIORITY",10),_defineProperty(P,"HIGH_PRIORITY",5),_defineProperty(P,"MEDIUM_PRIORITY",2),_defineProperty(P,"DEFAULT_PRIORITY",1),_defineProperty(P,"LOW_PRIORITY",0),_defineProperty(P,"UtteranceIO",new A.Z("UtteranceIO",{valueType:n,documentation:"Announces text to a specific browser technology (like aria-live or web speech)",toStateObject:e=>e.toStateObject(),stateSchema:{alert:(0,p.Z)((0,y.Z)([d.Z,m.Z]))}}));class D extends a.Z{constructor(e){const t=(0,h.ZP)()({dependentProperties:[]},e),i=new f.Z(new o.Z(!1));super(i),this._dependentProperties=[],this.implementationProperty=i,this.setDependentProperties(t.dependentProperties)}setDependentProperties(e){this.implementationProperty.value&&this.implementationProperty.value.dispose();const t=0===e.length?[new o.Z(!0)]:e;this.implementationProperty.value=s.ZP.and(t),this._dependentProperties=e}set dependentProperties(e){this.setDependentProperties(e)}get dependentProperties(){return this.getDependentProperties()}getDependentProperties(){return this._dependentProperties.slice(0)}dispose(){this.implementationProperty.dispose(),this._dependentProperties=[],super.dispose()}}g.Z.register("Utterance",P);const C=P},6103:(e,t,i)=>{"use strict";i.d(t,{Z:()=>c});var n=i(9806),s=i(6114),r=i(6692),o=i(6629),a=i(6975),l=i(2550),h=i(8664);class A extends h.Z{constructor(e){super(),this.nameResponsesEnabledProperty=new n.Z(!0),this.objectResponsesEnabledProperty=new n.Z(!1),this.contextResponsesEnabledProperty=new n.Z(!1),this.hintResponsesEnabledProperty=new n.Z(!1)}reset(){this.nameResponsesEnabledProperty.reset(),this.objectResponsesEnabledProperty.reset(),this.contextResponsesEnabledProperty.reset(),this.hintResponsesEnabledProperty.reset()}collectResponses(e){const t=(0,l.lB)()({},o.Z.DEFAULT_OPTIONS,e),i=!(!t.nameResponse||!this.nameResponsesEnabledProperty.get()&&!t.ignoreProperties),n=!(!t.objectResponse||!this.objectResponsesEnabledProperty.get()&&!t.ignoreProperties),r=!(!t.contextResponse||!this.contextResponsesEnabledProperty.get()&&!t.ignoreProperties),h=!(!t.hintResponse||!this.hintResponsesEnabledProperty.get()&&!t.ignoreProperties),A=a.Z.createPatternKey(i,n,r,h);let d="";if(A){const e=t.responsePatternCollection.getResponsePattern(A);d=s.Z.fillIn(e,{NAME:t.nameResponse,OBJECT:t.objectResponse,CONTEXT:t.contextResponse,HINT:t.hintResponse})}return d}}const d=new A;r.Z.register("responseCollector",d);const c=d},6692:(e,t,i)=>{"use strict";i.d(t,{Z:()=>n});const n=new(i(2492).Z)("utteranceQueue")},6859:(e,t,i)=>{var n=i(3980),s=i(820);void 0===s.himalaya&&(s.himalaya=n),e.exports=n},820:(e,t,i)=>{"use strict";e.exports=function(){if("object"==typeof globalThis)return globalThis;var e;try{e=this||new Function("return this")()}catch(t){if("object"==typeof window)return window;if("object"==typeof self)return self;if(void 0!==i.g)return i.g}return e}()}},t={};function i(n){var s=t[n];if(void 0!==s)return s.exports;var r=t[n]={id:n,loaded:!1,exports:{}};return e[n](r,r.exports,i),r.loaded=!0,r.exports}i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},((e,t,n,s,r,o,a,l,h,A,d,c,u,g,p,m,y,f,w,B,P,D,C,E,b)=>{"use strict";var v=i(732),V=i(9806),I=i(1453),M=i(4075),S=i(3061),T=i(8036),x=i(592),O=i(2221),k=i(2434),L=i(1603),Q=i(6243),R=(i(7023),i(8964)),N=i(2823),Y=i(2550),F=i(6114),G=i(8968),q=i(2976),H=i(6918),Z=i(2492);const U=new Z.Z("sceneryPhet");var K=i(1005);class W extends G.JOQ{constructor(e,t){const i=(0,Y.ZP)()({fill:"rgba( 0, 0, 0, 0.3 )",pickable:!0,phetioReadOnly:!0,phetioEventType:q.Z.USER,visiblePropertyOptions:{phetioState:!1}},t);super(i);const n=e=>{this.visible=e>0};e.lengthProperty.link(n),this.addInputListener(new G.eMb({tandem:K.Z.OPT_OUT,phetioReadOnly:i.phetioReadOnly,fire(){(!phet.chipper.isFuzzEnabled()||H.Z.nextDouble()<.005)&&e.get(e.length-1).hide()}})),this.disposeBarrierRectangle=()=>{e.lengthProperty.hasListener(n)&&e.lengthProperty.unlink(n)}}dispose(){this.disposeBarrierRectangle(),super.dispose()}}U.register("BarrierRectangle",W);i(535);var z=i(8664),j=i(2530);const X=(e,t)=>{const i=t.replace(new RegExp("^.*,"),""),n=atob(i),s=new Uint8Array(n.length);for(let r=0;r{he||(ae(),he=!0)},de=se.decodeAudioData(oe.buffer,e=>{null===le.audioBufferProperty.value&&(le.audioBufferProperty.set(e),Ae())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),le.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),Ae()});de&&de.then(e=>{null===le.audioBufferProperty.value&&(le.audioBufferProperty.set(e),Ae())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),Ae()});const ce=le,ue=[],ge=[],pe={addStateChangeListener(e,t){let i,n=ue.indexOf(e);-1===n?(ue.push(e),n=ue.length-1,i=[],ge.push(i),e.onstatechange=()=>{_.clone(i).forEach(t=>{t(e.state)})}):i=ge[n],i.push(t)},removeStateChangeListener(e,t){const i=ue.indexOf(e),n=ge[i],s=n.indexOf(t);n.splice(s,1)},hasListener(e,t){let i=!1;const n=ue.indexOf(e);if(n>=0){const e=ge[n];e&&(i=e.includes(t))}return i}};ee.register("audioContextStateChangeMonitor",pe);const me=pe,ye={DEFAULT_PARAM_CHANGE_TIME_CONSTANT:.015,DEFAULT_LINEAR_GAIN_CHANGE_TIME:.1,TWELFTH_ROOT_OF_TWO:Math.pow(2,1/12)};ee.register("soundConstants",ye);const fe=ye;var we=i(2956),Be=i(4676);class Pe extends Be.Z{}_defineProperty(Pe,"BASIC",new(e=Pe)),_defineProperty(Pe,"EXTRA",new e),_defineProperty(Pe,"enumeration",new we.Z(e,{phetioDocumentation:"describes whether a sound is considered part of the basic or the extra sounds for the sim"})),ee.register("SoundScope",Pe);const De=Pe;var Ce=i(9969),Ee=i(9059);const be=fe.DEFAULT_LINEAR_GAIN_CHANGE_TIME;class ve extends z.Z{constructor(e){super({tandem:e,phetioState:!1,phetioDocumentation:"Controls the simulation's sound. For sims that do not support sound, this element and its children can be ignored."}),_defineProperty(this,"viewNodeDisplayedPropertyMap",new Map),this.enabledProperty=new V.Z(phet.chipper.queryParameters.supportsSound,{tandem:null==e?void 0:e.createTandem("enabledProperty"),phetioState:!1,phetioDocumentation:"Determines whether sound is enabled. Supported only if this sim supportsSound=true."}),this.extraSoundEnabledProperty=new V.Z(phet.chipper.queryParameters.extraSoundInitiallyEnabled,{tandem:null==e?void 0:e.createTandem("extraSoundEnabledProperty"),phetioState:!1,phetioDocumentation:"Determines whether extra sound is enabled. Extra sound is additional sounds that can serve to improve the learning experience for individuals with visual disabilities. Note that not all simulations that support sound also support extra sound. Also note that the value is irrelevant when enabledProperty is false."}),this.soundGeneratorInfoArray=[],this._mainOutputLevel=1,this._reverbLevel=.02,this.gainNodesForCategories=new Map,this.duckingProperties=(0,I.Z)(),this.initialized=!1,this.soundGeneratorsAwaitingAdd=[],this.mainGainNode=null,this.duckingGainNode=null,this.convolver=null,this.reverbGainNode=null,this.dryGainNode=null}initialize(e,t,i,n,s,r){const o=(0,Y.ZP)()({categories:["sim-specific","user-interface"]},r),a=se.currentTime,l=se.createDynamicsCompressor();l.threshold.setValueAtTime(-6,a),l.knee.setValueAtTime(5,a),l.ratio.setValueAtTime(12,a),l.attack.setValueAtTime(0,a),l.release.setValueAtTime(.25,a),l.connect(se.destination),this.duckingGainNode=se.createGain(),this.duckingGainNode.connect(l),this.mainGainNode=se.createGain(),this.mainGainNode.connect(this.duckingGainNode),this.convolver=se.createConvolver();const h=e=>{e&&(this.convolver.buffer=e,ce.audioBufferProperty.unlink(h))};ce.audioBufferProperty.link(h),this.reverbGainNode=se.createGain(),this.reverbGainNode.connect(this.mainGainNode),this.reverbGainNode.gain.setValueAtTime(this._reverbLevel,se.currentTime),this.convolver.connect(this.reverbGainNode),this.dryGainNode=se.createGain(),this.dryGainNode.gain.setValueAtTime(1-this._reverbLevel,se.currentTime),this.dryGainNode.gain.linearRampToValueAtTime(1-this._reverbLevel,se.currentTime+be),this.dryGainNode.connect(this.mainGainNode),o.categories.forEach(e=>{const t=se.createGain();t.connect(this.convolver),t.connect(this.dryGainNode),this.gainNodesForCategories.set(e,t)}),Ce.Z.multilink([this.enabledProperty,t,e,i,n,s],(e,t,i,n,s,r)=>{const o=e&&t&&i&&n&&s&&!r?this._mainOutputLevel:0;this.mainGainNode.gain.linearRampToValueAtTime(o,se.currentTime+be)});const A=new V.Z(!1),d=()=>{A.value=this.duckingProperties.reduce((e,t)=>e||t.value,!1)};A.lazyLink(e=>{var t,i;const n=e?.05:.5,s=se.currentTime;null===(t=this.duckingGainNode)||void 0===t||t.gain.cancelScheduledValues(s),null===(i=this.duckingGainNode)||void 0===i||i.gain.setTargetAtTime(e?.15:1,s,n)}),this.duckingProperties.addItemAddedListener(e=>{e.link(d);const t=i=>{i===e&&(i.unlink(d),this.duckingProperties.removeItemRemovedListener(t))};this.duckingProperties.addItemRemovedListener(t)});const c=()=>{window.removeEventListener("touchstart",u,!1),G.sSl.userGestureEmitter.hasListener(u)&&G.sSl.userGestureEmitter.removeListener(u)},u=()=>{"running"!==se.state?(phet.log&&phet.log("audio context not running, attempting to resume, state = "+se.state),se.resume().then(()=>{phet.log&&phet.log("resume appears to have succeeded, phetAudioContext.state = "+se.state),c()}).catch(e=>{const t="error when trying to resume audio context, err = "+e;console.error(t)})):c()};window.addEventListener("touchstart",u,!1),G.sSl.userGestureEmitter.addListener(u);let g=se.state;me.addStateChangeListener(se,e=>{phet.log&&phet.log(`audio context state changed, old state = ${g}, new state = ${e}, audio context time = ${se.currentTime}`),"running"!==e?(window.addEventListener("touchstart",u,!1),G.sSl.userGestureEmitter.hasListener(u)||G.sSl.userGestureEmitter.addListener(u)):console.log("AudioContext is now running."),g=e}),this.initialized=!0,this.soundGeneratorsAwaitingAdd.forEach(e=>{this.addSoundGenerator(e.soundGenerator,e.soundGeneratorAddOptions)}),this.soundGeneratorsAwaitingAdd.length=0}hasSoundGenerator(e){return _.some(this.soundGeneratorInfoArray,t=>t.soundGenerator===e)}addSoundGenerator(e,t){if(void 0===t&&(t={}),!this.initialized)return void this.soundGeneratorsAwaitingAdd.push({soundGenerator:e,soundGeneratorAddOptions:t});this.hasSoundGenerator(e);const i=(0,Y.ZP)()({sonificationLevel:De.BASIC,associatedViewNode:null,categoryName:null},t);null===i.categoryName?(e.connect(this.convolver),e.connect(this.dryGainNode)):e.connect(this.gainNodesForCategories.get(i.categoryName));const n={soundGenerator:e,sonificationLevel:i.sonificationLevel};if(this.soundGeneratorInfoArray.push(n),e.addEnableControlProperty(this.enabledProperty),i.sonificationLevel===De.EXTRA&&e.addEnableControlProperty(this.extraSoundEnabledProperty),i.associatedViewNode){const t=new G.ljG(i.associatedViewNode);e.addEnableControlProperty(t),this.viewNodeDisplayedPropertyMap.set(e,t)}}removeSoundGenerator(e){if(!this.initialized){const t=this.soundGeneratorsAwaitingAdd.filter(t=>t.soundGenerator===e);for(;t.length>0;)(0,Ee.Z)(this.soundGeneratorsAwaitingAdd,t[0]),t.shift();return}let t=null;for(let i=0;i{e.isConnectedTo(t)&&e.disconnect(t)}),t&&this.soundGeneratorInfoArray.splice(this.soundGeneratorInfoArray.indexOf(t),1),this.viewNodeDisplayedPropertyMap.has(e)&&(this.viewNodeDisplayedPropertyMap.get(e).dispose(),this.viewNodeDisplayedPropertyMap.delete(e))}setMainOutputLevel(e){this.initialized?(this._mainOutputLevel=e,this.enabledProperty.value&&this.mainGainNode.gain.linearRampToValueAtTime(e,se.currentTime+be)):console.warn("an attempt was made to set the main output level on an uninitialized sound manager, ignoring")}set mainOutputLevel(e){this.setMainOutputLevel(e)}get mainOutputLevel(){return this.getMainOutputLevel()}getMainOutputLevel(){return this._mainOutputLevel}setOutputLevelForCategory(e,t){if(!this.initialized)return void console.warn("an attempt was made to set the output level for a sound category on an uninitialized sound manager, ignoring");const i=this.gainNodesForCategories.get(e);i&&i.gain.setValueAtTime(t,se.currentTime)}addDuckingProperty(e){this.duckingProperties.add(e)}removeDuckingProperty(e){this.duckingProperties.remove(e)}getOutputLevelForCategory(e){if(!this.initialized)return console.warn("an attempt was made to get the output level for a sound category on an uninitialized sound manager, returning 0"),0;const t=this.gainNodesForCategories.get(e);return t.gain.value}setReverbLevel(e){if(this.initialized){if(e!==this._reverbLevel){const t=se.currentTime;this.reverbGainNode.gain.linearRampToValueAtTime(e,t+be),this.dryGainNode.gain.linearRampToValueAtTime(1-e,t+be),this._reverbLevel=e}}else console.warn("an attempt was made to set the reverb level on an uninitialized sound manager, ignoring")}set reverbLevel(e){this.setReverbLevel(e)}get reverbLevel(){return this.getReverbLevel()}getReverbLevel(){return this._reverbLevel}set enabled(e){this.enabledProperty.value=e}get enabled(){return this.enabledProperty.value}set sonificationLevel(e){this.extraSoundEnabledProperty.value=e===De.EXTRA}get sonificationLevel(){return this.extraSoundEnabledProperty.value?De.EXTRA:De.BASIC}logGain(e,t){t=t||1;Date.now()}logMainGain(e){this.mainGainNode&&this.logGain(this.mainGainNode,e)}logReverbGain(e){this.reverbGainNode&&this.logGain(this.reverbGainNode,e)}}const Ve=new ve;ee.register("soundManager",Ve);const Ie=Ve;var Me=i(5281),Se=i(8585),Te=i(9362),xe=i(8047);const Oe=phet.chipper.queryParameters.supportsVoicing||phet.chipper.queryParameters.supportsSound;class ke extends z.Z{constructor(e){super({tandem:e,phetioState:!1,phetioDocumentation:"Controls the simulation's audio features. This includes sound and voicing. For sims that do not support these features, this element and its children can be ignored."}),this.audioEnabledProperty=new V.Z("enabled"===phet.chipper.queryParameters.audio,{tandem:e.createTandem("audioEnabledProperty"),phetioFeatured:!0,phetioDocumentation:"toggles all audio features on and off; supported only if this sim supports audio features."}),this.audioAndSoundEnabledProperty=M.ZP.and([this.audioEnabledProperty,Ie.enabledProperty]),this.audioAndVoicingEnabledProperty=M.ZP.and([this.audioEnabledProperty,G.LY3.enabledProperty]),this.anySubcomponentEnabledProperty=new M.ZP([Ie.enabledProperty,G.LY3.enabledProperty],(e,t)=>e||t),this.anyOutputEnabledProperty=new M.ZP([this.audioEnabledProperty,this.anySubcomponentEnabledProperty],(e,t)=>e&&t)}initialize(e){if(e.preferencesModel.audioModel.supportsSound&&Ie.initialize(e.isConstructionCompleteProperty,this.audioEnabledProperty,e.browserTabVisibleProperty,e.activeProperty,xe.Z),e.preferencesModel.audioModel.supportsVoicing&&G.LY3.initialize(G.sSl.userGestureEmitter,{speechAllowedProperty:new M.ZP([e.isConstructionCompleteProperty,e.browserTabVisibleProperty,e.activeProperty,xe.Z,this.audioEnabledProperty],(e,t,i,n,s)=>e&&t&&i&&!n&&s)}),e.preferencesModel.audioModel.supportsSound&&e.preferencesModel.audioModel.supportsVoicing){const e=new V.Z(!1);G.LY3.startSpeakingEmitter.addListener(()=>e.set(!0)),G.LY3.endSpeakingEmitter.addListener(()=>e.set(!1)),Ie.addDuckingProperty(e)}}}const Le=new ke(Oe?K.Z.GENERAL_VIEW.createTandem("audioManager"):K.Z.OPT_OUT);Te.Z.register("audioManager",Le);const Qe=Le;let Re=!1,Ne=!0;const Ye={start:function(e){Re=!0;const t=document.createElement("div");t.style.opacity="0",t.style.position="absolute",t.style.left="0",t.style.top="0",t.style.width="0",t.style.height="0",t.style.clip="rect(0,0,0,0)",t.setAttribute("aria-hidden","true"),e.display.domElement.appendChild(t),e.frameStartedEmitter.addListener(()=>{e.frameCounter%1e3==0&&(Ne=!Ne,t.innerHTML=""+Ne)})}};Te.Z.register("Heartbeat",Ye);const Fe=Ye;var Ge=i(7922),qe=i(1383);class He extends qe.Z{constructor(e,t){super(new J.Z(e),t)}}Ge.Z.register("MappedProperty",He);var Ze=i(668),Ue=i(2560),Ke=i(8445),We=i(8378);const ze={};class je{static registerDataURL(e,t,i){if(phet.chipper.queryParameters.binder){const s=`${e}/${t}`;ze[s]=ze[s]||[];try{i.toDataURL(e=>{ze[s].push(e)})}catch(n){}}}}je.map=ze,We.Z.register("InstanceRegistry",je);var Xe=i(369);const Je=new Image,_e=j.Z.createLock(Je);Je.onload=_e,Je.src="data:image/png;base64,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";const $e=Je,et=QueryStringMachine.getAll({backgroundColor:{type:"string",defaultValue:"white"},slider:{type:"string",defaultValue:null},component:{type:"string",defaultValue:null},fontFamily:{type:"string",defaultValue:"Arial"}});U.register("sceneryPhetQueryParameters",et);const tt=et;class it extends G.Zxw{constructor(e){let t;t="number"==typeof e||"string"==typeof e?{size:e}:e||{},t=(0,Y.JA)({family:tt.fontFamily},t),t.family=t.family+", sans-serif",super(t)}}U.register("PhetFont",it);var nt=i(9119);const st=(0,nt.Z)("SCENERY_PHET");U.register("SceneryPhetStrings",st);const rt=st;var ot=i(2643);class at extends M.ZP{constructor(e,t,i){super(e,t,(0,Y.ZP)()({phetioFeatured:!0,phetioValueType:ot.Z,tandemNameSuffix:"StringProperty"},i))}}Ge.Z.register("DerivedStringProperty",at);class lt extends G.NBX{constructor(e,t){var i,n;const s=!(null!=t&&t.basePositionProperty),r=!(null!=t&&t.tipPositionProperty),o=(0,Y.ZP)()({basePositionProperty:new Ue.Z(new Ze.Z(0,0)),tipPositionProperty:new Ue.Z(new Ze.Z(1,0)),hasValue:!0,dragBounds:L.Z.EVERYTHING,textPosition:new Ze.Z(0,30),modelViewTransform:Xe.Z.createIdentity(),significantFigures:1,textColor:"white",textBackgroundColor:null,textBackgroundXMargin:4,textBackgroundYMargin:2,textBackgroundCornerRadius:2,textMaxWidth:200,textFont:new it({size:16,weight:"bold"}),baseScale:.8,lineColor:"gray",tapeLineWidth:2,tipCircleColor:"rgba(0,0,0,0.1)",tipCircleRadius:10,crosshairColor:"rgb(224, 95, 32)",crosshairSize:5,crosshairLineWidth:2,isBaseCrosshairRotating:!0,isTipCrosshairRotating:!0,isTipDragBounded:!0,interactive:!0,baseDragStarted:_.noop,baseDragEnded:_.noop,phetioReadoutStringPropertyInstrumented:!0,phetioFeaturedMeasuredDistanceProperty:!1,keyboardDragListenerOptions:{baseDragVelocity:600,baseShiftDragVelocity:300,tipDragVelocity:600,tipShiftDragVelocity:150}},t);super(),this.unitsProperty=e,this.significantFigures=o.significantFigures,this.dragBoundsProperty=new x.Z(o.dragBounds),this.modelViewTransformProperty=new x.Z(o.modelViewTransform),this.isTipDragBounded=o.isTipDragBounded,this.basePositionProperty=o.basePositionProperty,this.tipPositionProperty=o.tipPositionProperty,this.ownsBasePositionProperty=s,this.ownsTipPositionProperty=r,this._isTipUserControlledProperty=new x.Z(!1),this.isTipUserControlledProperty=this._isTipUserControlledProperty,this._isBaseUserControlledProperty=new x.Z(!1),this.isBaseUserControlledProperty=this._isBaseUserControlledProperty,this.measuredDistanceProperty=new M.ZP([this.basePositionProperty,this.tipPositionProperty],(e,t)=>e.distance(t),{tandem:null===(i=o.tandem)||void 0===i?void 0:i.createTandem("measuredDistanceProperty"),phetioDocumentation:"The distance measured by the measuring tape",phetioValueType:Se.Z,phetioFeatured:o.phetioFeaturedMeasuredDistanceProperty,units:this.basePositionProperty.units});const a=(new Ke.bn).moveTo(-o.crosshairSize,0).moveTo(-o.crosshairSize,0).lineTo(o.crosshairSize,0).moveTo(0,-o.crosshairSize).lineTo(0,o.crosshairSize),l=new G.y$t(a,{stroke:o.crosshairColor,lineWidth:o.crosshairLineWidth}),h=new G.y$t(a,{stroke:o.crosshairColor,lineWidth:o.crosshairLineWidth}),A=new G.Cdc(o.tipCircleRadius,{fill:o.tipCircleColor}),d=new G.e8H({interactiveHighlightEnabled:!1});this.baseImage=new G.Eep($e,{scale:o.baseScale,cursor:"pointer",tagName:"div",focusable:!0,ariaRole:"application",innerContent:rt.a11y.measuringTapeStringProperty,ariaLabel:rt.a11y.measuringTapeStringProperty}),d.addChild(this.baseImage);const c=new G.x12(this.basePositionProperty.value,this.tipPositionProperty.value,{stroke:o.lineColor,lineWidth:o.tapeLineWidth}),u=new G.e8H({children:[A,h],cursor:"pointer",interactiveHighlightEnabled:!1,tagName:"div",focusable:!0,ariaRole:"application",innerContent:rt.a11y.measuringTapeTipStringProperty,ariaLabel:rt.a11y.measuringTapeTipStringProperty}),g=new at([this.unitsProperty,this.measuredDistanceProperty,rt.measuringTapeReadoutPatternStringProperty],(e,t,i)=>{const n=R.Z.toFixed(e.multiplier*t,this.significantFigures);return F.Z.fillIn(i,{distance:n,units:e.name})},{tandem:o.phetioReadoutStringPropertyInstrumented?null===(n=o.tandem)||void 0===n?void 0:n.createTandem("readoutStringProperty"):K.Z.OPT_OUT,phetioDocumentation:"The text content of the readout on the measuring tape",accessNonDependencies:!0});this.valueNode=new G.xvT(g,{font:o.textFont,fill:o.textColor,maxWidth:o.textMaxWidth}),this.valueBackgroundNode=new G.AeJ(0,0,1,1,{cornerRadius:o.textBackgroundCornerRadius,fill:o.textBackgroundColor});const p=()=>{const e=this.valueNode.width+2*o.textBackgroundXMargin,t=this.valueNode.height+2*o.textBackgroundYMargin;this.valueBackgroundNode.setRect(0,0,e,t),this.valueBackgroundNode.center=this.valueNode.center};let m;if(this.valueNode.boundsProperty.lazyLink(p),p(),u.touchArea=u.localBounds.dilated(15),this.baseImage.touchArea=this.baseImage.localBounds.dilated(20),this.baseImage.mouseArea=this.baseImage.localBounds.dilated(10),this.addChild(c),this.addChild(l),this.addChild(d),this.valueContainer=new G.NBX({children:[this.valueBackgroundNode,this.valueNode]}),o.hasValue&&this.addChild(this.valueContainer),this.addChild(u),this.baseDragListener=null,o.interactive){var y,f,w,B;d.interactiveHighlightEnabled=!0,u.interactiveHighlightEnabled=!0;const e=()=>{this.moveToFront(),o.baseDragStarted(),this._isBaseUserControlledProperty.value=!0},t=()=>{this._isBaseUserControlledProperty.value=!1,o.baseDragEnded()},i=e=>{if(!this.isTipUserControlledProperty.value){const t=e.plus(this.tipPositionProperty.value);if(o.isTipDragBounded){const e=this.dragBoundsProperty.value.closestPointTo(t);this.tipPositionProperty.set(e)}else this.tipPositionProperty.set(t)}};this.baseDragListener=new G._U3({tandem:null===(y=o.tandem)||void 0===y?void 0:y.createTandem("baseDragListener"),start:t=>{e();const i=this.modelViewTransformProperty.value.modelToViewPosition(this.basePositionProperty.value);m=t.currentTarget.globalToParentPoint(t.pointer.point).minus(i)},drag:(e,t)=>{const n=t.currentTarget.globalToParentPoint(e.pointer.point).minus(m),s=this.modelViewTransformProperty.value.viewToModelPosition(n),r=this.dragBoundsProperty.value.closestPointTo(s),o=r.minus(this.basePositionProperty.value);this.basePositionProperty.set(r),i(o)},end:t}),this.baseImage.addInputListener(this.baseDragListener);const n=new G.qQp({tandem:null===(f=o.tandem)||void 0===f?void 0:f.createTandem("baseKeyboardDragListener"),positionProperty:this.basePositionProperty,transform:this.modelViewTransformProperty,dragBoundsProperty:this.dragBoundsProperty,dragVelocity:o.keyboardDragListenerOptions.baseDragVelocity,shiftDragVelocity:o.keyboardDragListenerOptions.baseShiftDragVelocity,start:e,drag:i,end:t});this.baseImage.addInputListener(n);const s=()=>{this._isTipUserControlledProperty.value=!1};let r;const a=new G._U3({tandem:null===(w=o.tandem)||void 0===w?void 0:w.createTandem("tipDragListener"),start:e=>{this.moveToFront(),this._isTipUserControlledProperty.value=!0;const t=this.modelViewTransformProperty.value.modelToViewPosition(this.tipPositionProperty.value);r=e.currentTarget.globalToParentPoint(e.pointer.point).minus(t)},drag:(e,t)=>{const i=t.currentTarget.globalToParentPoint(e.pointer.point).minus(r),n=this.modelViewTransformProperty.value.viewToModelPosition(i);o.isTipDragBounded?this.tipPositionProperty.value=this.dragBoundsProperty.value.closestPointTo(n):this.tipPositionProperty.value=n},end:s});u.addInputListener(a);const l=new G.qQp({tandem:null===(B=o.tandem)||void 0===B?void 0:B.createTandem("tipKeyboardDragListener"),positionProperty:this.tipPositionProperty,dragBoundsProperty:o.isTipDragBounded?this.dragBoundsProperty:null,transform:this.modelViewTransformProperty,dragVelocity:o.keyboardDragListenerOptions.tipDragVelocity,shiftDragVelocity:o.keyboardDragListenerOptions.tipShiftDragVelocity,start:()=>{this.moveToFront(),this._isTipUserControlledProperty.value=!0},end:s});u.addInputListener(l),this.visibleProperty.lazyLink(e=>{e||this.interruptSubtreeInput()})}const P=()=>{this.valueNode.centerTop=this.baseImage.center.plus(o.textPosition.times(o.baseScale))};g.link(P);const D=Ce.Z.multilink([this.measuredDistanceProperty,e,this.modelViewTransformProperty,this.tipPositionProperty,this.basePositionProperty],(e,t,i,n,s)=>{const r=i.modelToViewPosition(n),a=i.modelToViewPosition(s),h=this.baseImage.getRotation(),A=Math.atan2(r.y-a.y,r.x-a.x),d=A-h;l.center=a,u.center=r,this.baseImage.setRotation(0),this.baseImage.rightBottom=a,this.baseImage.rotateAround(this.baseImage.rightBottom,A),c.setLine(a.x,a.y,r.x,r.y),o.isTipCrosshairRotating&&u.rotateAround(r,d),o.isBaseCrosshairRotating&&l.rotateAround(a,d),P()});this.disposeMeasuringTapeNode=()=>{D.dispose(),g.dispose(),this.ownsBasePositionProperty&&this.basePositionProperty.dispose(),this.ownsTipPositionProperty&&this.tipPositionProperty.dispose(),d.dispose(),u.dispose()},this.mutate(o)}reset(){this.ownsBasePositionProperty&&this.basePositionProperty.reset(),this.ownsTipPositionProperty&&this.tipPositionProperty.reset()}dispose(){this.disposeMeasuringTapeNode(),super.dispose()}setDragBounds(e){const t=e.copy();this.dragBoundsProperty.value=t,this.basePositionProperty.value=t.closestPointTo(this.basePositionProperty.value),this.isTipDragBounded&&(this.tipPositionProperty.value=t.closestPointTo(this.tipPositionProperty.value))}getDragBounds(){return this.dragBoundsProperty.value.copy()}getLocalBaseCenter(){return new Ze.Z(-this.baseImage.imageWidth/2,-this.baseImage.imageHeight/2)}getLocalBaseBounds(){return this.baseImage.bounds.copy()}startBaseDrag(e){this.baseDragListener&&this.baseDragListener.press(e)}static createIcon(e){const t=(0,Y.ZP)()({tapeLength:30},e),i=new lt(new x.Z({name:"",multiplier:1}),{tipPositionProperty:new Ue.Z(new Ze.Z(t.tapeLength,0)),hasValue:!1,interactive:!1});t.children=[i];const n=new G.NBX(t);return i.toImage(e=>n.setChildren([new G.Eep(e)])),n}}U.register("MeasuringTapeNode",lt);const ht=lt,At=new Z.Z("sun"),dt={fill:"white",stroke:"black",lineWidth:1,lineDash:[],xMargin:5,yMargin:5,cornerRadius:10,resize:!0,backgroundPickable:!0,excludeInvisibleChildrenFromBounds:!0,align:"left",minWidth:0,minHeight:0};class ct extends((0,G.tTM)(G.NBX)){constructor(e,t){const i=(0,Y.lB)()({},dt,t);super(),this._content=e,this._backgroundContainer=new G.NBX,this._background=new G.AeJ(0,0,1,1,{lineWidth:i.lineWidth,pickable:i.backgroundPickable,lineDash:i.lineDash,cornerRadius:i.cornerRadius}),this.setStroke(i.stroke),this.setFill(i.fill),this.addChild(this._backgroundContainer),this.addChild(e),this.constraint=new ut(this,i),this.constraint.updateLayout(),this.constraint.enabled=i.resize,this.mutate(i)}getStroke(){return this._background.stroke}get stroke(){return this.getStroke()}set stroke(e){this.setStroke(e)}setStroke(e){this._background.stroke=e,this.constraint&&this.constraint.updateLayoutAutomatically()}getFill(){return this._background.fill}get fill(){return this.getFill()}set fill(e){this.setFill(e)}setFill(e){this._background.fill=e}setExcludeInvisibleChildrenFromBounds(e){super.setExcludeInvisibleChildrenFromBounds(e),this.constraint.updateLayoutAutomatically()}}_defineProperty(ct,"DEFAULT_PANEL_OPTIONS",dt);class ut extends G.dmK{constructor(e,t){super(e),this.panel=e,this.minWidth=t.minWidth,this.minHeight=t.minHeight,this.xMargin=t.xMargin,this.yMargin=t.yMargin,this.lineWidth=t.lineWidth,this.align=t.align,this.panel.localPreferredWidthProperty.lazyLink(this._updateLayoutListener),this.panel.localPreferredHeightProperty.lazyLink(this._updateLayoutListener),this.addNode(e._content)}layout(){super.layout();const e=this.panel,t=e._content,i=e._background,n=null===e.stroke?0:this.lineWidth,s=e.isChildIncludedInLayout(t);if(e._backgroundContainer.children=s?[i]:[],!s)return e.localMinimumWidth=null,void(e.localMinimumHeight=null);const r=(0,G.S3T)(t)&&null!==t.minimumWidth?t.minimumWidth:t.width,o=(0,G.fJO)(t)&&null!==t.minimumHeight?t.minimumHeight:t.height,a=Math.max(this.minWidth,r+2*this.xMargin)+n,l=Math.max(this.minHeight,o+2*this.yMargin)+n,h=Math.max(a,e.localPreferredWidth||0),A=Math.max(l,e.localPreferredHeight||0);(0,G.S3T)(t)&&null!==e.localPreferredWidth&&(t.preferredWidth=h-n-2*this.xMargin),(0,G.fJO)(t)&&null!==e.localPreferredHeight&&(t.preferredHeight=A-n-2*this.yMargin),i.setRect(0,0,h-n,A-n),"center"===this.align?t.center=i.center:"left"===this.align?(t.left=i.centerX-i.rectWidth/2+this.xMargin,t.centerY=i.centerY):(t.right=i.centerX+i.rectWidth/2-this.xMargin,t.centerY=i.centerY),e.localMinimumWidth=a,e.localMinimumHeight=l}dispose(){this.panel.localPreferredWidthProperty.unlink(this._updateLayoutListener),this.panel.localPreferredHeightProperty.unlink(this._updateLayoutListener),super.dispose()}}At.register("Panel",ct);const gt="data:audio/mpeg;base64,//tQxAAAAAAAAAAAAAAAAAAAAAAASW5mbwAAAA8AAAAFAAAE5AAzMzMzMzMzMzMzMzMzMzMzMzMzZmZmZmZmZmZmZmZmZmZmZmZmZmaZmZmZmZmZmZmZmZmZmZmZmZmZmczMzMzMzMzMzMzMzMzMzMzMzMzM//////////////////////////8AAAA5TEFNRTMuOTlyAaUAAAAAAAAAABRAJAZmQgAAQAAABOTGvClKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/7UMQAAAjxrv+ggLoZGTXh9oJQAa222FG3ASABBG51MY/j4AAB4AYI3/H3//Pqd/zv0Jp/8//zn3n6Mmf/J7f//8jf+fOeeggHA4RXkGh8XEwHAMHD4udyCYuhAALhgJqWJAEDGMYxvHlyAHxc9P76dP//T/Rm//p+v9tvb0Tzr1XyfnelP/3b0//5vo86Mlm0dHQrscccRQg5oSYpziaiB52oQCkxnR6LQisRCEMhluyeqEhIiWMiSvQjhwDTCtCPyDkNrP+UsBTNwVsJGSD/+1LEFoAQMWtluYaQEWGP7H+wYAR9IvpDLBawV8OWbG5oShmbiVnh8GAU6ZIjnetMKuOcpmaSndX80HuS7puaIKq/6lvM36lIJf8+Zm6CFA0t3fV/91IOhPJ1GCH13q//5o6DJl9/F3ErtwAGRlJ26tx4H5gV4lzzrIqy8jTNBZl1Hep3doI2/x6AMOljV5/M4clzeagOVs4SmnmZk2fTyahylhxZ1R7/1HlnhEe4KgF3SISoKnviYs9T8sp4Ku5ICsAAg3RwNdct5GVqea2W4P/7UsQHgAuZRzrtmE8JO4qkaa4M4MXAzUcoyYPSsZe/D4w5DUicEmE/ziQka1VaLTh0y8+qp/UtRMpQoli5jYCz6St//RjTOrPXlI/KJaZ2RHX6mMrJqxfqVjPM/K/thi6pyAAPlyOxkEr9tPgR2ldNwBRI0383ZJR5NmIAG2zBZOw1tKaJR6jzjIxgTlVLjBgJmawwRo8JXAUYCz1gr/q+aVWur8tO+j4iUe////6ii3UCwZHQhxd93nYdy9H1MjPwThY/VGgQQLo200aOkCDF//tSxA+CCwg1HK3lIQHXlCPo97AIw8D44EBOcB8oGBIND4gcCBc+IFHC7wwUOA+oMiAaH1PDCw+mxbydxPV3/zjbCnci8p/9nIJTQYSH5vktZIAEdHIA5HkiS4k11MYsCUFS8QSbEVhJUnQlFpKIJNQhJJrBKEZ8kiKoJIkqToSj5KJJ6hiCTXCUJUZJEl45Ek9TCUfQkkyuSSbzS72V1mVruLnhMeBUsHREPDQiPA0VOiJwdKuBlR5Fqtbk3f///t8FdSogAuxJp2uAWhIWFmv/+1LEBgPGHADHoIhgIAAANIAAAATcLVLFRWKCwsLCyxUVFVf6xVmLCws1YqKior////2RVn/+LCwtTEFNRTMuOTkuM1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ==",pt=X(se,gt),mt=j.Z.createLock(gt),yt=new ie;let ft=!1;const wt=()=>{ft||(mt(),ft=!0)},Bt=se.decodeAudioData(pt.buffer,e=>{null===yt.audioBufferProperty.value&&(yt.audioBufferProperty.set(e),wt())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),yt.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),wt()});Bt&&Bt.then(e=>{null===yt.audioBufferProperty.value&&(yt.audioBufferProperty.set(e),wt())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),wt()});const Pt=yt,Dt={detectSoundBounds:e=>{const t=e.length,i=[],n=[];for(let r=0;r{let n,s=0,r=!1;for(n=0;ni&&e[n+1]>e[n]&&(s=n,r=!0);let o=0;for(r=!1,n=s;n>0&&!r;n--){const t=e[n];t<=0&&(o=0===t?n:n+1,r=!0)}let a=0,l=0;for(n=0;n{let n,s=t-1,r=!1;for(n=t-1;n>0&&!r;n--)e[n]<=-i&&e[n-1]=0&&(o=n,r=!0);let a=0,l=0;for(n=o;n{this.fullyEnabledProperty.value=_.every(this.enableControlProperties,e=>e.value)};this.enableControlProperties.addItemAddedListener(e=>{e.link(i);const t=n=>{n===e&&(n.unlink(i),this.enableControlProperties.removeItemRemovedListener(t))};this.enableControlProperties.addItemRemovedListener(t)}),t.enableControlProperties.forEach(e=>{this.addEnableControlProperty(e)}),this.locallyEnabledProperty=new V.Z(!0),this.addEnableControlProperty(this.locallyEnabledProperty),this.mainGainNode=this.audioContext.createGain(),this.mainGainNode.gain.setValueAtTime(this._outputLevel,this.audioContext.currentTime),t.connectImmediately&&this.mainGainNode.connect(this.audioContext.destination),this.fullyEnabledProperty.link(e=>{const t=e?0:this._outputLevel,i=e?this._outputLevel:0,n=this.audioContext.currentTime;this.mainGainNode.gain.setValueAtTime(t,n),this.mainGainNode.gain.linearRampToValueAtTime(i,this.audioContext.currentTime+fe.DEFAULT_LINEAR_GAIN_CHANGE_TIME)}),this.soundSourceDestination=this.mainGainNode;for(let n=t.additionalAudioNodes.length-1;n>=0;n--){const e=t.additionalAudioNodes[n];e.connect(this.soundSourceDestination),this.soundSourceDestination=e}K.Z.PHET_IO_ENABLED&&!t.enabledDuringPhetioStateSetting&&this.addEnableControlProperty(It),this.disposeEmitter.addListener(()=>{this.enableControlProperties.clear()})}connect(e){this.mainGainNode.connect(e),this.connectionList.push(e)}disconnect(e){this.mainGainNode.disconnect(e),this.connectionList=_.without(this.connectionList,e)}isConnectedTo(e){return this.connectionList.includes(e)}setOutputLevel(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Vt;if(e!==this._outputLevel){const i=this.audioContext.currentTime;this.fullyEnabledProperty.value&&(this.mainGainNode.gain.cancelScheduledValues(i),0===t?this.mainGainNode.gain.setValueAtTime(e,i):"running"===this.audioContext.state?this.mainGainNode.gain.setTargetAtTime(e,i,t):this.mainGainNode.gain.linearRampToValueAtTime(e,i+fe.DEFAULT_LINEAR_GAIN_CHANGE_TIME)),this._outputLevel=e}}set outputLevel(e){this.setOutputLevel(e)}get outputLevel(){return this.getOutputLevel()}getOutputLevel(){return this._outputLevel}addEnableControlProperty(e){this.enableControlProperties.push(e)}removeEnableControlProperty(e){this.enableControlProperties.remove(e)}get locallyEnabled(){return this.locallyEnabledProperty.value}set locallyEnabled(e){this.locallyEnabledProperty.value=e}get fullyEnabled(){return this.fullyEnabledProperty.value}}ee.register("SoundGenerator",Mt);const St=Mt,Tt=fe.DEFAULT_PARAM_CHANGE_TIME_CONSTANT;class xt extends St{constructor(e,t){const i=(0,Y.ZP)()({loop:!1,trimSilence:!0,initialPlaybackRate:1,initiateWhenDisabled:!1,rateChangesAffectPlayingSounds:!0},t);if(super(i),this.wrappedAudioBuffer=e,this.loop=i.loop,this.rateChangesAffectPlayingSounds=i.rateChangesAffectPlayingSounds,this.initiateWhenDisabled=i.initiateWhenDisabled,this.soundStart=0,this.soundEnd=null,i.trimSilence){const e=t=>{if(t){const i=bt.detectSoundBounds(t);this.soundStart=i.soundStart,this.soundEnd=i.soundEnd,this.wrappedAudioBuffer.audioBufferProperty.unlink(e)}};this.wrappedAudioBuffer.audioBufferProperty.link(e)}this.activeBufferSources=[],this.localGainNode=this.audioContext.createGain(),this.localGainNode.connect(this.soundSourceDestination),this._playbackRate=i.initialPlaybackRate,this.isPlayingProperty=new V.Z(!1),this.timeOfDeferredPlayRequest=Number.NEGATIVE_INFINITY,this.audioContextStateChangeListener=e=>{"running"===e&&((this.loop||(Date.now()-this.timeOfDeferredPlayRequest)/1e3<.2)&&this.play(.1),me.removeStateChangeListener(this.audioContext,this.audioContextStateChangeListener))},this.fullyEnabledProperty.lazyLink(e=>{this.loop||e||this.stop()})}play(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if("running"===this.audioContext.state&&this.wrappedAudioBuffer.audioBufferProperty.value){const t=this.audioContext.currentTime;if(this.loop&&!this.isPlayingProperty.get()||!this.loop&&(this.fullyEnabled||this.initiateWhenDisabled)){const i=this.audioContext.createBufferSource();i.buffer=this.wrappedAudioBuffer.audioBufferProperty.value,i.loop=this.loop,i.loopStart=this.soundStart,this.soundEnd&&(i.loopEnd=this.soundEnd),this.localGainNode.gain.cancelScheduledValues(t),this.localGainNode.gain.setValueAtTime(1,t),i.connect(this.soundSourceDestination),this.activeBufferSources.push(i),this.loop||(i.onended=()=>{const e=this.activeBufferSources.indexOf(i);e>-1&&this.activeBufferSources.splice(e,1),this.isPlayingProperty.value=this.activeBufferSources.length>0}),i.playbackRate.setValueAtTime(this._playbackRate,t),i.start(t+e,this.soundStart),this.isPlayingProperty.value=!0}}else"suspended"===this.audioContext.state&&(this.timeOfDeferredPlayRequest=Date.now(),me.hasListener(this.audioContext,this.audioContextStateChangeListener)||me.addStateChangeListener(this.audioContext,this.audioContextStateChangeListener))}stop(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.1;const t=e>0?e/4.61:fe.DEFAULT_PARAM_CHANGE_TIME_CONSTANT,i=this.audioContext.currentTime,n=i+e;this.localGainNode.gain.cancelScheduledValues(i),this.localGainNode.gain.setTargetAtTime(0,i,t),this.activeBufferSources.forEach(e=>{e.stop(n)}),this.activeBufferSources.length=0,this.isPlayingProperty.value=!1,me.hasListener(this.audioContext,this.audioContextStateChangeListener)&&me.removeStateChangeListener(this.audioContext,this.audioContextStateChangeListener)}setPlaybackRate(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Tt;if(this.rateChangesAffectPlayingSounds){const i=this.audioContext.currentTime;this.activeBufferSources.forEach(n=>{n.playbackRate.cancelScheduledValues(i),n.playbackRate.setTargetAtTime(e,i,t)})}this._playbackRate=e}getPlaybackRate(){return this._playbackRate}get playbackRate(){return this.getPlaybackRate()}get isPlaying(){return this.isPlayingProperty.value}getNumberOfPlayingInstances(){return this.activeBufferSources.length}}ee.register("SoundClip",xt);const Ot=xt;class kt{constructor(e,t){this.soundPlayer=e,this.playbackRate=t}play(){this.soundPlayer.setPlaybackRate(this.playbackRate),this.soundPlayer.play()}stop(){this.soundPlayer.stop()}}const Lt=new class{constructor(){this._basisSoundClip=null,this.soundPlayers=[]}getSoundClipInstance(){return this._basisSoundClip||(this._basisSoundClip=new Ot(Pt,{initialOutputLevel:.7,rateChangesAffectPlayingSounds:!1}),Ie.addSoundGenerator(this._basisSoundClip,{categoryName:"user-interface"})),this._basisSoundClip}getSelectionSoundPlayer(e){if(!this.soundPlayers[e]){const t=Math.pow(2,-e/12);this.soundPlayers[e]=new kt(this.getSoundClipInstance(),t)}return this.soundPlayers[e]}};ee.register("multiSelectionSoundPlayerFactory",Lt);const Qt=Lt;class Rt extends((0,G.pL8)((0,G.CHP)(G.NBX))){constructor(e,t,i,n){const s=(0,Y.ZP)()({centerColor:"black",radius:Rt.DEFAULT_RADIUS,selectedColor:"rgb( 143, 197, 250 )",deselectedColor:"white",xSpacing:8,stroke:"black",soundPlayer:Qt.getSelectionSoundPlayer(0),a11yNameAttribute:null,touchAreaXDilation:0,touchAreaYDilation:0,mouseAreaXDilation:0,mouseAreaYDilation:0,cursor:"pointer",disabledOpacity:G.iaM.DISABLED_OPACITY,tandem:K.Z.REQUIRED,tandemNameSuffix:"RadioButton",visiblePropertyOptions:{phetioFeatured:!0},phetioEnabledPropertyInstrumented:!0,tagName:"input",inputType:"radio",containerTagName:"li",labelTagName:"label",appendLabel:!0,appendDescription:!0},n);super(),_defineProperty(this,"onInputEmitter",new S.Z),_defineProperty(this,"_isMouseAreaCustomized",!1),_defineProperty(this,"_isTouchAreaCustomized",!1),_defineProperty(this,"_isSettingAreas",!1),this.value=t;const r=new G.NBX,o=new G.Cdc(s.radius/3,{fill:s.centerColor}),a=new G.Cdc(s.radius,{fill:s.selectedColor,stroke:s.stroke}),l=new G.NBX({children:[a,o]});r.addChild(l);const h=new G.NBX,A=new G.Cdc(s.radius,{fill:s.deselectedColor,stroke:s.stroke});h.addChild(A);const d=new G.NBX({children:[r,h],pickable:!1}),c=()=>{i.left=A.right+s.xSpacing,i.centerY=A.centerY};i.boundsProperty.link(c);const u=new G.AeJ({});r.pickable=h.pickable=!1,i.pickable=!1,this.children=[d,i,u],this.constraint=new Nt(this,d,i,u,s),this.constraint.updateLayout();const g=e=>{r.visible=e===t,h.visible=!r.visible};e.link(g);const p=()=>{const i=e.value;e.set(t),i!==e.value&&this.onInputEmitter.emit()},m=new G.eMb({fire:p,tandem:s.tandem.createTandem("fireListener")});this.addInputListener(m),this.onInputEmitter.addListener(()=>s.soundPlayer.play());const y={change:p};this.addInputListener(y),e.value===t&&this.setPDOMAttribute("checked","checked");const f=e=>{this.pdomChecked=e===t};e.link(f),null!==s.a11yNameAttribute&&this.setPDOMAttribute("name",s.a11yNameAttribute),this.mutate(s),this.disposeAquaRadioButton=()=>{this.constraint.dispose(),this.onInputEmitter.dispose(),this.removeInputListener(m),this.removeInputListener(y),e.unlink(f),e.unlink(g),i.boundsProperty.hasListener(c)&&i.boundsProperty.unlink(c),m.dispose()}}dispose(){this.disposeAquaRadioButton(),super.dispose()}}_defineProperty(Rt,"DEFAULT_RADIUS",7),_defineProperty(Rt,"TANDEM_NAME_SUFFIX","RadioButton");class Nt extends G.dmK{constructor(e,t,i,n,s){super(e),this.radioButton=e,this.radioNode=t,this.content=i,this.rectangle=n,this.options=s,this.radioButton.localPreferredWidthProperty.lazyLink(this._updateLayoutListener),this.addNode(i)}layout(){super.layout();const e=this.createLayoutProxy(this.content),t=e.minimumWidth,i=this.radioNode.width+this.options.xSpacing+t,n=Math.max(i,this.radioButton.localPreferredWidth||0);(0,G.S3T)(this.content)&&(e.preferredWidth=n-this.radioNode.width-this.options.xSpacing),e.left=this.radioNode.right+this.options.xSpacing,e.centerY=this.radioNode.centerY,this.rectangle.rectBounds=this.radioNode.bounds.union(e.bounds).withMaxX(Math.max(this.radioNode.left+n,e.right)),this.radioButton._isSettingAreas=!0,this.radioButton._isTouchAreaCustomized||(this.radioButton.touchArea=this.radioButton.localBounds.dilatedXY(this.options.touchAreaXDilation,this.options.touchAreaYDilation)),this.radioButton._isMouseAreaCustomized||(this.radioButton.mouseArea=this.radioButton.localBounds.dilatedXY(this.options.mouseAreaXDilation,this.options.mouseAreaYDilation)),this.radioButton._isSettingAreas=!1,e.dispose(),this.radioButton.localMinimumWidth=i}dispose(){this.radioButton.localPreferredWidthProperty.unlink(this._updateLayoutListener),super.dispose()}}function Yt(e,t){return e.map(e=>e.createNode(t&&e.tandemName?t.createTandem(e.tandemName):K.Z.OPTIONAL))}At.register("AquaRadioButton",Rt);let Ft=0;class Gt extends G.N52{constructor(e,t,i){Ft++;const n=(0,Y.ZP)()({touchAreaXDilation:0,touchAreaYDilation:0,mouseAreaXDilation:0,mouseAreaYDilation:0,orientation:"vertical",spacing:3,stretch:!0,disabledOpacity:G.iaM.DISABLED_OPACITY,tandem:K.Z.REQUIRED,tandemNameSuffix:"RadioButtonGroup",visiblePropertyOptions:{phetioFeatured:!0},phetioEnabledPropertyInstrumented:!0,phetioFeatured:!0,tagName:"ul",labelTagName:"h3",ariaRole:"radiogroup",groupFocusHighlight:!0},i),s=Yt(t,n.tandem);"vertical"===n.orientation&&(n.align=n.align||"left");const r=t.map((t,i)=>{const r=s[i];return new Rt(e,t.value,r,(0,Y.JA)({a11yNameAttribute:"AquaRadioButtonGroup"+Ft,labelContent:t.labelContent||null,soundPlayer:Qt.getSelectionSoundPlayer(i),tandem:t.tandemName?n.tandem.createTandem(t.tandemName):n.tandem===K.Z.OPT_OUT?K.Z.OPT_OUT:K.Z.REQUIRED,touchAreaXDilation:n.touchAreaXDilation,touchAreaYDilation:"vertical"===n.orientation?n.spacing/2:n.touchAreaYDilation,mouseAreaXDilation:n.mouseAreaXDilation,mouseAreaYDilation:"vertical"===n.orientation?n.spacing/2:n.mouseAreaYDilation},n.radioButtonOptions,t.options))});n.children=r,super(n),_defineProperty(this,"onInputEmitter",new S.Z),this.addAriaLabelledbyAssociation({thisElementName:G.Grz.PRIMARY_SIBLING,otherNode:this,otherElementName:G.Grz.LABEL_SIBLING});const o=new G.F3H({keys:["arrowLeft","arrowRight","arrowUp","arrowDown"],callback:e=>{e&&e.pointer.reserveForKeyboardDrag()}});this.addInputListener(o);const a=this.onRadioButtonInput.bind(this);for(let l=0;l{this.removeInputListener(o),o.dispose(),r.forEach(e=>e.dispose()),this.onInputEmitter.dispose(),s.forEach(e=>e.dispose())},this.radioButtons=r}onRadioButtonInput(){this.onInputEmitter.emit()}dispose(){this.disposeAquaRadioButtonGroup(),super.dispose()}getButton(e){const t=_.find(this.radioButtons,t=>t.value===e);return t}}At.register("AquaRadioButtonGroup",Gt);var qt=i(7959),Ht=i(9972);const Zt=new Ke.bn("M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q119 0 203.5 -84.5t84.5 -203.5z").makeImmutable(),Ut=new Ke.bn("M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 q24 -24 24 -57t-24 -57z").makeImmutable(),Kt="data:audio/mpeg;base64,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VxjMbjCAqV6+9lyLbLv3a0X6ESHnjmkrTgX6ewW628bWpy6aAAAEIBKAAYVGgQJzEA7MHBAeERhQBG6YsEF4lDMeEoCAUYKgI6ZVAYEguZjC2ZGtMcWpghOAQLKNr1LwVPu2Wuurc61Zm1tOXWe/o1tDZJ5cXoLq47k/vbkMSqQ57UHqbUISVThclJqqsAa1V3dqUsXjENcTVSBUCQHmLDZKQCFtO+lwC+DVGKFZhA8Ck5ACX2THBAR54Dl4c+jQuNtZdZ7rPuOGX//7cMTJAk6AYtSvdwcB3graIe684Jd3Kc5TLcMqa1j+V2z++ZfljKYdvVqa/VlNNTWpkJR7VjzOVVd5NBQlGc8z5NIkUcNIozLbzkcqq84/8kUcf1PnK74dLEkq30DAFGtNIonJMclvNIy5wMFJGkUZk4lppFE4ldVr+qreaiclZEjO/scSJEtxTEFNRTMuOTguM6qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqCQACQKKEgQswmgpKTiyiyizTjSizDzDy2eLzc/ypo0osoCEihIoDEA5BDcqWco0FBgUUBgQsQLAzjSizDzDy2drzcqpo0ov/+3LE5QJOoF7PjnWHApQz1oW8mbkoso404so8w+GdnZ4tv//+7VNSUWUWUKEihIELECxAoSBFmHxcNebNGlFmnCRQkCFiBYkUJFAYgWIFgZRZRZh5h9VVVUUJppI1VUxBTUUzLjk4LjNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7cMS2A9IFejpDGM3IAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=",Wt=X(se,Kt),zt=j.Z.createLock(Kt),jt=new ie;let Xt=!1;const Jt=()=>{Xt||(zt(),Xt=!0)},_t=se.decodeAudioData(Wt.buffer,e=>{null===jt.audioBufferProperty.value&&(jt.audioBufferProperty.set(e),Jt())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),jt.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),Jt()});_t&&_t.then(e=>{null===jt.audioBufferProperty.value&&(jt.audioBufferProperty.set(e),Jt())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),Jt()});const $t=jt;class ei{constructor(e,t){const i=(0,Y.ZP)()({soundClipOptions:{},soundManagerOptions:{}},t);this._soundClip=new Ot(e,i.soundClipOptions),Ie.addSoundGenerator(this._soundClip,i.soundManagerOptions)}play(){this._soundClip.play()}stop(){this._soundClip.stop()}getSoundClip(){return this._soundClip}}ee.register("SoundClipPlayer",ei);const ti=ei,ii=new ti($t,{soundClipOptions:{initialOutputLevel:.7},soundManagerOptions:{categoryName:"user-interface"}});ee.register("checkboxCheckedSoundPlayer",ii);const ni=ii,si="data:audio/mpeg;base64,//swxAAAB3BPLHWkgAEQCy03MPADAYAEAMYCIAZnV5vYJv2ZoxqgRhBhkBBkRJhwZa9g7/tbYe1+jC4beogQMZ4Z5zn7mgQQdxOH//////6SQAIzbNJJdtgAAAAAAHjcV2B1EBJLBB4wV9rCWp5eq0EHE43FpgLhkjdNEqGhFqhSQlQ4TwqZdZ7fN/Hm6YKiu/33NoUAACApAAAI//syxAOCSGxzQ123gDkDjCZJvLDmDQ0HhMRgBVEjBws2OIM9Cky1VU0REAhgK47nqWwHAkIYcB7ePHvXeo2cV1nG4uL6rjXjzXt951bbjQs/hQuyxEeFQaEGUgRohuYvQkhIfrBnlFyQoUla/qMye4qGxUqjhxTJIFPCOfamTewcOH2SkYCFVa21OLZrySygx+bV4B1xgBhA1DB0Bf/7MsQFAAfISyw1x4AxL4ssNzGAAigYRigH0YoI18mGQKOgZ+FY0UWnyRsLJgZYCShStOpdQYKdeV5/q9jbIDYPkLAYtiTETvrZLIYEb2u2uogAAAAAAhkChusjjbfkXleOGpiySKjhjUIlMla3JEsHQqgBs2ns50DIPtDIgjJE46JnUPRPPPOG5G8/yKxQADAZFTP1KgAAIX0AGkv/+zLEA4IIRJ9DPaUAMQuN5o2tmYqinck4ucZbhxEBHFls3WFfhr6dyvz3zgxEmEABChAREwQIwJRfc1jx6QHFWNNqQkrG5wvNNbdf1b//kxUACACHIGAlgmUgpccbebl+BkKCZXQyCAwpKkwRUzEk7AIAwgTBahUNNHisAuFoYmM12rXbbUJ2v5Cwa++fDf///+mgDERUoJgUemjg//swxAUDSExLJi3phxEQCmQBrbx0BkCOdSyG/xxiJyFwYUOAZiABRh0Zh64k8Pj7NAJTjWFStFgyvxBK5IhTLDstCt9Y/SAqpLqiYU1gRqYoIfCMbtwYtoG77YMaQdBGoPhoQOPIxjIsCrswBnOHTzqNAI9TIQEiAQc0oSX9JssKWBt5O9HJA8fEWBHxeXEQzXUAKsQAXwMjEM3O//syxAUCSDxVLM1lJzEbCWPFrmxBNqHM4RC+k5ZUzwUcEaSmKZZCdwJRBNZkJiwDdFN36YdSqdqUT6pYDZ5ScxSDVfZPSpL8M//b6NxDNtjDhTpxDmMDKQMMw1k08tNDTxrGMKLQxRDCMevDKlACBZi1WYsoiEOBwEwdI9e0vdBptNKZfgzJsVH29qtOpUET8k9v4mAAAExTEHgUKP/7MsQEggfQUyJNc0QA2AklmY2YpukjMG6N4KPFG4xmOjdBnIQqBgcbgGQGmcNGdaHtBQplqcsNdnbkroa0zXiUXxyr9wz/WF9usagQAkSHDHulGU3DjA44xIgQwADplHVAGUl7G/MbPAcXSMAgRGUSoN9OUp+zGuLf///V3//+ugKcCSTofFaj5oNcoyUgyJfAIDMwsQBGeEBQiGf/+zLEDgJHUD8UDOksQN6F39wxsAA60sBDGHr5bR5oZBEMkscKhnEIJPCh6j//////+n6AmBgKjhFZNEIgmCyGD2UQjAVEweC2peqxVyOIpL/WDXZ7cNcFTtQdJCEFQVGLPFgaUHJ6dhojDlVttOCJU4BB0qsXplV/tncqptv/p//+n//6abf////9QTTTTRVV9UEJK0kIixWmqoc///swxBiDxvgCi4CEYAgAADSAAAAE/1TTVEWK6UxBTUUzLjk5LjNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",ri=X(se,si),oi=j.Z.createLock(si),ai=new ie;let li=!1;const hi=()=>{li||(oi(),li=!0)},Ai=se.decodeAudioData(ri.buffer,e=>{null===ai.audioBufferProperty.value&&(ai.audioBufferProperty.set(e),hi())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),ai.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),hi()});Ai&&Ai.then(e=>{null===ai.audioBufferProperty.value&&(ai.audioBufferProperty.set(e),hi())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),hi()});const di=new ti(ai,{soundClipOptions:{initialOutputLevel:.7},soundManagerOptions:{categoryName:"user-interface"}});ee.register("checkboxUncheckedSoundPlayer",di);const ci=di;var ui=i(428);const gi={valueType:"boolean"},pi=(0,Ht.m3)(.025,0,0,0,-.025,0,0,0,1),mi=Zt.transformed(pi),yi=Ut.transformed(pi);class fi extends((0,G.pL8)((0,G.CHP)(G.NBX))){constructor(e,t,i){const n=(0,Y.ZP)()({spacing:5,boxWidth:21,checkboxColor:"black",checkboxColorBackground:"white",touchAreaXDilation:0,touchAreaYDilation:0,mouseAreaXDilation:0,mouseAreaYDilation:0,checkedSoundPlayer:ni,uncheckedSoundPlayer:ci,phetioLinkProperty:!0,cursor:"pointer",disabledOpacity:G.iaM.DISABLED_OPACITY,tandem:K.Z.REQUIRED,tandemNameSuffix:"Checkbox",phetioEventType:q.Z.USER,visiblePropertyOptions:{phetioFeatured:!0},phetioEnabledPropertyInstrumented:!0,phetioReadOnly:z.Z.DEFAULT_OPTIONS.phetioReadOnly,phetioFeatured:!0,tagName:"input",inputType:"checkbox",appendDescription:!0,voicingCheckedObjectResponse:null,voicingUncheckedObjectResponse:null,checkedContextResponse:null,uncheckedContextResponse:null,voiceNameResponseOnSelection:!0},i);super(),_defineProperty(this,"_isMouseAreaCustomized",!1),_defineProperty(this,"_isTouchAreaCustomized",!1),_defineProperty(this,"_isSettingAreas",!1);const s=new Me.Z(()=>{e.value=!e.value,(0,qt.Z)(e.value,gi),e.value?(n.checkedSoundPlayer.play(),n.checkedContextResponse&&this.alertDescriptionUtterance(n.checkedContextResponse),this.voicingSpeakResponse({nameResponse:n.voiceNameResponseOnSelection?this.voicingNameResponse:null,objectResponse:ui.Z.alertableToText(n.voicingCheckedObjectResponse),contextResponse:ui.Z.alertableToText(n.checkedContextResponse)})):(n.uncheckedSoundPlayer.play(),n.uncheckedContextResponse&&this.alertDescriptionUtterance(n.uncheckedContextResponse),this.voicingSpeakResponse({nameResponse:n.voiceNameResponseOnSelection?this.voicingNameResponse:null,objectResponse:ui.Z.alertableToText(n.voicingUncheckedObjectResponse),contextResponse:ui.Z.alertableToText(n.uncheckedContextResponse)}))},{parameters:[],tandem:n.tandem.createTandem("toggleAction"),phetioDocumentation:"Emits when user input causes the checkbox to toggle, emitting a single arg: the new boolean value of the checkbox state.",phetioReadOnly:!0,phetioEventType:q.Z.USER});this.backgroundNode=new G.AeJ(0,-n.boxWidth,.95*n.boxWidth,.95*n.boxWidth,.2*n.boxWidth,.2*n.boxWidth,{fill:n.checkboxColorBackground}),this.uncheckedNode=new G.y$t(mi,{fill:n.checkboxColor});const r=n.boxWidth/this.uncheckedNode.width;this.uncheckedNode.scale(r),this.checkedNode=new G.y$t(yi,{scale:r,fill:n.checkboxColor});const o=new G.NBX({children:[this.backgroundNode,this.checkedNode,this.uncheckedNode]}),a=new G.AeJ({});this.children=[o,t,a],this.constraint=new wi(this,o,this.checkedNode,t,a,n),this.constraint.updateLayout(),t.pickable=!1,t.pdomVisible=!1;const l=new G.eMb({fire:()=>s.execute(),tandem:n.tandem.createTandem("fireListener")});this.addInputListener(l);const h=e=>{this.checkedNode.visible=e,this.uncheckedNode.visible=!e,this.pdomChecked=e};e.link(h),this.mutate(n),this.setExcludeLabelSiblingFromInput(),n.phetioLinkProperty&&this.addLinkedElement(e,{tandemName:"property"}),this.disposeCheckbox=()=>{a.dispose(),this.backgroundNode.dispose(),this.uncheckedNode.dispose(),this.checkedNode.dispose(),o.dispose(),l.dispose(),e.hasListener(h)&&e.unlink(h),s.dispose()}}dispose(){this.constraint.dispose(),this.disposeCheckbox(),super.dispose()}setCheckboxColorBackground(e){this.backgroundNode.fill=e}set checkboxColorBackground(e){this.setCheckboxColorBackground(e)}get checkboxColorBackground(){return this.getCheckboxColorBackground()}getCheckboxColorBackground(){return this.backgroundNode.fill}setCheckboxColor(e){this.checkedNode.fill=this.uncheckedNode.fill=e}set checkboxColor(e){this.setCheckboxColor(e)}get checkboxColor(){return this.getCheckboxColor()}getCheckboxColor(){return this.checkedNode.fill}setMouseArea(e){return this._isSettingAreas||(this._isMouseAreaCustomized=!0),super.setMouseArea(e)}setTouchArea(e){return this._isSettingAreas||(this._isTouchAreaCustomized=!0),super.setTouchArea(e)}}class wi extends G.dmK{constructor(e,t,i,n,s,r){super(e),this.checkbox=e,this.checkboxNode=t,this.checkedNode=i,this.content=n,this.rectangle=s,this.options=r,this.checkbox.localPreferredWidthProperty.lazyLink(this._updateLayoutListener),this.addNode(n)}layout(){super.layout();const e=this.createLayoutProxy(this.content),t=e.minimumWidth,i=this.checkedNode.right-this.checkboxNode.left,n=i+this.options.spacing+t,s=Math.max(n,this.checkbox.localPreferredWidth||0);(0,G.S3T)(this.content)&&null!==this.checkbox.localPreferredWidth&&(e.preferredWidth=s-i-this.options.spacing),e.left=this.checkedNode.right+this.options.spacing,e.centerY=this.checkedNode.centerY,this.rectangle.rectBounds=this.checkboxNode.bounds.union(e.bounds).withMaxX(Math.max(this.checkboxNode.left+s,e.right)),this.checkbox._isSettingAreas=!0,this.checkbox._isTouchAreaCustomized||(this.checkbox.touchArea=this.checkbox.localBounds.dilatedXY(this.options.touchAreaXDilation,this.options.touchAreaYDilation)),this.checkbox._isMouseAreaCustomized||(this.checkbox.mouseArea=this.checkbox.localBounds.dilatedXY(this.options.mouseAreaXDilation,this.options.mouseAreaYDilation)),this.checkbox._isSettingAreas=!1,e.dispose(),this.checkbox.localMinimumWidth=n}dispose(){this.checkbox.localPreferredWidthProperty.unlink(this._updateLayoutListener),super.dispose()}}At.register("Checkbox",fi);var Bi=i(1243),Pi=i(1935),Di=i(3409);class Ci extends x.Z{constructor(e,t){const i=(0,Y.ZP)()({enumeration:e.enumeration},t);super(e,(0,Y.ZP)()({validValues:i.enumeration.values,phetioValueType:(0,Di.Z)({enumeration:i.enumeration})},i))}}Ge.Z.register("EnumerationProperty",Ci);var Ei=i(831);const bi="data:audio/mpeg;base64,//swxAAABlAhPLTAgDE1De+/HoACAH4CwkCAJDo5gDgPRksn2WLHOB8EHShd5cHwfBBwgBBOJw/UCAY/lAxWD/4DB9+CH/6XQjMTIIcYUIQPQIRAIBAACUIawkYq7IQ/BawVqEc7mTjD+OFygBAnHbHq7UkLJ8aCnnrZlPpg3IkRJBgPH/MCQCI985/yAnHAAhmv3lHuAgAgAxJF//syxAOACHQpa7zBAAD8EunxpI3HUCEZHQlA2EYuDsSjE5EkSQGhUDYDxOARLoiBmIgalVgq4qWeWBqsNYKywNO+p/sxFyKwVOlXRFDtZ0S86oQ0C2W+wBOmlaWuS6+BIqZMz+AYy3FuwBkKXM2idVoKlYwUd/oIGgsbLpEbaCsmIyZRtbw6TPwj+mYmGr8QqnGHBLo3LKAAxKabZ//7MsQGAAhsl1OsPMcxAo3mpbCaAvIuuQRmW4WNHhDBJnoBORIlh+I9dvGCTCKP0kzo7rHHTi87diQ2XqnRN77y8lnKUl8zf+X0Fu0iCDV/9AP7el8Cw8raZKqiYShe+6bzYk0zXmEuGnBDcQhyRzPeI4Jbsmj5OxzZVhSX9adVU4Kk9r9esE3etv+/6wUIg3Wm62nA3Ab0EIcLUQ7/+zLECABGICs9oemDMLwEZrQcvFYyDBCUCgUAwQCUSvgROof5poGn9O7o70P/X9P/T+360+lAhIJVtyuNDljXzM7Ek0fGUB/ltZQF8iD7dBcVTs00f31POqR0/V/q/pjEe1z3jyAAQRBHGmSBEEVK6QIYH2miQZKNfgCVtiH9vVLp+w7an/d0jdUx9VnqZIJSvFtsaUFKKFBVCzoe//swxBwABSAhLaDl4nCsA+a0fDyG3vbgKx5OhNXyuPYt7kJJSg9B6heqxP93q/9P6IwSQ8LbYIFBVUF85RwseJPX6+Q7qIq7f/8ayokh7P//V8oyAABbhbGEIBBhOJgEGTBx6KjUiosS54l6y0i3jOz/6f///RVMQU1FMy45OS41VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//syxDWABEQTMaCF4HCNAmL0EJgGVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ==",vi=X(se,bi),Vi=j.Z.createLock(bi),Ii=new ie;let Mi=!1;const Si=()=>{Mi||(Vi(),Mi=!0)},Ti=se.decodeAudioData(vi.buffer,e=>{null===Ii.audioBufferProperty.value&&(Ii.audioBufferProperty.set(e),Si())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),Ii.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),Si()});Ti&&Ti.then(e=>{null===Ii.audioBufferProperty.value&&(Ii.audioBufferProperty.set(e),Si())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),Si()});const xi=new ti(Ii,{soundClipOptions:{initialOutputLevel:.5},soundManagerOptions:{categoryName:"user-interface"}});ee.register("pushButtonSoundPlayer",xi);const Oi=xi;class ki extends Be.Z{}_defineProperty(ki,"IDLE",new(t=ki)),_defineProperty(ki,"OVER",new t),_defineProperty(ki,"PRESSED",new t),_defineProperty(ki,"enumeration",new we.Z(t)),At.register("ButtonInteractionState",ki);class Li extends M.Nt{constructor(e){super([e.focusedProperty,e.overProperty,e.looksOverProperty,e.looksPressedProperty],(e,t,i,n)=>i&&!n?ki.OVER:(t||e)&&n?ki.PRESSED:ki.IDLE,{valueType:ki})}}At.register("PushButtonInteractionStateProperty",Li);var Qi=i(2558),Ri=i(4317);class Ni extends Ri.Z{constructor(e){const t=(0,Y.ZP)()({startCallback:_.noop,endCallback:_.noop,tandem:K.Z.REQUIRED,phetioState:z.Z.DEFAULT_OPTIONS.phetioState,phetioReadOnly:z.Z.DEFAULT_OPTIONS.phetioReadOnly,phetioFeatured:z.Z.DEFAULT_OPTIONS.phetioFeatured},e);t.enabledPropertyOptions=(0,Y.JA)({phetioState:t.phetioState,phetioReadOnly:t.phetioReadOnly,phetioDocumentation:"When disabled, the button is grayed out and cannot be pressed",phetioFeatured:!0},t.enabledPropertyOptions),super(t),this.overProperty=new V.Z(!1),this.downProperty=new V.Z(!1,{reentrant:!0}),this.focusedProperty=new V.Z(!1),this.looksPressedProperty=new V.Z(!1),this.looksOverProperty=new V.Z(!1),this.produceSoundEmitter=new S.Z,this.interrupted=!1,this.listeners=[],this.looksPressedMultilink=null,this.looksOverMultilink=null,this.downProperty.lazyLink(e=>{e?t.startCallback():t.endCallback(this.looksOverProperty.get())}),this.enabledProperty.link(e=>{if(!e)for(let t=0;t{this.overProperty.dispose(),this.downProperty.dispose(),this.produceSoundEmitter.dispose(),this.looksPressedMultilink&&this.looksPressedMultilink.dispose(),this.looksOverMultilink&&this.looksOverMultilink.dispose(),this.listeners=[]}}dispose(){this.disposeButtonModel(),super.dispose()}createPressListener(e){var t=this;e=(0,Y.JA)({canStartPress:()=>this.enabledProperty.value},e);const i=new G.$o8(e);this.listeners.push(i),i.isPressedProperty.lazyLink(e=>{this.interrupted=i.interrupted,this.downProperty.set(e)}),i.isOverProperty.lazyLink(this.overProperty.set.bind(this.overProperty)),i.isFocusedProperty.lazyLink(this.focusedProperty.set.bind(this.focusedProperty)),this.looksPressedMultilink&&this.looksPressedMultilink.dispose(),this.looksOverMultilink&&this.looksOverMultilink.dispose();const n=this.listeners.map(e=>e.looksPressedProperty);n.push(this.downProperty),this.looksPressedMultilink=Ce.Z.multilinkAny(n,(function(){for(var e=arguments.length,i=new Array(e),n=0;ne||t,!1)}));const s=this.listeners.map(e=>e.looksOverProperty);return this.looksOverMultilink=Ce.Z.multilinkAny(s,(function(){for(var e=arguments.length,i=new Array(e),n=0;ne||t,!1)})),i}}At.register("ButtonModel",Ni);class Yi extends Ni{constructor(e){const t=(0,Y.ZP)()({fireOnDown:!1,listener:null,interruptListener:null,fireOnHold:!1,fireOnHoldDelay:400,fireOnHoldInterval:100,tandem:K.Z.REQUIRED,phetioReadOnly:z.Z.DEFAULT_OPTIONS.phetioReadOnly},e);super(t),_defineProperty(this,"startEvent",null),this.isFiringProperty=new V.Z(!1),this.firedEmitter=new S.Z({tandem:t.tandem.createTandem("firedEmitter"),phetioDocumentation:"Emits when the button is fired",phetioReadOnly:t.phetioReadOnly,phetioEventType:q.Z.USER,hasListenerOrderDependencies:!0}),t.interruptListener&&this.firedEmitter.addListener(()=>{t.interruptListener(this.startEvent)}),null!==t.listener&&this.firedEmitter.addListener(t.listener),t.fireOnHold&&(this.timer=new Qi.Z({callback:this.fire.bind(this),delay:t.fireOnHoldDelay,interval:t.fireOnHoldInterval}));const i=e=>{if(e){var i,n,s,r;if(this.enabledProperty.get())this.startEvent=(null===(i=phet)||void 0===i||null===(n=i.joist)||void 0===n||null===(s=n.display)||void 0===s||null===(r=s._input)||void 0===r?void 0:r.currentSceneryEvent)||null,t.fireOnDown&&this.fire(),this.timer&&this.timer.start(),(t.fireOnDown||this.timer)&&this.produceSoundEmitter.emit()}else{const e=!t.fireOnDown&&(this.overProperty.get()||this.focusedProperty.get())&&this.enabledProperty.get()&&!this.interrupted;this.timer?this.timer.stop(e):e&&(this.produceSoundEmitter.emit(),this.fire())}};this.downProperty.link(i);const n=e=>{!e&&this.timer&&this.timer.stop(!1)};this.enabledProperty.link(n),this.disposePushButtonModel=()=>{this.isFiringProperty.value=!1,this.isFiringProperty.dispose(),this.firedEmitter.dispose(),this.downProperty.unlink(i),this.enabledProperty.unlink(n),this.timer&&(this.timer.dispose(),this.timer=null)}}dispose(){this.disposePushButtonModel(),super.dispose()}addListener(e){this.firedEmitter.addListener(e)}removeListener(e){this.firedEmitter.removeListener(e)}fire(){this.isFiringProperty.value=!0,this.firedEmitter.emit(),this.isFiringProperty.value=!1}}At.register("PushButtonModel",Yi);const Fi={LIGHT_BLUE:new G.Ilk(153,206,255),LIGHT_GRAY:new G.Ilk(220,220,220)},Gi=new G.mnm(.7),qi=new G.UlH(1.2);class Hi extends((0,G.tTM)((0,G.CHP)(G.NBX))){constructor(e,t,i,n){var s;const r=(0,Y.ZP)()({content:null,minUnstrokedWidth:null,minUnstrokedHeight:null,xMargin:10,yMargin:5,xAlign:"center",yAlign:"center",xContentOffset:0,yContentOffset:0,baseColor:Fi.LIGHT_BLUE,cursor:"pointer",buttonAppearanceStrategy:Hi.FlatAppearanceStrategy,buttonAppearanceStrategyOptions:{},contentAppearanceStrategy:null,contentAppearanceStrategyOptions:{},enabledAppearanceStrategy:(e,t,i,n)=>{i.filters=e?[]:[Gi,qi],n&&(n.filters=e?[]:[G.P5k.FULL],n.opacity=e?1:G.iaM.DISABLED_OPACITY)},disabledColor:Fi.LIGHT_GRAY,aspectRatio:null,tagName:"button",visiblePropertyOptions:{phetioFeatured:!0},phetioEnabledPropertyInstrumented:!0},n);r.listenerOptions=(0,Y.JA)({tandem:null===(s=r.tandem)||void 0===s?void 0:s.createTandem("pressListener")},r.listenerOptions),r.enabledProperty=e.enabledProperty,super(),_defineProperty(this,"buttonNodeConstraint",null),this.content=r.content,this.buttonModel=e,this._settableBaseColorProperty=new G.M4p(r.baseColor),this._disabledColorProperty=new G.M4p(r.disabledColor),this.baseColorProperty=new M.ZP([this._settableBaseColorProperty,this.enabledProperty,this._disabledColorProperty],(e,t,i)=>t?e:i),this._pressListener=e.createPressListener(r.listenerOptions),this.addInputListener(this._pressListener),t.fill=this.baseColorProperty,this.addChild(t);const o=new r.buttonAppearanceStrategy(t,i,this.baseColorProperty,r.buttonAppearanceStrategyOptions);let a;r.contentAppearanceStrategy&&r.content&&(a=new r.contentAppearanceStrategy(r.content,i,r.contentAppearanceStrategyOptions)),this.maxLineWidth=o.maxLineWidth;let l=null,h=null;if(r.content){const e=r.content;e.pickable=!1,this.buttonNodeConstraint=new Zi(this,{content:r.content,xMargin:r.xMargin,yMargin:r.yMargin,maxLineWidth:this.maxLineWidth,minUnstrokedWidth:r.minUnstrokedWidth,minUnstrokedHeight:r.minUnstrokedHeight,aspectRatio:r.aspectRatio}),this.layoutSizeProperty=this.buttonNodeConstraint.layoutSizeProperty,l=new G.DbO(e,{xAlign:r.xAlign,yAlign:r.yAlign,leftMargin:r.xMargin+r.xContentOffset,rightMargin:r.xMargin-r.xContentOffset,topMargin:r.yMargin+r.yContentOffset,bottomMargin:r.yMargin-r.yContentOffset}),h=Ce.Z.multilink([t.boundsProperty,this.layoutSizeProperty],(e,t)=>{l.alignBounds=L.Z.point(e.center).dilatedXY(t.width/2,t.height/2)}),this.addChild(l)}else this.layoutSizeProperty=new J.Z(new Q.Z(r.minUnstrokedWidth+this.maxLineWidth,r.minUnstrokedHeight+this.maxLineWidth));this.mutate(r),this.enabledProperty.link(e=>r.enabledAppearanceStrategy(e,this,t,l)),this.disposeButtonNode=()=>{l&&l.dispose(),h&&h.dispose(),o.dispose&&o.dispose(),a&&a.dispose&&a.dispose(),this._pressListener.dispose(),this.baseColorProperty.dispose()}}dispose(){this.buttonNodeConstraint&&this.buttonNodeConstraint.dispose(),this.disposeButtonNode(),super.dispose()}setBaseColor(e){this._settableBaseColorProperty.paint=e}set baseColor(e){this.setBaseColor(e)}get baseColor(){return this.getBaseColor()}getBaseColor(){return this._settableBaseColorProperty.paint}pdomClick(){this._pressListener.click(null)}isPDOMClicking(){return this._pressListener.pdomClickingProperty.get()}}class Zi extends G.dmK{constructor(e,t){super(e),_defineProperty(this,"layoutSizeProperty",new J.Z(new Q.Z(0,0))),_defineProperty(this,"isFirstLayout",!0),_defineProperty(this,"lastLocalPreferredWidth",0),_defineProperty(this,"lastLocalPreferredHeight",0),this.buttonNode=e,this.content=t.content,this.xMargin=t.xMargin,this.yMargin=t.yMargin,this.maxLineWidth=t.maxLineWidth,this.minUnstrokedWidth=t.minUnstrokedWidth,this.minUnstrokedHeight=t.minUnstrokedHeight,this.aspectRatio=t.aspectRatio,this.buttonNode.localPreferredWidthProperty.lazyLink(this._updateLayoutListener),this.buttonNode.localPreferredHeightProperty.lazyLink(this._updateLayoutListener),this.addNode(this.content,!1),this.layout()}layout(){super.layout();const e=this.buttonNode,t=this.content;let i=Math.max(this.isFirstLayout||e.widthSizable?((0,G.S3T)(t)?t.minimumWidth||0:t.width)+2*this.xMargin:e.localMinimumWidth,null===this.minUnstrokedWidth?0:this.minUnstrokedWidth+this.maxLineWidth),n=Math.max(this.isFirstLayout||e.heightSizable?((0,G.fJO)(t)?t.minimumHeight||0:t.height)+2*this.yMargin:e.localMinimumHeight,null===this.minUnstrokedHeight?0:this.minUnstrokedHeight+this.maxLineWidth);null!==this.aspectRatio&&(i{t.hasListener(d)&&t.unlink(d),s.dispose(),r.dispose()}}dispose(){this.disposeFlatAppearanceStrategy()}},At.register("ButtonNode",Hi);class Ui extends Hi{constructor(e,t,i){const n=(0,Y.ZP)()({size:null,minWidth:10,minHeight:10,xMargin:8,yMargin:5,touchAreaXDilation:0,touchAreaYDilation:0,mouseAreaXDilation:0,mouseAreaYDilation:0,touchAreaXShift:0,touchAreaYShift:0,mouseAreaXShift:0,mouseAreaYShift:0,stroke:null,lineWidth:.5,cornerRadius:4,leftTopCornerRadius:null,rightTopCornerRadius:null,leftBottomCornerRadius:null,rightBottomCornerRadius:null,buttonAppearanceStrategy:Ui.ThreeDAppearanceStrategy},i);let s,r;n.content,n.size?(n.minUnstrokedWidth=n.size.width,n.minUnstrokedHeight=n.size.height):(void 0!==n.minWidth&&(n.minUnstrokedWidth=n.minWidth),void 0!==n.minHeight&&(n.minUnstrokedHeight=n.minHeight)),n.buttonAppearanceStrategyOptions||(n.buttonAppearanceStrategyOptions={stroke:n.stroke,lineWidth:n.lineWidth}),n.size?(s=n.size.width,r=n.size.height):(s=Math.max(n.content?n.content.width+2*n.xMargin:0,n.minWidth),r=Math.max(n.content?n.content.height+2*n.yMargin:0,n.minHeight));const o=new G.y$t(Ki(s,r,n));if(n.size&&n.content){const e=n.content,t=Math.min((n.size.width-2*n.xMargin)/e.width,(n.size.height-2*n.yMargin)/e.height);n.content=new G.NBX({children:[e],scale:t})}super(e,o,t,n);let a=!0;Ce.Z.multilink([this.isWidthResizableProperty,this.isHeightResizableProperty,this.layoutSizeProperty],(e,t,i)=>{(e||t)&&(o.shape=Ki(e?i.width-this.maxLineWidth:s,t?i.height-this.maxLineWidth:r,n)),(a||e||t)&&(this.touchArea=o.localBounds.dilatedXY(n.touchAreaXDilation,n.touchAreaYDilation).shiftedXY(n.touchAreaXShift,n.touchAreaYShift),this.mouseArea=o.localBounds.dilatedXY(n.mouseAreaXDilation,n.mouseAreaYDilation).shiftedXY(n.mouseAreaXShift,n.mouseAreaYShift)),a=!1})}}function Ki(e,t,i){const n=Math.min(e/2,t/2);return Ke.bn.roundedRectangleWithRadii(0,0,e,t,{topLeft:Math.min(n,null!==i.leftTopCornerRadius?i.leftTopCornerRadius:i.cornerRadius),topRight:Math.min(n,null!==i.rightTopCornerRadius?i.rightTopCornerRadius:i.cornerRadius),bottomLeft:Math.min(n,null!==i.leftBottomCornerRadius?i.leftBottomCornerRadius:i.cornerRadius),bottomRight:Math.min(n,null!==i.rightBottomCornerRadius?i.rightBottomCornerRadius:i.cornerRadius)})}Ui.ThreeDAppearanceStrategy=class{constructor(e,t,i,n){const s=n&&n.stroke?n.stroke:new G.M4p(i,{luminanceFactor:-.4}),r=n&&void 0!==n.lineWidth?n.lineWidth:.5,o=(0,Y.ZP)()({stroke:s,lineWidth:r,overStroke:s,overLineWidth:r,overFill:i,overButtonOpacity:1,selectedStroke:s,selectedLineWidth:r,selectedButtonOpacity:1,deselectedStroke:s,deselectedLineWidth:r,deselectedButtonOpacity:1},n),a=new G.M4p(i,{luminanceFactor:.7}),l=new G.M4p(i,{luminanceFactor:.5}),h=new G.M4p(i,{luminanceFactor:.2}),A=new G.M4p(i,{luminanceFactor:-.3}),d=new G.M4p(i,{luminanceFactor:-.4}),c=new G.M4p(i,{luminanceFactor:-.5}),u=new M.ZP([i],e=>e.withAlpha(0)),g=new G.Ilk(255,255,255,.7),p=new G.y$t(null,{stroke:o.stroke,lineWidth:o.lineWidth,pickable:!1});let m;e.addChild(p),this.maxLineWidth="number"==typeof o.lineWidth?o.lineWidth:0;const y=()=>{const n=e.shape.bounds.width,s=e.shape.bounds.height;p.shape=e.shape;const r=Math.min(7/s,1),d=Math.max(1-3/s,0),y=Math.min(7/n,1),f=Math.max(1-3/n,0),w=new G.oas(0,0,0,s).addColorStop(0,a).addColorStop(r,i).addColorStop(d,i).addColorStop(1,c),B=new G.oas(0,0,n,0).addColorStop(0,g).addColorStop(y,u).addColorStop(f,u).addColorStop(1,c),P=new G.oas(0,0,0,s).addColorStop(0,a).addColorStop(r,l).addColorStop(d,l).addColorStop(1,c),D=new G.oas(0,0,n,0).addColorStop(0,g).addColorStop(y/2,new G.Ilk(255,255,255,0)).addColorStop(f,u).addColorStop(1,A),C=new G.oas(0,0,0,s).addColorStop(0,a).addColorStop(.67*r,A).addColorStop(d,h).addColorStop(1,c);e.cachedPaints=[w,P,C],p.cachedPaints=[B,D],m&&t.unlink(m),m=t=>{switch(t){case ki.IDLE:e.fill=w,e.stroke=o.deselectedStroke,e.lineWidth=o.deselectedLineWidth,e.opacity=o.deselectedButtonOpacity,p.fill=B,p.opacity=o.deselectedButtonOpacity;break;case ki.OVER:e.fill=P,e.stroke=o.overStroke,e.lineWidth=o.overLineWidth,e.opacity=o.overButtonOpacity,p.fill=D,p.opacity=o.overButtonOpacity;break;case ki.PRESSED:e.fill=C,e.stroke=o.selectedStroke,e.lineWidth=o.selectedLineWidth,e.opacity=o.selectedButtonOpacity,p.fill=D,p.opacity=o.selectedButtonOpacity;break;default:throw new Error("unsupported interactionState: "+t)}},t.link(m)};e.selfBoundsProperty.link(y),this.disposeThreeDAppearanceStrategy=()=>{e.selfBoundsProperty.unlink(y),t.hasListener(m)&&t.unlink(m),a.dispose(),l.dispose(),h.dispose(),A.dispose(),d.dispose(),c.dispose(),u.dispose()}}dispose(){this.disposeThreeDAppearanceStrategy()}},At.register("RectangularButton",Ui);class Wi extends Ui{constructor(e){const t=(0,Y.ZP)()({soundPlayer:Oi,tandem:K.Z.REQUIRED,tandemNameSuffix:"Button"},e),i=t.listener,n=_.omit(t,["listener"]),s=new Yi(n);super(s,new Li(s),n),this.pushButtonModel=s,i&&this.addListener(i);const r=()=>{t.soundPlayer.play()};s.produceSoundEmitter.addListener(r),this.disposeRectangularPushButton=function(){s.produceSoundEmitter.removeListener(r),s.dispose()}}dispose(){super.dispose(),this.disposeRectangularPushButton()}addListener(e){this.pushButtonModel.addListener(e)}removeListener(e){this.pushButtonModel.removeListener(e)}}At.register("RectangularPushButton",Wi);class zi extends G.NBX{constructor(e,t,i){var n;const s=(0,Y.ZP)()({alignChildren:zi.CENTER,unselectedChildrenSceneGraphStrategy:"included"},i),r=Yt(t,null===(n=s.tandem)||void 0===n?void 0:n.createTandem("elements"));s.children=r,s.alignChildren(s.children),super(s);const o=e=>{const i=[];for(let n=0;ne.dispose())}}dispose(){this.disposeToggleNode(),super.dispose()}static CENTER(e){for(let t=1;tt},{value:!1,createNode:()=>i}],n)}}At.register("BooleanToggleNode",ji);const Xi="data:audio/mpeg;base64,//swxAAABdzxBVQRADFFHaWrNxAA6lqlJJEQAExvBGPAACkboRpPkaQjfnfz5z/zvk6HfzvO//6nzn/8n8Wo50RIcE5h04AwQBAIwAHAAGGKl44UnQFxrI7b6JARZgWfzRC7X2cjUCZG/TgeAfXziIB7AOgm3/Dlw5chhj/4aoJEnxOhr/+bkURTNP+37dN///zd5/WqMcFKOhHs//syxAMACFBlQBnXgAEQCuRbvLAAMh2cNcpzMDxDOxVSMlAjYsYOAlbMUQJ8hAkSABkLAPbGhQfrk7xotjWuYO3uc9FKLMWDXX39eK91WL8a4ARAYAYFAQZg2BpmMcTuZ9zx5rwEJFAZZgjA1mC8BuLASofGAOAMhs/U/GV40k0Dkso2K6Npbban/lI2Pnd6J3///t66ABTcYocjaf/7MsQDgAX8JTutseaw6RRnNZCJDkFdpsKMGTznDUOCFN3UBmSx0M4MasPlPO6Ar07embS//T/2f27SK//YUG03dpZI2oMaBN8MJA5tI6MkldtNZgLZ+dUe9LvQy6Odv9a9cr9VPRUaBtgq9EWmz6Xj3KZTzOv1ylUAC+0kk0oAEUn+I0HZ6jICCWahweFTlrz07qq2Ls9T3N/Xljr/+zLEEgAFSBMjQWBgUI8CIvA3vAbc1Vf//uoAABTglUoQoEElDJAFw2zpqMe6sqMzu59/9uvz32/t/onv/5FMQU1FMy45OS41VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//swxC8DwAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",Ji=X(se,Xi),_i=j.Z.createLock(Xi),$i=new ie;let en=!1;const tn=()=>{en||(_i(),en=!0)},nn=se.decodeAudioData(Ji.buffer,e=>{null===$i.audioBufferProperty.value&&($i.audioBufferProperty.set(e),tn())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),$i.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),tn()});nn&&nn.then(e=>{null===$i.audioBufferProperty.value&&($i.audioBufferProperty.set(e),tn())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),tn()});const sn=new ti($i,{soundClipOptions:{initialOutputLevel:.7},soundManagerOptions:{categoryName:"user-interface"}});ee.register("toggleOffSoundPlayer",sn);const rn=sn,on="data:audio/mpeg;base64,//swxAAAByAnDnWRADEZkyy3M0ALJQcEAMk013znpOVkWGNCg9vD4oJlTQcNxQBIJ0PxSUlJSCwfB8Hz+CAIAN/DH/gg78EHS7//9QIJSLq/wFHg+AwFAAAAAAfFvo6+SmoCLgXFVlJaBRlrks8EfgdfwNGNDIX1icAtgSPunkTDV42yCf+OWMmXBP4hJ/+RAZg8nmowgLA3CbIw//syxAOACDxjRhnXgAEOCqVnuqAERLIypm8wTCMyMagDMoYEAyRAAgCAQ9za/ELra7bNcNI9BMVmPx3pF7P7a/wstMTOL6//gwrwjSeVKioAAkqgEBggJpjMDZgiPBm+0xy7jJ482ppET4kOhhSHhg8CKMhgGASP09uliMpAaC+Gyqiiyjd9/QiJjzxL//////p9lUBqv86UKJp6wP/7MsQEgAWgKTMsbMLwvwUmdaCI3g146KXMwJVAHDYhAjvxQKf+SIBJPJWbIrZ/1aVs/k7Lf2//7QQilFbJGkVBjWeEsADYyEamuw0dNdmGxS1qmJCrAKrGJZ+TX/V+1zX0fitWyROXKQQiijI22kTAod9keTOhUgChZfu1VSXOv2ubHdG+h4jXu2fLMV00rQvomqNH8kAAAARGFj3/+zLEGgDFrBkvoeWAcKKCYxBngBYhtAWgNUjlVDuFH+de4qlT5ENEZ7/8t7K3cKjB1Q/kmOcRTEFNRTMuOTkuNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//swxDMDwAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",an=X(se,on),ln=j.Z.createLock(on),hn=new ie;let An=!1;const dn=()=>{An||(ln(),An=!0)},cn=se.decodeAudioData(an.buffer,e=>{null===hn.audioBufferProperty.value&&(hn.audioBufferProperty.set(e),dn())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),hn.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),dn()});cn&&cn.then(e=>{null===hn.audioBufferProperty.value&&(hn.audioBufferProperty.set(e),dn())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),dn()});const un=new ti(hn,{soundClipOptions:{initialOutputLevel:.7},soundManagerOptions:{categoryName:"user-interface"}});ee.register("toggleOnSoundPlayer",un);const gn=un;class pn extends M.WZ{constructor(e){super([e.looksOverProperty,e.looksPressedProperty],(e,t)=>e&&!t?ki.OVER:t?ki.PRESSED:ki.IDLE,{valueType:ki})}}At.register("ToggleButtonInteractionStateProperty",pn);class mn extends Ni{constructor(e,t,i,n){const s=(0,Y.ZP)()({tandem:K.Z.REQUIRED},n);super(s),this.valueOff=e,this.valueOn=t,this.valueProperty=i;const r=e=>{(this.overProperty.get()||this.focusedProperty.get())&&this.enabledProperty.get()&&!this.interrupted&&(e||this.toggle())};this.downProperty.link(r),this.toggledEmitter=new S.Z({tandem:s.tandem.createTandem("toggledEmitter"),phetioDocumentation:"Emits when the button is toggled",phetioEventType:q.Z.USER});this.toggledEmitter.addListener(()=>{this.valueProperty.value=this.valueProperty.value===this.valueOff?this.valueOn:this.valueOff}),this.disposeToggleButtonModel=()=>{this.downProperty.unlink(r),this.toggledEmitter.dispose()}}dispose(){this.disposeToggleButtonModel(),super.dispose()}toggle(){this.toggledEmitter.emit(),this.produceSoundEmitter.emit()}}At.register("ToggleButtonModel",mn);class yn extends Ui{constructor(e,t,i,n){const s=(0,Y.ZP)()({valueOffSoundPlayer:rn,valueOnSoundPlayer:gn,tandem:K.Z.REQUIRED,phetioFeatured:!0,tandemNameSuffix:"Button"},n),r=new mn(t,i,e,s),o=new pn(r);super(r,o,s),this.addLinkedElement(e,{tandemName:"property"});const a=()=>{e.value===t?s.valueOffSoundPlayer.play():e.value===i&&s.valueOnSoundPlayer.play()};this.buttonModel.produceSoundEmitter.addListener(a),this.disposeRectangularToggleButton=()=>{this.buttonModel.produceSoundEmitter.removeListener(a),r.dispose()}}dispose(){this.disposeRectangularToggleButton(),super.dispose()}}At.register("RectangularToggleButton",yn);class fn extends yn{constructor(e,t,i,n){const s=new ji(e,t,i);super(e,!1,!0,(0,Y.ZP)()({content:s,tandem:K.Z.REQUIRED,tandemNameSuffix:"Button"},n)),this.disposeBooleanRectangularToggleButton=()=>{s.dispose()}}dispose(){this.disposeBooleanRectangularToggleButton(),super.dispose()}}At.register("BooleanRectangularToggleButton",fn);class wn extends fn{constructor(e,t){const i=(0,Y.ZP)()({sideLength:25,stroke:"black",touchAreaXDilation:5,touchAreaYDilation:5,tandem:K.Z.REQUIRED,tandemNameSuffix:"Button"},t);i.cornerRadius=.1*i.sideLength,i.xMargin=.2*i.sideLength,i.yMargin=i.xMargin,i.buttonAppearanceStrategy=Hi.FlatAppearanceStrategy;const n=.6*i.sideLength,s={lineWidth:.15*i.sideLength,stroke:"white",centerX:i.sideLength/2,centerY:i.sideLength/2,pickable:!1},r=(new Ke.bn).moveTo(n/2,0).lineTo(n/2,n).moveTo(0,n/2).lineTo(n,n/2),o=new G.y$t(r,s),a=(new Ke.bn).moveTo(-n/2,0).lineTo(n/2,0),l=new G.y$t(a,s);super(e,l,o,i);const h=e=>{this.baseColor=e?"rgb( 255, 85, 0 )":"rgb( 0, 179, 0 )",this.setPDOMAttribute("aria-expanded",e)};e.link(h),this.disposeExpandCollapseButton=()=>{e.unlink(h)}}dispose(){this.disposeExpandCollapseButton(),super.dispose()}}At.register("ExpandCollapseButton",wn);const Bn=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return R.Z.toFixed(e,t)};class Pn extends Be.Z{}_defineProperty(Pn,"MOUSE",new(n=Pn)),_defineProperty(Pn,"TOUCH",new n),_defineProperty(Pn,"NONE",new n),_defineProperty(Pn,"enumeration",new we.Z(n));class Dn{constructor(e,t){this.sim=e,this.simDisplay=t,this.activeProperty=new J.Z(!1),this.visualTreeVisibleProperty=new V.Z(!1,{tandem:K.Z.OPT_OUT}),this.pdomTreeVisibleProperty=new V.Z(!1,{tandem:K.Z.OPT_OUT}),this.underPointerVisibleProperty=new V.Z(!0,{tandem:K.Z.OPT_OUT}),this.optionsVisibleProperty=new V.Z(!0,{tandem:K.Z.OPT_OUT}),this.previewVisibleProperty=new V.Z(!1,{tandem:K.Z.OPT_OUT}),this.selectedNodeContentVisibleProperty=new V.Z(!0,{tandem:K.Z.OPT_OUT}),this.selectedTrailContentVisibleProperty=new V.Z(!0,{tandem:K.Z.OPT_OUT}),this.highlightVisibleProperty=new V.Z(!0,{tandem:K.Z.OPT_OUT}),this.boundsVisibleProperty=new V.Z(!0,{tandem:K.Z.OPT_OUT}),this.selfBoundsVisibleProperty=new V.Z(!1,{tandem:K.Z.OPT_OUT}),this.getHelperNodeVisibleProperty=new V.Z(!0,{tandem:K.Z.OPT_OUT}),this.helperVisibleProperty=new V.Z(!0,{tandem:K.Z.OPT_OUT}),this.inputBasedPickingProperty=new V.Z(!0,{tandem:K.Z.OPT_OUT}),this.useLeafNodeProperty=new V.Z(!1,{tandem:K.Z.OPT_OUT}),this.pointerAreaTypeProperty=new Ci(Pn.MOUSE,{tandem:K.Z.OPT_OUT}),this.pointerPositionProperty=new J.Z(Ze.Z.ZERO),this.overInterfaceProperty=new V.Z(!1,{tandem:K.Z.OPT_OUT}),this.selectedTrailProperty=new J.Z(null),this.treeHoverTrailProperty=new J.Z(null),this.pointerTrailProperty=new M.ZP([this.pointerPositionProperty,this.overInterfaceProperty,this.pointerAreaTypeProperty,this.inputBasedPickingProperty],(e,i,n,s)=>{if(i)return null;if(!s)return Qn(t.rootNode,e);let r=t.rootNode.hitTest(e,n===Pn.MOUSE,n===Pn.TOUCH);if(r&&!this.useLeafNodeProperty.value){for(;r.length>0&&0===r.lastNode().inputListeners.length;)r.removeDescendant();if(0===r.length)r=null;else{const e=r.lastNode().inputListeners[0];e instanceof G.$o8&&e.targetNode&&e.targetNode!==r.lastNode()&&r.containsNode(e.targetNode)&&(r=r.subtrailTo(e.targetNode))}}return r},{tandem:K.Z.OPT_OUT,valueComparisonStrategy:"equalsFunction",accessNonDependencies:!0}),this.previewTrailProperty=new M.ZP([this.selectedTrailProperty,this.treeHoverTrailProperty,this.pointerTrailProperty],(e,t,i)=>e||(t||i)),this.previewShapeProperty=new M.ZP([this.previewTrailProperty,this.inputBasedPickingProperty,this.pointerAreaTypeProperty],(e,t,i)=>e?t?Yn(e,i===Pn.MOUSE,i===Pn.TOUCH):Yn(e,!1,!1):null),this.helperNodeProperty=new M.ZP([this.selectedTrailProperty],e=>{if(e){const t=e.lastNode();return(e=>!!e.getHelperNode)(t)?t.getHelperNode():null}return null}),this.screenViewProperty=new J.Z(null),this.imageDataProperty=new J.Z(null),this.colorProperty=new M.ZP([this.pointerPositionProperty,this.imageDataProperty],(e,t)=>{if(!t)return G.Ilk.TRANSPARENT;const i=Math.floor(e.x/this.simDisplay.width*t.width),n=Math.floor(e.y/this.simDisplay.height*t.height),s=4*(i+t.width*n);return i<0||n<0||i>t.width||n>t.height?G.Ilk.TRANSPARENT:new G.Ilk(t.data[s],t.data[s+1],t.data[s+2],t.data[s+3]/255)},{tandem:K.Z.OPT_OUT});const i=new V.Z(phet.chipper.queryParameters.fuzz,{tandem:K.Z.OPT_OUT});i.lazyLink(e=>{phet.chipper.queryParameters.fuzz=e});const n=new V.Z(!1,{tandem:K.Z.OPT_OUT}),s=new J.Z({name:"view units",multiplier:0}),r=new J.Z(L.Z.NOTHING),o=new G.NBX({renderer:"svg"}),a=new He(this.pointerPositionProperty,{tandem:K.Z.OPT_OUT,bidirectional:!0,map:e=>{const t=this.screenViewProperty.value;if(t){const i=t.globalToLocalPoint(e);return`global: x: ${Bn(e.x)}, y: ${Bn(e.y)}
view: x: ${Bn(i.x)}, y: ${Bn(i.y)}`}return"-"}}),l=new G.Hof(a,{font:new it(12)}),h=new He(this.colorProperty,{tandem:K.Z.OPT_OUT,bidirectional:!0,map:e=>`${e.toHexString()} ${e.toCSS()}`}),A=new G.Hof(h,{font:new it(12)});this.colorProperty.link(e=>{A.fill=G.Ilk.getLuminance(e)>128?G.Ilk.BLACK:G.Ilk.WHITE});const d=new G.Ilk("#804000"),c=new G.Ilk("#208020"),u=new G.Ilk(255,100,0),g=new G.Ilk(0,0,255),p=new G.Ilk(255,0,0),m=new G.Ilk(200,0,200),y=new M.ZP([this.inputBasedPickingProperty,this.pointerAreaTypeProperty],(e,t)=>e?t===Pn.MOUSE?g:t===Pn.TOUCH?p:m:u,{tandem:K.Z.OPT_OUT}),f=new ct(A,{cornerRadius:0,stroke:null,fill:this.colorProperty}),w=new G.NBX({visibleProperty:this.previewVisibleProperty}),B=new G.AeJ(0,0,200,200,{fill:new G.eQt(new G.NBX({children:[new G.AeJ(0,0,10,10,{fill:"#ddd"}),new G.AeJ(10,10,10,10,{fill:"#ddd"}),new G.AeJ(0,10,10,10,{fill:"#fafafa"}),new G.AeJ(10,0,10,10,{fill:"#fafafa"})]}),2,0,0,20,20),stroke:"black",visibleProperty:this.previewVisibleProperty});this.previewTrailProperty.link(e=>{if(w.removeAllChildren(),e){w.addChild(B);const t=e.lastNode();if(t.bounds.isValid()){const e=.9*window.devicePixelRatio*Math.min(B.selfBounds.width/t.width,B.selfBounds.height/t.height);w.addChild(new G.NBX({scale:e/window.devicePixelRatio,center:B.center,children:[t.rasterized({resolution:e,sourceBounds:t.bounds.dilated(.01*t.bounds.width).roundedOut()})]}))}}});const P=new G.SHm({spacing:3,align:"left",visibleProperty:this.selectedNodeContentVisibleProperty});this.previewTrailProperty.link(e=>{P.children=e?On(e):[]});const D=new Cn(i,"Fuzz"),C=new Cn(n,"Measuring Tape"),E=new Cn(this.visualTreeVisibleProperty,"Visual Tree"),b=new Cn(this.pdomTreeVisibleProperty,"PDOM Tree"),I=new Cn(this.inputBasedPickingProperty,"Input-based"),S=new Cn(this.useLeafNodeProperty,"Use Leaf",{enabledProperty:this.inputBasedPickingProperty}),T=new Cn(this.highlightVisibleProperty,"Highlight",{labelOptions:{fill:y}}),x=new Cn(this.boundsVisibleProperty,"Bounds",{labelOptions:{fill:d}}),O=new Cn(this.selfBoundsVisibleProperty,"Self Bounds",{labelOptions:{fill:c}}),k=new Cn(this.getHelperNodeVisibleProperty,"getHelperNode()"),Q=new Gt(this.pointerAreaTypeProperty,[{value:Pn.MOUSE,createNode:e=>new G.xvT("Mouse",{fontSize:12})},{value:Pn.TOUCH,createNode:e=>new G.xvT("Touch",{fontSize:12})},{value:Pn.NONE,createNode:e=>new G.xvT("None",{fontSize:12})}],{orientation:"horizontal",enabledProperty:this.inputBasedPickingProperty,radioButtonOptions:{xSpacing:3},spacing:10,tandem:K.Z.OPT_OUT}),R=new G.SHm({align:"left",visibleProperty:this.selectedTrailContentVisibleProperty});this.previewTrailProperty.link(e=>{if(R.children=[],e){e.nodes.slice().forEach((t,i)=>{R.addChild(new G.Hof(`${i>0?e.nodes[i-1].children.indexOf(t):"-"} ${t.constructor.name}`,{font:new it(12),fill:i===e.nodes.length-1?"black":"#bbb",layoutOptions:{leftMargin:10*i},cursor:"pointer",inputListeners:[new G.eMb({fire:()=>{this.selectedTrailProperty.value=e.subtrailTo(t),F()},tandem:K.Z.OPT_OUT})]}))}),e.lastNode().children.forEach((t,i)=>{R.addChild(new G.Hof(`${e.lastNode().children.indexOf(t)} ${t.constructor.name}`,{font:new it(12),fill:"#88f",layoutOptions:{leftMargin:10*e.nodes.length},cursor:"pointer",inputListeners:[new G.eMb({fire:()=>{this.selectedTrailProperty.value=e.copy().addDescendant(t,i),F()},tandem:K.Z.OPT_OUT})]}))}),e.isVisible()||R.addChild(new G.xvT("invisible",{fill:"#60a",fontSize:12})),1!==e.getOpacity()&&R.addChild(new G.xvT("opacity: "+e.getOpacity(),{fill:"#888",fontSize:12}));const t=_.some(e.nodes,e=>!1===e.pickable||!e.visible),i=_.some(e.nodes,e=>e.inputListeners.length>0||!0===e.pickable);!t&&i&&R.addChild(new G.xvT("Hit Tested",{fill:"#f00",fontSize:12})),e.getMatrix().isIdentity()||R.addChild(new G.NBX({children:[new Sn(e.getMatrix())]}))}});const N=new Vn(this.visualTreeVisibleProperty,this,()=>new bn(new G.Qn1(t.rootNode),this)),Y=new Vn(this.pdomTreeVisibleProperty,this,()=>new vn(t._rootPDOMInstance,this)),F=()=>{N.focusSelected(),Y.focusSelected()},q=new G.y$t(null,{visibleProperty:this.boundsVisibleProperty,stroke:d,fill:d.withAlpha(.1),lineDash:[2,2],lineDashOffset:2});this.previewTrailProperty.link(e=>{e&&e.lastNode().localBounds.isValid()?q.shape=Ke.bn.bounds(e.lastNode().localBounds).transformed(e.getMatrix()):q.shape=null});const H=new G.y$t(null,{visibleProperty:this.selfBoundsVisibleProperty,stroke:c,fill:c.withAlpha(.1),lineDash:[2,2],lineDashOffset:1});this.previewTrailProperty.link(e=>{e&&e.lastNode().selfBounds.isValid()?H.shape=Ke.bn.bounds(e.lastNode().selfBounds).transformed(e.getMatrix()):H.shape=null});const Z=new M.ZP([y],e=>e.withAlpha(.2),{tandem:K.Z.OPT_OUT}),U=new G.y$t(null,{stroke:y,lineDash:[2,2],fill:Z,visibleProperty:this.highlightVisibleProperty});this.previewShapeProperty.link(e=>{U.shape=e});const W=new G.NBX({visibleProperty:this.getHelperNodeVisibleProperty});this.selectedTrailProperty.link(e=>{e&&(W.matrix=e.getMatrix())}),this.helperNodeProperty.link(e=>{W.removeAllChildren(),e&&W.addChild(e)}),o.addChild(q),o.addChild(H),o.addChild(U);const z=new G.NBX;z.addInputListener(new G.$o8({press:()=>{this.selectedTrailProperty.value=this.pointerTrailProperty.value,F()},tandem:K.Z.OPT_OUT})),o.addChild(z),o.addChild(W);const j=new G.N52({orientation:"vertical",spacing:5,align:"left",children:[l,f],visibleProperty:this.underPointerVisibleProperty}),X=new G.SHm({spacing:3,align:"left",children:[In("Tools"),new G.SHm({spacing:3,align:"left",children:[new G.BET({spacing:10,children:[D,C]}),new G.BET({spacing:10,children:[E,...t._accessible?[b]:[]]})]}),In("Picking",void 0,{layoutOptions:{topMargin:3}}),new G.SHm({spacing:3,align:"left",children:[new G.BET({spacing:10,children:[I,S]}),Q]}),In("Show",void 0,{layoutOptions:{topMargin:3}}),new G.SHm({spacing:3,align:"left",children:[new G.BET({spacing:10,children:[T,k]}),new G.BET({spacing:10,children:[x,O]})]})],visibleProperty:this.optionsVisibleProperty}),$=new G.SHm({spacing:5,align:"left",children:[Mn("Under Pointer",this.underPointerVisibleProperty,j,{layoutOptions:{topMargin:0}}),j,Mn("Options",this.optionsVisibleProperty,X),X,Mn("Preview",this.previewVisibleProperty,w),w,Mn("Selected Trail",this.selectedTrailContentVisibleProperty,R),R,Mn("Selected Node",this.selectedNodeContentVisibleProperty,P),P],visibleProperty:this.helperVisibleProperty}),ee=new G.SHm({spacing:5,align:"left",children:[Mn("Helper",this.helperVisibleProperty,$),new G.qYj,$]}),te=new ct(ee,{fill:"rgba(255,255,255,0.85)",stroke:"rgba(0,0,0,0.85)",cornerRadius:0});te.addInputListener(new G._U3({translateNode:!0,targetNode:te,tandem:K.Z.OPT_OUT})),te.addInputListener({wheel:e=>{const t=e.domEvent.deltaY;te.y-=1*t}}),o.addChild(te),o.addChild(N),o.addChild(Y);const ie=new ht(s,{tandem:K.Z.OPT_OUT,visibleProperty:n,textBackgroundColor:"rgba(0,0,0,0.5)"});ie.basePositionProperty.value=new Ze.Z(100,300),ie.tipPositionProperty.value=new Ze.Z(200,300),o.addChild(ie);const ne=e=>{this.helperDisplay.width=e.width,this.helperDisplay.height=e.height,r.value=r.value.withMaxX(e.width).withMaxY(e.height),z.mouseArea=new L.Z(0,0,e.width,e.height),z.touchArea=new L.Z(0,0,e.width,e.height),N.resize(e),Y.resize(e)},se=e=>{var t;this.overInterfaceProperty.value=te.bounds.containsPoint(this.pointerPositionProperty.value)||this.visualTreeVisibleProperty.value&&N.bounds.containsPoint(this.pointerPositionProperty.value)||this.pdomTreeVisibleProperty.value&&Y.bounds.containsPoint(this.pointerPositionProperty.value)||W.containsPoint(this.pointerPositionProperty.value),null===(t=this.helperDisplay)||void 0===t||t.updateDisplay()};document.addEventListener("keyup",e=>{"Escape"===e.key&&(this.selectedTrailProperty.value=null)}),this.activeProperty.lazyLink(t=>{if(t){e.activeProperty.value=!1;const t=e.selectedScreenProperty.value;t.hasView()?this.screenViewProperty.value=t.view:this.screenViewProperty.value=null,this.helperDisplay=new G.sSl(o,{assumeFullWindow:!0}),this.helperDisplay.initializeEvents(),e.dimensionProperty.link(ne),v.Z.addListener(se),document.body.appendChild(this.helperDisplay.domElement),this.helperDisplay.domElement.style.zIndex="10000";const i=e=>{this.pointerPositionProperty.value=e.pointer.point};this.helperDisplay.addInputListener({move:i,down:i,up:i}),this.screenViewProperty.value&&(s.value={name:"view units",multiplier:this.screenViewProperty.value.getGlobalToLocalMatrix().getScaleVector().x}),this.simDisplay.foreignObjectRasterization(e=>{if(e){const t=document.createElement("img");t.addEventListener("load",()=>{const e=t.width,i=t.height,n=document.createElement("canvas"),s=n.getContext("2d");n.width=e,n.height=i,s.drawImage(t,0,0),this.activeProperty.value&&(this.imageDataProperty.value=s.getImageData(0,0,e,i))}),t.src=e}else console.log("Could not load foreign object rasterization")})}else e.dimensionProperty.unlink(ne),v.Z.removeListener(se),document.body.removeChild(this.helperDisplay.domElement),this.helperDisplay.dispose(),e.activeProperty.value=!0,this.imageDataProperty.value=null,this.visualTreeVisibleProperty.value=!1})}static initialize(e,t){document.addEventListener("keydown",i=>{i.ctrlKey&&"H"===i.key&&(Dn.helper||(Dn.helper=new Dn(e,t)),Dn.helper.activeProperty.value=!Dn.helper.activeProperty.value)})}}Te.Z.register("Helper",Dn);class Cn extends fi{constructor(e,t,i){const n=(0,Y.ZP)()({tandem:K.Z.OPT_OUT,boxWidth:14,labelOptions:{font:new it(12)}},i);super(e,new G.Hof(t,n.labelOptions),n)}}class En extends G.NBX{constructor(e,t){const i=(0,Y.ZP)()({createChildren:()=>[],spacing:0,indent:5},t);super({excludeInvisibleChildrenFromBounds:!0}),this.selfNode=e,this.selfNode.centerY=0,this.expandedProperty=new J.Z(!0),this.childTreeNodes=(0,I.Z)({elements:i.createChildren()});const n=(new Ke.bn).moveToPoint(Ze.Z.createPolar(4.8,3/4*Math.PI).plusXY(1.5,0)).lineTo(1.5,0).lineToPoint(Ze.Z.createPolar(4.8,5/4*Math.PI).plusXY(1.5,0));this.expandCollapseButton=new G.AeJ(-6,-6,12,12,{children:[new G.y$t(n,{stroke:"#888",lineCap:"round",lineWidth:1.5})],visible:!1,cursor:"pointer",right:0}),this.expandedProperty.link(e=>{this.expandCollapseButton.rotation=e?Math.PI/2:0}),this.expandCollapseButton.addInputListener(new G.eMb({fire:()=>{this.expandedProperty.value=!this.expandedProperty.value},tandem:K.Z.OPT_OUT})),this.addChild(this.expandCollapseButton),this.childContainer=new G.N52({orientation:"vertical",align:"left",spacing:i.spacing,children:this.childTreeNodes,x:i.indent,y:this.selfNode.bottom+i.spacing,visibleProperty:this.expandedProperty}),this.addChild(this.childContainer),this.addChild(e);const s=()=>{this.childContainer.children=this.childTreeNodes,this.expandCollapseButton.visible=this.childTreeNodes.length>0};this.childTreeNodes.addItemAddedListener(()=>{s()}),this.childTreeNodes.addItemRemovedListener(()=>{s()}),s(),this.mutate(i)}expand(){this.expandedProperty.value=!0}collapse(){this.expandedProperty.value=!1}expandRecusively(){this.expandedProperty.value=!0,this.childTreeNodes.forEach(e=>{e.expandRecusively()})}collapseRecursively(){this.expandedProperty.value=!1,this.childTreeNodes.forEach(e=>{e.collapseRecursively()})}}class bn extends En{constructor(e,t){const i=e.lastNode(),n=e.isVisible(),s=new G.Zxw({size:12}),r=new G.BET({spacing:5}),o=i.constructor.name;o&&r.addChild(new G.xvT(o,{font:s,pickable:!1,fill:n?"#000":"#60a"})),i instanceof G.xvT&&r.addChild(new G.xvT('"'+i.string+'"',{font:s,pickable:!1,fill:"#666"}));const a=G.AeJ.bounds(r.bounds,{children:[r],cursor:"pointer",fill:new M.ZP([t.selectedTrailProperty,t.pointerTrailProperty],(t,i)=>t&&e.equals(t)?"rgba(0,128,255,0.4)":i&&e.equals(i)?"rgba(0,128,255,0.2)":"transparent",{tandem:K.Z.OPT_OUT})});a.addInputListener({enter:()=>{t.treeHoverTrailProperty.value=e},exit:()=>{t.treeHoverTrailProperty.value=null}}),a.addInputListener(new G.eMb({fire:()=>{t.selectedTrailProperty.value=e},tandem:K.Z.OPT_OUT})),super(a,{createChildren:()=>e.lastNode().children.map(i=>new bn(e.copy().addDescendant(i),t))}),i.visible||(this.expandedProperty.value=!1),this.trail=e}find(e){if(e.equals(this.trail))return this;{const t=_.find(this.childTreeNodes,t=>e.isExtensionOf(t.trail,!0));return t?t.find(e):null}}}class vn extends En{constructor(e,t){const i=e.trail,n=i.isPDOMVisible(),s=new G.Zxw({size:12}),r=new G.BET({spacing:5});if(i.nodes.length){const t=n?"#000":"#60a",o=i.lastNode();o.tagName&&r.addChild(new G.xvT(o.tagName,{font:new G.Zxw({size:12,weight:"bold"}),fill:t})),o.labelContent&&r.addChild(new G.xvT(o.labelContent,{font:s,fill:"#800"})),o.innerContent&&r.addChild(new G.xvT(o.innerContent,{font:s,fill:"#080"})),o.descriptionContent&&r.addChild(new G.xvT(o.descriptionContent,{font:s,fill:"#444"}));const a=e.parent?e.parent.trail:new G.Qn1,l=i.nodes.slice(a.nodes.length).map(e=>e.constructor.name).filter(e=>"Node"!==e).join(",");l&&r.addChild(new G.xvT(`(${l})`,{font:s,fill:"#008"}))}else r.addChild(new G.xvT("(root)",{font:s}));const o=G.AeJ.bounds(r.bounds,{children:[r],cursor:"pointer",fill:new M.ZP([t.selectedTrailProperty,t.pointerTrailProperty],(e,t)=>e&&i.equals(e)?"rgba(0,128,255,0.4)":t&&i.equals(t)?"rgba(0,128,255,0.2)":"transparent",{tandem:K.Z.OPT_OUT})});i.length&&(o.addInputListener({enter:()=>{t.treeHoverTrailProperty.value=i},exit:()=>{t.treeHoverTrailProperty.value=null}}),o.addInputListener(new G.eMb({fire:()=>{t.selectedTrailProperty.value=i},tandem:K.Z.OPT_OUT}))),super(o,{createChildren:()=>e.children.map(e=>new vn(e,t))}),this.instance=e,this.trail=i}find(e){if(e.equals(this.instance.trail))return this;{const t=_.find(this.childTreeNodes,t=>e.isExtensionOf(t.instance.trail,!0));return t?t.find(e):null}}}class Vn extends G.AeJ{constructor(e,t,i){super({fill:"rgba(255,255,255,0.85)",stroke:"black",rectWidth:400,visibleProperty:e,pickable:!0}),this.helper=t,this.treeContainer=new G.NBX,this.addChild(this.treeContainer),this.addInputListener(new G._U3({targetNode:this,drag:(e,t)=>{this.x=this.x+t.modelDelta.x},tandem:K.Z.OPT_OUT})),this.addInputListener({wheel:e=>{const t=e.domEvent.deltaX,i=e.domEvent.deltaY;this.treeNode&&(this.treeNode.x-=1*t,this.treeNode.y-=1*i),this.constrainTree()}}),t.pointerTrailProperty.lazyLink(()=>{t.selectedTrailProperty.value||this.focusPointer()}),Ce.Z.multilink([t.activeProperty,e],(e,t)=>{e&&t?(this.treeNode=i(),this.treeNode.x=500,this.treeNode.y=500,this.treeContainer.children=[this.treeNode],this.focusSelected(),this.constrainTree()):this.treeContainer.children=[]})}resize(e){this.rectHeight=e.height,this.right=e.width,this.treeContainer.clipArea=Ke.bn.bounds(this.localBounds.dilated(10))}constrainTree(){this.treeNode&&(this.treeNode.bottomthis.selfBounds.top+5&&(this.treeNode.top=this.selfBounds.top+5),this.treeNode.rightthis.selfBounds.left+8&&(this.treeNode.left=this.selfBounds.left+8))}focusTrail(e){if(this.treeNode){const t=this.treeNode.find(e);if(t){const e=t.localToGlobalPoint(t.selfNode.center).y-this.centerY;this.treeNode.y-=e,this.constrainTree()}}}focusPointer(){this.helper.pointerTrailProperty.value&&this.focusTrail(this.helper.pointerTrailProperty.value)}focusSelected(){null!==this.helper.selectedTrailProperty.value&&this.focusTrail(this.helper.selectedTrailProperty.value)}}const In=(e,t,i)=>new G.xvT(e,(0,Ei.Z)({fontSize:14,fontWeight:"bold",visibleProperty:t?new M.ZP([t.boundsProperty],e=>!e.isEmpty()):new J.Z(!0)},i)),Mn=(e,t,i,n)=>{const s=In(e,i,n);return s.addInputListener(new G.eMb({fire:()=>{t.value=!t.value},tandem:K.Z.OPT_OUT})),s.cursor="pointer",new G.BET({spacing:7,children:[new wn(t,{tandem:K.Z.OPT_OUT,sideLength:14}),s],visibleProperty:s.visibleProperty})};class Sn extends G.zch{constructor(e){super({xSpacing:5,ySpacing:0,children:[new G.xvT(e.m00(),{layoutOptions:{column:0,row:0}}),new G.xvT(e.m01(),{layoutOptions:{column:1,row:0}}),new G.xvT(e.m02(),{layoutOptions:{column:2,row:0}}),new G.xvT(e.m10(),{layoutOptions:{column:0,row:1}}),new G.xvT(e.m11(),{layoutOptions:{column:1,row:1}}),new G.xvT(e.m12(),{layoutOptions:{column:2,row:1}}),new G.xvT(e.m20(),{layoutOptions:{column:0,row:2}}),new G.xvT(e.m21(),{layoutOptions:{column:1,row:2}}),new G.xvT(e.m22(),{layoutOptions:{column:2,row:2}})]})}}class Tn extends G.y$t{constructor(e){super(e,{maxWidth:15,maxHeight:15,stroke:"black",cursor:"pointer",strokePickable:!0}),this.addInputListener(new G.eMb({fire:()=>Rn(e.getSVGPath()),tandem:K.Z.OPT_OUT}))}}class xn extends G.Eep{constructor(e){super(e.getImage(),{maxWidth:15,maxHeight:15})}}const On=e=>{const t=[],i=e.lastNode(),n=(0,Bi.Z)(i.constructor).map(e=>e.name).filter(e=>e&&"Object"!==e),s=n.includes("Node")?n.slice(0,n.indexOf("Node")):n;s.length>0&&t.push(new G.Hof(s.map((e,t)=>0===t?`${e}`:`
${_.repeat(" ",t)}extends ${e}`).join(""),{font:new it(12)}));const r=(e,i)=>{t.push(new G.BET({spacing:0,align:"top",children:[new G.xvT(e+": ",{fontSize:12}),i]}))},o=(e,t)=>{void 0!==t&&r(e,new G.Hof(""+t,{lineWrap:400,font:new it(12),cursor:"pointer",inputListeners:[new G.eMb({fire:()=>Rn(""+t),tandem:K.Z.OPT_OUT})]}))},a=e=>new G.BET({spacing:4,children:[new G.AeJ(0,0,10,10,{fill:e,stroke:"black",lineWidth:.5}),new G.xvT(e.toHexString(),{fontSize:12}),new G.xvT(e.toCSS(),{fontSize:12})],cursor:"pointer",inputListeners:[new G.eMb({fire:()=>Rn(e.toHexString()),tandem:K.Z.OPT_OUT})]}),l=(e,t)=>{const i=e=>new G.BET({spacing:3,children:[new G.xvT(e.ratio,{fontSize:12}),a(kn(e.color)||G.Ilk.TRANSPARENT)]});t instanceof G.wGU?t instanceof G.oas?r(e,new G.SHm({align:"left",spacing:3,children:[new G.xvT(`LinearGradient (${t.start.x},${t.start.y}) => (${t.end.x},${t.end.y})`,{fontSize:12}),...t.stops.map(i)]})):t instanceof G.XMe?r(e,new G.SHm({align:"left",spacing:3,children:[new G.xvT(`RadialGradient (${t.start.x},${t.start.y}) ${t.startRadius} => (${t.end.x},${t.end.y}) ${t.endRadius}`,{fontSize:12}),...t.stops.map(i)]})):t instanceof G.cfY&&r(e,new G.SHm({align:"left",spacing:3,children:[new G.xvT("Pattern",{fontSize:12}),new G.Eep(t.image,{maxWidth:10,maxHeight:10})]})):((e,t)=>{const i=kn(t);null!==i&&r(e,a(i))})(e,t)},h=(e,t)=>{t.equals(L.Z.NOTHING)||(t.equals(L.Z.EVERYTHING)?o(e,"everything"):r(e,new G.Hof(`x: [${t.minX}, ${t.maxX}]
y: [${t.minY}, ${t.maxY}]`,{font:new it(12)})))},A=(e,t)=>r(e,new Tn(t));return i.tandem.supplied&&o("tandem",i.tandem.phetioID.split(".").join(" ")),i instanceof G.SOl&&o("element",i.element.constructor.name),(0,G.AXx)(i)&&(!i.widthSizable&&o("widthSizable",i.widthSizable),null!==i.preferredWidth&&o("preferredWidth",i.preferredWidth),i.preferredWidth!==i.localPreferredWidth&&o("localPreferredWidth",i.localPreferredWidth),null!==i.minimumWidth&&o("minimumWidth",i.minimumWidth),i.minimumWidth!==i.localMinimumWidth&&o("localMinimumWidth",i.localMinimumWidth)),(0,G.cWU)(i)&&(!i.heightSizable&&o("heightSizable",i.heightSizable),null!==i.preferredHeight&&o("preferredHeight",i.preferredHeight),i.preferredHeight!==i.localPreferredHeight&&o("localPreferredHeight",i.localPreferredHeight),null!==i.minimumHeight&&o("minimumHeight",i.minimumHeight),i.minimumHeight!==i.localMinimumHeight&&o("localMinimumHeight",i.localMinimumHeight)),i.layoutOptions&&o("layoutOptions",JSON.stringify(i.layoutOptions,null,2)),i instanceof G.BjU&&(!i.resize&&o("resize",i.resize),!i.layoutOrigin.equals(Ze.Z.ZERO)&&o("layoutOrigin",i.layoutOrigin)),i instanceof G.N52&&(o("orientation",i.orientation),o("align",i.align),i.spacing&&o("spacing",i.spacing),i.lineSpacing&&o("lineSpacing",i.lineSpacing),o("justify",i.justify),i.justifyLines&&o("justifyLines",i.justifyLines),i.wrap&&o("wrap",i.wrap),i.stretch&&o("stretch",i.stretch),i.grow&&o("grow",i.grow),i.leftMargin&&o("leftMargin",i.leftMargin),i.rightMargin&&o("rightMargin",i.rightMargin),i.topMargin&&o("topMargin",i.topMargin),i.bottomMargin&&o("bottomMargin",i.bottomMargin),null!==i.minContentWidth&&o("minContentWidth",i.minContentWidth),null!==i.minContentHeight&&o("minContentHeight",i.minContentHeight),null!==i.maxContentWidth&&o("maxContentWidth",i.maxContentWidth),null!==i.maxContentHeight&&o("maxContentHeight",i.maxContentHeight)),i instanceof G.zch&&(o("xAlign",i.xAlign),o("yAlign",i.yAlign),i.xSpacing&&o("xSpacing",i.xSpacing),i.ySpacing&&o("ySpacing",i.ySpacing),i.xStretch&&o("xStretch",i.xStretch),i.yStretch&&o("yStretch",i.yStretch),i.xGrow&&o("xGrow",i.xGrow),i.yGrow&&o("yGrow",i.yGrow),i.leftMargin&&o("leftMargin",i.leftMargin),i.rightMargin&&o("rightMargin",i.rightMargin),i.topMargin&&o("topMargin",i.topMargin),i.bottomMargin&&o("bottomMargin",i.bottomMargin),null!==i.minContentWidth&&o("minContentWidth",i.minContentWidth),null!==i.minContentHeight&&o("minContentHeight",i.minContentHeight),null!==i.maxContentWidth&&o("maxContentWidth",i.maxContentWidth),null!==i.maxContentHeight&&o("maxContentHeight",i.maxContentHeight)),i instanceof G.AeJ&&(h("rectBounds",i.rectBounds),(i.cornerXRadius||i.cornerYRadius)&&(i.cornerXRadius===i.cornerYRadius?o("cornerRadius",i.cornerRadius):(o("cornerXRadius",i.cornerXRadius),o("cornerYRadius",i.cornerYRadius)))),i instanceof G.x12&&(o("x1",i.x1),o("y1",i.y1),o("x2",i.x2),o("y2",i.y2)),i instanceof G.Cdc&&o("radius",i.radius),i instanceof G.xvT&&(o("text",i.string),o("font",i.font),"hybrid"!==i.boundsMethod&&o("boundsMethod",i.boundsMethod)),i instanceof G.Hof&&(o("text",i.string),o("font",i.font instanceof G.Zxw?i.font.getFont():i.font),l("fill",i.fill),l("stroke",i.stroke),"hybrid"!==i.boundsMethod&&o("boundsMethod",i.boundsMethod),null!==i.lineWrap&&o("lineWrap",i.lineWrap)),i instanceof G.Eep&&(r("image",new xn(i)),o("imageWidth",i.imageWidth),o("imageHeight",i.imageHeight),1!==i.imageOpacity&&o("imageOpacity",i.imageOpacity),i.imageBounds&&h("imageBounds",i.imageBounds),i.initialWidth&&o("initialWidth",i.initialWidth),i.initialHeight&&o("initialHeight",i.initialHeight),i.hitTestPixels&&o("hitTestPixels",i.hitTestPixels)),(i instanceof G.mxV||i instanceof G.HDe)&&h("canvasBounds",i.canvasBounds),i instanceof G.y$t&&(i.shape&&A("shape",i.shape),"accurate"!==i.boundsMethod&&o("boundsMethod",i.boundsMethod)),(i instanceof G.y$t||i instanceof G.xvT)&&(l("fill",i.fill),l("stroke",i.stroke),i.lineDash.length&&o("lineDash",i.lineDash),i.fillPickable||o("fillPickable",i.fillPickable),i.strokePickable&&o("strokePickable",i.strokePickable),1!==i.lineWidth&&o("lineWidth",i.lineWidth),"butt"!==i.lineCap&&o("lineCap",i.lineCap),"miter"!==i.lineJoin&&o("lineJoin",i.lineJoin),0!==i.lineDashOffset&&o("lineDashOffset",i.lineDashOffset),10!==i.miterLimit&&o("miterLimit",i.miterLimit)),i.tagName&&o("tagName",i.tagName),i.accessibleName&&o("accessibleName",i.accessibleName),i.helpText&&o("helpText",i.helpText),i.pdomHeading&&o("pdomHeading",i.pdomHeading),i.containerTagName&&o("containerTagName",i.containerTagName),i.containerAriaRole&&o("containerAriaRole",i.containerAriaRole),i.innerContent&&o("innerContent",i.innerContent),i.inputType&&o("inputType",i.inputType),i.inputValue&&o("inputValue",i.inputValue),i.pdomNamespace&&o("pdomNamespace",i.pdomNamespace),i.ariaLabel&&o("ariaLabel",i.ariaLabel),i.ariaRole&&o("ariaRole",i.ariaRole),i.ariaValueText&&o("ariaValueText",i.ariaValueText),i.labelTagName&&o("labelTagName",i.labelTagName),i.labelContent&&o("labelContent",i.labelContent),i.appendLabel&&o("appendLabel",i.appendLabel),i.descriptionTagName&&o("descriptionTagName",i.descriptionTagName),i.descriptionContent&&o("descriptionContent",i.descriptionContent),i.appendDescription&&o("appendDescription",i.appendDescription),i.pdomVisible||o("pdomVisible",i.pdomVisible),i.pdomOrder&&o("pdomOrder",i.pdomOrder.map(e=>null===e?"null":e.constructor.name)),i.visible||o("visible",i.visible),1!==i.opacity&&((e,t)=>{o(e,t)})("opacity",i.opacity),null!==i.pickable&&o("pickable",i.pickable),i.enabled||o("enabled",i.enabled),i.inputEnabled||o("inputEnabled",i.inputEnabled),null!==i.cursor&&o("cursor",i.cursor),i.transformBounds&&o("transformBounds",i.transformBounds),i.renderer&&o("renderer",i.renderer),i.usesOpacity&&o("usesOpacity",i.usesOpacity),i.layerSplit&&o("layerSplit",i.layerSplit),i.cssTransform&&o("cssTransform",i.cssTransform),i.excludeInvisible&&o("excludeInvisible",i.excludeInvisible),i.preventFit&&o("preventFit",i.preventFit),null!==i.webglScale&&o("webglScale",i.webglScale),i.matrix.isIdentity()||((e,t)=>{r(e,new Sn(t))})("matrix",i.matrix),null!==i.maxWidth&&o("maxWidth",i.maxWidth),null!==i.maxHeight&&o("maxHeight",i.maxHeight),null!==i.clipArea&&A("clipArea",i.clipArea),null!==i.mouseArea&&(i.mouseArea instanceof L.Z?h("mouseArea",i.mouseArea):A("mouseArea",i.mouseArea)),null!==i.touchArea&&(i.touchArea instanceof L.Z?h("touchArea",i.touchArea):A("touchArea",i.touchArea)),i.inputListeners.length&&o("inputListeners",i.inputListeners.map(e=>e.constructor.name).join(", ")),t.push(new G.LZC(5,5)),h("localBounds",i.localBounds),i.localBoundsOverridden&&o("localBoundsOverridden",i.localBoundsOverridden),h("bounds",i.bounds),isFinite(i.width)&&o("width",i.width),isFinite(i.height)&&o("height",i.height),t.push(new Wi({content:new G.xvT("Copy Path",{fontSize:12}),listener:()=>Rn("phet.joist.display.rootNode"+e.indices.map(e=>`.children[ ${e} ]`).join("")),tandem:K.Z.OPT_OUT})),t},kn=e=>{const t=e instanceof Pi.Z||e instanceof J.Z?e.value:e;return null===t?null:G.Ilk.toColor(t)},Ln=e=>{if(e instanceof G.wGU)return!0;{const t=kn(e);return!!t&&t.alpha>0}},Qn=(e,t)=>{if(!e.visible)return null;const i=e._transform.getInverse().timesVector2(t),n=e.clipArea;if(null!==n&&!n.containsPoint(i))return null;for(let s=e._children.length-1;s>=0;s--){const t=e._children[s],n=Qn(t,i);if(n)return n.addAncestor(e,s)}if(e.selfBounds.containsPoint(i))if(e instanceof G.y$t&&e.hasShape()){if(Ln(e.fill)&&e.getShape().containsPoint(i))return new G.Qn1(e);if(Ln(e.stroke)&&e.getStrokedShape().containsPoint(i))return new G.Qn1(e)}else if(e.containsPointSelf(i))return new G.Qn1(e);return null},Rn=async e=>{var t;await(null===(t=navigator.clipboard)||void 0===t?void 0:t.writeText(e))},Nn=(e,t,i)=>{let n=Ke.bn.union([...t&&e.mouseArea?[e.mouseArea instanceof Ke.bn?e.mouseArea:Ke.bn.bounds(e.mouseArea)]:[],...i&&e.touchArea?[e.touchArea instanceof Ke.bn?e.touchArea:Ke.bn.bounds(e.touchArea)]:[],e.getSelfShape(),...e.children.filter(e=>e.visible&&!1!==e.pickable).map(e=>Nn(e,t,i).transformed(e.matrix))].filter(e=>e.bounds.isValid()));return e.hasClipArea()&&(n=n.shapeIntersection(e.clipArea)),n},Yn=(e,t,i)=>{let n=Nn(e.lastNode(),t,i);for(let s=e.nodes.length-1;s>=0;s--){const t=e.nodes[s];t.hasClipArea()&&(n=n.shapeIntersection(t.clipArea)),n=n.transformed(t.matrix)}return n};class Fn extends G.NBX{constructor(e,t){const i=(0,Y.ZP)()({keyFill:"white",keyShadowFill:"black",lineWidth:1.3,cornerRadius:2,xShadowOffset:1.7,yShadowOffset:1.7,xMargin:0,yMargin:0,xAlign:"center",yAlign:"center",xPadding:4,yPadding:4,keyHeight:23,minKeyWidth:23,forceSquareKey:!1},t),n=new G.NBX({children:[e]}),s=new G.NBX({children:[n]}),r=new G.DbO(s,{xAlign:i.xAlign,yAlign:i.yAlign,xMargin:i.xMargin,yMargin:i.yMargin}),o=new G.AeJ(0,0,1,1,i.cornerRadius,i.cornerRadius,{fill:i.keyShadowFill}),a=new G.AeJ(0,0,1,1,i.cornerRadius,i.cornerRadius,{fill:i.keyFill,stroke:"black",lineWidth:i.lineWidth});e.boundsProperty.link(()=>{let t=1;const l=i.keyHeight-i.yPadding;e.height>l&&(t=l/e.height),n.setScaleMagnitude(t);let h=Math.max(i.minKeyWidth,n.width+i.xPadding);if(i.forceSquareKey){const t=i.minKeyWidth-i.xPadding;let n=1;e.width>t&&(n=t/e.width),h=i.keyHeight,s.setScaleMagnitude(n)}r.setAlignBounds(new L.Z(0,0,h,i.keyHeight)),o.setRectBounds(r.bounds.shiftedXY(i.xShadowOffset,i.yShadowOffset)),a.setRectBounds(r.bounds)}),i.children=[o,a,r],super(i)}}U.register("KeyNode",Fn);class Gn extends Fn{constructor(e,t){const i=(0,Y.ZP)()({font:new it({size:16}),fill:"black",textMaxWidth:55,xPadding:11},t),n=new G.Hof(e,{font:i.font,fill:i.fill,maxWidth:i.textMaxWidth});super(n,i),this.disposeEmitter.addListener(()=>n.dispose())}static getAltKeyString(){return N.Z.mac?rt.key.optionStringProperty:rt.key.altStringProperty}static altOrOption(e){return new Gn(Gn.getAltKeyString(),e)}static capsLock(e){return new Gn(rt.key.capsLockStringProperty,e)}static esc(e){return new Gn(rt.key.escStringProperty,e)}static end(e){return new Gn(rt.key.endStringProperty,e)}static enter(e){return new Gn(rt.key.enterStringProperty,e)}static fn(e){return new Gn(rt.key.fnStringProperty,e)}static home(e){return new Gn(rt.key.homeStringProperty,e)}static pageDown(e){return new Gn(rt.key.pageDownStringProperty,e)}static pageUp(e){return new Gn(rt.key.pageUpStringProperty,e)}static space(e){return new Gn(rt.key.spaceStringProperty,e)}static shift(e){return new Gn(rt.key.shiftStringProperty,e)}static tab(e){return new Gn(rt.key.tabStringProperty,e)}}U.register("TextKeyNode",Gn);class qn extends Ke.bn{constructor(e){super();const t=e.width/2-e.height/2,i=e.width/2+e.height/2;this.moveTo(t,0).lineTo(i,0).lineTo(i,t).lineTo(e.width,t).lineTo(e.width,i).lineTo(i,i).lineTo(i,e.width).lineTo(t,e.width).lineTo(t,i).lineTo(0,i).lineTo(0,t).lineTo(t,t).close()}}U.register("PlusShape",qn);const Hn=new Q.Z(20,5);class Zn extends G.y$t{constructor(e){const t=(0,Y.ZP)()({size:Hn,fill:"black"},e);super(new qn(t.size),t)}}U.register("PlusNode",Zn);const Un=.6*Math.sqrt(3)*10,Kn={up:0,down:Math.PI,left:-Math.PI/2,right:Math.PI/2};class Wn extends Fn{constructor(e,t){const i=(0,Y.ZP)()({arrowFill:"black",arrowStroke:"black",arrowLineJoin:"round",arrowLineWidth:3,arrowHeight:10,arrowWidth:Un,yPadding:13,forceSquareKey:!0},t),n=i.arrowHeight,s=i.arrowWidth,r=i.arrowLineJoin,o=i.arrowLineWidth,a=i.arrowFill,l=i.arrowStroke,h=new Ke.bn;h.moveTo(n/2,0).lineTo(n,s+0).lineTo(0,s+0).close(),super(new G.y$t(h,{fill:a,stroke:l,lineJoin:r,lineWidth:o,rotation:Kn[e]}),i)}}U.register("ArrowKeyNode",Wn);class zn extends Gn{constructor(e,t){super(e,(0,Y.ZP)()({xPadding:5,forceSquareKey:!0},t))}static a(e){return new zn(rt.key.aStringProperty,e)}static c(e){return new zn(rt.key.cStringProperty,e)}static d(e){return new zn(rt.key.dStringProperty,e)}static r(e){return new zn(rt.key.rStringProperty,e)}static s(e){return new zn(rt.key.sStringProperty,e)}static w(e){return new zn(rt.key.wStringProperty,e)}static one(e){return new zn(rt.key.oneStringProperty,e)}static two(e){return new zn(rt.key.twoStringProperty,e)}static three(e){return new zn(rt.key.threeStringProperty,e)}}U.register("LetterKeyNode",zn);const jn=new it(16);class Xn{constructor(){}static iconRow(e,t){const i=(0,Y.ZP)()({spacing:1.3,children:e},t);return new G.BET(i)}static iconOrIcon(e,t,i){const n=(0,Y.JA)({spacing:Xn.DEFAULT_ICON_SPACING},i),s=new G.xvT(rt.keyboardHelpDialog.orStringProperty,{font:jn,maxWidth:16});return Xn.iconRow([new G.NBX({children:[e]}),s,new G.NBX({children:[t]})],n)}static iconToIcon(e,t,i){const n=(0,Y.JA)({spacing:Xn.DEFAULT_ICON_SPACING/2},i),s=new G.xvT(rt.keyboardHelpDialog.hyphenStringProperty,{font:jn,maxWidth:16});return Xn.iconRow([new G.NBX({children:[e]}),s,new G.NBX({children:[t]})],n)}static iconPlusIcon(e,t,i){return Xn.iconPlusIconRow([e,t],i)}static iconPlusIconRow(e,t){const i=(0,Y.JA)({plusIconSize:new Q.Z(8,1.2),spacing:Xn.DEFAULT_ICON_SPACING},t),n=[];for(let s=0;s{let e="";return e+=this.headingStringProperty.value+", ",this.keyboardHelpSectionRows.forEach(t=>{t.readingBlockContent&&(e+=$n.Z.getResponseText(t.readingBlockContent)+" ")}),e})}static alignHelpSectionIcons(e){const t=_.maxBy(e,e=>e.iconVBox.left),i=t.iconVBox.left;e.forEach(e=>{e.contentHBox.spacing=e.contentHBox.spacing+i-e.iconVBox.left})}}_defineProperty(ts,"DEFAULT_VERTICAL_ICON_SPACING",13),U.register("KeyboardHelpSection",ts);const is=new it(16);class ns{constructor(e,t,i,n){const s=(0,Y.ZP)()({readingBlockContent:null},n);this.text=e,this.label=t,this.icon=i,this.readingBlockContent=s.readingBlockContent}setContentsVisible(e){this.text.visible=e,this.label.visible=e,this.icon.visible=e}static labelWithIcon(e,t,i){const n=(0,Y.ZP)()({labelInnerContent:null,readingBlockContent:null,labelOptions:{font:is},iconOptions:{tagName:"li"}},i),s=new G.Hof(e,n.labelOptions),r=new G.Lkj({matchHorizontal:!1}),o=r.createBox(s),a=r.createBox(new G.NBX({children:[t]}),n.iconOptions);return a.innerContent=n.labelInnerContent,new ns(s,o,a,{readingBlockContent:n.readingBlockContent||n.labelInnerContent})}static createKeysRowFromStrings(e,t,i){return ns.createKeysRow(e.map(e=>new zn(e)),t,i)}static createKeysRow(e,t,i){let n=null;for(let s=0;s{e.setScaleMagnitude(1),e.setScaleMagnitude(Math.min(i.maxIconWidthProportion*n.width/e.width,i.maxIconHeightProportion*n.height/e.height)),e.center=n.center};e.localBoundsProperty.link(s),i.children=[n,e],super(i),this.disposeScreenIcon=()=>{e.localBoundsProperty.hasListener(s)&&e.localBoundsProperty.unlink(s)}}dispose(){this.disposeScreenIcon(),super.dispose()}}Te.Z.register("ScreenIcon",cs);const us=e=>""+e;class gs extends at{constructor(e,t,i){const n=(0,Y.ZP)()({formatNames:[],decimalPlaces:null,phetioFeatured:!0,tandemNameSuffix:"StringProperty"},i),s=[e],r={},o=Object.keys(t);o.forEach(e=>{const i=t[e];(i instanceof Pi.Z||i instanceof J.Z)&&s.push(i);let o=us;if(null!==n.decimalPlaces&&("number"==typeof n.decimalPlaces||null!==n.decimalPlaces[e])){const t="number"==typeof n.decimalPlaces||null===n.decimalPlaces?n.decimalPlaces:n.decimalPlaces[e];o=e=>us("number"==typeof e?R.Z.toFixed(e,t):e)}n.maps&&n.maps.hasOwnProperty(e)?r[e]=t=>o(n.maps[e](t)):r[e]=o}),super(s,(function(){for(var i=arguments.length,a=new Array(i),l=0;l{const t=s.indexOf(e);return t>=0?a[t]:e};let A=""+h(e);n.formatNames.forEach((e,t)=>{A=A.replace(new RegExp(`\\{${t}\\}`,"g"),`{{${e}}}`)});const d=A.match(/\{\{[^{}]+\}\}/g)||[];for(let e=0;enull===e?"":F.Z.fillIn(ps,{name:e})),this.maxDT=n.maxDT,this.createModel=e,this.createView=t,this._model=null,this._view=null,this.activeProperty=new V.Z(!0,{tandem:n.tandem.createTandem("activeProperty"),phetioReadOnly:!0,phetioDocumentation:"Indicates whether the screen is currently displayed in the simulation. For single-screen simulations, there is only one screen and it is always active."}),this.descriptionContent="",n.descriptionContent?this.descriptionContent=n.descriptionContent:this.nameProperty.value?this.descriptionContent=new gs(ps,{name:this.nameProperty},{tandem:K.Z.OPT_OUT}):this.descriptionContent=ys}get model(){return this._model}get view(){return this._view}hasModel(){return!!this._model}hasView(){return!!this._view}reset(){}initializeModel(){this._model=this.createModel()}initializeView(e,t,i,n){var s;this._view=this.createView(this.model),this._view.setVisible(!1),phet.chipper.queryParameters.dev&&this._view.addChild((s=this._view.layoutBounds,new G.y$t(Ke.bn.bounds(s),{stroke:"red",lineWidth:3,pickable:!1}))),phet.chipper.queryParameters.showVisibleBounds&&this._view.addChild(function(e){const t=new G.y$t(Ke.bn.bounds(e.visibleBoundsProperty.value),{stroke:"blue",lineWidth:6,pickable:!1});return e.visibleBoundsProperty.link(e=>{t.shape=Ke.bn.bounds(e)}),t}(this._view)),Ce.Z.multilink([t,e,this.pdomDisplayNameProperty],(e,t,s)=>{let r;r=1===i?e:n?t:F.Z.fillIn(ms,{screenName:s,simName:t}),this._view.setScreenSummaryIntroAndTitle(t,s,r,i>1)})}}function Cs(e,t,i,n){e.width,e.height}s=Ds,_defineProperty(Ds,"HOME_SCREEN_ICON_ASPECT_RATIO",Ps),_defineProperty(Ds,"MINIMUM_HOME_SCREEN_ICON_SIZE",fs),_defineProperty(Ds,"MINIMUM_NAVBAR_ICON_SIZE",ws),_defineProperty(Ds,"ScreenIO",new hs.Z("ScreenIO",{valueType:s,supertype:(0,As.Z)(hs.Z.ObjectIO),documentation:"Section of a simulation which has its own model and view."})),Te.Z.register("Screen",Ds);const Es=Ds;class bs{constructor(e,t,i,n){this.simScreens=t,this.screenProperty=e,this.activeSimScreensProperty=i,this.selectedScreenProperty=new x.Z(t[0],{validValues:t,phetioValueType:Es.ScreenIO,tandem:n.createTandem("selectedScreenProperty"),phetioFeatured:!0}),this.screenProperty.link(e=>{_.includes(t,e)&&(this.selectedScreenProperty.value=e)})}reset(){}}Te.Z.register("HomeScreenModel",bs);const vs=bs,Vs=new G.Ilk(0,200,0),Is=new G.Ilk(255,85,0),Ms=new G.Ilk(0,135,0),Ss=new G.Ilk(106,206,245),Ts=new G.Ilk(254,225,5),xs={ACCELERATION:new G.Ilk(255,255,50),APPLIED_FORCE:new G.Ilk(236,153,55),BUTTON_YELLOW:Ts,ELASTIC_POTENTIAL_ENERGY:new G.Ilk(0,204,255),FRICTION_FORCE:Is,GRAVITATIONAL_FORCE:new G.Ilk(50,130,215),GRAVITATIONAL_POTENTIAL_ENERGY:new G.Ilk(55,130,215),HEAT_THERMAL_ENERGY:Is,IMAGINARY_PART:new G.Ilk(153,51,102),KINETIC_ENERGY:new G.Ilk(30,200,45),MOMENTUM:new G.Ilk(50,50,255),NET_WORK:Vs,NORMAL_FORCE:new G.Ilk(255,235,0),PHET_LOGO_BLUE:Ss,PHET_LOGO_YELLOW:Ts,POSITION:G.Ilk.BLUE,REAL_PART:new G.Ilk(255,153,0),RED_COLORBLIND:Is,RESET_ALL_BUTTON_BASE_COLOR:new G.Ilk(247,151,34),GREEN_COLORBLIND:Ms,TOTAL_ENERGY:new G.Ilk(180,180,0),TOTAL_FORCE:Vs,VELOCITY:new G.Ilk(50,255,50),WALL_FORCE:new G.Ilk(153,51,0),SCREEN_ICON_FRAME:"#dddddd"};U.register("PhetColorScheme",xs);const Os=xs;class ks extends G.NBX{constructor(e,t){const i=(0,Y.ZP)()({xMargin1:6,yMargin1:6,cornerRadius:0},t);super();const n=e.width+2*i.xMargin1,s=e.height+2*i.yMargin1;this.gradient=new G.oas(0,0,n,0).addColorStop(0,"#fbff41").addColorStop(.1475,"#fef98b").addColorStop(.465,"#feff40").addColorStop(.77,"#fffccd").addColorStop(1,"#fbff41");const r=new G.AeJ(0,0,n,s,i.cornerRadius,i.cornerRadius,{stroke:this.gradient,lineWidth:3,x:e.x-i.xMargin1,y:e.y-i.yMargin1});this.addChild(r),this.mutate(i);const o=L.Z.rect(r.x,r.y,n,s);this.highlightRectangle=G.AeJ.bounds(o.dilated(.75),{stroke:"transparent",lineWidth:4.5}),this.addChild(this.highlightRectangle)}setHighlighted(e){this.highlightRectangle.stroke=e?this.gradient:"transparent"}}Te.Z.register("Frame",ks);const Ls=ks;class Qs extends((0,G.CHP)(G.SHm)){constructor(e,t,i){const n=(0,Y.ZP)()({cursor:"pointer",showUnselectedHomeScreenIconFrame:!1,tagName:"button",appendDescription:!0,containerTagName:"li",phetioEventType:q.Z.USER,phetioDocumentation:"A button on the home screen for choosing a simulation screen"},i),s=new M.ZP([t.selectedScreenProperty],t=>t===e),r=new V.Z(!1);let o=R.Z.linear(2,4,.875,.5,t.simScreens.length);t.simScreens.length>=5&&(o=.4);const a=140*o,l=e.homeScreenIcon,h=new G.NBX({children:[l],scale:a/l.height}),A=new G.NBX({children:[l],scale:140/l.height}),d=new G.AeJ(0,0,h.width,h.height,{stroke:n.showUnselectedHomeScreenIconFrame?Os.SCREEN_ICON_FRAME:null,lineWidth:.7}),c=new Ls(A),u=new G.NBX({children:[d,h]}),g=new G.NBX({children:[c,A]}),p=new G.NBX({pdomVisible:!1}),m=new G.xvT(e.nameProperty);super((0,Ei.Z)({children:[p,m]},n)),this.screen=e,this.addAriaDescribedbyAssociation({otherNode:this,otherElementName:G.Grz.DESCRIPTION_SIBLING,thisElementName:G.Grz.PRIMARY_SIBLING});const y={small:{node:[u],font:new it(18),spacing:3},large:{node:[g],font:new it(42),spacing:0}},f=()=>{const e=s.value||r.value?1:.5;A.opacity=e,h.opacity=e,m.fill=s.value||r.value?"white":"gray"};s.link(e=>{const t=e?y.large:y.small;p.children=t.node,m.font=t.font,m.maxWidth=p.width,f(),this.setSpacing(t.spacing)}),r.link(e=>{c.setHighlighted(e),f()});const w=new ui.Z;let B=!1;const P=new G.eMb({fire:()=>{const i=P.pointer&&P.pointer.isTouchLike();!s.value||i&&!B?(t.selectedScreenProperty.value=e,this.voicingSpeakFullResponse({objectResponse:null,contextResponse:null})):(t.screenProperty.value=e,this.voicingSpeakFullResponse({objectResponse:null,hintResponse:null,utterance:w}))},tandem:n.tandem.createTandem("fireListener")});this.addInputListener(P),this.addInputListener({focus:e=>{!s.value&&P.fire(e)}}),this.addInputListener({click:()=>this.focus()}),this.addInputListener({focus:()=>r.set(!0),blur:()=>r.set(!1),over:()=>r.set(!0),out:()=>r.set(!1)});const D=()=>{B=t.selectedScreenProperty.value===e,t.selectedScreenProperty.value=e};this.addInputListener({touchover:D,penover:D}),this.boundsProperty.link(()=>{this.mouseArea=this.touchArea=Ke.bn.bounds(this.localBounds)})}}Te.Z.register("HomeScreenButton",Qs);const Rs=Qs;class Ns extends St{constructor(e,t){const i=(0,Y.ZP)()({initialPlaybackRate:1},t);super(i),this.activeBufferSources=[],this.valueToWrappedAudioBufferMap=e,this.localGainNode=this.audioContext.createGain(),this.localGainNode.connect(this.soundSourceDestination),this.fullyEnabledProperty.lazyLink(e=>{e||this.stopAll()}),this.playbackRate=void 0===i.initialPlaybackRate?1:i.initialPlaybackRate,this.audioContextStateChangeListener=null,this.timeOfDeferredPlayRequest=Number.NEGATIVE_INFINITY}playAssociatedSound(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const i=this.valueToWrappedAudioBufferMap.get(e);if("running"===this.audioContext.state){if(this.fullyEnabled&&i.audioBufferProperty.value){const e=this.audioContext.currentTime;this.localGainNode.gain.cancelScheduledValues(e),this.localGainNode.gain.setValueAtTime(1,e);const n=this.audioContext.createBufferSource();n.buffer=i.audioBufferProperty.value,n.playbackRate.setValueAtTime(this.playbackRate,this.audioContext.currentTime),n.connect(this.localGainNode),this.activeBufferSources.push(n),n.onended=()=>{const e=this.activeBufferSources.indexOf(n);e>-1&&this.activeBufferSources.splice(e,1)},n.start(e+t)}}else this.audioContextStateChangeListener&&me.removeStateChangeListener(this.audioContext,this.audioContextStateChangeListener),this.timeOfDeferredPlayRequest=Date.now(),this.audioContextStateChangeListener=()=>{(Date.now()-this.timeOfDeferredPlayRequest)/1e3<.2&&this.playAssociatedSound(e,.1),me.removeStateChangeListener(this.audioContext,this.audioContextStateChangeListener),this.audioContextStateChangeListener=null},me.addStateChangeListener(this.audioContext,this.audioContextStateChangeListener)}setPlaybackRate(e){this.playbackRate=e}stopAll(){const e=this.audioContext.currentTime+.1;this.localGainNode.gain.linearRampToValueAtTime(0,e),this.activeBufferSources.forEach(t=>{t.stop(e)}),this.activeBufferSources.length=0}}ee.register("MultiClip",Ns);const Ys=Ns,Fs="data:audio/mpeg;base64,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",Gs=X(se,Fs),qs=j.Z.createLock(Fs),Hs=new ie;let Zs=!1;const Us=()=>{Zs||(qs(),Zs=!0)},Ks=se.decodeAudioData(Gs.buffer,e=>{null===Hs.audioBufferProperty.value&&(Hs.audioBufferProperty.set(e),Us())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),Hs.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),Us()});Ks&&Ks.then(e=>{null===Hs.audioBufferProperty.value&&(Hs.audioBufferProperty.set(e),Us())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),Us()});const Ws=Hs,zs="data:audio/mpeg;base64,//swxAACBbQfAa1vAjjzBGF2uiAGAAAAVtwAAAB7yZwNh6oRieZxJ6ZAiC/ATEjWf4paPzHKWsS3vMPHu8R6o/M8eAnZcHGwD9C4jQ2xTmNgzZHbzxk5zD0HTBEWTHspzBMqDK8KxIF37fd35ff/MUdUL/Ebxn9X8v1v6Fr/qUoAAAAEOAWfACgXUDbgA1LRszBjFcN1Q5A37hmD//syxA4ACgAhKbngkhD9BGDHvgAGGWHvMr8isweRLzBiAgMNQMkxCAAAEEEBgeVczyMNGKtsf6F4Giv/rT/odb3f/NeUfP4tFRANCwGGTlYyyEw/cJjMePwAT7SyQczJUPyKoQwYKqCgmCeiMBgE4FSYDIBVgYCxMAaABwCAANnj7qmgbL//++oAAACT1PNJAHxGinXcyGFGEMY9Mv/7MsQKAAcgGyWu+0Bw1gNkqey8jtZp4mrGBaEuYskFTJir6hjU38h9pGJE1e6j2dP16PZ0+3/r0e0AEfK5YkoDQMIPEstTDOAsMYyMs59DMBoM08VQseAdGGgKwaNoyxP16PIbk+2fs9nT7f//tpoAAAJ72ShtQGa8BoaQQT5hFA5GMcVKdoQoJiOAPgkrOATlQcDhXSQ2qmoydr3/+zLEFoJHJBsnr2GEcMsDZPXfYEaeS3N//s7fTvR/p/SFN8xoeGOEfTDSZ6D6YHbMbFxFJgYAxBqwaRl6p2KP3OOIqcUqvattP9yPq0/6PZv//9MAAAKTiC1xwHUiuHc40mB8CKYCqQx3mymHxcm6GBZP17maxazTein9P+j6m0+3o9llP/9lIOZgrByCHtnZWY4ZiqUpj4uvGhXg//swxCSCBowbJa77gDDRg2Il7+xGuBg9YF4Jpo0hixIXkQQs+iqhVNf1f0r//9v/sd/b/k0AAAAKcFJBzzB8nPiVAZdJYBiuEJnyGdkYSIe5+JIBOnyxgEWjVUbPleFtdPVo//7aPTRZ9bP//pCu9FwMmga40MyCTMMhDE7Fz7dKMIDElBibcARSRyHt9Bnbq/s3pQAAAANVnW6Q//syxDOCRxAfD49rBDCZA2N17vAGCA4OIM4qpYxYOwwIzM5oCgxiAktuxQi1OBF1E6XJqSZp0fRZ+j+zp////SAA0iQCsAHUo9Ia9HYZvsF6GoXAqf9il5jeBrH0jZkRcd+mtIOAlu7GetVcvLMd3/p//9lH/YoAAAXgGg7h7VkfY5r0nAFGMhRQdmDlw/OW+eialAABX+GAANouzf/7MsRIAgZsGxXuvMYw2AReve3ghCHw7VaMOCTf7AkcLBW2GGCSRH8ABzEFogX0VXiamZeIAAAANmlTC4o1mzOAYj1V86QwPjSTpkY95TRZARC/grAwJq4SVhZMQU1FMy45OS41VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+zLEVwBDmBsIjeeAOI2FXrW9GE5VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//swxHqDxWAq183lZngAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",js=X(se,zs),Xs=j.Z.createLock(zs),Js=new ie;let _s=!1;const $s=()=>{_s||(Xs(),_s=!0)},er=se.decodeAudioData(js.buffer,e=>{null===Js.audioBufferProperty.value&&(Js.audioBufferProperty.set(e),$s())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),Js.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),$s()});er&&er.then(e=>{null===Js.audioBufferProperty.value&&(Js.audioBufferProperty.set(e),$s())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),$s()});const tr=Js;class ir extends Be.Z{}_defineProperty(ir,"HOME_SCREEN_SELECTED",new(r=ir)),_defineProperty(ir,"DIFFERENT_ICON_SELECTED",new r),_defineProperty(ir,"enumeration",new we.Z(r));class nr extends Ys{constructor(e,t){super(new Map([[ir.HOME_SCREEN_SELECTED,Ws],[ir.DIFFERENT_ICON_SELECTED,tr]]),t),e.screenProperty.lazyLink(t=>{t.model===e&&this.playAssociatedSound(ir.HOME_SCREEN_SELECTED)}),e.selectedScreenProperty.lazyLink(()=>{e.screenProperty.value.model===e&&this.playAssociatedSound(ir.DIFFERENT_ICON_SELECTED)})}}Te.Z.register("HomeScreenSoundGenerator",nr);const sr=nr;class rr extends G.NBX{constructor(e,t){super((0,Y.ZP)()({containerTagName:"section",tagName:"div",labelContent:e,labelTagName:"h2"},t))}}U.register("PDOMSectionNode",rr);class or extends rr{constructor(e){super(rt.a11y.simSection.controlAreaStringProperty,e)}}U.register("ControlAreaNode",or);class ar extends rr{constructor(e){super(rt.a11y.simSection.playAreaStringProperty,e)}}U.register("PlayAreaNode",ar);class lr extends G.NBX{constructor(){super(),this.openingSummaryNode=new G.NBX({tagName:"p"});const e=new G.NBX({tagName:"p",innerContent:rt.a11y.simSection.screenSummary.keyboardShortcutsHintStringProperty});this.addChild(this.openingSummaryNode),this.addChild(e),this.pdomOrder=[this.openingSummaryNode,null,e]}setIntroString(e,t,i){this.openingSummaryNode.innerContent=i&&t?F.Z.fillIn(rt.a11y.simSection.screenSummary.multiScreenIntroStringProperty,{screen:t}):F.Z.fillIn(rt.a11y.simSection.screenSummary.singleScreenIntroPatternStringProperty,{sim:e})}}U.register("ScreenSummaryNode",lr);const hr=new L.Z(0,0,1024,618);class Ar extends G.NBX{constructor(e){const t=(0,Y.ZP)()({layoutBounds:hr.copy(),layerSplit:!0,excludeInvisible:!0,tandem:K.Z.REQUIRED,visiblePropertyOptions:{phetioState:!1,phetioReadOnly:!0},containerTagName:"article",tagName:"div",screenSummaryContent:null,includePDOMNodes:!0},e);super(t),_defineProperty(this,"_screenSummaryContent",null),this.layoutBounds=t.layoutBounds,this.visibleBoundsProperty=new x.Z(t.layoutBounds),this.pdomTitleNode=new G.NBX({tagName:"h1",focusHighlight:"invisible"}),this.pdomPlayAreaNode=new ar,this.pdomControlAreaNode=new or,this.pdomScreenSummaryNode=new lr,t.screenSummaryContent&&this.setScreenSummaryContent(t.screenSummaryContent),this.visibleProperty.lazyLink(e=>{e?(this.pdomTitleNode.focusable=!0,this.pdomTitleNode.focus()):this.pdomTitleNode.focusable=!1}),this.pdomTitleNode.addInputListener({blur:()=>{this.pdomTitleNode.focusable=!1}}),this.pdomParentNode=new G.NBX({children:t.includePDOMNodes?[this.pdomTitleNode,this.pdomScreenSummaryNode,this.pdomControlAreaNode,this.pdomPlayAreaNode]:[this.pdomTitleNode]}),this.addChild(this.pdomParentNode),this.pdomParentNode.pdomOrder=t.includePDOMNodes?[this.pdomTitleNode,this.pdomScreenSummaryNode,this.pdomPlayAreaNode,this.pdomControlAreaNode]:[this.pdomTitleNode]}setPDOMOrder(e){throw new Error("should not need to set accessible order on a ScreenView")}setChildren(e){return G.NBX.prototype.setChildren.call(this,e),this.pdomParentNode&&!this.hasChild(this.pdomParentNode)&&(this.addChild(this.pdomParentNode),this.pdomParentNode.moveToBack()),this}getLayoutScale(e){return Ar.getLayoutScale(this.layoutBounds,e)}layout(e,t){this.matrix=Ar.getLayoutMatrix(this.layoutBounds,e,t),this.visibleBoundsProperty.value=this.parentToLocalBounds(e)}get screenSummaryContent(){return this._screenSummaryContent}set screenSummaryContent(e){this.setScreenSummaryContent(e)}setScreenSummaryContent(e){this._screenSummaryContent&&this.pdomScreenSummaryNode.removeChild(this._screenSummaryContent),this._screenSummaryContent=e,e&&this.pdomScreenSummaryNode.addChild(e)}setScreenSummaryIntroAndTitle(e,t,i,n){this.pdomScreenSummaryNode.setIntroString(e,t,n),this.pdomTitleNode.innerContent=i}getVoicingOverviewContent(){throw new Error("The ScreenView should implement getVoicingOverviewContent if Voicing is enabled")}getVoicingDetailsContent(){throw new Error("The ScreenView should implement getVoicingDetailsContent when the Voicing feature is enabled.")}getVoicingHintContent(){throw new Error("The ScreenView should implement getVoicingHintContent when Voicing is enabled.")}interruptSubtreeInput(){var e,t,i;return null===(e=window.phet)||void 0===e||null===(t=e.joist)||void 0===t||null===(i=t.display)||void 0===i||i.interruptOtherPointers(),super.interruptSubtreeInput()}static getLayoutScale(e,t){return Math.min(t.width/e.width,t.height/e.height)}static getLayoutMatrix(e,t,i){const n=(0,Y.ZP)()({verticalAlign:"center"},i),s=t.width,r=t.height,o=Ar.getLayoutScale(e,t);let a=0,l=0;return o===s/e.width?(l=r/o-e.height,"center"===n.verticalAlign&&(l/=2)):o===r/e.height&&(a=(s/o-e.width)/2),Ht.Z.rowMajor(o,0,a*o+t.left,0,o,l*o+t.top,0,0,1)}step(e){}}_defineProperty(Ar,"DEFAULT_LAYOUT_BOUNDS",hr),Te.Z.register("ScreenView",Ar);const dr=Ar;class cr extends dr{constructor(e,t,i){const n=(0,Y.ZP)()({layoutBounds:cr.LAYOUT_BOUNDS,warningNode:null,includePDOMNodes:!1},i);super(n);const s=new G.NBX({tagName:"p"});this.addChild(s),this.selectedScreenProperty=t.selectedScreenProperty;const r=new G.xvT(e,{font:new it({size:52,family:cr.TITLE_FONT_FAMILY}),fill:"white",y:130,maxWidth:this.layoutBounds.width-10});r.localBoundsProperty.link(()=>{r.centerX=this.layoutBounds.centerX}),this.addChild(r);const o=n.tandem.createTandem("buttonGroup");this.screenButtons=_.map(t.simScreens,e=>{const i=new Rs(e,t,{showUnselectedHomeScreenIconFrame:e.showUnselectedHomeScreenIconFrame,descriptionContent:e.descriptionContent,voicingHintResponse:e.descriptionContent,tandem:o.createTandem(e.tandem.name+"Button")});return i.voicingNameResponse=e.pdomDisplayNameProperty,i.innerContent=e.pdomDisplayNameProperty,i});let a=60;4===t.simScreens.length&&(a=33),t.simScreens.length>=5&&(a=20),this.homeScreenScreenSummaryIntroProperty=new gs(ds.Z.a11y.homeScreenDescriptionPatternStringProperty,{name:e,screens:t.simScreens.length},{tandem:K.Z.OPT_OUT}),s.innerContent=new gs(ds.Z.a11y.homeScreenIntroPatternStringProperty,{description:this.homeScreenScreenSummaryIntroProperty,hint:ds.Z.a11y.homeScreenHintStringProperty},{tandem:K.Z.OPT_OUT}),this.screenButtons.forEach(t=>{t.voicingContextResponse=e});const l=new G.BET({spacing:a,align:"top",maxWidth:this.layoutBounds.width-118,tagName:"ol"});if(t.activeSimScreensProperty.link(e=>{l.children=e.map(e=>_.find(this.screenButtons,t=>t.screen===e))}),this.addChild(new G.DbO(l,{alignBounds:this.layoutBounds,yAlign:"top",topMargin:this.layoutBounds.height/3+20})),Ie.addSoundGenerator(new sr(t,{initialOutputLevel:.5}),{categoryName:"user-interface"}),n.warningNode){const e=n.warningNode;this.addChild(e),e.centerX=this.layoutBounds.centerX,e.bottom=this.layoutBounds.maxY-2}}focusHighlightedScreenButton(){for(let e=0;e{""!==e&&(e+=" "),e+=F.Z.fillIn(ds.Z.a11y.homeScreenButtonDetailsPattern,{name:t.screen.pdomDisplayNameProperty.value,screenHint:t.screen.descriptionContent})}),e}getVoicingHintContent(){return ds.Z.a11y.homeScreenHintStringProperty}}_defineProperty(cr,"LAYOUT_BOUNDS",new L.Z(0,0,768,504)),_defineProperty(cr,"TITLE_FONT_FAMILY","Century Gothic, Futura"),Te.Z.register("HomeScreenView",cr);const ur=cr,gr=ds.Z.a11y.homeStringProperty,pr=G.Ilk.BLACK;class mr extends Es{constructor(e,t,i,n,s){const r=(0,Y.ZP)()({backgroundColorProperty:new x.Z(pr),name:gr,createKeyboardHelpNode:()=>new ls,instrumentNameProperty:!1},s);super(()=>new vs(t(),i,n,r.tandem.createTandem("model")),t=>new ur(e,t,{warningNode:r.warningNode,tandem:r.tandem.createTandem("view")}),r)}}_defineProperty(mr,"BACKGROUND_COLOR",pr),Te.Z.register("HomeScreen",mr);const yr=mr;class fr{constructor(){this.backgroundColorProperty=new x.Z(G.Ilk.BLACK),this.navigationBarDarkProperty=new M.ZP([this.backgroundColorProperty],e=>e.equals(G.Ilk.BLACK)),this.navigationBarFillProperty=new M.ZP([this.navigationBarDarkProperty],e=>e?G.Ilk.WHITE:G.Ilk.BLACK),this.navigationBarTextFillProperty=new M.ZP([this.navigationBarFillProperty],e=>e.equals(G.Ilk.BLACK)?G.Ilk.WHITE:G.Ilk.BLACK)}reset(){this.backgroundColorProperty.reset()}}Te.Z.register("LookAndFeel",fr);const wr=fr;var Br=i(7464);class Pr{constructor(e){this.windowSize=e,this.samples=new Array(e),this.sampleIndex=0,this.total=0,this.numSamples=0,this.clear()}clear(){this.total=0,this.numSamples=0;for(let e=0;e=this.windowSize}updateRunningAverage(e){return this.numSamples=Math.min(this.windowSize,this.numSamples+1),this.total-=this.samples[this.sampleIndex],this.total+=e,this.samples[this.sampleIndex]=e,this.sampleIndex=(this.sampleIndex+1)%this.windowSize,this.getRunningAverage()}}Br.Z.register("RunningAverage",Pr);const Dr=Pr;let Cr=!1;class Er{constructor(e){const t=(0,Y.ZP)()({windowSize:2e3,memoryLimit:phet.chipper.queryParameters.memoryLimit},e);this.memoryLimit=1048576*t.memoryLimit,this.runningAverage=new Dr(t.windowSize),this.lastMemory=0}measure(){if(!window.performance||!window.performance.memory||!window.performance.memory.usedJSHeapSize)return;const e=window.performance.memory.usedJSHeapSize;this.lastMemory=e;const t=this.runningAverage.updateRunningAverage(e);if(this.memoryLimit&&this.runningAverage.isSaturated()&&!Cr&&t>this.memoryLimit&&e>.5*this.memoryLimit)throw Cr=!0,new Error(`Average memory used (${Er.memoryString(t)}) is above our memoryLimit (${Er.memoryString(this.memoryLimit)}). Current memory: ${Er.memoryString(e)}.`)}static memoryString(e){return Math.ceil(e/1048576)+"MB"}}Te.Z.register("MemoryMonitor",Er);const br=Er,vr=e=>{const t=_.get(window,e);return void 0!==t?t:null};We.Z.register("getGlobal",vr);const Vr=vr;class Ir extends Wi{constructor(e){const t=(0,Y.ZP)()({iconLength:16,pathOptions:{stroke:"white",lineWidth:2.5,lineCap:"round"},baseColor:Os.RED_COLORBLIND,xMargin:4,yMargin:4,innerContent:rt.a11y.closeStringProperty,voicingNameResponse:rt.a11y.closeStringProperty},e),i=(new Ke.bn).moveTo(-t.iconLength/2,-t.iconLength/2).lineTo(t.iconLength/2,t.iconLength/2).moveTo(t.iconLength/2,-t.iconLength/2).lineTo(-t.iconLength/2,t.iconLength/2);t.content=new G.y$t(i,t.pathOptions),super(t)}}U.register("CloseButton",Ir);const Mr="data:audio/mpeg;base64,//swxAAAB5gnMzRhAAEHDWyDNLAAAAAaAQAu7tjAQAAABgMBgNNiBBAWD7ykMQf1g+D5/qBMHwfB/iAEPWCDv+o5wfPg+8EAQBMHz6gQB8Hwfsu2uWDrkw/a9xgUaMwFxxwCLsWS7MHN7VJki8fVT75eTqpn7/Xt1QxW//lJVbnfNuFRTzwrLn/5GVBnKMy/FVs5dTYABARKCMRm//syxAQACHBHWZ2kAAEJi+jxpg1Qlry2AYclVGyMwNoFJ29hqHqa1TRqRMCoetKstcqUzHBxQdCJmVcSJ/EQdEo0FXSoNLGkav/ljqPtEvjAoAE0zuEoM3lMJlLY3Uj65AMeMzQN6QWeLFdCcxLNFy4dBVXVfZ1L+gIki4KPQVBb4dERU6CrsFSoaLVHv/Ev9Hw4ANdAAG7VBBhVdP/7MsQFAAh8YybVowABG49vdx6AAm8ODBg8FDy9pmwIBsHPVGiPMueyERxZdIFnSpkzI8fezb+0z6OJVv7HHw7XBWdXwa6/y34l6sq7uitTjFTEgsFYrFQqFQDAGrQXMbpbb3ZGQWPWvTnyyeKKHgQ/nvlUf/u74oOHp/8v3R/dl/UcSXDz+kMBEHI0p5efiDJqb/64foFiBSWqB2r/+zLEA4AIVDlivZGAAQePKiWmDNhtwTYmBYyxnJdmZwmMtZ8ZjInEMMpo+VFWESqmhsWBoClhKKEhCW5UNPCsFVgqImyWS6KTAhEUrYoO7kaAWIJCwQzbgl5XrFBB27xoQwfnY6kozJtFz0SgICsWM3VIKWs6qr0tgI15/pQomHhblqjycRUCWe1dUOpxFOiJ/ooQC+IEEBlVdh0r//swxAUACGCjMy0kSsDoiCAA95gpQaBI041ceup5PSlsv5QNXMyixFLVkTXWpYUBYy/lEl4YCdWlLoZ//zGlKUBEhV0SiFT+us7WdBXqAbQ2hdxgDfH4RQsI+kgo2RnWVECiCa0TrUSNjalrUVVKyg0yapYqqVlRTNVLFf/2P/1qVadsTFKlitVMQU1FMy45OS4zVVVVVVVVVVVV",Sr=X(se,Mr),Tr=j.Z.createLock(Mr),xr=new ie;let Or=!1;const kr=()=>{Or||(Tr(),Or=!0)},Lr=se.decodeAudioData(Sr.buffer,e=>{null===xr.audioBufferProperty.value&&(xr.audioBufferProperty.set(e),kr())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),xr.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),kr()});Lr&&Lr.then(e=>{null===xr.audioBufferProperty.value&&(xr.audioBufferProperty.set(e),kr())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),kr()});const Qr=new ti(xr,{soundClipOptions:{initialOutputLevel:.4},soundManagerOptions:{categoryName:"user-interface"}});ee.register("generalCloseSoundPlayer",Qr);const Rr=Qr,Nr="data:audio/mpeg;base64,//swxAAABswbPzQxABEQFyzDMlAAAAGoGRIdz0AAARQAAAAAMCd5QEAxBA4sPlz/BAMfw+ooc8EA/EAYKAh/qBBYfwfD4jB/4nD98ZXetEKIxIqnuursF7pTGkY4dNYcaZhOjzgxDNndb75ggdCsIvV3qoeM9HIX215a6Hftuc5FhwFRhvuJuhxbMPp+ir0KlAaCTHVtZuCsLISS//syxAYACGhJXR2jABEVIGmw8YpieZwGg6y5/p6bf69uls4kMS9HVvrXl8hI5WPBY8FawqGh3PYlLA0HQm6ZHvUe/4UB4ChNzls1AZIAAxJNQMBOy4KAeSsL0QgRcxFInzpyhsQ6tvdvaM160ZnbY/2bY19dTlJVJmhrQpT/Vf0eVjfzG////6PMYzmtqJdg0WqADvRwaGDBgBO5T//7MsQFgAkEZSA1swABDRYvdx5QAhmAEZHdFc2HHLBy/LcmfqWvq1yftVsQSJAxzSi25i5w6qqvMy/cjgNSoKu2Q1LHp1S4NCJQsHfLUSINPxK6oxocyIhmMRkMhQAQBuyhLerW2u5zoV4af2nULcHzwOiPxQjFU/nvIyflMKARabfnQqGI/v/FAIV6UJnPAgAca//9NZUgFEnVWuP/+zLEA4AIVL1vnYQAEQkIajDMpMja7T9a7DL+uzSEg2RRajlNmUzFPCBtL7Uyoa/iVlabnj1+Pi9f61X5WuJ9V1XhkOmtYltLGPI1//8s/0PMAKmLuWQPy0Hrh0Uy4C5MCaWoC5bwOjrQpVOQIn9JNDksr2zEBLvAp3LCI8Is9BX1FTsS50j5Us8OCIqEg73ZZ9QByyIAiddlUPU0//swxAUCSEyXLMywatDDBOHA8zBIRfBtlFDU3P7EItHsWE51WgaTVpJLPMzOMYE1qUSth4pRSd1WkZLqqrnGPUobBm4oDUDHol//+rJBUlwL0rYuAoOSuFITEsfTp5a46IhKRBQ6FQkBQCWJESR0KhIeNASKGnsJgJCf///1VUxBTUUzLjk5LjNVVVVVVVVVVVVVVVVVVVVVVVVV",Yr=X(se,Nr),Fr=j.Z.createLock(Nr),Gr=new ie;let qr=!1;const Hr=()=>{qr||(Fr(),qr=!0)},Zr=se.decodeAudioData(Yr.buffer,e=>{null===Gr.audioBufferProperty.value&&(Gr.audioBufferProperty.set(e),Hr())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),Gr.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),Hr()});Zr&&Zr.then(e=>{null===Gr.audioBufferProperty.value&&(Gr.audioBufferProperty.set(e),Hr())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),Hr()});const Ur=new ti(Gr,{soundClipOptions:{initialOutputLevel:.4},soundManagerOptions:{categoryName:"user-interface"}});ee.register("generalOpenSoundPlayer",Ur);const Kr=Ur;const Wr=new class{play(){}stop(){}};ee.register("nullSoundPlayer",Wr);const zr=Wr;var jr=i(4974);const Xr=new hs.Z("DynamicMarkerIO",{supertype:hs.Z.ObjectIO,applyState:_.noop,toStateObject:()=>({}),isValidValue:_.stubTrue,documentation:"IO Type used as a place holder for dynamic elements to be created when set for state."});jr.Z.register("DynamicMarkerIO",Xr);const Jr=Xr,_r=e=>{const t=e.split("."),i=t.pop(),n=_.get(window,t);return n?n[i].bind(n):null};We.Z.register("gracefulBind",_r);const $r=_r,eo=(e,t)=>class extends e{constructor(){for(var e,i=arguments.length,n=new Array(i),s=0;s{l.disableModals&&l.isModal||(e?l.showPopup(this.popupParent,l.isModal):l.hidePopup(this.popupParent,l.isModal))})}layout(e){this.layoutBounds&&(this.popupParent.matrix=dr.getLayoutMatrix(this.layoutBounds,e))}show(){this._nodeToFocusOnHide=this._focusOnHideNode||G.IKS.pdomFocusedNode,this.isShowingProperty.value=!0,this._focusOnShowNode&&this._focusOnShowNode.focusable&&this._focusOnShowNode.focus()}hide(){this.interruptSubtreeInput(),this.isShowingProperty.value=!1,this._nodeToFocusOnHide&&this._nodeToFocusOnHide.focusable&&this._nodeToFocusOnHide.focus()}get focusOnHideNode(){return this._focusOnHideNode}dispose(){this.hide(),this.isShowingProperty.dispose(),super.dispose()}};class to extends G.NBX{constructor(e,t){const i=(0,Y.ZP)()({children:[e]},t);super(i),this.show=i.show,this.hide=i.hide,this.layout=i.layout}}At.register("Popupable",eo);const io=eo,no=(0,nt.Z)("SUN");At.register("SunStrings",no);const so=no;class ro extends(io(ct,1)){constructor(e,t){var i;const n=(0,Y.ZP)()({xSpacing:10,ySpacing:10,topMargin:15,bottomMargin:15,leftMargin:null,maxWidthMargin:12,maxHeightMargin:12,closeButtonLength:18.2,closeButtonTopMargin:10,closeButtonRightMargin:10,title:null,titleAlign:"center",addAriaLabelledByFromTitle:!0,layoutStrategy:oo,closeButtonListener:()=>this.hide(),closeButtonColor:"black",closeButtonTouchAreaXDilation:0,closeButtonTouchAreaYDilation:0,closeButtonMouseAreaXDilation:0,closeButtonMouseAreaYDilation:0,closeButtonVoicingDialogTitle:null,closeButtonLastInPDOM:!1,openedSoundPlayer:Kr,closedSoundPlayer:Rr,sim:Vr("phet.joist.sim"),showCallback:null,hideCallback:null,layoutBounds:dr.DEFAULT_LAYOUT_BOUNDS,focusOnShowNode:null,cornerRadius:10,resize:!0,fill:"white",stroke:"black",backgroundPickable:!0,maxHeight:null,maxWidth:null,phetioType:ro.DialogIO,phetioState:!0,phetioVisiblePropertyInstrumented:!1,tagName:"div",ariaRole:"dialog"},t);n.xMargin=0,n.yMargin=0,null===n.leftMargin&&(n.leftMargin=n.xSpacing+n.closeButtonLength+n.closeButtonRightMargin),!n.maxWidth&&n.layoutBounds&&(n.maxWidth=ao(n.layoutBounds.width,n.maxWidthMargin)),!n.maxHeight&&n.layoutBounds&&(n.maxHeight=ao(n.layoutBounds.height,n.maxHeightMargin));const s=new ui.Z({priority:ui.Z.MEDIUM_PRIORITY,voicingCanAnnounceProperties:[G.LY3.voicingFullyEnabledProperty]}),r=new Ir({iconLength:n.closeButtonLength,baseColor:"transparent",buttonAppearanceStrategy:Hi.FlatAppearanceStrategy,xMargin:0,yMargin:0,listener:()=>{r.voicingSpeakContextResponse({utterance:s}),n.closeButtonListener()},pathOptions:{stroke:n.closeButtonColor},tandem:null===(i=n.tandem)||void 0===i?void 0:i.createTandem("closeButton"),phetioState:!1,phetioVisiblePropertyInstrumented:!1,phetioEnabledPropertyInstrumented:!1,soundPlayer:zr,tagName:"button",innerContent:so.a11y.closeStringProperty,voicingContextResponse:so.a11y.closedStringProperty});let o;if(n.closeButtonVoicingDialogTitle){const e="string"==typeof n.closeButtonVoicingDialogTitle?new J.Z(n.closeButtonVoicingDialogTitle):n.closeButtonVoicingDialogTitle;o=r.voicingNameResponse=new gs(so.a11y.titleClosePatternStringProperty,{title:e},{tandem:K.Z.OPT_OUT})}r.touchArea=r.bounds.dilatedXY(n.closeButtonTouchAreaXDilation,n.closeButtonTouchAreaYDilation),r.mouseArea=r.bounds.dilatedXY(n.closeButtonMouseAreaXDilation,n.closeButtonMouseAreaYDilation);let a=[n.title,e];n.closeButtonLastInPDOM?a.push(r):a.unshift(r),a=a.filter(e=>null!=e),n.focusOnShowNode=n.focusOnShowNode?n.focusOnShowNode:a[0].focusable?a[0]:r;const l=new G.SHm({children:n.title?[n.title,e]:[e],spacing:n.ySpacing,align:n.titleAlign}),h=new G.DbO(l,{topMargin:n.topMargin,bottomMargin:n.bottomMargin,leftMargin:n.leftMargin}),A=new G.DbO(r,{topMargin:n.closeButtonTopMargin,rightMargin:n.closeButtonRightMargin}),d=new G.BET({children:[h,A],spacing:n.xSpacing,align:"top"});super(d,n),this.isShowingProperty.lazyLink(e=>{e?(n.openedSoundPlayer.play(),n.showCallback&&n.showCallback()):(n.closedSoundPlayer.play(),n.hideCallback&&n.hideCallback())}),this.sim=n.sim,this.closeButton=r;const c=Ce.Z.multilink([this.sim.boundsProperty,this.sim.screenBoundsProperty,this.sim.scaleProperty,this.sim.selectedScreenProperty,this.isShowingProperty,this.localBoundsProperty],(e,t,i)=>{e&&t&&i&&n.layoutStrategy(this,e,t,i)});this.pdomOrder=a,n.title&&n.title.tagName&&n.addAriaLabelledByFromTitle&&this.addAriaLabelledbyAssociation({thisElementName:G.Grz.PRIMARY_SIBLING,otherNode:n.title,otherElementName:G.Grz.PRIMARY_SIBLING});const u=new G.F3H({keys:["escape","tab"],callback:(e,t)=>{const i=e.domEvent;if("escape"===t)i.preventDefault(),this.hide();else if("tab"===t&&G.ITT.isFullScreen()){const e=G.IKS.pdomFocus.trail.getUniqueId(),t=G.eDZ.getNextFocusable().id===e,n=G.eDZ.getPreviousFocusable().id===e;t&&n&&i.preventDefault()}}});this.addInputListener(u),this.disposeDialog=()=>{c.dispose(),A.dispose(),this.removeInputListener(u),u.dispose(),o&&o.dispose(),r.dispose(),s.dispose(),l.dispose(),d.removeAllChildren(),d.detach()}}dispose(){this.disposeDialog(),super.dispose()}}function oo(e,t,i,n){e.layoutBounds&&(e.center=e.layoutBounds.center)}function ao(e,t){return e>2*t?e-2*t:e}o=ro,_defineProperty(ro,"DialogIO",new hs.Z("DialogIO",{valueType:o,supertype:Jr})),At.register("Dialog",ro);var lo=i(1091);class ho extends K.Z{constructor(e,t,i){super(e,t,(0,Y.ZP)()({isValidTandemName:e=>K.Z.getRegexFromCharacterClass(lo.Z.BASE_DYNAMIC_TANDEM_CHARACTER_CLASS).test(e)},i))}}jr.Z.register("DynamicTandem",ho);const Ao=ho;i(1773);class co extends z.Z{constructor(e,t,i){const n=(0,Y.ZP)()({phetioState:!1,supportsDynamicState:!0,containerSuffix:"Container",phetioDynamicElementName:void 0},i);if(Array.isArray(t),n.tandem&&!n.phetioDynamicElementName&&(n.phetioDynamicElementName=n.tandem.name.slice(0,n.tandem.name.length-n.containerSuffix.length)),super(n),this.supportsDynamicState=n.supportsDynamicState,this.phetioDynamicElementName=n.phetioDynamicElementName,this.createElement=e,this.defaultArguments=t,this._archetype=this.createArchetype(),this.elementCreatedEmitter=new S.Z({parameters:[{valueType:z.Z,phetioType:n.phetioType.parameterTypes[0],name:"element"},{name:"phetioID",phetioType:ot.Z}],tandem:n.tandem.createTandem("elementCreatedEmitter"),phetioDocumentation:"Emitter that fires whenever a new dynamic element is added to the container."}),this.elementDisposedEmitter=new S.Z({parameters:[{valueType:z.Z,phetioType:n.phetioType.parameterTypes[0],name:"element"},{name:"phetioID",phetioType:ot.Z}],tandem:n.tandem.createTandem("elementDisposedEmitter"),phetioDocumentation:"Emitter that fires whenever a dynamic element is removed from the container."}),K.Z.PHET_IO_ENABLED&&(this.elementCreatedEmitter.addListener(e=>this.createdEventListener(e)),this.elementDisposedEmitter.addListener(e=>this.disposedEventListener(e))),this.notificationsDeferred=!1,this.deferredCreations=[],this.deferredDisposals=[],K.Z.PHET_IO_ENABLED&&this.supportsDynamicState&&!this.phetioIsArchetype){const e=phet.phetio.phetioEngine.phetioStateEngine;e.clearDynamicElementsEmitter.addListener((e,t)=>{this.tandem.hasAncestor(t)&&(this.clear({phetioState:e}),this.setNotificationsDeferred(!0))}),e.undeferEmitter.addListener(()=>{this.notificationsDeferred&&this.setNotificationsDeferred(!1)}),e.addSetStateHelper((e,t)=>{let i=!1,n=0;for(;this.deferredCreations.length>0;){if(n>200)throw new Error("Too many iterations in deferred creations, stillToSetIDs = "+t.join(", "));const e=this.deferredCreations[0];this.stateSetOnAllChildrenOfDynamicElement(e.tandem.phetioID,t)&&(this.notifyElementCreatedWhileDeferred(e),i=!0),n++}return i})}}stateSetOnAllChildrenOfDynamicElement(e,t){for(let i=0;i0;)this.notifyElementCreatedWhileDeferred(this.deferredCreations[0]);for(;this.deferredDisposals.length>0;)this.notifyElementDisposedWhileDeferred(this.deferredDisposals[0])}this.notificationsDeferred=e}get archetype(){return function(e){if(null===e)throw new Error("archetype should exist");return e}(this._archetype)}getMetadata(e){const t=super.getMetadata(e);return(0,Ei.Z)({phetioDynamicElementName:this.phetioDynamicElementName},t)}}jr.Z.register("PhetioDynamicElementContainer",co);const uo=co;var go=i(7374);const po=phetio.PhetioIDUtils.CAPSULE_SUFFIX,mo=new go.Z;class yo extends uo{constructor(e,t,i){const n=(0,Y.ZP)()({containerSuffix:po,disposeOnClear:!0},i);super(e,t,n),this.element=null,this.disposeOnClear=n.disposeOnClear}disposeElement(){super.disposeElement(this.element),this.element=null}hasElement(){return null!==this.element}getElement(){if(!this.element){for(var e=arguments.length,t=new Array(e),i=0;i1&&void 0!==arguments[1]&&arguments[1];return this.element=this.createDynamicElement(this.phetioDynamicElementName,e,K.Z.PHET_IO_ENABLED?this.phetioType.parameterTypes[0]:null),this.notifyElementCreated(this.element),this.element}}a=yo,_defineProperty(yo,"PhetioCapsuleIO",e=>(mo.has(e)||mo.set(e,new hs.Z(`PhetioCapsuleIO<${e.typeName}>`,{valueType:a,documentation:"An array that sends notifications when its values have changed.",parameterTypes:[e],metadataDefaults:{phetioDynamicElementName:null},addChildElement(t,i,n){const s=e.stateObjectToCreateElementArguments(n);return t.create(s,!0)}})),mo.get(e))),jr.Z.register("PhetioCapsule",yo);const fo=yo,wo=new Image,Bo=j.Z.createLock(wo);wo.onload=Bo,wo.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE0AAAA+CAYAAABuv5bfAAAACXBIWXMAABhMAAAYTAGIN/zbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxlJREFUeNrsW8tx2zAQBWPfpWNupiswc8oxcgVhbr6ZJbADswSWoBJQAtwBVUHoDqhbcmIWnuVEhpfSYkhKILU7s8MR/CgsnoH9AFDUtq1akkRRVMDj5aDpEcZoxuzji1qerKfuYImkJULa8JlWj+4CluTTwJ/F8Ph92Abji2Sm9RNmZ5h2mndT9HU7c6Ks/9qg/iQgZpJ+57I8cel1JNnnD8Zr9zC++qpmGhBlCcqQqDuPV/eg+RSEdY4ySAUprXmeWlmybASd0rYglycVBY/MKIOqJ5tZM1mexZG/vWKUNEBSdZF/aqAzrYHHykkdCrBVh2DfbYCEpQ5hVtJzLb25Jrcb5/NbSIR9mmkY4jcXtunJ+fwHt3suKfqD/0SflmC4bkV71XSpjBUb3hshhZ0Hrm8wifyuRDjyFfRvhAyK8GUnpI2Yp41+GDHTrScbtV/mkKcFL0KakBZY7Yl78ImzF2d6sG5VUQG2YeBqqmTCbe3DU6aG2uHALaX4lI3UWPps7BMqidsQm4JUxZAzNw81gcsJXEPgkh4bEwLbMG3UTBsLqm+f5flAtFGn2QkTR7WtmLih7689+hGfJoFgBqRRB6/VyG1UHzYw7J22vaKvG3BtPE/0VP/PG49GMGjLITrpUxHMbl0D7pvjS6jvqzF6xqeiLNfGs5GG4dgwsVxcxcTVinGRxcdG8WkSCIS06yYNnPEWtGVoSrybEriSKoPsmaeDq3rsqRxcg2WUiyvdvhXv8swoM+2ZiUsGtMVEVv/ArFBWbt15pB9ZnuLTFkbafuFcsLeFfCqCpMdncMqWkkg6ayopBkf9yByMW030JdXZALsHVwSsrHyu1YT4NAkEQtoixOdgpSQSxdz1LYDL0PmGIlwbt4Dbsv204h2sULiCwBkV1k0fro1mioMVEfFpQlqYgQDkFxEISsrxgqYBjZFrox6dNLzDrxm4Sk1wAjSmDLVRlqeQJqTNLhBkxDWoaxSSA7mo7C9vdnnuhAcvsSXYe74iv0bhqd1MjbvCNBNCWIRlH36OffAj+1hW4CexiXDZ3VT6J8AAo7gFqk0pOnsAAAAASUVORK5CYII=";const Po=wo,Do=new Image,Co=j.Z.createLock(Do);Do.onload=Co,Do.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE0AAAA+CAYAAABuv5bfAAAACXBIWXMAABhMAAAYTAGIN/zbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAttJREFUeNrsW91RwzAMdnu8txsQJqiZoGECyhtvlAmaDSgbZIRuQEYIG4QJCBukb7yFiHPvgisV+fJTJ5XudL24MpI/9Ge7mZRlqUZG24pfas93FadtKpiq8dG8awVjBE0LaM09LW9bwWRkOS2o+NNeo3jaaQ9LrLGPLhRdjSB/hYbvke/TLpQOKTyDGkjwuWTMuekip/nuaQDQ2nxeO8zbVxx1AZjvoMUVbxznQA7bGS66MszX8MSqIOVRqeGkK88aiqdtT3z3bgACoLJzGOerp0Fozayw2yItxVnIR09bWYAdxnJfDPSxuQ2t5y+fAMM8LUSM7pserefvf3JcH5TU8+chp2lTphdK6FQBgjRRAGiBQXEmuLD6wHBqXF8A4xFEYgSeVgoWbt4moLXYcsBlxERYvQ6lTxuspwkJaOfbe87V8fVYytwKZQo/37LlcmLLpNXfW6aCOOEIDP9nI7YWysZjKnEKoahanCFyESIXI3IJIhchcgUipwkbNSJbMG1MmDZuMcUu4bkg/mOYV3DksLEZU67p/LmDHslpUggGABp28Zq1PIbpgMKwt8b2RMHg2thb9QytfEVVsEgdH0unxBnVrZVLMgI0bVVFqspybewNtELxb6y5ctwFUSA1sVFymhQCAe2yQdvBBoLBK2TuCpGLiW1QYcllJ/JhXa5AtlDK6LF1L/sC7YkppxuMBUhXv2DuUGYEaFrCU3La+EHbjxwL9k+zXJpbTeQMTsMaI01nTjTFd8zF3CInE1hju25gd2PQuF35UHcTktOkEAhowyeXnBYjjWKE5Ja1YV+Ia+POcKugbYjtEWbQ0iPQXGzcSXhKThPQLqYQPCCFICYS78qjNXJtTLoALWH+4Uyd6aUIB2pko4SngCagDa4QQPMXCjw4BvJDZXf6gvD8EBycKAVPg37lTbBgERz566npvZ4FDxZgv+/F11+SDRX/PP3SKDM7ixwefgQYAIqW2LtFfuBbAAAAAElFTkSuQmCC";const Eo=Do;class bo extends G.BET{constructor(e,t,i){const n=(0,Y.ZP)()({fill:"white",highlightWidth:1,pickable:!1},i);n.spacing=e;const s=n.fill,r=G.Ilk.toColor(s).withAlpha(0),o={fill:new G.oas(0,0,0,t).addColorStop(0,r).addColorStop(.5,s).addColorStop(1,r)},a=new G.AeJ(0,0,n.highlightWidth,t,o),l=new G.AeJ(0,0,n.highlightWidth,t,o);n.children=[a,l],super(n)}}Te.Z.register("HighlightNode",bo);const vo=bo;class Vo extends((0,G.CHP)(G.NBX)){constructor(e,t,i){const n=(0,Y.ZP)()({cursor:"pointer",listener:null,highlightExtensionWidth:0,highlightExtensionHeight:0,highlightCenterOffsetX:0,highlightCenterOffsetY:0,pointerAreaDilationX:0,pointerAreaDilationY:0,enabledPropertyOptions:{phetioFeatured:!1},disabledOpacity:G.iaM.DISABLED_OPACITY,tagName:"button"},i),s=function(t){return new vo(e.width+n.highlightExtensionWidth,e.height+n.highlightExtensionHeight,{centerX:e.centerX+n.highlightCenterOffsetX,centerY:e.centerY+n.highlightCenterOffsetY,fill:t,pickable:!1})},r=s("white"),o=s("black");n.children=[e,r,o],super(n),this.buttonModel=new Yi(n);const a=new Li(this.buttonModel);this.interactionStateProperty=a,Ce.Z.multilink([a,t,this.buttonModel.enabledProperty],(e,t,i)=>{const n=!t.equals(G.Ilk.BLACK);r.visible=!n&&i&&(e===ki.OVER||e===ki.PRESSED),o.visible=n&&i&&(e===ki.OVER||e===ki.PRESSED)}),this.buttonModel.enabledProperty.link(e=>{this.cursor=e?n.cursor:null}),this._pressListener=this.buttonModel.createPressListener({tandem:n.tandem.createTandem("pressListener")}),this.addInputListener(this._pressListener),this.mouseArea=this.touchArea=Ke.bn.bounds(this.bounds.dilatedXY(n.pointerAreaDilationX,n.pointerAreaDilationY));const l=G.Nqr.getOuterLineWidthFromNode(this);this.focusHighlight=Ke.bn.bounds(this.bounds.shiftedY(-l))}isPDOMClicking(){return this._pressListener.pdomClickingProperty.get()}}Te.Z.register("JoistButton",Vo);const Io=ds.Z.a11y.keyboardHelp.tabToGetStartedStringProperty;class Mo extends ro{constructor(e,t,i){const n=(0,Y.ZP)()({titleAlign:"center",fill:"rgb( 214, 237, 249 )",ySpacing:15,phetioReadOnly:!0,phetioDynamicElement:!0,closeButtonVoicingDialogTitle:ds.Z.keyboardShortcuts.titleStringProperty,isDisposable:!1,addAriaLabelledByFromTitle:!1},i),s=new G.NBX({tagName:"div"}),r=n.tandem.createTandem("content"),o=[];e.forEach(e=>{const t=r.createTandem(e.tandem.name),i=e.createKeyboardHelpNode(t);o.push(i)});const a=new G.JxC(ds.Z.keyboardShortcuts.titleStringProperty,{font:new it({weight:"bold",size:24}),maxWidth:670,tagName:"h1",innerContent:ds.Z.a11y.keyboardHelp.keyboardShortcutsStringProperty}),l=new So,h=new G.SHm({children:[a,l],spacing:5,tagName:"div"});n.title=h,super(s,n),Ce.Z.multilink([t,this.isShowingProperty],(t,i)=>{const n=o[e.indexOf(t)];i&&(s.children=[n])}),this.addAriaLabelledbyAssociation({thisElementName:G.Grz.PRIMARY_SIBLING,otherNode:a,otherElementName:G.Grz.PRIMARY_SIBLING})}}class So extends((0,G.KwY)(G.NBX)){constructor(e){const t=(0,Y.ZP)()({readingBlockNameResponse:Io},e);super();const i=Gn.tab(),n=ss.labelWithIcon(ds.Z.keyboardShortcuts.toGetStartedStringProperty,i,{labelInnerContent:Io,iconOptions:{tagName:"p"}}),s=new G.BET({children:[n.icon,n.label],spacing:4});this.addChild(s),this.mutate(t)}}Te.Z.register("KeyboardHelpDialog",Mo);const To=ds.Z.a11y.keyboardHelp.keyboardShortcutsStringProperty;class xo extends Vo{constructor(e,t,i,n){const s=(0,Y.ZP)()({highlightExtensionWidth:8.6,highlightExtensionHeight:10,highlightCenterOffsetY:2,visiblePropertyOptions:{phetioFeatured:!0},innerContent:To,voicingNameResponse:To},n);let r=null;s.listener=()=>{r.getElement().show()};const o=new G.Eep(Eo,{scale:17.085/Eo.height,pickable:!1});super(o,i,s),r=new fo(i=>new Mo(e,t,{tandem:i,focusOnHideNode:this}),[],{tandem:s.tandem.createTandem("keyboardHelpDialogCapsule"),phetioType:fo.PhetioCapsuleIO(ro.DialogIO),disposeOnClear:!1}),i.link(e=>{o.image=e.equals(G.Ilk.BLACK)?Eo:Po})}}Te.Z.register("KeyboardHelpButton",xo);const Oo=xo;var ko=i(6692);class Lo extends ui.Z{constructor(e){const t=(0,Y.ZP)()({alertStableDelay:500},e);super(t)}}ko.Z.register("ActivationUtterance",Lo);const Qo=Math.PI/2.7,Ro=-1*Qo;class No extends Vo{constructor(e,t,i){const n=(0,Y.ZP)()({highlightExtensionWidth:8.6,highlightExtensionHeight:10,highlightCenterOffsetY:0,enabled:!(phet.chipper.isFuzzEnabled()&&phet.chipper.queryParameters.supportsVoicing),visiblePropertyOptions:{phetioFeatured:!0},phetioFeatured:!0,innerContent:ds.Z.a11y.soundToggle.labelStringProperty,voicingNameResponse:ds.Z.a11y.soundToggle.labelStringProperty},i);n.listener=()=>e.set(!e.get());const s=new G.NBX,r=new G.NBX,o=new G.AeJ(0,0,24.86,22,{fill:"transparent"});s.addChild(o),r.addChild(o);const a=new G.y$t((new Ke.bn).moveTo(9.8252,0).lineTo(4.519592,(16.94-5.929)/2).lineTo(1,(16.94-5.929)/2).arc(1,(16.94-5.929)/2+1,1,1.5*Math.PI,Math.PI,!0).lineToRelative(0,5.929-2).arc(1,10.4345,1,Math.PI,.5*Math.PI,!0).lineToRelative(4.519592-1,0).lineTo(9.8252,16.94).lineTo(9.8252,0).close(),{stroke:"black",lineWidth:1.5,lineJoin:"round",centerY:r.centerY,left:0});s.addChild(a),r.addChild(a);const l=new G.y$t((new Ke.bn).moveTo(0,0).lineTo(16.94*.52,16.94*.52).moveTo(0,16.94*.52).lineTo(16.94*.52,0),{stroke:"black",lineWidth:1.7,lineCap:"round",right:r.width,centerY:r.centerY});r.addChild(l);const h=new G.y$t((new Ke.bn).arc(0,0,10.6722,Qo,Ro,!0).moveToPoint(new Ze.Z(6.776,0).rotated(Qo)).arc(0,0,6.776,Qo,Ro,!0).moveToPoint(new Ze.Z(6.776-16.94*.23,0).rotated(Qo)).arc(0,0,6.776-16.94*.23,Qo,Ro,!0),{stroke:"black",lineWidth:1.7,lineCap:"round",right:s.width,centerY:s.centerY});s.addChild(h),super(new zi(Qe.anyOutputEnabledProperty,[{value:!0,createNode:()=>s},{value:!1,createNode:()=>r}],{maxHeight:18.7}),t,n),this.addLinkedElement(e,{tandemName:"property"});const A=new Lo;e.lazyLink(e=>{n.supportsAudioPreferences&&(this.setPDOMAttribute("aria-pressed",e),A.alert=e?ds.Z.a11y.soundToggle.alert.simSoundOnStringProperty:ds.Z.a11y.soundToggle.alert.simSoundOffStringProperty,this.alertDescriptionUtterance(A),G.LY3.voicingFullyEnabledProperty.value&&G.LY3.speakIgnoringEnabled(A))}),this.setPDOMAttribute("aria-pressed",e.get()),Qe.anySubcomponentEnabledProperty.link(e=>{this.enabled=e}),t.link(e=>{const t=e.equals(G.Ilk.BLACK)?"white":"black";a.stroke=t,l.stroke=t,h.stroke=t})}}Te.Z.register("NavigationBarAudioToggleButton",No);const Yo=No,Fo=new Image,Go=j.Z.createLock(Fo);Fo.onload=Go,Fo.src="data:image/png;base64,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";const qo=Fo,Ho=new Image,Zo=j.Z.createLock(Ho);Ho.onload=Zo,Ho.src="data:image/png;base64,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";const Uo=Ho;class Ko extends G.zch{constructor(e){const t=(0,Y.ZP)()({headingControl:!1,labelSpacing:10,valueLabelXSpacing:8,ySpacing:5,nestedContent:[],grow:1,layoutOptions:{stretch:!(null!=e&&e.headingControl)}},e);super(t),t.controlNode&&(this.enabledProperty.link(e=>{t.controlNode.enabled=e}),t.controlNode.layoutOptions={row:0,column:1,xAlign:"right"},this.addChild(t.controlNode)),t.labelNode&&(t.labelNode.layoutOptions={row:0,column:0,xAlign:"left",rightMargin:t.labelSpacing},this.addChild(t.labelNode)),t.descriptionNode&&t.labelNode?(t.descriptionNode.layoutOptions={row:1,column:0,horizontalSpan:2,xAlign:"left",stretch:!0,minContentWidth:480},this.addChild(t.descriptionNode)):t.descriptionNode&&(t.descriptionNode.layoutOptions={row:0,column:0,xAlign:"left"},this.addChild(t.descriptionNode)),this.disabledOpacity=G.iaM.DISABLED_OPACITY}}Te.Z.register("PreferencesControl",Ko);const Wo=Ko,zo="data:audio/mpeg;base64,//swxAAAA8ADNZQRgDGHni23MIAC1bbaiNgdgM+wEHBiogUAbxA4MT+////gh//8Mf4YzNI0kYiNYjDZaLJCYAZZgbhKQTNx5Vp34WpSu/bhLvzLYwWSHokUhx0EBR4FA/Mp8sOz3gcWfL9YqH7kKIkzd9fLvSkB201St7337UyHKf7X9Pf//Ue9/6irjy/l3s5gqCo1lPVlVSBj//syxAOACFB7hZyUgDEUCu008ZpKfZq0pMq3UhCDwXYfD+n5X+IUp5YiEYMB0CgRCwfQF0AmAUjAlZVJuE4ZaTbKK0AIJCxUAwrWLf////l1oFP9Yo2m1QI89G8bsISUXc8TjPs5pDlVUzUq1VJLFYcIlvdQS0P1lohZFx5hFpVDCPaSKlRsdgIslDzfeqxt8iVd+v6aClA3ydRso//7MsQDgAhYV13sGEqhEJFpcZMJqE0gGS8ZU3ekWmMRbO4kqZnMgAHAFiPmBRdQFgRZHZrTNwZcRTYLKU4qxy3ieKohBwSNif5UwYc4W/ywiEYAtIWoggTByJ+YPcFxgdYE5MVlD41ZJSYBdPF8gQIZtZPy/cZWxBR5Bm7WwZdGkolTRTQXLpSOcoUvf3in/dyBZwzRXAF3ieJEAxD/+zLEBAAIkJlXlYaAARIWb3MegACpLHqwdgk0mfJ913UT0LiL5W+nIh+DsKATQJ4F0E4PF8c7FxaaaCZ80SpqZbfX7J/99fN0p/Onf+zSaVmKSAKAgKAgMAAAAAEBCVMt4sfsyRdHO3PTH0SBFi4jhEgNBinEXeeDSKeby9zBMKun3/pKZ6L//H/6T/p/82bkkAyj/5m7WOWuRFpI//swxAOACDgvi7zDADEQkW289AoWMABHxkZCUEwfjodDiYmpiWw9NWjIAhJEFkFSo4GnxwiDsrBoGn/g0DT64Kgq9BUFQWBo3WFDf4B//ljZRUwaFSyREkApYqDmkM8qYgtylZx9ZL7knEF4rFKLgqfa4GHahJbD5q+ZdeybNpd1LOzqJVWdmJgs9uNUoK61I9Pf1runDP5da2kA//syxAQACHita6eYTzEMFSdkzAigHGL2uEMDLL6xtFmUuujunUP9ODzjFKbt2J5yt77uOmiJWXQ6GAbIjvu17WVn/dDEccwhLJLW6dXU/dcsEAvP8BAST22Qg8WJEX2Cxxs84/BnOt15rGZwVs2FEtKWVPRHZitdbuySkumtHlb0M/U5QwcQRYSLI91T/epbUqPPogEGy4Ldq0ABj//7MsQEgAfcrTesFG1owIRiqMyYmD9U8MBcisSsURTFgBykNZkSUjL+oDB8VGCT310AYfb2ZlVRgEvbASNp8ptD8y7lYYlvxtFsCgAAYAQABAzjzrwIrmT2cuLIZOOOhHHQELC2rOtlix709VXnYiej4dx2rz2Vd/xL6QQAAHCikADAVHicCJrfesiRcXCNaoKuuneW+r1dXxFDvZf/+zLEEQBFcCEJoLHi8JuFVvDMGGz/vqeWI50KHuGnJHLWAAQIl4qgkpSn8oGq1rUCoSk3UAhEYtCgKWWwwIDo////4sLVTEFNRTMuOTkuNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",jo=X(se,zo),Xo=j.Z.createLock(zo),Jo=new ie;let _o=!1;const $o=()=>{_o||(Xo(),_o=!0)},ea=se.decodeAudioData(jo.buffer,e=>{null===Jo.audioBufferProperty.value&&(Jo.audioBufferProperty.set(e),$o())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),Jo.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),$o()});ea&&ea.then(e=>{null===Jo.audioBufferProperty.value&&(Jo.audioBufferProperty.set(e),$o())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),$o()});const ta=new ti(Jo,{soundClipOptions:{initialOutputLevel:.2},soundManagerOptions:{categoryName:"user-interface"}});ee.register("switchToLeftSoundPlayer",ta);const ia=ta,na="data:audio/mpeg;base64,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",sa=X(se,na),ra=j.Z.createLock(na),oa=new ie;let aa=!1;const la=()=>{aa||(ra(),aa=!0)},ha=se.decodeAudioData(sa.buffer,e=>{null===oa.audioBufferProperty.value&&(oa.audioBufferProperty.set(e),la())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),oa.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),la()});ha&&ha.then(e=>{null===oa.audioBufferProperty.value&&(oa.audioBufferProperty.set(e),la())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),la()});const Aa=new ti(oa,{soundClipOptions:{initialOutputLevel:.2},soundManagerOptions:{categoryName:"user-interface"}});ee.register("switchToRightSoundPlayer",Aa);const da=Aa;i(6212);const ca=new Q.Z(60,30);class ua extends((0,G.CHP)(G.NBX)){constructor(e,t,i,n){const s=(0,Y.ZP)()({size:ca,toggleWhileDragging:null,dragThreshold:3,toggleThreshold:1,thumbFill:null,thumbStroke:"black",thumbTouchAreaXDilation:8,thumbTouchAreaYDilation:8,thumbMouseAreaXDilation:0,thumbMouseAreaYDilation:0,trackFillLeft:null,trackFillRight:null,trackStroke:"black",cursor:"pointer",disabledOpacity:G.iaM.DISABLED_OPACITY,switchToLeftSoundPlayer:ia,switchToRightSoundPlayer:da,tandem:K.Z.REQUIRED,tandemNameSuffix:"Switch",phetioEventType:q.Z.USER,phetioReadOnly:z.Z.DEFAULT_OPTIONS.phetioReadOnly,visiblePropertyOptions:{phetioFeatured:!0},phetioEnabledPropertyInstrumented:!0,phetioFeatured:!0,tagName:"button",ariaRole:"switch",a11yName:null,leftValueContextResponse:null,rightValueContextResponse:null},n);let r=null;s.trackFillLeft&&s.trackFillRight||(r=new G.oas(0,0,0,s.size.height).addColorStop(0,"rgb( 40, 40, 40 )").addColorStop(1,"rgb( 200, 200, 200 )")),s.trackFillLeft=s.trackFillLeft||r,s.trackFillRight=s.trackFillRight||r,s.thumbFill=s.thumbFill||new G.oas(0,0,0,s.size.height).addColorStop(0,"white").addColorStop(1,"rgb( 200, 200, 200 )"),s.a11yName&&(s.voicingNameResponse=s.a11yName,s.innerContent=s.a11yName),super(),_defineProperty(this,"onInputEmitter",new S.Z);const o=s.size.height/2,a=new G.AeJ(0,0,s.size.width,s.size.height,o,o,{stroke:s.trackStroke,fill:s.trackFillLeft});this.addChild(a);const l=new G.AeJ(0,0,s.size.width,s.size.height,o,o,{stroke:s.trackStroke,fill:s.trackFillRight});this.addChild(l);const h=new G.AeJ(0,0,.5*s.size.width,s.size.height,o,o,{fill:s.thumbFill,stroke:s.thumbStroke});this.addChild(h),(s.thumbTouchAreaXDilation||s.thumbTouchAreaYDilation)&&(h.touchArea=Ke.bn.roundRect(-s.thumbTouchAreaXDilation,-s.thumbTouchAreaYDilation,.5*s.size.width+2*s.thumbTouchAreaXDilation,s.size.height+2*s.thumbTouchAreaYDilation,o,o)),(s.thumbMouseAreaXDilation||s.thumbMouseAreaYDilation)&&(h.mouseArea=Ke.bn.roundRect(-s.thumbMouseAreaXDilation,-s.thumbMouseAreaYDilation,.5*s.size.width+2*s.thumbMouseAreaXDilation,s.size.height+2*s.thumbMouseAreaYDilation,o,o));const A=e=>{const i=a.lineWidth/2;e===t?h.left=-i:h.right=s.size.width+i,l.rectWidth=h.right-i,this.setPDOMAttribute("aria-pressed",e!==t),this.setPDOMAttribute("aria-checked",e!==t)};e.link(A);const d=s.dragThreshold*s.dragThreshold,c=new Ze.Z(0,0);let u=!1;const g=new Me.Z(t=>{e.value=t,this.onInputEmitter.emit()},{parameters:[{validValues:[t,i],phetioPrivate:!0}],tandem:s.tandem.createTandem("toggleAction"),phetioDocumentation:"Occurs when the switch is toggled via user interaction",phetioReadOnly:s.phetioReadOnly,phetioEventType:q.Z.USER});this.onInputEmitter.addListener(()=>{e.value===t?s.switchToLeftSoundPlayer.play():s.switchToRightSoundPlayer.play();const n=e.value===i?s.rightValueContextResponse:s.leftValueContextResponse;n&&(this.alertDescriptionUtterance(n),this.voicingSpeakResponse({contextResponse:ui.Z.alertableToText(n)}))});const p=()=>h.centerX!e||"move"!==e.type&&"enter"!==e.type||_.includes(e.trail.nodes,h),start:()=>{c.setXY(0,0),u=!1},drag:(t,i)=>{c.add(i.modelDelta),u=u||c.magnitudeSquared>d;const n=i.getCurrentTarget().globalToLocalPoint(t.pointer.point),r=h.width/2,o=a.lineWidth/2;h.centerX=R.Z.clamp(n.x,r-o,s.size.width-r+o),l.rectWidth=h.right-o;const A=n.x<(1-2*s.toggleThreshold)*r||n.x>(2*s.toggleThreshold-1)*r+s.size.width,m=p();(!0===s.toggleWhileDragging||A&&null===s.toggleWhileDragging)&&e.value!==m&&g.execute(m)},end:()=>{const n=e.value===t?i:t,s=u?p():n;e.value!==s&&g.execute(s),A(s)},canClick:!0});this.addInputListener(m),this.mutate(s),this.addLinkedElement(e,{tandemName:"property"}),this.switchToLeftSoundPlayer=s.switchToLeftSoundPlayer,this.switchToRightSoundPlayer=s.switchToRightSoundPlayer,this.disposeToggleSwitch=()=>{a.dispose(),l.dispose(),e.unlink(A),g.dispose(),m.dispose(),this.onInputEmitter.dispose()}}dispose(){this.disposeToggleSwitch(),super.dispose()}}At.register("ToggleSwitch",ua);class ga extends G.SHm{constructor(e){const t=(0,Y.ZP)()({spacing:XA.CONTENT_SPACING,titleNode:null,contentNode:null,contentNodeOptions:{},contentLeftMargin:30},e),i=new G.Lkj({matchVertical:!1}),n=[];if(t.titleNode&&n.push(i.createBox(t.titleNode,{xAlign:"left"})),t.contentNode){const e=(0,Y.JA)({children:[t.contentNode]},t.contentNodeOptions);n.push(i.createBox(new G.NBX(e),{leftMargin:t.contentLeftMargin,xAlign:"left"}))}t.children=n,super(t)}}Te.Z.register("PreferencesPanelSection",ga);const pa=ga,ma=new it({weight:"bold",size:16}),ya=new it(16),fa={TOGGLE_SWITCH_OPTIONS:{size:new Q.Z(36,18),trackFillRight:"#64bd5a",enabled:!(phet.chipper.isFuzzEnabled()&&phet.chipper.queryParameters.supportsVoicing),voicingIgnoreVoicingManagerProperties:!0,tandem:K.Z.OPT_OUT},CONTROL_LABEL_OPTIONS:{font:ma,maxWidth:360},CONTROL_DESCRIPTION_OPTIONS:{font:ya,lineWrap:"stretch"}},wa=ds.Z.preferences.tabs.audio.sounds.titleStringProperty,Ba=ds.Z.preferences.tabs.audio.sounds.extraSounds.titleStringProperty,Pa=ds.Z.preferences.tabs.audio.sounds.descriptionStringProperty,Da=ds.Z.preferences.tabs.audio.sounds.extraSounds.descriptionStringProperty,Ca=ds.Z.a11y.preferences.tabs.audio.sounds.soundsOnStringProperty,Ea=ds.Z.a11y.preferences.tabs.audio.sounds.soundsOffStringProperty,ba=ds.Z.a11y.preferences.tabs.audio.sounds.extraSounds.extraSoundsOnStringProperty,va=ds.Z.a11y.preferences.tabs.audio.sounds.extraSounds.extraSoundsOffStringProperty,Va=ds.Z.a11y.preferences.tabs.labelledDescriptionPatternStringProperty;class Ia extends pa{constructor(e,t){const i=(0,Y.ZP)()({includeTitleToggleSwitch:!0},t),n=new G.xvT(wa,XA.PANEL_SECTION_LABEL_OPTIONS),s=new gs(Va,{label:wa,description:Pa},{tandem:K.Z.OPT_OUT}),r=new G.JxC(Pa,(0,Ei.Z)({},XA.PANEL_SECTION_CONTENT_OPTIONS,{readingBlockNameResponse:s})),o=new ua(e.soundEnabledProperty,!1,!0,(0,Y.JA)({visible:i.includeTitleToggleSwitch,a11yName:wa,leftValueContextResponse:Ea,rightValueContextResponse:Ca},fa.TOGGLE_SWITCH_OPTIONS)),a=new Wo({labelNode:n,descriptionNode:r,controlNode:o});let l=null;if(e.supportsExtraSound){const t=new G.xvT(Ba,XA.PANEL_SECTION_CONTENT_OPTIONS),i=new fi(e.extraSoundEnabledProperty,t,{labelTagName:"label",labelContent:Ba,voicingNameResponse:Ba,voicingIgnoreVoicingManagerProperties:!0,voiceNameResponseOnSelection:!1,checkedContextResponse:ba,uncheckedContextResponse:va,tandem:K.Z.OPT_OUT}),n=new gs(Va,{label:Ba,description:Da},{tandem:K.Z.OPT_OUT}),s=new G.yhY(Da,(0,Ei.Z)({},XA.PANEL_SECTION_CONTENT_OPTIONS,{lineWrap:300,maxHeight:100,readingBlockNameResponse:n}));l=new G.SHm({children:[i,s],align:"left",spacing:5,tagName:"div"});const r=e=>{l.enabled=e,i.inputEnabled=e};e.soundEnabledProperty.link(r)}super({titleNode:a,contentNode:l})}}Te.Z.register("SoundPanelSection",Ia);const Ma=Ia;var Sa=i(5428);class Ta extends Wi{constructor(e,t,i){const n=(0,Y.ZP)()({cursor:"pointer",baseColor:"white",stroke:"black",lineWidth:1,cornerRadius:4,xMargin:7,yMargin:5,touchAreaXDilation:7,touchAreaYDilation:7,arrowHeight:20,arrowWidth:20*Math.sqrt(3)/2,arrowFill:"black",arrowStroke:null,arrowLineWidth:1,numberOfArrows:1,arrowSpacing:-10,fireOnHold:!0,fireOnHoldDelay:400,fireOnHoldInterval:100,startCallback:_.noop,endCallback:_.noop},i);n.listener=t;const s=new Ke.bn;for(let r=0;re.x).concat(e.points.map(e=>e.x)))}getIntersectedXValues(e){const t=this.getCombinedXValues(e),i=[];for(let s=0;sn)&&(s===t.length-2||o.xnew Ze.Z(i,t(this.evaluate(i),e.evaluate(i)))))}binaryPointwiseOperation(e,t){return this.binaryXOperation(e,t,this.getCombinedXValues(e))}binaryIntersectingOperation(e,t){return this.binaryXOperation(e,t,this.getIntersectedXValues(e))}plus(e){return this.binaryPointwiseOperation(e,(e,t)=>e+t)}minus(e){return this.binaryPointwiseOperation(e,(e,t)=>e-t)}min(e){return this.binaryIntersectingOperation(e,Math.min)}max(e){return this.binaryIntersectingOperation(e,Math.max)}withXValues(e){return new Oa(e.map(e=>new Ze.Z(e,this.evaluate(e))))}inverted(){const e=this.points.map(e=>new Ze.Z(e.y,e.x));return e.length>1&&e[0].x>e[1].x&&e.reverse(),new Oa(e)}static sum(){for(var e=arguments.length,t=new Array(e),i=0;ie.plus(t))}static min(){for(var e=arguments.length,t=new Array(e),i=0;ie.min(t))}static max(){for(var e=arguments.length,t=new Array(e),i=0;ie.max(t))}static constant(e){return new Oa([new Ze.Z(0,e)])}static linear(e,t){return new Oa([new Ze.Z(0,t),new Ze.Z(1,e+t)])}static sortedUniqueEpsilon(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-10;e=_.sortBy(e);for(let i=0;i{let n=La,s=La;return e.hasOwnProperty(t)&&(n=e[t]),e.hasOwnProperty(i)&&(s=e[i]),n!==La?e[i]=n:delete e[i],s!==La?e[t]=s:delete e[t],e};We.Z.register("swapObjectKeys",Qa);const Ra=Qa,Na="data:audio/mpeg;base64,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qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr/+xDE1gPAAAGkAAAAIAAANIAAAASqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqv/7EMTWA8AAAaQAAAAgAAA0gAAABKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//sQxNYDwAABpAAAACAAADSAAAAEqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr/+xDE1gPAAAGkAAAAIAAANIAAAASqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqg==",Ya=X(se,Na),Fa=j.Z.createLock(Na),Ga=new ie;let qa=!1;const Ha=()=>{qa||(Fa(),qa=!0)},Za=se.decodeAudioData(Ya.buffer,e=>{null===Ga.audioBufferProperty.value&&(Ga.audioBufferProperty.set(e),Ha())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),Ga.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),Ha()});Za&&Za.then(e=>{null===Ga.audioBufferProperty.value&&(Ga.audioBufferProperty.set(e),Ha())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),Ha()});const Ua=Ga,Ka="data:audio/mpeg;base64,//uQxAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAAAEAAAE/QCbm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5vBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4P////////////////////////////////8AAAAUTEFNRTMuMTAwBJgAAAAAAAAAABUgJAXmQQABpAAABP2CPnqIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//ugxAAAAZABXJQAACjSBy/7MvJBlbA24AeHxx+Z+DJ48Acl/O7e/c+wAAAAAAAEggodS1KhDIMHY9Flj8OAaLhIDnqje9htgSxoj0q3Fksjnr007hUgBFiJkAAAAJRul9HpGarkErUNUSqvEO5RRnr0CYblhVBIAACITTDJN3xrY6pMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpcJoKAAAAAArSgBAzM3OFUFV0GH4AAagOAQ5P8ZoVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sgxNoAw8QpV9zxgCg6A+w4kAkEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EMTlgMI4H1/EgQggMYHqUBQYBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQxNYDwAAB/gAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=",Wa=X(se,Ka),za=j.Z.createLock(Ka),ja=new ie;let Xa=!1;const Ja=()=>{Xa||(za(),Xa=!0)},_a=se.decodeAudioData(Wa.buffer,e=>{null===ja.audioBufferProperty.value&&(ja.audioBufferProperty.set(e),Ja())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),ja.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),Ja()});_a&&_a.then(e=>{null===ja.audioBufferProperty.value&&(ja.audioBufferProperty.set(e),Ja())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),Ja()});const $a=ja,el=new ti(Ua,{soundClipOptions:{initialOutputLevel:.2},soundManagerOptions:{categoryName:"user-interface"}});ee.register("generalBoundaryBoopSoundPlayer",el);const tl=el,il=new ti($a,{soundClipOptions:{initialOutputLevel:.2},soundManagerOptions:{categoryName:"user-interface"}});ee.register("generalSoftClickSoundPlayer",il);const nl=il,sl=new ti(Ua,{soundClipOptions:{initialOutputLevel:.2,initialPlaybackRate:1/Math.pow(2,1/6)},soundManagerOptions:{categoryName:"user-interface"}}),rl=new ti($a,{soundClipOptions:{initialOutputLevel:.2,initialPlaybackRate:1/Math.pow(2,1/6)},soundManagerOptions:{categoryName:"user-interface"}}),ol=e=>R.Z.roundToInterval(e,1e-9),al=()=>1,ll=()=>{};class hl{constructor(e,t){const i=(0,Y.ZP)()({middleMovingUpSoundPlayer:nl,middleMovingDownSoundPlayer:rl,middleMovingUpPlaybackRateMapper:al,middleMovingDownPlaybackRateMapper:al,numberOfMiddleThresholds:null,interThresholdDelta:null,constrainValue:ol,minSoundPlayer:sl,maxSoundPlayer:tl,minimumInterMiddleSoundTime:.035},t);null===i.numberOfMiddleThresholds&&null===i.interThresholdDelta&&(i.numberOfMiddleThresholds=5),null!==i.numberOfMiddleThresholds?this.interThresholdDistance=e.getLength()/(i.numberOfMiddleThresholds+1):null!==i.interThresholdDelta?this.interThresholdDistance=i.interThresholdDelta:this.interThresholdDistance=e.getLength()/2,this.valueRange=e,this.middleMovingUpSoundPlayer=i.middleMovingUpSoundPlayer,this.middleMovingDownSoundPlayer=i.middleMovingDownSoundPlayer,this.middleMovingUpPlaybackRateMapper=i.middleMovingUpPlaybackRateMapper,this.middleMovingDownPlaybackRateMapper=i.middleMovingDownPlaybackRateMapper,this.minSoundPlayer=i.minSoundPlayer,this.maxSoundPlayer=i.maxSoundPlayer,this.minimumInterMiddleSoundTime=i.minimumInterMiddleSoundTime,this.timeOfMostRecentMiddleSound=0,this.constrainValue=i.constrainValue}playSoundIfThresholdReached(e,t){if(e!==t){const i=this.constrainValue(e),n=this.constrainValue(t),s=this.getSurroundingThresholds(n),r=this.getSurroundingThresholds(i),o=1===s.length&&1===r.length&&Math.abs(s[0]-r[0])>this.interThresholdDistance||1===s.length&&2===r.length&&s[0]!==r[0]&&s[0]!==r[1]||2===s.length&&1===r.length&&r[0]!==s[0]&&r[0]!==s[1]||2===s.length&&2===r.length&&r[0]!==s[0],a=1===r.length&&(2===s.length||s[0]!==r[0]);(o||a||i===this.valueRange.min||i===this.valueRange.max)&&this.playSoundForValueChange(e,t)}}playSoundForValueChange(e,t){const i=this.constrainValue(e),n=this.constrainValue(t);if(i!==n||t!==e&&(e===this.valueRange.min||e===this.valueRange.max))if(e===this.valueRange.min&&this.minSoundPlayer!==hl.USE_MIDDLE_SOUND)this.minSoundPlayer.play();else if(e===this.valueRange.max&&this.maxSoundPlayer!==hl.USE_MIDDLE_SOUND)this.maxSoundPlayer.play();else{const t=se.currentTime;if(t-this.timeOfMostRecentMiddleSound>this.minimumInterMiddleSoundTime){let s,r;i>n?(s=this.middleMovingUpPlaybackRateMapper,r=this.middleMovingUpSoundPlayer):(s=this.middleMovingUpPlaybackRateMapper,r=this.middleMovingDownSoundPlayer),s!==al&&r.setPlaybackRate(s(e)),r.play(),this.timeOfMostRecentMiddleSound=t}}}getSurroundingThresholds(e){const t=Math.floor(R.Z.roundToInterval((e-this.valueRange.min)/this.interThresholdDistance,1e-7)),i=R.Z.roundToInterval(t*this.interThresholdDistance+this.valueRange.min,1e-7),n=[i];if(i!==e){const e=Math.min(R.Z.roundToInterval(i+this.interThresholdDistance,1e-7),this.valueRange.max);e>i&&n.push(e)}return n}}_defineProperty(hl,"NO_SOUND",new hl(new Sa.Z(0,1),{middleMovingUpSoundPlayer:zr,minSoundPlayer:zr,maxSoundPlayer:zr})),_defineProperty(hl,"USE_MIDDLE_SOUND",{play:ll,stop:ll}),ee.register("ValueChangeSoundPlayer",hl);const Al=hl;var dl=i(2573);const cl=e=>""+e,ul={withNameResponse:!1,withObjectResponse:!0,onlyOnValueChange:!0},gl=(e,t)=>class extends((0,G.CHP)(e)){constructor(){for(var e=arguments.length,i=new Array(e),n=0;n{const t=this._getMappedValue(e.min),i=this._getMappedValue(e.max);this.setPDOMAttribute("min",t),this.setPDOMAttribute("max",i),this._updateSiblingStepAttribute()};this._enabledRangeProperty.link(l);const h=()=>{const e=this._getMappedValue();this.setPDOMAttribute("aria-valuenow",e),this.inputValue=e};this._valueProperty.link(h),this._disposeAccessibleValueHandler=()=>{this._enabledRangeProperty.unlink(l),this._valueProperty.unlink(h),this._dependenciesMultilink&&this._dependenciesMultilink.dispose(),this._panTargetNode=null}}setA11yDependencies(e){this._dependenciesMultilink&&this._dependenciesMultilink.dispose(),this._dependenciesMultilink=Ce.Z.multilinkAny(e.concat([this._valueProperty]),()=>{this._updateAriaValueText(this._oldValue),this._oldValue=this._valueProperty.value})}_updateAriaValueText(e){const t=this._getMappedValue(),i=this._a11yCreateAriaValueText(t,this._valueProperty.value,e);let n=G.eDZ.unwrapStringProperty(i);this._a11yRepeatEqualValueText&&this.ariaValueText&&n===this.ariaValueText.replace(new RegExp(" ","g"),"")&&(n=this.ariaValueText+" "),this.ariaValueText=n}alertContextResponse(){let e=!1;if(this._a11yCreateContextResponseAlert){const t=this._getMappedValue(),i=this._a11yCreateContextResponseAlert(t,this._valueProperty.value,this._valueOnStart);i&&(this._contextResponseUtterance.alert=i,this.forEachUtteranceQueue(t=>{e||(t.hasUtterance(this._contextResponseUtterance)?(e=!0,this._timesChangedBeforeAlerting++):this._timesChangedBeforeAlerting=1),this._contextResponseUtterance.alertStableDelay=Math.min(this._contextResponseMaxDelay,this._timesChangedBeforeAlerting*this._contextResponsePerValueChangeDelay),t.addToBack(this._contextResponseUtterance)}))}}reset(){this._a11yCreateAriaValueText.reset&&this._a11yCreateAriaValueText.reset(),this._a11yCreateContextResponseAlert&&this._a11yCreateContextResponseAlert.reset&&this._a11yCreateContextResponseAlert.reset(),this._timesChangedBeforeAlerting=0,this._updateAriaValueText(null)}_getMappedValue(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._valueProperty.value;return this._a11yMapPDOMValue(e)}getAccessibleValueHandlerInputListener(){return{keydown:this.handleKeyDown.bind(this),keyup:this.handleKeyUp.bind(this),input:this.handleInput.bind(this),change:this.handleChange.bind(this),blur:this.handleBlur.bind(this)}}handleKeyDown(e){const t=e.domEvent,i=G.ntP.getEventCode(t);if(i&&(this._shiftKey=t.shiftKey,G.ntP.isKeyEvent(t,G.ntP.KEY_TAB)&&(this._blockInput=!0),this.enabledProperty.get()&&G.ntP.isRangeKey(t)&&(t.preventDefault(),!t.metaKey))){e.pointer.reserveForKeyboardDrag();let n=!0;this._anyKeysDown()||this._onInteractionStart(e),this._rangeKeysDown[i]=!0;let s=this._valueProperty.get();if(G.ntP.isAnyKeyEvent(t,[G.ntP.KEY_END,G.ntP.KEY_HOME]))i===G.ntP.KEY_END?s=this._enabledRangeProperty.get().max:i===G.ntP.KEY_HOME&&(s=this._enabledRangeProperty.get().min);else{let e;i===G.ntP.KEY_PAGE_UP||i===G.ntP.KEY_PAGE_DOWN?(e=this.pageKeyboardStep,i===G.ntP.KEY_PAGE_UP?s=this._valueProperty.get()+e:i===G.ntP.KEY_PAGE_DOWN&&(s=this._valueProperty.get()-e)):G.ntP.isArrowKey(t)&&(e=t.shiftKey?this.shiftKeyboardStep:this.keyboardStep,n=!t.shiftKey,i===G.ntP.KEY_RIGHT_ARROW||i===G.ntP.KEY_UP_ARROW?s=this._valueProperty.get()+e:i!==G.ntP.KEY_LEFT_ARROW&&i!==G.ntP.KEY_DOWN_ARROW||(s=this._valueProperty.get()-e),this._roundToStepSize&&(s=pl(s,this._valueProperty.get(),e)))}const r=this._a11yMapValue(s,this._valueProperty.get());let o=r;n&&(o=this._constrainValue(r)),this._valueProperty.set(R.Z.clamp(o,this._enabledRangeProperty.get().min,this._enabledRangeProperty.get().max)),this._onInput(e);const a=this._panTargetNode||this;G.Yj2.initialized&&G.Yj2.listener.panToNode(a,!0,a.limitPanDirection)}}handleKeyUp(e){const t=G.ntP.getEventCode(e.domEvent);this._allKeysUp()||(G.ntP.SHIFT_KEYS.includes(t)&&(this._shiftKey=!1),this.enabledProperty.get()&&G.ntP.isRangeKey(e.domEvent)&&(this._rangeKeysDown[t]=!1,this._allKeysUp()&&this._onInteractionEnd(e)))}handleChange(e){this._a11yInputHandled||this.handleInput(e),this._a11yInputHandled=!1}handleInput(e){if(this.enabledProperty.get()&&!this._blockInput){this._a11yInputHandled=!0;let t=this._valueProperty.get();const i=parseFloat(e.domEvent.target.value),n=this._shiftKey?this.shiftKeyboardStep:this.keyboardStep,s=this._getMappedValue();this._onInteractionStart(e),i>s?t=this._valueProperty.get()+n:i!e)}_anyKeysDown(){return!!_.find(this._rangeKeysDown,e=>e)}_updateSiblingStepAttribute(){const e=Math.min(this.keyboardStep,this.shiftKeyboardStep,this.pageKeyboardStep);let t=Math.pow(10,-R.Z.numberOfDecimalPlaces(e));const i=this._getMappedValue(this._enabledRangeProperty.get().min),n=this._getMappedValue(this._enabledRangeProperty.get().max);t/(n-i)<1e-5&&(t=n/100),this.setPDOMAttribute("step",t)}voicingOnEndResponse(e,t){const i=(0,Y.JA)({},this._voicingOnEndResponseOptions,t),n=e!==this._valueProperty.value,s=this._valueProperty.value===this._enabledRangeProperty.value.min||this._valueProperty.value===this._enabledRangeProperty.value.max,r=!(!i.withNameResponse||!this.voicingNameResponse)||!(!i.withObjectResponse||!this.voicingObjectResponse);(!i.onlyOnValueChange||s||n)&&r&&this.voicingSpeakFullResponse({nameResponse:i.withNameResponse?this.voicingNameResponse:null,objectResponse:i.withObjectResponse?this.voicingObjectResponse:null,hintResponse:null})}dispose(){this._disposeAccessibleValueHandler(),super.dispose()}};At.register("AccessibleValueHandler",gl);const pl=function(e,t,i){let n=e;return 0!==i&&(n=R.Z.roundSymmetric(n/i)*i,n=ml(n,t,i)),n},ml=function(e,t,i){let n=e;const s=Math.abs(e-t),r=s>i,o=R.Z.equalsEpsilon(s,i,1e-14);return r&&!o&&(n+=e>t?-i:i),n};gl.DEFAULT_TAG_NAME="input";const yl=gl,fl=(e,t)=>class extends(yl(e,t)){constructor(){for(var e=arguments.length,i=new Array(e),n=0;n{this.removeInputListener(o)}}dispose(){this._disposeAccessibleSlider(),super.dispose()}};At.register("AccessibleSlider",fl);const wl=fl;class Bl{constructor(e,t,i,n){let s=arguments.length>4&&void 0!==arguments[4]&&arguments[4];this.a1=e,this.a2=t,this.b1=i,this.b2=n,this.clamp=s}evaluate(e){return Pl(this.a1,this.a2,this.b1,this.b2,e,this.clamp)}inverse(e){return Pl(this.b1,this.b2,this.a1,this.a2,e,this.clamp)}}const Pl=(e,t,i,n,s,r)=>{let o=R.Z.linear(e,t,i,n,s);if(r){const e=Math.max(i,n),t=Math.min(i,n);o=R.Z.clamp(o,t,e)}return o};Br.Z.register("LinearFunction",Bl);class Dl extends((0,G.pL8)(G.NBX)){constructor(e,t,i,n){super(),this.rangeProperty=i instanceof Sa.Z?new J.Z(i):i;const s=(0,Y.ZP)()({size:new Q.Z(100,5),startDrag:_.noop,drag:_.noop,endDrag:_.noop,constrainValue:_.identity,enabledRangeProperty:this.rangeProperty,soundGenerator:Sl.DEFAULT_SOUND,valueChangeSoundGeneratorOptions:{},voicingOnEndResponse:_.noop,leftVisualOverflow:0,rightVisualOverflow:0,tandem:K.Z.REQUIRED,tandemNameSuffix:"TrackNode"},n);s.soundGenerator===Sl.DEFAULT_SOUND?s.soundGenerator=new Al(this.rangeProperty.value,s.valueChangeSoundGeneratorOptions||{}):null===s.soundGenerator&&(s.soundGenerator=Al.NO_SOUND),this.leftVisualOverflow=s.leftVisualOverflow,this.rightVisualOverflow=s.rightVisualOverflow,this.minimumSize=s.size,this.minimumWidth=this.minimumSize.width,this.internalWidthProperty=new M.ZP([this.localPreferredWidthProperty],e=>(null===e?this.minimumSize.width:Math.max(this.minimumSize.width,e))-s.leftVisualOverflow-s.rightVisualOverflow),this.sizeProperty=new M.ZP([this.internalWidthProperty],e=>new Q.Z(e,this.minimumSize.height)),this.valueToPositionProperty=new M.ZP([this.rangeProperty,this.internalWidthProperty],(e,t)=>new Bl(e.min,e.max,0,t,!0));const r=(t,i)=>{const n=e.value,r=i.subtrailTo(this).getTransform().inversePosition2(t.pointer.point).x,o=this.valueToPositionProperty.value.inverse(r),a=s.enabledRangeProperty.value.constrainValue(o),l=s.constrainValue(a);e.set(l),"down"===t.type&&s.soundGenerator.playSoundIfThresholdReached(l,n)};this.addChild(t);let o=e.value;this.dragListener=new G._U3({tandem:s.tandem.createTandem("dragListener"),start:(t,i)=>{s.startDrag(t),o=e.value,r(t,i.pressedTrail)},drag:(e,t)=>{s.drag(e),r(e,t.pressedTrail)},end:e=>{s.endDrag(e),s.voicingOnEndResponse(o)}}),t.addInputListener(this.dragListener),this.mutate(s),this.disposeSliderTrack=()=>{t.removeInputListener(this.dragListener),this.dragListener.dispose()}}dispose(){this.disposeSliderTrack(),super.dispose()}}At.register("SliderTrack",Dl);class Cl extends Dl{constructor(e,t,i){const n=(0,Y.ZP)()({fillEnabled:"white",fillDisabled:"gray",stroke:"black",lineWidth:1,cornerRadius:0},i),s=new G.AeJ({fill:n.fillDisabled,stroke:n.stroke,lineWidth:n.lineWidth,cornerRadius:n.cornerRadius,cursor:"default",pickable:!1}),r=new G.AeJ({fill:n.fillEnabled,stroke:n.stroke,lineWidth:n.lineWidth,cornerRadius:n.cornerRadius});super(e,new G.NBX({children:[s,r]}),t,(0,Y.JA)({leftVisualOverflow:null!==n.stroke?n.lineWidth/2:0,rightVisualOverflow:null!==n.stroke?n.lineWidth/2:0},n));const o=Ce.Z.multilink([n.enabledRangeProperty,this.valueToPositionProperty,this.sizeProperty],(e,t,i)=>{const n=t.evaluate(e.min),o=t.evaluate(e.max);s.setRect(0,0,i.width,i.height),r.setRect(n,0,o-n,i.height)});this.disposeDefaultSliderTrack=()=>{o.dispose()}}dispose(){this.disposeDefaultSliderTrack(),super.dispose()}}At.register("DefaultSliderTrack",Cl);class El extends G.AeJ{constructor(e){const t=(0,Y.ZP)()({size:new Q.Z(22,45),fillHighlighted:"rgb( 71, 207, 255 )",centerLineStroke:"white",fill:"rgb( 50, 145, 184 )",stroke:"black",lineWidth:1,tandem:K.Z.REQUIRED,tandemNameSuffix:"ThumbNode"},e);void 0===t.cornerRadius&&(t.cornerRadius=.25*t.size.width),t.cachedPaints=[t.fill,t.fillHighlighted],super(0,0,t.size.width,t.size.height,t);const i=G.AeJ.bounds(this.bounds.dilated(5),{fill:"transparent",localBounds:this.bounds,pickable:!1});this.addChild(i);this.addChild(new G.y$t(Ke.bn.lineSegment(t.size.width/2,3,t.size.width/2,t.size.height-3),{stroke:t.centerLineStroke}));const n=new G.$o8({attach:!1,tandem:K.Z.OPT_OUT});n.isHighlightedProperty.link(e=>{this.fill=e?t.fillHighlighted:t.fill}),this.addInputListener(n)}}At.register("SliderThumb",El);const bl={VALUE_NAMED_PLACEHOLDER:"{{value}}",VALUE_NUMBERED_PLACEHOLDER:"{0}",SLIDER_VERTICAL_ROTATION:-Math.PI/2};At.register("SunConstants",bl);const vl=bl;class Vl{constructor(e,t,i,n,s,r,o,a,l){this.parent=e,this.value=t,this.label=i,this.labelXProperty=new M.ZP([l.valueToPositionProperty],e=>e.evaluate(t)),this.tickNode=new G.NBX,e.addChild(this.tickNode);const h=new G.y$t((new Ke.bn).moveTo(0,l.top).lineTo(0,l.top-n),{stroke:s,lineWidth:r});this.labelXProperty.link(e=>{h.x=e}),this.tickNode.addChild(h),i&&(this.labelContainer=new G.NBX({pickable:!1}),this.tickNode.addChild(this.labelContainer),this.labelContainer.addChild(i),a===xa.Z.VERTICAL&&(this.labelContainer.rotation=-vl.SLIDER_VERTICAL_ROTATION),this.labelManualConstraint=G.bGt.create(this.tickNode,[h,this.labelContainer],(e,t)=>{t.centerX=e.centerX,t.bottom=e.top-o.tickLabelSpacing}))}dispose(){this.parent.removeChild(this.tickNode),this.labelContainer&&this.labelContainer.dispose(),this.labelXProperty.dispose(),this.labelManualConstraint&&this.labelManualConstraint.dispose()}}At.register("SliderTick",Vl);const Il=new Q.Z(100,5),Ml=new Q.Z(17,34);class Sl extends((0,G.tTM)(wl(G.NBX,0))){constructor(e,t,i){const n=(0,Y.ZP)()({orientation:xa.Z.HORIZONTAL,trackNode:null,trackSize:null,trackFillEnabled:"white",trackFillDisabled:"gray",trackStroke:"black",trackLineWidth:1,trackCornerRadius:0,trackPickable:!0,thumbNode:null,thumbSize:null,thumbFill:"rgb(50,145,184)",thumbFillHighlighted:"rgb(71,207,255)",thumbStroke:"black",thumbLineWidth:1,thumbCenterLineStroke:"white",thumbTouchAreaXDilation:11,thumbTouchAreaYDilation:11,thumbMouseAreaXDilation:0,thumbMouseAreaYDilation:0,thumbYOffset:0,tickLabelSpacing:6,majorTickLength:25,majorTickStroke:"black",majorTickLineWidth:1,minorTickLength:10,minorTickStroke:"black",minorTickLineWidth:1,cursor:"pointer",startDrag:_.noop,drag:_.noop,endDrag:_.noop,constrainValue:_.identity,disabledOpacity:G.iaM.DISABLED_OPACITY,soundGenerator:Sl.DEFAULT_SOUND,valueChangeSoundGeneratorOptions:{},phetioLinkedProperty:null,tandem:K.Z.REQUIRED,tandemNameSuffix:"Slider",phetioType:Sl.SliderIO,phetioFeatured:!0,visiblePropertyOptions:{phetioFeatured:!0},phetioEnabledPropertyInstrumented:!0},i),s=t instanceof Sa.Z?new J.Z(t):t;if(n.soundGenerator===Sl.DEFAULT_SOUND?n.soundGenerator=new Al(s.value,n.valueChangeSoundGeneratorOptions||{}):null===n.soundGenerator&&(n.soundGenerator=Al.NO_SOUND),n.soundGenerator!==Al.NO_SOUND){let t=e.value;const i=n.drag;n.drag=s=>{s.isFromPDOM()?n.soundGenerator.playSoundForValueChange(e.value,t):n.soundGenerator.playSoundIfThresholdReached(e.value,t),i(s),t=e.value}}n.orientation===xa.Z.VERTICAL&&(n.trackSize&&(n.trackSize=n.trackSize.swapped()),n.thumbSize&&(n.thumbSize=n.thumbSize.swapped()),Ra(n,"thumbTouchAreaXDilation","thumbTouchAreaYDilation"),Ra(n,"thumbMouseAreaXDilation","thumbMouseAreaYDilation")),n.trackSize=n.trackSize||Il,n.thumbSize=n.thumbSize||Ml;const r=n.tandem.createTandem(Sl.THUMB_NODE_TANDEM_NAME);K.Z.VALIDATION&&n.thumbNode;const o=n.thumbNode||new El({size:n.thumbSize,fill:n.thumbFill,fillHighlighted:n.thumbFillHighlighted,stroke:n.thumbStroke,lineWidth:n.thumbLineWidth,centerLineStroke:n.thumbCenterLineStroke,tandem:r}),a=!n.enabledRangeProperty,l=_.pick(n,G.NBX.REQUIRES_BOUNDS_OPTION_KEYS),h=(0,Y.JA)({ariaOrientation:n.orientation,valueProperty:e,panTargetNode:o,enabledRangeProperty:n.enabledRangeProperty||(t instanceof Sa.Z?new x.Z(t,{valueType:Sa.Z,isValidValue:e=>e.min>=t.min&&e.max<=t.max,tandem:n.tandem.createTandem("enabledRangeProperty"),phetioValueType:Sa.Z.RangeIO,phetioDocumentation:"Sliders support two ranges: the outer range which specifies the min and max of the track and the enabledRangeProperty, which determines how low and high the thumb can be dragged within the track."}):t)},n);super(h),_defineProperty(this,"ticks",(0,I.Z)()),_defineProperty(this,"proposedValue",null),this.orientation=h.orientation,this.enabledRangeProperty=h.enabledRangeProperty,this.tickOptions=_.pick(n,"tickLabelSpacing","majorTickLength","majorTickStroke","majorTickLineWidth","minorTickLength","minorTickStroke","minorTickLineWidth");const A=[];this.majorTicksParent=new G.NBX,this.minorTicksParent=new G.NBX,A.push(this.majorTicksParent),A.push(this.minorTicksParent);const d=n.tandem.createTandem(Sl.TRACK_NODE_TANDEM_NAME);K.Z.VALIDATION&&n.trackNode;const c=new G.NBX;A.push(c),this.track=n.trackNode||new Cl(e,t,{size:h.trackSize,fillEnabled:h.trackFillEnabled,fillDisabled:h.trackFillDisabled,stroke:h.trackStroke,lineWidth:h.trackLineWidth,cornerRadius:h.trackCornerRadius,startDrag:h.startDrag,drag:h.drag,endDrag:h.endDrag,constrainValue:h.constrainValue,enabledRangeProperty:this.enabledRangeProperty,soundGenerator:n.soundGenerator,pickable:h.trackPickable,voicingOnEndResponse:this.voicingOnEndResponse.bind(this),tandem:d}),A.push(this.track),o.setCenterY(this.track.centerY+n.thumbYOffset),A.push(o);const u=new G.NBX({children:A});n.orientation===xa.Z.VERTICAL&&(u.rotation=vl.SLIDER_VERTICAL_ROTATION),this.addChild(u),n.thumbNode||!n.thumbTouchAreaXDilation&&!n.thumbTouchAreaYDilation||(o.touchArea=o.localBounds.dilatedXY(n.thumbTouchAreaXDilation,n.thumbTouchAreaYDilation)),n.thumbNode||!n.thumbMouseAreaXDilation&&!n.thumbMouseAreaYDilation||(o.mouseArea=o.localBounds.dilatedXY(n.thumbMouseAreaXDilation,n.thumbMouseAreaYDilation));let g=0,p=e.value;const m=new G._U3({tandem:o.tandem.createTandem("dragListener"),start:(t,i)=>{if(this.enabledProperty.get()){p=e.value,n.startDrag(t);const s=i.pressedTrail.subtrailTo(u).getTransform();g=s.inversePosition2(t.pointer.point).x-o.centerX}},drag:(t,i)=>{if(this.enabledProperty.get()){const s=i.pressedTrail.subtrailTo(u).getTransform().inversePosition2(t.pointer.point).x-g;this.proposedValue=this.track.valueToPositionProperty.value.inverse(s);const r=this.enabledRangeProperty.get().constrainValue(this.proposedValue);e.set(n.constrainValue(r)),n.drag(t)}},end:e=>{this.enabledProperty.get()&&(n.endDrag(e),this.voicingOnEndResponse(p)),this.proposedValue=null}});o.addInputListener(m),this.thumbDragListener=m,this.trackDragListener=this.track.dragListener;const y=Ce.Z.multilink([e,this.track.valueToPositionProperty],(e,t)=>{o.centerX=t.evaluate(e)}),f=t=>{if(!e.isPhetioInstrumented()||!xe.Z.value)if(null===this.proposedValue)e.set(R.Z.clamp(e.value,t.min,t.max));else{const i=R.Z.clamp(this.proposedValue,t.min,t.max),s=n.constrainValue(i);e.set(s)}};this.enabledRangeProperty.link(f);const w=new Tl(this,this.track,o,u,n.orientation,c,this.ticks);this.disposeSlider=()=>{w.dispose(),o.dispose&&o.dispose(),this.track.dispose&&this.track.dispose(),a?this.enabledRangeProperty.dispose():this.enabledRangeProperty.unlink(f),y.dispose(),m.dispose()},this.focusHighlight=new G.bjc(o);const B=n.phetioLinkedProperty||(e instanceof Pi.Z?e:null);B&&this.addLinkedElement(B,{tandemName:"valueProperty"}),!a&&this.enabledRangeProperty instanceof Pi.Z&&this.addLinkedElement(this.enabledRangeProperty,{tandemName:"enabledRangeProperty"}),this.mutate(l)}get majorTicksVisible(){return this.getMajorTicksVisible()}set majorTicksVisible(e){this.setMajorTicksVisible(e)}get minorTicksVisible(){return this.getMinorTicksVisible()}set minorTicksVisible(e){this.setMinorTicksVisible(e)}dispose(){this.disposeSlider(),this.ticks.forEach(e=>{e.dispose()}),super.dispose()}addMajorTick(e,t){this.addTick(this.majorTicksParent,e,t,this.tickOptions.majorTickLength,this.tickOptions.majorTickStroke,this.tickOptions.majorTickLineWidth)}addMinorTick(e,t){this.addTick(this.minorTicksParent,e,t,this.tickOptions.minorTickLength,this.tickOptions.minorTickStroke,this.tickOptions.minorTickLineWidth)}addTick(e,t,i,n,s,r){this.ticks.push(new Vl(e,t,i,n,s,r,this.tickOptions,this.orientation,this.track))}setMajorTicksVisible(e){this.majorTicksParent.visible=e}getMajorTicksVisible(){return this.majorTicksParent.visible}setMinorTicksVisible(e){this.minorTicksParent.visible=e}getMinorTicksVisible(){return this.minorTicksParent.visible}}h=Sl,_defineProperty(Sl,"DEFAULT_SOUND",new Al(new Sa.Z(0,1))),_defineProperty(Sl,"THUMB_NODE_TANDEM_NAME","thumbNode"),_defineProperty(Sl,"TRACK_NODE_TANDEM_NAME","trackNode"),_defineProperty(Sl,"SliderIO",new hs.Z("SliderIO",{valueType:h,documentation:"A traditional slider component, with a knob and possibly tick marks",supertype:G.NBX.NodeIO}));class Tl extends G.dmK{constructor(e,t,i,n,s,r,o){super(e),this.slider=e,this.track=t,this.thumb=i,this.sliderPartsNode=n,this.orientation=s,this.trackSpacer=r,this.ticks=o,s===xa.Z.HORIZONTAL?(e.heightSizable=!1,this.preferredProperty=this.slider.localPreferredWidthProperty):(e.widthSizable=!1,this.preferredProperty=this.slider.localPreferredHeightProperty),this.preferredProperty.lazyLink(this._updateLayoutListener),this.track.rangeProperty.lazyLink(this._updateLayoutListener),this.thumb.localBoundsProperty.lazyLink(this._updateLayoutListener);const a=e=>{e.tickNode.localBoundsProperty.lazyLink(this._updateLayoutListener),o.addItemRemovedListener(t=>{t===e&&t.tickNode.localBoundsProperty.hasListener(this._updateLayoutListener)&&e.tickNode.localBoundsProperty.unlink(this._updateLayoutListener)})};o.addItemAddedListener(a),this.addNode(t),this.layout(),this.disposeSliderConstraint=()=>{o.removeItemAddedListener(a),this.preferredProperty.unlink(this._updateLayoutListener),this.track.rangeProperty.unlink(this._updateLayoutListener),this.thumb.localBoundsProperty.unlink(this._updateLayoutListener)}}layout(){super.layout();const e=this.slider,t=this.track,i=this.thumb;this.trackSpacer.localBounds=t.localBounds.dilatedX(i.width/2);const n=t.leftVisualOverflow+t.rightVisualOverflow,s=t.minimumWidth,r=s-n,o=e=>R.Z.linear(t.rangeProperty.value.min,t.rangeProperty.value.max,0,1,e),a=-i.width/2-t.leftVisualOverflow,l=i.width/2-t.leftVisualOverflow,h=new Sa.Z(a,s+l);if(this.ticks.forEach(e=>{const t=r*o(e.value),i=e.tickNode.width/2;h.includeRange(new Sa.Z(-i,i).shifted(t))}),e.widthSizable&&null!==this.preferredProperty.value){const e=ka.max(ka.linear(1,l),...this.ticks.map(e=>{const t=o(e.value);return ka.linear(t,e.tickNode.width/2-n*t)})).minus(ka.min(ka.constant(a),...this.ticks.map(e=>{const t=o(e.value);return ka.linear(t,-e.tickNode.width/2-n*t)}))),i=e.withXValues([s-1,s,...e.points.map(e=>e.x).filter(e=>e>s+1e-10)]).inverted();t.preferredWidth=Math.max(s,i.evaluate(this.preferredProperty.value))}else t.preferredWidth=t.minimumWidth;const A=h.getLength();this.orientation===xa.Z.HORIZONTAL?e.localMinimumWidth=A:e.localMinimumHeight=A}dispose(){this.disposeSliderConstraint(),super.dispose()}}At.register("Slider",Sl);class xl extends Sl{constructor(e,t,i){super(e,t,(0,Y.ZP)()({orientation:xa.Z.HORIZONTAL},i))}}At.register("HSlider",xl);const Ol={PLUS:"+",MINUS:"−",TIMES:"×",DIVIDE:"÷",DOT:"⋅",UNARY_PLUS:"+",UNARY_MINUS:"-",EQUAL_TO:"=",NOT_EQUAL_TO:"≠",GREATER_THAN:">",LESS_THAN:"<",LESS_THAN_OR_EQUAL:"≤",GREATER_THAN_OR_EQUAL:"≥",PERCENT:"%",INFINITY:"∞",PI:"π",PLUS_MINUS:"±",THETA:"θ",NO_VALUE:"—",DEGREES:"°"};U.register("MathSymbols",Ol);const kl=Ol,Ll=new it(20);class Ql extends G.NBX{constructor(e,t,i){const n=(0,Y.ZP)()({align:"right",valuePattern:vl.VALUE_NAMED_PLACEHOLDER,decimalPlaces:0,numberFormatter:null,useRichText:!1,useFullHeight:!1,textOptions:{font:Ll,fill:"black",maxWidth:null,phetioReadOnly:!0},xMargin:8,yMargin:2,cornerRadius:0,backgroundFill:"white",backgroundStroke:"lightGray",backgroundLineWidth:1,backgroundLineDash:[],minBackgroundWidth:0,noValueString:kl.NO_VALUE,noValueAlign:null,noValuePattern:null,tandem:K.Z.OPT_OUT,phetioType:Ql.NumberDisplayIO},i);const s=new J.Z(n.numberFormatter?n.numberFormatter:e=>null===n.decimalPlaces?""+e:R.Z.toFixed(e,n.decimalPlaces));n.noValueAlign||(n.noValueAlign=n.align);const r=e=>e.includes(vl.VALUE_NUMBERED_PLACEHOLDER)?F.Z.format(e,vl.VALUE_NAMED_PLACEHOLDER):e,o="string"==typeof n.valuePattern?new J.Z(r(n.valuePattern)):new M.ZP([n.valuePattern],r);n.noValuePattern||(n.noValuePattern=new M.ZP([o],e=>e));const a="string"==typeof n.noValuePattern?new J.Z(n.noValuePattern):n.noValuePattern,l=new M.ZP([s],e=>Rl(t.min,n.noValueString,e),{accessNonDependencies:!0}),h=new M.ZP([s],e=>Rl(t.max,n.noValueString,e),{accessNonDependencies:!0}),A=new M.ZP([o,l,h],(e,t,i)=>F.Z.fillIn(e,{value:t.length>i.length?t:i})),d=n.useRichText?G.Hof:G.xvT,c=n.textOptions.tandem||n.tandem.createTandem("valueText"),u=new at([e,a,o,s],(e,t,i,s)=>{const r=null===e&&t?t:i,o=Rl(e,n.noValueString,s);return F.Z.fillIn(r,{value:o})},{tandem:c.createTandem(G.xvT.STRING_PROPERTY_TANDEM_NAME),accessNonDependencies:!0}),g=(0,Y.JA)({tandem:c},n.textOptions,{maxWidth:null}),p=new d(u,g),m=p.height,y=new G.AeJ({cornerRadius:n.cornerRadius,fill:n.backgroundFill,stroke:n.backgroundStroke,lineWidth:n.backgroundLineWidth,lineDash:n.backgroundLineDash});A.link(e=>{const t=new d(e,_.omit(g,"tandem"));p.maxWidth=null!==n.textOptions.maxWidth?n.textOptions.maxWidth:0!==t.width?t.width:null,t.maxWidth=p.maxWidth,y.rectWidth=Math.max(n.minBackgroundWidth,t.width+2*n.xMargin),y.rectHeight=(n.useFullHeight?m:t.height)+2*n.yMargin}),n.children=[y,p],super(),this.numberFormatterProperty=s,this.valueText=p,this.backgroundNode=y,G.bGt.create(this,[p,y],(t,i)=>{const s=null===e.value?n.noValueAlign:n.align;"center"===s?t.centerX=i.centerX:"left"===s?t.left=i.left+n.xMargin:t.right=i.right-n.xMargin,t.centerY=i.centerY}),this.mutate(n),this.disposeNumberDisplay=()=>{u.dispose(),o.dispose()}}setNumberFormatter(e){this.numberFormatterProperty.value=e}recomputeText(){}dispose(){this.disposeNumberDisplay(),super.dispose()}setNumberFont(e){this.valueText.font=e}set numberFont(e){this.setNumberFont(e)}setNumberFill(e){this.valueText.fill=e}set numberFill(e){this.setNumberFill(e)}setBackgroundFill(e){this.backgroundNode.fill=e}set backgroundFill(e){this.setBackgroundFill(e)}get backgroundFill(){return this.getBackgroundFill()}getBackgroundFill(){return this.backgroundNode.fill}setBackgroundStroke(e){this.backgroundNode.stroke=e}set backgroundStroke(e){this.setBackgroundStroke(e)}getBackgroundWidth(){return this.backgroundNode.getRectWidth()}setBackgroundWidth(e){this.backgroundNode.setRectWidth(e)}get backgroundWidth(){return this.getBackgroundWidth()}set backgroundWidth(e){this.setBackgroundWidth(e)}}A=Ql,_defineProperty(Ql,"NumberDisplayIO",new hs.Z("NumberDisplayIO",{valueType:A,supertype:G.NBX.NodeIO,documentation:"A numeric readout with a background"})),U.register("NumberDisplay",Ql);const Rl=(e,t,i)=>{let n=t;return null!==e&&(n=i(e)),n},Nl=["startDrag","endDrag","leftStart","leftEnd","rightStart","rightEnd"],Yl=["touchAreaXDilation","touchAreaYDilation","mouseAreaXDilation","mouseAreaYDilation"],Fl=new Al(new Sa.Z(0,1));class Gl extends((0,G.pL8)(G.NBX)){constructor(e,t,i,n){!function(e){!e.startCallback&&e.endCallback;let t=!1,i=!1;e.arrowButtonOptions&&(t=ql(e.arrowButtonOptions));e.sliderOptions&&(i=ql(e.sliderOptions))}(n||{});const s=(0,Y.ZP)()({numberDisplayOptions:{},sliderOptions:{},arrowButtonOptions:{},titleNodeOptions:{},startCallback:_.noop,endCallback:_.noop,delta:1,disabledOpacity:.5,layoutFunction:Gl.createLayoutFunction1(),includeArrowButtons:!0,soundGenerator:Fl,valueChangeSoundGeneratorOptions:{},tandem:K.Z.REQUIRED,tandemNameSuffix:"Control",phetioType:Gl.NumberControlIO,phetioEnabledPropertyInstrumented:!0,visiblePropertyOptions:{phetioFeatured:!0}},n);super();const r=s.arrowButtonOptions&&s.arrowButtonOptions.hasOwnProperty("scale"),o=()=>l.enabledRangeProperty?l.enabledRangeProperty.value:i,a=e=>{const t=R.Z.roundToInterval(e,l.delta);return o().constrainValue(t)};if(s.soundGenerator===Fl){let e=s.valueChangeSoundGeneratorOptions;_.isEmpty(s.valueChangeSoundGeneratorOptions)&&(e={interThresholdDelta:s.delta,constrainValue:a}),s.soundGenerator=new Al(i,e)}else null===s.soundGenerator&&(s.soundGenerator=Al.NO_SOUND);const l=(0,Y.JA)({arrowButtonOptions:{touchAreaXDilation:3.5,touchAreaYDilation:7,mouseAreaXDilation:0,mouseAreaYDilation:0,enabledEpsilon:0,leftStart:s.startCallback,leftEnd:s.endCallback,rightStart:s.startCallback,rightEnd:s.endCallback,enabledPropertyOptions:{phetioReadOnly:!0,phetioFeatured:!1}},sliderOptions:{startDrag:s.startCallback,endDrag:s.endCallback,majorTickLength:20,minorTickStroke:"rgba( 0, 0, 0, 0.3 )",majorTicks:[],minorTickSpacing:0,constrainValue:a,soundGenerator:s.soundGenerator,tandem:s.tandem.createTandem(Gl.SLIDER_TANDEM_NAME)},numberDisplayOptions:{textOptions:{font:new it(12),stringPropertyOptions:{phetioFeatured:!0}},tandem:s.tandem.createTandem("numberDisplay"),visiblePropertyOptions:{phetioFeatured:!0}},titleNodeOptions:{font:new it(12),maxWidth:null,fill:"black",tandem:s.tandem.createTandem("titleText")}},s);l.enabledRangeProperty&&(l.sliderOptions.enabledRangeProperty=l.enabledRangeProperty);const h=_.pick(l.arrowButtonOptions,Yl);l.arrowButtonOptions=_.omit(l.arrowButtonOptions,Yl),l.arrowButtonOptions.tagName=null,this.groupFocusHighlight=l.includeArrowButtons,l.sliderOptions.trackNode||(l.sliderOptions=(0,Y.JA)({trackSize:new Q.Z(180,3)},l.sliderOptions)),l.sliderOptions.thumbNode||(l.sliderOptions=(0,Y.JA)({thumbSize:new Q.Z(17,34),thumbTouchAreaXDilation:6},l.sliderOptions)),l.sliderOptions=(0,Y.JA)({shiftKeyboardStep:l.delta,phetioType:Sl.SliderIO},l.sliderOptions),l.sliderOptions.thumbFill&&!l.sliderOptions.thumbFillHighlighted&&(this.thumbFillProperty=new G.M4p(l.sliderOptions.thumbFill),l.sliderOptions.thumbFillHighlighted=new M.ZP([this.thumbFillProperty],e=>e.brighterColor()));const A=new G.xvT(e,l.titleNodeOptions),d=new Ql(t,i,l.numberDisplayOptions);this.slider=new xl(t,i,l.sliderOptions);let c=null,u=null,g=null;if(l.includeArrowButtons){if(c=new Ta("left",()=>{const e=t.get();let i=t.get()-l.delta;i=R.Z.roundToInterval(i,l.delta),i=Math.max(i,o().min),t.set(i),l.soundGenerator.playSoundForValueChange(i,e),this.slider.voicingOnEndResponse(e)},(0,Y.JA)({soundPlayer:zr,startCallback:l.arrowButtonOptions.leftStart,endCallback:l.arrowButtonOptions.leftEnd,tandem:l.tandem.createTandem("decrementButton")},l.arrowButtonOptions)),u=new Ta("right",()=>{const e=t.get();let i=t.get()+l.delta;i=R.Z.roundToInterval(i,l.delta),i=Math.min(i,o().max),t.set(i),l.soundGenerator.playSoundForValueChange(i,e),this.slider.voicingOnEndResponse(e)},(0,Y.JA)({soundPlayer:zr,startCallback:l.arrowButtonOptions.rightStart,endCallback:l.arrowButtonOptions.rightEnd,tandem:l.tandem.createTandem("incrementButton")},l.arrowButtonOptions)),!r){c.setScaleMagnitude(1);const e=d.localBounds.height/c.height;c.setScaleMagnitude(e),u.setScaleMagnitude(e)}c.touchArea=c.localBounds.dilatedXY(h.touchAreaXDilation,h.touchAreaYDilation).shiftedX(-h.touchAreaXDilation),u.touchArea=u.localBounds.dilatedXY(h.touchAreaXDilation,h.touchAreaYDilation).shiftedX(h.touchAreaXDilation),c.mouseArea=c.localBounds.dilatedXY(h.mouseAreaXDilation,h.mouseAreaYDilation).shiftedX(-h.mouseAreaXDilation),u.mouseArea=u.localBounds.dilatedXY(h.mouseAreaXDilation,h.mouseAreaYDilation).shiftedX(h.mouseAreaXDilation),g=()=>{const e=t.value;c.enabled=e-l.arrowButtonOptions.enabledEpsilon>o().min&&!this.slider.isFocused(),u.enabled=e+l.arrowButtonOptions.enabledEpsilon{c.enabled=!1,u.enabled=!1},blur:()=>g()})}const p=l.sliderOptions.majorTicks;for(let y=0;y0)for(let y=i.min;y<=i.max;)_.find(p,e=>e.value===y)||this.slider.addMinorTick(y),y+=l.sliderOptions.minorTickSpacing;const m=l.layoutFunction(A,d,this.slider,c,u);if(this.widthSizable=(0,G.S3T)(m),(0,G.AXx)(m)){const e=e=>{this.localMinimumWidth=e};m.minimumWidthProperty.link(e);const t=e=>{m.preferredWidth=e};this.localPreferredWidthProperty.link(t),this.disposeEmitter.addListener(()=>{m.minimumWidthProperty.unlink(e),this.localPreferredWidthProperty.unlink(t)})}l.children=[m],this.mutate(l),this.numberDisplay=d,this.disposeNumberControl=()=>{A.dispose(),d.dispose(),this.slider.dispose(),this.thumbFillProperty&&this.thumbFillProperty.dispose(),c&&c.dispose(),u&&u.dispose(),g&&t.unlink(g),g&&l.enabledRangeProperty&&l.enabledRangeProperty.unlink(g)}}redrawNumberDisplay(){this.numberDisplay.recomputeText()}dispose(){this.disposeNumberControl(),super.dispose()}setNumberFormatter(e){this.numberDisplay.setNumberFormatter(e)}static withMinMaxTicks(e,t,i,n){const s=(0,Y.ZP)()({tickLabelFont:new it(12)},n);return s.sliderOptions=(0,Y.JA)({majorTicks:[{value:i.min,label:new G.xvT(i.min,{font:s.tickLabelFont})},{value:i.max,label:new G.xvT(i.max,{font:s.tickLabelFont})}]},s.sliderOptions),new Gl(e,t,i,s)}static createLayoutFunction1(e){const t=(0,Y.ZP)()({align:"center",titleXSpacing:5,arrowButtonsXSpacing:15,ySpacing:5},e);return(e,i,n,s,r)=>(n.mutateLayoutOptions({grow:1}),new G.SHm({align:t.align,spacing:t.ySpacing,children:[new G.BET({spacing:t.titleXSpacing,children:[e,i]}),new G.BET({layoutOptions:{stretch:!0},spacing:t.arrowButtonsXSpacing,children:[s,n,r]})]}))}static createLayoutFunction2(e){const t=(0,Y.ZP)()({align:"center",xSpacing:5,ySpacing:5},e);return(e,i,n,s,r)=>(n.mutateLayoutOptions({stretch:!0}),new G.SHm({align:t.align,spacing:t.ySpacing,children:[new G.BET({spacing:t.xSpacing,children:[e,s,i,r]}),n]}))}static createLayoutFunction3(e){const t=(0,Y.ZP)()({alignTitle:"center",alignNumber:"center",titleLeftIndent:0,xSpacing:5,ySpacing:5},e);return(e,i,n,s,r)=>{n.mutateLayoutOptions({stretch:!0});const o=new G.SHm({spacing:t.ySpacing,align:t.alignTitle,children:[new G.DbO(e,{leftMargin:t.titleLeftIndent}),new G.SHm({layoutOptions:{stretch:!0},spacing:t.ySpacing,align:t.alignNumber,children:[new G.BET({spacing:t.xSpacing,children:[s,i,r]}),n]})]});return e.boundsProperty.lazyLink(()=>{o.updateLayout()}),o}}static createLayoutFunction4(e){const t=(0,Y.ZP)()({sliderPadding:0,verticalSpacing:5,arrowButtonSpacing:5,hasReadoutProperty:null,layoutInvisibleButtons:!1,createBottomContent:null},e);return(e,i,n,s,r)=>{n.mutateLayoutOptions({grow:1});const o=!!s,a=new G.BET({spacing:t.arrowButtonSpacing,children:o?[s,n,r]:[n],excludeInvisibleChildrenFromBounds:!t.layoutInvisibleButtons}),l=t.createBottomContent?t.createBottomContent(a):a;return l.mutateLayoutOptions({stretch:!0,xMargin:t.sliderPadding}),new G.SHm({spacing:t.verticalSpacing,children:[new G.BET({spacing:t.sliderPadding,children:[e,new G.NBX({children:[i],visibleProperty:t.hasReadoutProperty||null,excludeInvisibleChildrenFromBounds:!0})],layoutOptions:{stretch:!0}}),l]})}}}function ql(e){const t=Object.keys(e);return Nl.filter(e=>_.includes(t,e)).length>0}d=Gl,_defineProperty(Gl,"NumberControlIO",new hs.Z("NumberControlIO",{valueType:d,documentation:"A number control with a title, slider and +/- buttons",supertype:G.NBX.NodeIO})),_defineProperty(Gl,"SLIDER_TANDEM_NAME","slider"),U.register("NumberControl",Gl);const Hl=(e,t,i)=>(t.labelTagName="p",t.labelContent=i,t);class Zl extends Wi{constructor(e,t,i,n){const s=(0,Y.ZP)()({align:"left",arrowDirection:"down",arrowFill:"black",comboBoxVoicingNameResponsePattern:vl.VALUE_NAMED_PLACEHOLDER,cursor:"pointer",baseColor:"white",buttonAppearanceStrategy:Hi.FlatAppearanceStrategy,xMargin:12,yMargin:8,stroke:"black",lineWidth:1,soundPlayer:zr,enabledPropertyOptions:{phetioFeatured:!1},visiblePropertyOptions:{phetioFeatured:!1},localPreferredWidthProperty:new J.Z(null),localMinimumWidthProperty:new J.Z(null),containerTagName:"div",accessibleNameBehavior:Hl},n),r=s.xMargin,o=s.yMargin,a=jl.getMaxItemWidthProperty(i),l=jl.getMaxItemHeightProperty(i),h=new G.y$t(null,{fill:s.arrowFill}),A=_.find(t,t=>t.value===e.value),d=t.indexOf(A),c=new G.NBX({layoutOptions:{yMargin:o,grow:1,xAlign:s.align},children:[i[d]]}),u=new G.x12(0,0,0,0,{stroke:"black",lineWidth:s.lineWidth});s.content=new G.zch({rows:[[c,u,h]]}),Ce.Z.multilink([a,l],(e,t)=>{const i=t+2*o,n=i,a=.35*n,l=2*a*Math.sqrt(3)/3,A=r,d=r-s.lineWidth/2,g=-s.lineWidth/2;var p,m,y;h.shape=(p=s.arrowDirection,m=l,y=a,"up"===p?(new Ke.bn).moveTo(0,y).lineTo(m/2,0).lineTo(m,y).close():(new Ke.bn).moveTo(0,0).lineTo(m,0).lineTo(m/2,y).close()),h.mutateLayoutOptions({minContentWidth:n,minContentHeight:n}),c.mutateLayoutOptions({minContentWidth:e,minContentHeight:t,leftMargin:A,rightMargin:d}),u.y2=i,u.mutateLayoutOptions({rightMargin:g})}),s.xMargin=0,s.yMargin=0,super(s),this.minimumWidthProperty.link(e=>{s.localMinimumWidthProperty.value=e});const g=e=>{this.preferredWidth=e};s.localPreferredWidthProperty.link(g),this._blockNextVoicingFocusListener=!1,this.voicingFocusListener=()=>{!this._blockNextVoicingFocusListener&&this.defaultFocusListener(),this._blockNextVoicingFocusListener=!1};let p=null,m=null;const y=e=>{c.removeAllChildren(),m=_.find(t,t=>t.value===e);const n=t.indexOf(m),r=i[n];c.addChild(r),this.innerContent=m.a11yName||null;const o="string"==typeof s.comboBoxVoicingNameResponsePattern?new x.Z(s.comboBoxVoicingNameResponsePattern):s.comboBoxVoicingNameResponsePattern;p&&p.dispose(),this.voicingNameResponse=p=new gs(o,{value:m.a11yName},{tandem:K.Z.OPT_OUT})};e.link(y),this.ariaLabelledbyAssociations=[{otherNode:this,otherElementName:G.Grz.LABEL_SIBLING,thisElementName:G.Grz.PRIMARY_SIBLING},{otherNode:this,otherElementName:G.Grz.PRIMARY_SIBLING,thisElementName:G.Grz.PRIMARY_SIBLING}],G.uai.mutateNode(this,"listbox"),this.disposeComboBoxButton=()=>{a.dispose(),l.dispose(),e.unlink(y),s.localPreferredWidthProperty.unlink(g),p&&p.dispose()},this.arrow=h,this.separatorLine=u}setDisplayOnly(e){this.arrow.visible=!e,this.separatorLine.visible=!e}blockNextVoicingFocusListener(){this._blockNextVoicingFocusListener=!0}dispose(){this.disposeComboBoxButton(),super.dispose()}}At.register("ComboBoxButton",Zl);class Ul extends((0,G.CHP)(G.NBX)){constructor(e,t,i,n,s){const r=(0,Y.ZP)()({cursor:"pointer",align:"left",xMargin:6,highlightFill:"rgb( 245, 245, 245 )",highlightCornerRadius:4,tagName:"li",focusable:!0,ariaRole:"option",positionInPDOM:!0,voicingFocusListener:()=>this.comboBoxListItemNodeVoicingFocusListener(),comboBoxVoicingNameResponsePattern:vl.VALUE_NAMED_PLACEHOLDER,tandem:K.Z.REQUIRED,tandemNameSuffix:"Item",phetioType:G.RnV,phetioState:!0,visiblePropertyOptions:{phetioFeatured:!0}},s);r.comboBoxVoicingNameResponsePattern=r.comboBoxVoicingNameResponsePattern.get?r.comboBoxVoicingNameResponsePattern.get():r.comboBoxVoicingNameResponsePattern,r.innerContent=e.a11yName||null,r.voicingObjectResponse=e.a11yName||null;const o="string"==typeof r.comboBoxVoicingNameResponsePattern?new x.Z(r.comboBoxVoicingNameResponsePattern):r.comboBoxVoicingNameResponsePattern,a=new gs(o,{value:e.a11yName},{tandem:K.Z.OPT_OUT});r.voicingNameResponse=a;const l=new G.AeJ({cornerRadius:r.highlightCornerRadius}),h=new G.NBX({children:[t]}),A=e=>{l.rectWidth=e,h.maxWidth=e};i.link(A);const d=e=>{l.rectHeight=e,h.maxHeight=e};n.link(d);const c=()=>{"left"===r.align?h.left=l.left+r.xMargin:"right"===r.align?h.right=l.right-r.xMargin:h.centerX=l.centerX,h.centerY=l.centerY};h.boundsProperty.lazyLink(c),c(),r.children=[l,h],super(r),this._supplyOpenResponseOnNextFocus=!1,this.item=e,this.localBoundsProperty.link(e=>{this.focusHighlight=Ke.bn.bounds(e)}),this.addInputListener({enter(){l.fill=r.highlightFill},exit(){l.fill=null}}),this.disposeComboBoxListItemNode=()=>{a.dispose(),i.unlink(A),n.unlink(d)}}supplyOpenResponseOnNextFocus(){this._supplyOpenResponseOnNextFocus=!0}dispose(){this.disposeComboBoxListItemNode(),super.dispose()}comboBoxListItemNodeVoicingFocusListener(){this.voicingSpeakFullResponse({nameResponse:this._supplyOpenResponseOnNextFocus?this.voicingNameResponse:null,objectResponse:this._supplyOpenResponseOnNextFocus?null:this.voicingObjectResponse,contextResponse:null,hintResponse:this._supplyOpenResponseOnNextFocus?this.voicingHintResponse:null}),this._supplyOpenResponseOnNextFocus=!1}}At.register("ComboBoxListItemNode",Ul);class Kl extends ct{constructor(e,t,i,n,s,r,o,a){const l=(0,Y.ZP)()({highlightFill:"rgb( 245, 245, 245 )",comboBoxListItemNodeOptions:{},xMargin:12,yMargin:8,backgroundPickable:!0,tagName:"ul",ariaRole:"listbox",groupFocusHighlight:!0,focusable:!0,openedSoundPlayer:Kr,closedNoChangeSoundPlayer:Rr,visiblePropertyOptions:{phetioReadOnly:!0}},a),h=new Me.Z(t=>{const i=e.value,r=t.currentTarget;s(),e.value=r.item.value,n(),this.voiceOnNewSelection(e.value,i,r),t.abort()},{parameters:[{phetioPrivate:!0,valueType:G.IAx}],tandem:o.createTandem("fireAction"),phetioEventType:q.Z.USER}),A={up(e){h.execute(e)},keyup:e=>{e.domEvent&&G.ntP.isAnyKeyEvent(e.domEvent,[G.ntP.KEY_ENTER,G.ntP.KEY_SPACE])&&h.execute(e)},click:e=>{h.execute(e)}},d=jl.getMaxItemWidthProperty(i),c=jl.getMaxItemHeightProperty(i),u=new M.ZP([d],e=>e+l.xMargin),g=new M.ZP([c],e=>e+l.yMargin),p=[];t.forEach((e,t)=>{const n=new Ul(e,i[t],u,g,(0,Y.JA)({align:l.align,highlightFill:l.highlightFill,highlightCornerRadius:l.cornerRadius,xMargin:.5*l.xMargin,tandem:e.tandemName?o.createTandem(e.tandemName):K.Z.OPTIONAL},l.comboBoxListItemNodeOptions,e.comboBoxListItemNodeOptions));p.push(n),n.addInputListener(A)});const m=new G.SHm({spacing:0,excludeInvisibleChildrenFromBounds:!0,children:p});let y;super(m,(0,Y.JA)({},l,{xMargin:l.xMargin/2,yMargin:l.yMargin/2})),this.content=m,this.voiceOnSelectionNode=r;const f=t.map(e=>e.soundPlayer?e.soundPlayer:Qt.getSelectionSoundPlayer(t.indexOf(e)));this.visibleProperty.lazyLink(i=>{if(i)l.openedSoundPlayer.play(),y=e.value;else if(y===e.value)l.closedNoChangeSoundPlayer.play();else{const i=t.findIndex(t=>t.value===e.value);f[i].play()}});const w=new G.F3H({keys:["escape","tab","arrowUp","arrowDown","home","end"],callback:(e,t)=>{const i=e,r=this.getAllListItemNodes().filter(e=>e.visible);if("escape"===t||"tab"===t)i.abort(),n(),s();else if("arrowUp"===t||"arrowDown"===t){const e=i.domEvent;e.preventDefault();const n="arrowDown"===t?1:-1,s=r.indexOf(this.getFocusedItemNode()),o=s+n;r[o]&&r[o].focus(),i.pointer.reserveForKeyboardDrag()}else"home"===t?r[0].focus():"end"===t&&r[r.length-1].focus()}});this.addInputListener(w),this.disposeComboBoxListBox=()=>{for(let e=0;et.item.value===e);return t}getFocusedItemNode(){const e=_.find(this.getAllListItemNodes(),e=>e.focused);return e}focusListItemNode(e){let t=this.getListItemNode(e);t.visible||(t=_.find(this.getAllListItemNodes(),e=>e.visible)),t&&(t.supplyOpenResponseOnNextFocus(),t.focus())}voiceOnNewSelection(e,t,i){const n={nameResponse:i.voicingNameResponse,objectResponse:null,contextResponse:i.voicingContextResponse,hintResponse:null};t===e&&(n.contextResponse=null),this.voiceOnSelectionNode.voicingSpeakResponse(n)}}At.register("ComboBoxListBox",Kl);const Wl=(e,t,i,n)=>(n.push(()=>{e.button.accessibleName=i}),t),zl=(e,t,i,n)=>(n.push(()=>{e.button.helpText=i}),t);class jl extends((0,G.pL8)(G.NBX)){constructor(e,t,i,n){const s=(0,Y.ZP)()({align:"left",listPosition:"below",labelXSpacing:10,disabledOpacity:.5,cornerRadius:4,highlightFill:"rgb( 245, 245, 245 )",xMargin:12,yMargin:8,buttonFill:"white",buttonStroke:"black",buttonLineWidth:1,buttonTouchAreaXDilation:0,buttonTouchAreaYDilation:0,buttonMouseAreaXDilation:0,buttonMouseAreaYDilation:0,listFill:"white",listStroke:"black",listLineWidth:1,openedSoundPlayer:Kr,closedNoChangeSoundPlayer:Rr,tagName:"div",accessibleNameBehavior:Wl,helpTextBehavior:zl,comboBoxVoicingNameResponsePattern:vl.VALUE_NAMED_PLACEHOLDER,comboBoxVoicingContextResponse:null,comboBoxVoicingHintResponse:null,tandem:K.Z.REQUIRED,tandemNameSuffix:"ComboBox",phetioType:jl.ComboBoxIO,phetioFeatured:!0,phetioEventType:q.Z.USER,visiblePropertyOptions:{phetioFeatured:!0},phetioEnabledPropertyInstrumented:!0},n),r=Yt(t,s.tandem.createTandem("items"));super(),this.nodes=r,this.listPosition=s.listPosition,this.button=new Zl(e,t,r,{align:s.align,arrowDirection:"below"===s.listPosition?"down":"up",cornerRadius:s.cornerRadius,xMargin:s.xMargin,yMargin:s.yMargin,baseColor:s.buttonFill,stroke:s.buttonStroke,lineWidth:s.buttonLineWidth,touchAreaXDilation:s.buttonTouchAreaXDilation,touchAreaYDilation:s.buttonTouchAreaYDilation,mouseAreaXDilation:s.buttonMouseAreaXDilation,mouseAreaYDilation:s.buttonMouseAreaYDilation,localPreferredWidthProperty:this.localPreferredWidthProperty,localMinimumWidthProperty:this.localMinimumWidthProperty,comboBoxVoicingNameResponsePattern:s.comboBoxVoicingNameResponsePattern,tandem:s.tandem.createTandem("button")}),this.addChild(this.button),this.listBox=new Kl(e,t,r,this.hideListBox.bind(this),()=>{this.button.blockNextVoicingFocusListener(),this.button.focus()},this.button,s.tandem.createTandem("listBox"),{align:s.align,highlightFill:s.highlightFill,xMargin:s.xMargin,yMargin:s.yMargin,cornerRadius:s.cornerRadius,fill:s.listFill,stroke:s.listStroke,lineWidth:s.listLineWidth,visible:!1,comboBoxListItemNodeOptions:{comboBoxVoicingNameResponsePattern:s.comboBoxVoicingNameResponsePattern,voicingContextResponse:s.comboBoxVoicingContextResponse,voicingHintResponse:s.comboBoxVoicingHintResponse},openedSoundPlayer:s.openedSoundPlayer,closedNoChangeSoundPlayer:s.closedNoChangeSoundPlayer,ariaLabelledbyAssociations:[{otherNode:this.button,otherElementName:G.Grz.LABEL_SIBLING,thisElementName:G.Grz.PRIMARY_SIBLING}]}),i.addChild(this.listBox),this.listParent=i;const o=new G.z$X(this.button,this.listParent,{fromCoordinateFrame:"parent",toCoordinateFrame:"local"});Ce.Z.multilink([o,this.button.localBoundsProperty,this.listBox.localBoundsProperty],e=>{this.scaleAndPositionListBox(e)}),this.opacityProperty.link(e=>{this.listBox.opacityProperty.value=e}),this.mutate(s),this.button.addListener(()=>{this.listBox.visibleProperty.value=!this.listBox.visibleProperty.value,this.listBox.focusListItemNode(e.value)}),this.display=null,this.clickToDismissListener={down:e=>{(!phet.chipper.isFuzzEnabled()||H.Z.nextDouble()<.005)&&(e.trail.containsNode(this.button)||e.trail.containsNode(this.listBox)||this.hideListBox())}},this.dismissWithFocusListener=e=>{e&&!e.trail.containsNode(this.listBox)&&this.hideListBox()},G.IKS.pdomFocusProperty.link(this.dismissWithFocusListener),this.listBox.visibleProperty.link(e=>{e?(this.scaleListBox(),this.listBox.moveToFront(),this.display=this.getUniqueTrail().rootNode().getRootedDisplays()[0],this.display.addInputListener(this.clickToDismissListener)):this.display&&this.display.hasInputListener(this.clickToDismissListener)&&(this.display.removeInputListener(this.clickToDismissListener),this.display=null)}),this.displayOnlyProperty=new V.Z(!1,{tandem:s.tandem.createTandem("displayOnlyProperty"),phetioFeatured:!0,phetioDocumentation:"disables interaction with the ComboBox and makes it appear like a display that shows the current selection"}),this.displayOnlyProperty.link(e=>{this.hideListBox(),this.button.setDisplayOnly(e),this.pickable=!e}),this.addLinkedElement(e,{tandemName:"property"}),this.disposeComboBox=()=>{o.dispose(),this.display&&this.display.hasInputListener(this.clickToDismissListener)&&this.display.removeInputListener(this.clickToDismissListener),G.IKS.pdomFocusProperty.unlink(this.dismissWithFocusListener),this.displayOnlyProperty.dispose(),this.listBox.dispose(),this.button.dispose(),r.forEach(e=>e.dispose())}}dispose(){this.disposeComboBox(),super.dispose()}showListBox(){this.listBox.visibleProperty.value=!0}hideListBox(){this.listBox.visibleProperty.value=!1}scaleListBox(){if(!this.listBox.localBounds.isEmpty()){const e=this.button.localToGlobalBounds(this.button.localBounds).width/this.button.localBounds.width,t=this.listBox.localToGlobalBounds(this.listBox.localBounds).width/this.listBox.localBounds.width;this.listBox.scale(e/t)}}scaleAndPositionListBox(e){e&&(this.scaleListBox(),"above"===this.listPosition?this.listBox.leftBottom=e.timesVector2(this.button.leftTop):this.listBox.leftTop=e.timesVector2(this.button.leftBottom))}setItemVisible(e,t){this.listBox.setItemVisible(e,t)}isItemVisible(e){return this.listBox.isItemVisible(e)}static getMaxItemWidthProperty(e){const t=_.flatten(e.map(e=>{const t=[e.boundsProperty];return(0,G.AXx)(e)&&(t.push(e.isWidthResizableProperty),t.push(e.minimumWidthProperty)),t}));return M.ZP.deriveAny(t,()=>Math.max(...e.map(e=>(0,G.S3T)(e)?e.minimumWidth||0:e.width)),{accessNonDependencies:!0})}static getMaxItemHeightProperty(e){const t=e.map(e=>e.boundsProperty);return M.ZP.deriveAny(t,()=>Math.max(...e.map(e=>e.height)),{accessNonDependencies:!0})}}c=jl,_defineProperty(jl,"ITEM_TANDEM_NAME_SUFFIX","Item"),_defineProperty(jl,"ComboBoxIO",new hs.Z("ComboBoxIO",{valueType:c,documentation:"A combo box is composed of a push button and a listbox. The listbox contains items that represent choices. Pressing the button pops up the listbox. Selecting from an item in the listbox sets the value of an associated Property. The button shows the item that is currently selected.",supertype:G.NBX.NodeIO,events:["listBoxShown","listBoxHidden"]})),At.register("ComboBox",jl);var Xl=i(8588);const Jl=ds.Z.a11y.preferences.tabs.audio.voicing.titleStringProperty,_l=ds.Z.a11y.preferences.tabs.audio.voicing.toolbar.titleStringProperty,$l=ds.Z.a11y.preferences.tabs.audio.voicing.customizeVoice.rate.titleStringProperty,eh=ds.Z.a11y.preferences.tabs.audio.voicing.customizeVoice.rate.labelStringStringProperty,th=ds.Z.a11y.preferences.tabs.audio.voicing.customizeVoice.pitch.titleStringProperty,ih=ds.Z.a11y.preferences.tabs.audio.voicing.voicingOnStringProperty,nh=ds.Z.a11y.preferences.tabs.audio.voicing.voicingOffStringProperty,sh=ds.Z.a11y.preferences.tabs.audio.voicing.voicingOffOnlyAvailableInEnglishStringProperty,rh=ds.Z.a11y.preferences.tabs.audio.voicing.customizeVoice.variablesPatternStringProperty,oh=ds.Z.a11y.preferences.tabs.audio.voicing.customizeVoice.titleStringProperty,ah=ds.Z.a11y.preferences.tabs.audio.voicing.toolbar.toolbarRemovedStringProperty,lh=ds.Z.a11y.preferences.tabs.audio.voicing.toolbar.toolbarAddedStringProperty,hh=ds.Z.a11y.preferences.tabs.audio.voicing.simVoicingOptions.titleStringProperty,Ah=ds.Z.a11y.preferences.tabs.audio.voicing.simVoicingOptions.descriptionStringProperty,dh=ds.Z.a11y.preferences.tabs.audio.voicing.simVoicingOptions.objectDetails.labelStringProperty,ch=ds.Z.a11y.preferences.tabs.audio.voicing.simVoicingOptions.contextChanges.labelStringProperty,uh=ds.Z.a11y.preferences.tabs.audio.voicing.simVoicingOptions.helpfulHints.labelStringProperty,gh=ds.Z.a11y.preferences.tabs.audio.voicing.simVoicingOptions.objectDetails.enabledAlertStringProperty,ph=ds.Z.a11y.preferences.tabs.audio.voicing.simVoicingOptions.objectDetails.disabledAlertStringProperty,mh=ds.Z.a11y.preferences.tabs.audio.voicing.simVoicingOptions.contextChanges.enabledAlertStringProperty,yh=ds.Z.a11y.preferences.tabs.audio.voicing.simVoicingOptions.contextChanges.disabledAlertStringProperty,fh=ds.Z.a11y.preferences.tabs.audio.voicing.simVoicingOptions.helpfulHints.enabledAlertStringProperty,wh=ds.Z.a11y.preferences.tabs.audio.voicing.simVoicingOptions.helpfulHints.disabledAlertStringProperty,Bh=ds.Z.a11y.preferences.tabs.audio.voicing.customizeVoice.voice.titleStringProperty,Ph=ds.Z.a11y.preferences.tabs.audio.voicing.customizeVoice.voice.titlePatternStringProperty,Dh=ds.Z.a11y.preferences.tabs.audio.voicing.customizeVoice.voice.noVoicesAvailableStringProperty,Ch=ds.Z.a11y.preferences.tabs.audio.voicing.customizeVoice.expandedAlertStringProperty,Eh=ds.Z.a11y.preferences.tabs.audio.voicing.customizeVoice.collapsedAlertStringProperty,bh=ds.Z.a11y.preferences.tabs.audio.voicing.customizeVoice.writtenVariablesPatternStringProperty,vh=ds.Z.a11y.preferences.tabs.labelledDescriptionPatternStringProperty,Vh=ds.Z.a11y.preferences.tabs.audio.voicing.customizeVoice.rate.rangeDescriptions.voiceRateNormalStringProperty,Ih=ds.Z.a11y.preferences.tabs.audio.voicing.customizeVoice.rate.rangeDescriptions.lowStringProperty,Mh=ds.Z.a11y.preferences.tabs.audio.voicing.customizeVoice.rate.rangeDescriptions.normalStringProperty,Sh=ds.Z.a11y.preferences.tabs.audio.voicing.customizeVoice.rate.rangeDescriptions.aboveNormalStringProperty,Th=ds.Z.a11y.preferences.tabs.audio.voicing.customizeVoice.rate.rangeDescriptions.highStringProperty,xh=ds.Z.preferences.tabs.audio.voicing.titleEnglishOnlyStringProperty,Oh=ds.Z.preferences.tabs.audio.voicing.descriptionStringProperty,kh=new Map;kh.set(new Sa.Z(.5,.75),Ih),kh.set(new Sa.Z(.75,1.25),Mh),kh.set(new Sa.Z(1.25,1.5),Sh),kh.set(new Sa.Z(1.5,2),Th);const Lh=new Q.Z(13,26),Qh=new Q.Z(100,5);class Rh extends pa{constructor(e,t){const i=Xl.Z.validValues&&Xl.Z.validValues.length>1?xh:Jl,n=new G.xvT(i,XA.PANEL_SECTION_LABEL_OPTIONS),s=new gs(vh,{label:i,description:Oh},{tandem:K.Z.OPT_OUT}),r=new G.JxC(Oh,(0,Ei.Z)({},XA.PANEL_SECTION_CONTENT_OPTIONS,{readingBlockNameResponse:s})),o=new ua(e.voicingEnabledProperty,!1,!0,(0,Y.JA)({a11yName:i},fa.TOGGLE_SWITCH_OPTIONS)),a=new Wo({labelNode:n,descriptionNode:r,controlNode:o}),l=new G.xvT(_l,XA.PANEL_SECTION_LABEL_OPTIONS),h=new ua(e.toolbarEnabledProperty,!1,!0,(0,Y.JA)({a11yName:_l,leftValueContextResponse:ah,rightValueContextResponse:lh},fa.TOGGLE_SWITCH_OPTIONS)),A=new Wo({labelNode:l,controlNode:h}),d=new G.xvT(hh,(0,Ei.Z)({},XA.PANEL_SECTION_LABEL_OPTIONS,{tagName:"h3",innerContent:hh})),c=new gs(vh,{label:hh,description:Ah},{tandem:K.Z.OPT_OUT}),u=new G.JxC(Ah,(0,Ei.Z)({},XA.PANEL_SECTION_CONTENT_OPTIONS,{readingBlockNameResponse:c})),g=(e,t,i,n,s)=>{const r=new G.xvT(e,XA.PANEL_SECTION_CONTENT_OPTIONS);return new fi(t,r,{labelTagName:"label",labelContent:e,voicingNameResponse:e,voicingIgnoreVoicingManagerProperties:!0,voiceNameResponseOnSelection:!1,checkedContextResponse:i,uncheckedContextResponse:n,tandem:K.Z.OPT_OUT})},p=new G.NBX,m=new G.SHm({align:"left",spacing:XA.VERTICAL_CONTENT_SPACING,children:[g(dh,e.voicingObjectResponsesEnabledProperty,gh,ph),g(ch,e.voicingContextResponsesEnabledProperty,mh,yh),g(uh,e.voicingHintResponsesEnabledProperty,fh,wh)]});p.children=[d,u,m],u.leftTop=d.leftBottom.plusXY(0,XA.VERTICAL_CONTENT_SPACING),m.leftTop=u.leftBottom.plusXY(XA.CONTENT_INDENTATION_SPACING,XA.VERTICAL_CONTENT_SPACING);const y=new Nh($l,eh,e.voiceRateProperty),f=new Fh(th,e.voicePitchProperty),w=new G.SHm({spacing:XA.VERTICAL_CONTENT_SPACING,align:"left",children:[y,f]}),B=new G.xvT(oh,(0,Ei.Z)({},XA.PANEL_SECTION_LABEL_OPTIONS,{cursor:"pointer"})),P=new V.Z(!1),D=new wn(P,{sideLength:16,innerContent:oh,voicingNameResponse:oh,voicingIgnoreVoicingManagerProperties:!0,tandem:K.Z.OPT_OUT}),C=new G.NBX({children:[B,D]}),E=new G.$o8({press:()=>{P.toggle()},tandem:K.Z.OPT_OUT});B.addInputListener(E);const b=new G.NBX({children:[p,A,C,w]});A.leftTop=p.leftBottom.plusXY(0,20),B.leftTop=A.leftBottom.plusXY(0,20),D.leftCenter=B.rightCenter.plusXY(10,0),w.leftTop=B.leftBottom.plusXY(0,10),P.link(e=>{w.visible=e}),D.focusHighlight=new G.bjc(C),super({titleNode:a,contentNode:b});e.voicingEnabledProperty.link(e=>{b.visible=e});Xl.Z.link(e=>{a.enabledProperty.value=e.startsWith("en")});const v=new ui.Z;e.voicingEnabledProperty.lazyLink(t=>{e.voicingMainWindowVoicingEnabledProperty.value&&(v.alert=t?ih:Xl.Z.value.startsWith("en")?nh:sh,this.isInsidePhetioArchetype()||G.LY3.speakIgnoringEnabled(v),this.alertDescriptionUtterance(v))});let I=null;G.LY3.voicesProperty.link(t=>{I&&(w.removeChild(I),I.dispose());let i=[];if(t.length>0){i=G.LY3.getEnglishPrioritizedVoices().slice(0,12)}const n=phet.joist.sim.topLayer||new G.NBX;I=new Yh(e.voiceProperty,i,n),w.addChild(I)}),P.lazyLink(e=>{const t=e?Ch:Eh;D.voicingSpeakContextResponse({contextResponse:t}),this.alertDescriptionUtterance(t)})}}class Nh extends Gl{constructor(e,t,i){super(e,i,i.range,{includeArrowButtons:!1,layoutFunction:Gl.createLayoutFunction4(),delta:.25,titleNodeOptions:(0,Ei.Z)({},XA.PANEL_SECTION_CONTENT_OPTIONS,{maxWidth:45}),numberDisplayOptions:{decimalPlaces:2,valuePattern:rh,textOptions:(0,Ei.Z)({},XA.PANEL_SECTION_CONTENT_OPTIONS,{maxWidth:45})},sliderOptions:{thumbSize:Lh,trackSize:Qh,keyboardStep:.25,minorTickSpacing:.25,labelTagName:"label",labelContent:t,voicingOnEndResponseOptions:{withNameResponse:!0}},tandem:K.Z.OPT_OUT}),this.slider.voicingNameResponse=t,this.slider.voicingIgnoreVoicingManagerProperties=!0;const n=new gs(bh,{value:i},{tandem:K.Z.OPT_OUT}),s=new M.ZP([i,Vh,n],(e,t,i)=>1===e?t:i);this.slider.voicingObjectResponse=s}}class Yh extends jl{constructor(e,t,i,n){const s=(0,Y.ZP)()({listPosition:"above",accessibleName:Bh,comboBoxVoicingNameResponsePattern:Ph.value,tandem:K.Z.OPT_OUT},n),r=[];0===t.length&&r.push({value:null,createNode:e=>new G.xvT(Dh,XA.PANEL_SECTION_CONTENT_OPTIONS),a11yName:Dh}),t.forEach(e=>{r.push({value:e,createNode:t=>new G.xvT(e.name,XA.PANEL_SECTION_CONTENT_OPTIONS),a11yName:e.name})}),e.set(r[0].value),super(e,r,i,s),this.button.voicingIgnoreVoicingManagerProperties=!0,this.disposeVoiceComboBox=()=>{r.forEach(e=>{e.value=null})}}dispose(){this.disposeVoiceComboBox(),super.dispose()}}class Fh extends G.SHm{constructor(e,t){const i=new G.xvT(e,XA.PANEL_SECTION_CONTENT_OPTIONS),n=t.range,s=new xl(t,n,{majorTickLength:10,thumbSize:Lh,trackSize:Qh,keyboardStep:.25,shiftKeyboardStep:.1,constrainValue:e=>R.Z.roundToInterval(e,.01),labelTagName:"label",labelContent:e,voicingNameResponse:e,voicingIgnoreVoicingManagerProperties:!0,tandem:K.Z.OPT_OUT}),r=new G.xvT("Low",{font:new it(14)});s.addMajorTick(n.min,r);const o=new G.xvT("High",{font:new it(14)});s.addMajorTick(n.max,o),super();t.link((e,t)=>{s.voicingObjectResponse=this.getPitchDescriptionString(e)}),this.mutate({children:[i,s],spacing:5})}getPitchDescriptionString(e){let t="";return kh.forEach((i,n)=>{n.contains(e)&&(t=i)}),t}}Te.Z.register("VoicingPanelSection",Rh);const Gh=Rh;class qh extends G.NBX{constructor(e,t,i,n){const s=(0,Y.ZP)()({tagName:"div",labelTagName:"h2"},n);s.tandem=K.Z.OPT_OUT,super(s),Ce.Z.multilink([t,i],(t,i)=>{this.visible=t===e&&i})}}Te.Z.register("PreferencesPanel",qh);const Hh=qh;class Zh extends Be.Z{}_defineProperty(Zh,"OVERVIEW",new(u=Zh)),_defineProperty(Zh,"SIMULATION",new u),_defineProperty(Zh,"VISUAL",new u),_defineProperty(Zh,"AUDIO",new u),_defineProperty(Zh,"INPUT",new u),_defineProperty(Zh,"LOCALIZATION",new u),_defineProperty(Zh,"enumeration",new we.Z(u)),Te.Z.register("PreferencesType",Zh);const Uh=ds.Z.preferences.tabs.audio.audioFeatures.titleStringProperty;class Kh extends Hh{constructor(e,t,i,n){super(Zh.AUDIO,t,i,{labelContent:Uh});const s={align:"left",spacing:XA.CONTENT_SPACING,excludeInvisibleChildrenFromBounds:!1},r=new G.SHm(s),o=new G.SHm(s);if(e.supportsVoicing){const t=new Gh(e);r.addChild(t)}if(e.supportsSound){const t=e.supportsVoicing!==e.supportsSound,i=new Ma(e,{includeTitleToggleSwitch:!t});o.addChild(i)}const a=new G.BET({align:"top",spacing:10,children:[r,o],tagName:"div"});e.customPreferences.forEach((e,t)=>{const i=t%2==0?r:o,s=e.createContent(n.tandem),a=new pa({contentNode:s,contentNodeOptions:{excludeInvisibleChildrenFromBounds:!0},contentLeftMargin:0});i.addChild(a)});const l=new G.xvT(Uh,XA.PANEL_SECTION_LABEL_OPTIONS),h=new ua(e.audioEnabledProperty,!1,!0,(0,Y.JA)({a11yName:Uh},fa.TOGGLE_SWITCH_OPTIONS)),A=new Wo({labelNode:l,controlNode:h,headingControl:!0});e.audioEnabledProperty.link(e=>{a.enabled=e});const d=new G.SHm({align:"center",spacing:25,children:[A,a]});this.addChild(d)}}Te.Z.register("AudioPreferencesTabPanel",Kh);const Wh=Kh;class zh extends Hh{constructor(e,t,i,n){const s=(0,Y.ZP)()({labelContent:"Simulation",phetioVisiblePropertyInstrumented:!1},n);super(Zh.SIMULATION,t,i,s);const r=new G.SHm({align:"left",spacing:XA.CONTENT_SPACING});this.addChild(r);const o=[];e.customPreferences.forEach(e=>{const t=e.createContent(s.tandem),i=new pa({contentNode:t});o.push(i)}),r.children=o}}Te.Z.register("SimulationPreferencesPanel",zh);const jh=zh,Xh=ds.Z.a11y.preferences.tabs.input.gestureControl.enabledAlertStringProperty,Jh=ds.Z.a11y.preferences.tabs.input.gestureControl.disabledAlertStringProperty,_h=ds.Z.a11y.preferences.tabs.labelledDescriptionPatternStringProperty;class $h extends Hh{constructor(e,t,i,n){super(Zh.INPUT,t,i,{labelContent:"Input"});const s=new G.SHm({spacing:XA.CONTENT_SPACING,align:"left"});if(this.addChild(s),e.supportsGestureControl){const t=new G.xvT("Gesture Control",XA.PANEL_SECTION_LABEL_OPTIONS),i=new G.yhY("Use touch with custom swipes and taps instead. No direct touch with gesture control enabled.",(0,Ei.Z)({},XA.PANEL_SECTION_CONTENT_OPTIONS,{lineWrap:350,maxHeight:100,readingBlockNameResponse:F.Z.fillIn(_h,{label:"Gesture Control",description:"Use touch with custom swipes and taps instead. No direct touch with gesture control enabled."})})),n=new ua(e.gestureControlsEnabledProperty,!1,!0,(0,Y.JA)({a11yName:"Gesture Control",leftValueContextResponse:Jh,rightValueContextResponse:Xh},fa.TOGGLE_SWITCH_OPTIONS)),r=new Wo({labelNode:t,descriptionNode:i,controlNode:n}),o=new pa({titleNode:r,contentLeftMargin:0});s.addChild(o)}const r=new G.SHm({spacing:XA.CONTENT_SPACING,align:"left"});e.customPreferences.forEach(e=>{const t=e.createContent(n.tandem);r.addChild(new G.NBX({children:[t]}))});const o=new pa({contentNode:r,contentLeftMargin:0});s.addChild(o)}}Te.Z.register("InputPreferencesPanel",$h);const eA=$h;class tA extends Wo{constructor(e,t){const i=new G.xvT(ds.Z.projectorModeStringProperty,XA.PANEL_SECTION_LABEL_OPTIONS),n=new G.JxC(ds.Z.preferences.tabs.visual.projectorModeDescriptionStringProperty,XA.PANEL_SECTION_CONTENT_OPTIONS),s=phet.chipper.colorProfiles.find(e=>e!==G.iaM.PROJECTOR_COLOR_PROFILE),r=new ua(e,s,G.iaM.PROJECTOR_COLOR_PROFILE,(0,Y.JA)({a11yName:ds.Z.projectorModeStringProperty},fa.TOGGLE_SWITCH_OPTIONS)),o=new gs(ds.Z.a11y.preferences.tabs.labelledDescriptionPatternStringProperty,{label:ds.Z.projectorModeStringProperty,description:ds.Z.preferences.tabs.visual.projectorModeDescriptionStringProperty},{tandem:K.Z.OPT_OUT});n.readingBlockNameResponse=o,super((0,Y.ZP)()({labelNode:i,descriptionNode:n,controlNode:r},t))}}Te.Z.register("ProjectorModeToggleSwitch",tA);const iA=tA,nA=ds.Z.preferences.tabs.visual.interactiveHighlightsStringProperty,sA=ds.Z.preferences.tabs.visual.interactiveHighlightsDescriptionStringProperty,rA=ds.Z.a11y.preferences.tabs.visual.interactiveHighlights.enabledAlertStringProperty,oA=ds.Z.a11y.preferences.tabs.visual.interactiveHighlights.disabledAlertStringProperty,aA=ds.Z.a11y.preferences.tabs.labelledDescriptionPatternStringProperty;class lA extends Hh{constructor(e,t,i,n){const s=(0,Y.ZP)()({labelContent:"Visual"},n),r=s.tandem;s.tandem=K.Z.OPT_OUT,super(Zh.VISUAL,t,i,s);const o=new G.SHm({spacing:XA.CONTENT_SPACING,align:"left"});if(e.supportsProjectorMode){const t=new iA(e.colorProfileProperty);o.addChild(t)}if(e.supportsInteractiveHighlights){const t=new G.xvT(nA,XA.PANEL_SECTION_LABEL_OPTIONS),i=new gs(aA,{label:nA,description:sA},{tandem:K.Z.OPT_OUT}),n=new G.JxC(sA,(0,Ei.Z)({},XA.PANEL_SECTION_CONTENT_OPTIONS,{readingBlockNameResponse:i})),s=new ua(e.interactiveHighlightsEnabledProperty,!1,!0,(0,Y.JA)({a11yName:nA,leftValueContextResponse:oA,rightValueContextResponse:rA},fa.TOGGLE_SWITCH_OPTIONS)),r=new Wo({labelNode:t,descriptionNode:n,controlNode:s});o.addChild(r)}e.customPreferences.forEach(e=>{const t=e.createContent(r),i=new G.NBX({children:[t]});o.addChild(i)});const a=new pa({contentNode:o,contentLeftMargin:0});this.addChild(a)}}Te.Z.register("VisualPreferencesPanel",lA);const hA=lA;class AA extends jl{constructor(e,t,i){const n=(0,Y.ZP)()({yMargin:3,tandem:K.Z.OPT_OUT},i);super(e,t.map((e,t)=>({value:e,createNode:()=>new G.xvT(e.labelProperty,XA.PANEL_SECTION_CONTENT_OPTIONS)})),phet.joist.sim.topLayer,n)}}Te.Z.register("RegionAndCultureComboBox",AA);const dA=AA;class cA extends G.AeJ{constructor(e,t){const i=F.Z.localeToLocalizedName(t),n=phet.chipper.queryParameters.dev?F.Z.wrapLTR(`${i} (${t})`):i,s=phet.chipper.localeData[t],r=s.englishName,o=new G.xvT(n,{font:XA.CONTENT_FONT});super(o.bounds.dilated(5),{cursor:"pointer",tagName:"button",innerContent:r}),o.center=this.center,this.addChild(o),this.locale=t;const a=new G.eMb({fire:()=>{e.value=t,Oi.play(),this.alertDescriptionUtterance(F.Z.fillIn(ds.Z.a11y.preferences.tabs.localization.languageSelection.languageChangeResponsePatternStringProperty,{language:r}))},tandem:K.Z.OPT_OUT});this.addInputListener(a),a.isOverProperty.link(e=>{this.stroke=e?G.JPB.getInnerGroupHighlightColor():G.Ilk.TRANSPARENT});e.link(e=>{this.fill=e===t?Os.PHET_LOGO_BLUE:null})}}Te.Z.register("LanguageSelectionNode",cA);class uA extends ct{constructor(e){const t=e.validValues.slice().sort((e,t)=>{const i=F.Z.localeToLocalizedName(e).toLowerCase(),n=F.Z.localeToLocalizedName(t).toLowerCase();return i.localeCompare(n,"en-US",{sensitivity:"base"})});super(new G.zch({xMargin:5,xAlign:"left",autoRows:15,maxWidth:1e3,resize:!1,children:t.map(t=>new cA(e,t))}),{tagName:"div",labelTagName:"h3",labelContent:ds.Z.a11y.preferences.tabs.localization.languageSelection.labelStringProperty,descriptionTagName:"p",descriptionContent:ds.Z.a11y.preferences.tabs.localization.languageSelection.descriptionStringProperty})}}Te.Z.register("LocalePanel",uA);const gA=uA,pA=ds.Z.preferences.tabs.localization.titleStringProperty,mA=ds.Z.preferences.tabs.localization.regionAndCulture.titleStringProperty,yA=ds.Z.preferences.tabs.localization.regionAndCulture.descriptionStringProperty;class fA extends Hh{constructor(e,t,i,n){const s=(0,Y.ZP)()({labelContent:pA,phetioVisiblePropertyInstrumented:!1},n);super(Zh.LOCALIZATION,t,i,s);const r=new G.SHm({spacing:XA.CONTENT_SPACING});if(e.regionAndCulturePortrayalProperty){const t=new dA(e.regionAndCulturePortrayalProperty,e.characterSets),i=new G.xvT(mA,fa.CONTROL_LABEL_OPTIONS),n=new G.Hof(yA,fa.CONTROL_DESCRIPTION_OPTIONS);r.addChild(new Wo({labelNode:i,controlNode:t,descriptionNode:n}))}if(e.supportsDynamicLocale&&e.includeLocalePanel){const t=new G.xvT(ds.Z.a11y.preferences.tabs.localization.languageSelection.labelStringProperty,fa.CONTROL_LABEL_OPTIONS),i=new G.Hof(ds.Z.a11y.preferences.tabs.localization.languageSelection.descriptionStringProperty,fa.CONTROL_DESCRIPTION_OPTIONS),n=new gA(e.localeProperty),s=new G.SHm({children:[t,i,n],align:"left",spacing:5,stretch:!0,layoutOptions:{stretch:!0}});r.addChild(s)}e.customPreferences.forEach(e=>{const t=e.createContent(n.tandem);r.addChild(new G.NBX({children:[t]}))}),r.align=r.children.length>1?"left":"center";const o=new pa({contentNode:r,contentLeftMargin:0});this.addChild(o)}}Te.Z.register("LocalizationPreferencesPanel",fA);const wA=fA,BA=new M.ZP([Xl.Z],e=>"ltr"===phet.chipper.localeData[e].direction);Te.Z.register("isLeftToRightProperty",BA);const PA=BA;class DA extends Hh{constructor(e,t){super(Zh.OVERVIEW,e,t);const i=(0,Ei.Z)({},XA.PANEL_SECTION_CONTENT_OPTIONS,{maxWidth:null,lineWrap:600,maxHeight:600,tagName:"p"}),n=[new G.yhY(ds.Z.preferences.tabs.general.accessibilityIntroStringProperty,i),new G.yhY(ds.Z.preferences.tabs.general.moreAccessibilityStringProperty,i)],s=new G.SHm({spacing:10,children:n});this.addChild(s);PA.link(e=>{n.forEach(t=>{const i=e?"left":"right";t.align=i,s.align=i})})}}Te.Z.register("OverviewPreferencesPanel",DA);const CA=DA;class EA extends G.NBX{constructor(e,t,i,n,s){const r=(0,Y.ZP)()({phetioVisiblePropertyInstrumented:!1,isDisposable:!1},s),o=r.tandem;r.tandem=K.Z.OPT_OUT,super(r),_defineProperty(this,"content",[]),this.selectedTabProperty=i;const a=new G.Lkj({matchVertical:!1});let l=null;if(t.includes(Zh.OVERVIEW)){l=new CA(i,n.getTabVisibleProperty(Zh.OVERVIEW));const e=a.createBox(l);this.addChild(e),this.content.push(new bA(l,Zh.OVERVIEW))}let h=null;if(t.includes(Zh.SIMULATION)){h=new jh(e.simulationModel,i,n.getTabVisibleProperty(Zh.SIMULATION),{tandem:o.createTandem("simulationPreferencesPanel")});const t=a.createBox(h);this.addChild(t),this.content.push(new bA(h,Zh.SIMULATION))}let A=null;if(t.includes(Zh.VISUAL)){A=new hA(e.visualModel,i,n.getTabVisibleProperty(Zh.VISUAL),{tandem:o.createTandem("visualPreferencesPanel")});const t=a.createBox(A);this.addChild(t),this.content.push(new bA(A,Zh.VISUAL))}let d=null;if(t.includes(Zh.AUDIO)){d=new Wh(e.audioModel,i,n.getTabVisibleProperty(Zh.AUDIO),{tandem:o.createTandem("audioPreferencesPanel")});const t=a.createBox(d);this.addChild(t),this.content.push(new bA(d,Zh.AUDIO))}let c=null;if(t.includes(Zh.INPUT)){c=new eA(e.inputModel,i,n.getTabVisibleProperty(Zh.INPUT),{tandem:o.createTandem("inputPreferencesPanel")});const t=a.createBox(c);this.addChild(t),this.content.push(new bA(c,Zh.INPUT))}let u=null;if(t.includes(Zh.LOCALIZATION)){u=new wA(e.localizationModel,i,n.getTabVisibleProperty(Zh.LOCALIZATION),{tandem:o.createTandem("localizationPreferencesPanel")});const t=a.createBox(u);this.addChild(t),this.content.push(new bA(u,Zh.LOCALIZATION))}}getSelectedContent(){for(let e=0;e{e.focusable=!1}})}}Te.Z.register("PreferencesPanels",EA);const vA=EA,VA=new Ke.bn("M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z").makeImmutable();class IA extends((0,G.CHP)(G.NBX)){constructor(e,t,i,n){const s=(0,Y.ZP)()({iconNode:null,pointerAreaXDilation:0,phetioFeatured:!0,visiblePropertyOptions:{phetioFeatured:!0},cursor:"pointer",tagName:"button",innerContent:e,ariaRole:"tab",focusable:!0,containerTagName:"li",containerAriaRole:"presentation"},n),r=[new G.xvT(e,XA.TAB_OPTIONS)];s.iconNode&&r.push(s.iconNode);const o=new G.BET({children:r,spacing:8}),a=new G.AeJ({children:[o]}),l=new G.x12(0,0,0,0,{stroke:G.Nqr.INNER_FOCUS_COLOR,lineWidth:5});super(s),this.children=[a,l],o.boundsProperty.link(e=>{a.rectBounds=e.dilatedXY(15,10),l.x2=e.width,l.centerTop=e.centerBottom.plusXY(0,5),this.mouseArea=this.localBounds.dilatedX(s.pointerAreaXDilation),this.touchArea=this.mouseArea}),this.value=i;const h=new gs(ds.Z.a11y.preferences.tabs.tabResponsePatternStringProperty,{title:e},{tandem:K.Z.OPT_OUT});this.voicingNameResponse=h;const A=new G.$o8({press:()=>{t.set(i),this.voicingSpeakNameResponse()},tandem:K.Z.OPT_OUT});this.addInputListener(A),Ce.Z.multilink([t,A.isOverProperty],(e,t)=>{a.opacity=e===i?1:t?.8:.6,this.focusable=e===i,l.visible=e===i})}}Te.Z.register("PreferencesTab",IA);const MA=IA;class SA extends G.BET{constructor(e,t,i){const n=(0,Y.ZP)()({isDisposable:!1,tagName:"ul",ariaRole:"tablist",groupFocusHighlight:!0,spacing:10,align:"bottom"},i);super(n),_defineProperty(this,"selectedButton",null),_defineProperty(this,"content",[]),this.selectedPanelProperty=t;const s=t=>_.includes(e,t),r=n.spacing/2;s(Zh.OVERVIEW)&&this.content.push(new MA(ds.Z.preferences.tabs.overview.titleStringProperty,t,Zh.OVERVIEW,{pointerAreaXDilation:r,tandem:n.tandem.createTandem("overviewTab")})),s(Zh.SIMULATION)&&this.content.push(new MA(ds.Z.preferences.tabs.simulation.titleStringProperty,t,Zh.SIMULATION,{pointerAreaXDilation:r,tandem:n.tandem.createTandem("simulationTab")})),s(Zh.VISUAL)&&this.content.push(new MA(ds.Z.preferences.tabs.visual.titleStringProperty,t,Zh.VISUAL,{pointerAreaXDilation:r,tandem:n.tandem.createTandem("visualTab")})),s(Zh.AUDIO)&&this.content.push(new MA(ds.Z.preferences.tabs.audio.titleStringProperty,t,Zh.AUDIO,{pointerAreaXDilation:r,tandem:n.tandem.createTandem("audioTab")})),s(Zh.INPUT)&&this.content.push(new MA(ds.Z.preferences.tabs.input.titleStringProperty,t,Zh.INPUT,{pointerAreaXDilation:r,tandem:n.tandem.createTandem("inputTab")})),s(Zh.LOCALIZATION)&&this.content.push(new MA(ds.Z.preferences.tabs.localization.titleStringProperty,t,Zh.LOCALIZATION,{pointerAreaXDilation:r,iconNode:new G.y$t(VA,{scale:.04,fill:"black"}),tandem:n.tandem.createTandem("localizationTab")})),this.children=this.content,Ce.Z.multilinkAny([t,...this.content.map(e=>e.visibleProperty)],()=>{if(!this.content.find(e=>e.value===t.value).visibleProperty.value){const e=this.content.find(e=>e.visibleProperty.value);e&&(t.value=e.value)}});const o=new G.F3H({keys:["arrowRight","arrowLeft","arrowUp","arrowDown"],callback:(e,i,n)=>{const s=e;if(n.keysDown)s.pointer.reserveForKeyboardDrag();else if("arrowRight"===i||"arrowLeft"===i){s.domEvent.preventDefault();const e="arrowRight"===i?1:-1;for(let i=0;i{this.content.forEach(e=>{e.value===this.selectedPanelProperty.value&&(this.selectedButton=e)})}),1===e.length&&(this.focusable=!1,this.inputEnabledProperty.value=!1)}getTabVisibleProperty(e){const t=_.find(this.content,t=>t.value===e);return t.visibleProperty}focusSelectedTab(){this.content.forEach(e=>{e.value===this.selectedPanelProperty.value&&e.focus()})}}Te.Z.register("PreferencesTabs",SA);const TA=SA,xA="data:audio/mpeg;base64,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Ak9VmOWhIXESKVktJ2z4qoUibZXEhJVmo54y2pTCpKrkqInxtCMiURCZMUikUkts1JpZqUkLOLbHCI0RE1oSXNz+SbNkLMYykmzS0yFmTUlVCZ6udDBEKnkJlZCQhktiVP8kt2mGpHnoyCiA//u0xFQAFJGA2aSZNKMnNZKxzTAlCSoDGlYIaVGpygYYefKF0UpWkqkrtgp6HRRPZ5axHA+enRVOHHuXIak+k6KgHkM9YJwSlxO+7i7XWv7etVMjdXHJVJA/RPnrxiHQnFtT7Ubs7M81d1qM5hc9lw+EkhHZdLh2oMkqI6XmSVTa388cpVBk+crFS06YfpGtgvy6B6ubzT5iVVCpnL8ZJXz2BGeprtHKHFuQrC0SWDoeSoZnhGAiKi22w9p6SjtQfUMkPvmzPZvfXN6zV52lmQL/9EfSDeEzcSop1UxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//u0xAADwAAAAAAAACAAADSAAAAETEFNRTMuOTkuNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy45OS41VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",OA=X(se,xA),kA=j.Z.createLock(xA),LA=new ie;let QA=!1;const RA=()=>{QA||(kA(),QA=!0)},NA=se.decodeAudioData(OA.buffer,e=>{null===LA.audioBufferProperty.value&&(LA.audioBufferProperty.set(e),RA())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),LA.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),RA()});NA&&NA.then(e=>{null===LA.audioBufferProperty.value&&(LA.audioBufferProperty.set(e),RA())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),RA()});const YA=LA;class FA extends Ot{constructor(e,t){super(YA,t);e.lazyLink(()=>{this.play()})}dispose(){vt.Z.assertNotDisposable()}}Te.Z.register("PreferencesTabSwitchSoundGenerator",FA);const GA=FA,qA=new it({size:24,weight:"bold"}),HA=new it(20),ZA={font:HA,maxWidth:120},UA=new it(16),KA={font:UA,maxWidth:500},WA=new it({weight:"bold",size:16}),zA={font:WA,maxWidth:360};class jA extends ro{constructor(e,t){const i=new G.xvT(ds.Z.preferences.titleStringProperty,{font:qA,maxWidth:500,tagName:"h1",innerContent:ds.Z.preferences.titleStringProperty}),n=(0,Y.ZP)()({titleAlign:"center",title:i,isDisposable:!1,phetioDynamicElement:!0,closeButtonVoicingDialogTitle:ds.Z.preferences.titleStringProperty,positionInPDOM:!0},t),s=[Zh.OVERVIEW];e.supportsSimulationPreferences()&&s.push(Zh.SIMULATION),e.supportsVisualPreferences()&&s.push(Zh.VISUAL),e.supportsAudioPreferences()&&s.push(Zh.AUDIO),e.supportsInputPreferences()&&s.push(Zh.INPUT),e.supportsLocalizationPreferences()&&s.push(Zh.LOCALIZATION);const r=new Ci(Zh.OVERVIEW,{validValues:s,tandem:n.tandem.createTandem("selectedTabProperty")}),o=new TA(s,r,{tandem:n.tandem.createTandem("preferencesTabs")}),a=new vA(e,s,r,o,{tandem:n.tandem.createTandem("preferencesPanels")}),l=new G.SHm({children:[o,new G.qYj({layoutOptions:{bottomMargin:20,stretch:!0}}),a]}),h=new GA(r,{initialOutputLevel:.2});Ie.addSoundGenerator(h,{categoryName:"user-interface"}),super(l,n),this.preferencesTabs=o,this.preferencesPanels=a,o.addInputListener(new G.F3H({keys:["arrowDown"],callback:()=>{this.focusSelectedPanel()}})),l.addInputListener(new G.F3H({keys:["arrowUp"],callback:e=>{e&&this.preferencesPanels.isFocusableSelectedContent(e.target)&&this.focusSelectedTab()}}))}focusSelectedTab(){this.preferencesTabs.focusSelectedTab()}focusSelectedPanel(){this.preferencesPanels.focusSelectedPanel()}}_defineProperty(jA,"TAB_FONT",HA),_defineProperty(jA,"TAB_OPTIONS",ZA),_defineProperty(jA,"TITLE_FONT",qA),_defineProperty(jA,"CONTENT_FONT",UA),_defineProperty(jA,"CONTENT_MAX_WIDTH",500),_defineProperty(jA,"PANEL_SECTION_CONTENT_OPTIONS",KA),_defineProperty(jA,"PANEL_SECTION_LABEL_FONT",WA),_defineProperty(jA,"PANEL_SECTION_LABEL_MAX_WIDTH",360),_defineProperty(jA,"PANEL_SECTION_LABEL_OPTIONS",zA),_defineProperty(jA,"CONTENT_SPACING",20),_defineProperty(jA,"VERTICAL_CONTENT_SPACING",5),_defineProperty(jA,"CONTENT_INDENTATION_SPACING",15),_defineProperty(jA,"LABEL_CONTENT_SPACING",10),Te.Z.register("PreferencesDialog",jA);const XA=jA;class JA extends Vo{constructor(e,t,i){const n=(0,Y.ZP)()({listener:()=>{const e=r.getElement();e.show(),e.focusSelectedTab()},highlightExtensionWidth:8.6,highlightExtensionHeight:10,innerContent:ds.Z.preferences.titleStringProperty,positionInPDOM:!0,voicingNameResponse:ds.Z.preferences.titleStringProperty,visiblePropertyOptions:{phetioFeatured:!0}},i),s=new G.Eep(Uo,{scale:18.85/Uo.height,pickable:!1});super(s,t,n);const r=new fo(t=>new XA(e,{tandem:t,focusOnHideNode:this}),[],{tandem:n.tandem.createTandem("preferencesDialogCapsule"),phetioType:fo.PhetioCapsuleIO(ro.DialogIO),disposeOnClear:!1});t.link(e=>{s.image=e.equals(G.Ilk.BLACK)?Uo:qo}),this.setPDOMAttribute("aria-haspopup",!0)}}Te.Z.register("NavigationBarPreferencesButton",JA);const _A=JA;class $A extends G.BET{constructor(e,t,i){const n=(0,Y.ZP)()({align:"center",spacing:2,tandem:K.Z.REQUIRED},i),s=[];if(e.preferencesModel.shouldShowDialog()){const i=new _A(e.preferencesModel,t,{tandem:n.tandem.createTandem("preferencesButton"),pointerAreaDilationX:1,pointerAreaDilationY:1});s.push(i)}const r=e.preferencesModel.supportsAudioPreferences();if(r&&s.push(new Yo(Qe.audioEnabledProperty,t,{tandem:n.tandem.createTandem("audioToggleButton"),pointerAreaDilationX:1,pointerAreaDilationY:.15,supportsAudioPreferences:r})),e.hasKeyboardHelpContent){const i=new Oo(e.screens,e.selectedScreenProperty,t,{tandem:n.tandem.createTandem("keyboardHelpButton"),pointerAreaDilationX:1,pointerAreaDilationY:1});phet.chipper.queryParameters.supportsInteractiveDescription&&!N.Z.mobileSafari&&s.push(i)}n.children=s,super(_.omit(n,"tandem"))}}Te.Z.register("A11yButtonsHBox",$A);const ed=$A,td=new Ke.bn("M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z").makeImmutable(),id=ds.Z.a11y.homeScreenDescriptionStringProperty;class nd extends Vo{constructor(e,t,i,n){const s=(0,Y.ZP)()({highlightExtensionWidth:4,containerTagName:"li",descriptionContent:id,appendDescription:!0,voicingHintResponse:id},n),r=new G.y$t(td);r.setScaleMagnitude(.48*e/r.height*.85);const o=new G.AeJ(0,0,r.width/.85+12,e);r.center=o.center;const a=new G.NBX({children:[o,r]}),l=new ui.Z,h=s.listener;s.listener=()=>{h&&h(),this.voicingSpeakFullResponse({objectResponse:null,hintResponse:null,utterance:l})},super(a,t,s);const A=G.Nqr.getOuterLineWidthFromNode(this);this.focusHighlight=Ke.bn.bounds(this.bounds.setMaxY(this.bounds.maxY-A/2)),Ce.Z.multilink([this.interactionStateProperty,t],(e,t)=>{t.equals(G.Ilk.BLACK)?r.fill=e===ki.PRESSED?"gray":"white":r.fill=e===ki.PRESSED?"#444":"#222"}),this.addInputListener({focus:()=>{this.voicingSpeakFullResponse({objectResponse:null,contextResponse:null})}}),i.link(e=>{this.innerContent=e,this.voicingNameResponse=e})}}Te.Z.register("HomeButton",nd);const sd=e=>e.width+8;class rd extends((0,G.CHP)(G.NBX)){constructor(e,t,i,n,s,r){const o=(0,Y.ZP)()({cursor:"pointer",phetioDocumentation:`Button in the navigation bar that selects the '${i.tandem.name}' screen`,maxButtonWidth:null,tagName:"button",containerTagName:"li",descriptionContent:i.descriptionContent,appendDescription:!0,voicingHintResponse:i.descriptionContent},r);super(),this.screen=i,i.pdomDisplayNameProperty.link(e=>{this.innerContent=e,this.voicingNameResponse=e});const a=new G.NBX({children:[i.navigationBarIcon],maxHeight:.625*s,pdomVisible:!1}),l=new G.AeJ(0,0,a.width,a.height),h=new G.NBX({children:[a,l]}),A=new G.xvT(i.nameProperty,{font:new it(10)}),d=new G.SHm({children:[h,A],pickable:!1,usesOpacity:!0,maxHeight:s}),c=new G.AeJ({rectBounds:d.bounds}),u=sd(c),g=new vo(u,c.height,{center:d.center,fill:"white"}),p=new vo(u,c.height,{center:d.center,fill:"black"}),m=new M.ZP([t],e=>e===i);this.buttonModel=new Yi({listener:()=>{t.value!==i&&this.voicingSpeakFullResponse({objectResponse:null,hintResponse:null}),t.value=i},tandem:o.tandem,phetioEnabledPropertyInstrumented:!1});const y=this.buttonModel.createPressListener({tandem:o.tandem.createTandem("pressListener")});this.addInputListener(y),this.addInputListener({focus:()=>{this.voicingSpeakFullResponse({objectResponse:null,contextResponse:null})}}),Ce.Z.multilink([m,this.buttonModel.looksPressedProperty,this.buttonModel.looksOverProperty,e,this.buttonModel.enabledProperty],(e,t,n,s,r)=>{const o=!s.equals(G.Ilk.BLACK),a=o?"black":Os.BUTTON_YELLOW,h=o?"gray":"white";A.fill=e?a:h,d.opacity=e?1:t?.65:.5,g.visible=!o&&r&&(n||t),p.visible=o&&r&&(n||t),"black"===i.showScreenIconFrameForNavigationBarFill&&s.equals(G.Ilk.BLACK)?l.stroke=Os.SCREEN_ICON_FRAME:"white"===i.showScreenIconFrameForNavigationBarFill&&s.equals(G.Ilk.WHITE)?l.stroke="black":l.stroke="transparent"}),this.buttonModel.enabledProperty.link(e=>{this.cursor=e?o.cursor:null});const f=()=>{d.spacing=R.Z.clamp(12-A.height,0,3),c.setRectBounds(d.bounds),g.spacing=p.spacing=sd(c),g.center=p.center=d.center};d.boundsProperty.lazyLink(f),A.boundsProperty.link(f),this.children=[d,c,g,p];const w=o.maxButtonWidth&&this.width>o.maxButtonWidth;A.maxWidth=w?a.maxWidth=o.maxButtonWidth-(this.width-d.width):this.width,this.localBoundsProperty.link(e=>{this.focusHighlight=Ke.bn.bounds(e)}),this.mutate(o)}}Te.Z.register("NavigationBarScreenButton",rd);const od=rd;class ad extends G.y$t{constructor(e){const t=new Ke.bn;for(let i=0;i<3;i++)t.circle(0,3.543*i*2.5,2.5);super(t,e)}}Te.Z.register("KebabMenuIcon",ad);const ld=ad;var hd=i(8377);const Ad=new Ke.bn("M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z").makeImmutable(),dd=new G.y$t(Ad,{fill:"rgba(0,0,0,0.7)",maxWidth:15.5}),cd=dd.width+2;class ud extends((0,G.pL8)((0,G.CHP)(G.NBX))){constructor(e,t,i,n,s,r){var o;const a=(0,Y.ZP)()({separatorBefore:!1,checkedProperty:null,textFill:"black",cursor:"pointer",phetioDocumentation:"Item buttons shown in a popup menu",phetioEventType:q.Z.USER,tagName:"button",containerTagName:"li",containerAriaRole:"none",ariaRole:"menuitem",positionInPDOM:!0},r);super(),s&&this.setVisibleProperty(G.U2N);const l=e=>{this.innerContent=e,this.voicingNameResponse=e};t.link(l),this.present=n;const h=new G.xvT(t,{font:new it(18),fill:a.textFill,maxWidth:400}),A=new G.AeJ({cornerRadius:5});h.boundsProperty.link(e=>{this.localMinimumWidth=e.width+2+5+cd,A.rectHeight=e.height+3+3}),this.localPreferredWidthProperty.link(e=>{(e=null===e?this.localMinimumWidth:Math.max(this.localMinimumWidth||0,e))&&(A.rectWidth=e)}),this.addChild(A),this.addChild(h),G.bGt.create(this,[A,h],(e,t)=>{t.left=e.left+2+cd,t.centerY=e.centerY}),this.addInputListener({enter:()=>{A.fill="#a6d2f4"},exit:()=>{A.fill=null}}),this.addInputListener(new G.eMb({tandem:null===(o=a.tandem)||void 0===o?void 0:o.createTandem("fireListener"),fire:t=>{e(t),i(t)}})),this.separatorBefore=a.separatorBefore;let d=null;if(a.checkedProperty){const e=new G.NBX({children:[dd],right:h.left-2,centerY:h.centerY});d=t=>{e.visible=t},a.checkedProperty.link(d),this.addChild(e)}this.mutate(a),this.disposeMenuItem=()=>{a.checkedProperty&&d&&a.checkedProperty.hasListener(d)&&a.checkedProperty.unlink(d),t.hasListener(l)&&t.unlink(l),h.dispose()}}dispose(){this.disposeMenuItem(),super.dispose()}}At.register("MenuItem",ud);class gd extends G.SHm{constructor(e,t){const i={font:(t=(0,Y.ZP)()({titleFont:new it({size:18,weight:"bold"}),textFont:new it(16),align:"left",spacing:1,maxWidth:550},t)).textFont,align:"left",lineWrap:t.maxWidth,tagName:"p"},n=[];n.push(new G.JxC(ds.Z.credits.titleStringProperty,{font:t.titleFont,tagName:"h2"}));const s=(e,t)=>new M.ZP([e],e=>F.Z.format(e,`${t}`));if(e.leadDesign){const t=s(ds.Z.credits.leadDesignStringProperty,e.leadDesign);n.push(new G.yhY(t,i))}if(e.softwareDevelopment){const t=s(ds.Z.credits.softwareDevelopmentStringProperty,e.softwareDevelopment);n.push(new G.yhY(t,i))}if(e.team){const t=s(ds.Z.credits.teamStringProperty,e.team);n.push(new G.yhY(t,i))}if(e.contributors){const t=s(ds.Z.credits.contributorsStringProperty,e.contributors);n.push(new G.yhY(t,i))}if(e.qualityAssurance){const t=s(ds.Z.credits.qualityAssuranceStringProperty,e.qualityAssurance);n.push(new G.yhY(t,i))}if(e.graphicArts){const t=s(ds.Z.credits.graphicArtsStringProperty,e.graphicArts);n.push(new G.yhY(t,i))}if(e.soundDesign){const t=s(ds.Z.credits.soundDesignStringProperty,e.soundDesign);n.push(new G.yhY(t,i))}if(e.thanks){n.length>0&&n.push(new G.mE$(13)),n.push(new G.JxC(ds.Z.credits.thanksStringProperty,{font:t.titleFont,tagName:"h2"}));const s=new G.yhY(e.thanks,i);s.innerContent=e.thanks,n.push(s)}t.children=n,super(t),this.disposeCreditsNode=()=>{n.forEach(e=>{e.dispose&&e.dispose()})}}dispose(){this.disposeCreditsNode(),super.dispose()}}Te.Z.register("CreditsNode",gd);const pd=JSON.stringify(window.phet&&phet.chipper?phet.chipper.packageObject:{name:"placeholder"}),md=JSON.parse(pd);Te.Z.register("packageJSON",md);const yd=md;class fd extends Be.Z{}_defineProperty(fd,"UP_TO_DATE",new(g=fd)),_defineProperty(fd,"OUT_OF_DATE",new g),_defineProperty(fd,"CHECKING",new g),_defineProperty(fd,"OFFLINE",new g),_defineProperty(fd,"UNCHECKED",new g),_defineProperty(fd,"enumeration",new we.Z(g,{phetioDocumentation:"Describes the states that can occur during an Update check"})),Te.Z.register("UpdateState",fd);const wd=phet.preloads.chipper.SimVersion,Bd=yd.name,Pd=wd.parse(yd.version,phet.chipper.buildTimestamp),Dd="https:"===document.location.protocol?"https:":"http:";const Cd=new class{constructor(){this.stateProperty=new Ci(fd.UNCHECKED),this.latestVersion=null,this.ourVersion=Pd,this.timeoutCallback=this.timeout.bind(this),this.areUpdatesChecked="phet"===phet.chipper.brand&&!phet.chipper.isApp&&phet.chipper.queryParameters.yotta,this.updateURL=`http://phet.colorado.edu/html-sim-update?simulation=${encodeURIComponent(Bd)}&version=${encodeURIComponent(Pd.toString())}&buildTimestamp=${encodeURIComponent(""+phet.chipper.buildTimestamp)}`,this.timeoutId=-1}clearTimeout(){window.clearTimeout(this.timeoutId)}setTimeout(){this.timeoutId=window.setTimeout(this.timeoutCallback,15e3)}resetTimeout(){this.stateProperty.value===fd.CHECKING&&(this.clearTimeout(),this.setTimeout())}timeout(){this.stateProperty.value=fd.OFFLINE}check(){if(!this.areUpdatesChecked||this.stateProperty.value!==fd.UNCHECKED&&this.stateProperty.value!==fd.OFFLINE)return;if(this.ourVersion.isSimNotPublished)return void(this.stateProperty.value=fd.UP_TO_DATE);const e=new XMLHttpRequest;"withCredentials"in e&&(this.stateProperty.value=fd.CHECKING,this.setTimeout(),e.onload=()=>{this.clearTimeout();try{const t=JSON.parse(e.responseText);t.error?(console.log("Update check failure: "+t.error),this.stateProperty.value=fd.OFFLINE):(this.updateURL&&(this.updateURL=t.updateURL),this.latestVersion=wd.parse(t.latestVersion,t.buildTimestamp),"out-of-date"===t.state?this.stateProperty.value=fd.OUT_OF_DATE:"up-to-date"===t.state?this.stateProperty.value=fd.UP_TO_DATE:(console.log("Failed to get proper state: "+t.state),this.stateProperty.value=fd.OFFLINE))}catch(t){this.stateProperty.value=fd.OFFLINE}},e.onerror=()=>{this.clearTimeout(),this.stateProperty.value=fd.OFFLINE},e.open("post",Dd+"//phet.colorado.edu/services/check-html-updates",!0),e.send(JSON.stringify({api:"1.0",simulation:Bd,locale:phet.joist.sim.locale,currentVersion:this.ourVersion.toString(),buildTimestamp:phet.chipper.buildTimestamp})))}};Te.Z.register("updateCheck",Cd);const Ed=Cd;class bd extends G.NBX{constructor(e){const t=(0,Y.ZP)()({diameter:15,speed:1,numberOfElements:16,elementFactory:bd.rectangleFactory,activeColor:"rgba( 0, 0, 0, 1 )",inactiveColor:"rgba( 0, 0, 0, 0.15 )"},e);super(t),this.indicatorRotation=2*Math.PI,this.angleDelta=2*Math.PI/t.numberOfElements,this.activeColorProperty=new G.M4p(t.activeColor),this.inactiveColorProperty=new G.M4p(t.inactiveColor),this.speed=t.speed,this.elements=[];let i=0;for(let n=0;n{n.dispose()}}dispose(){this.disposeTextPushButton(),super.dispose()}}At.register("TextPushButton",Vd);const Id=new it(14),Md={createCheckingNode:function(e){const t=new bd({diameter:e.big?24:18}),i=new G.BET((0,Ei.Z)({spacing:e.big?10:8,maxWidth:550,children:[t,new G.JxC(ds.Z.updates.checkingStringProperty,{font:new it(e.big?16:14),fontWeight:e.big?"bold":"normal"})]},e));return i.step=function(e){Ed.stateProperty.value===fd.CHECKING&&t.step(e)},i.stepListener=i.step.bind(i),i},createUpToDateNode:function(e){return new G.BET((0,Ei.Z)({spacing:8,maxWidth:550,children:[new G.AeJ(0,0,20,20,5,5,{fill:"#5c3",scale:e.big?1.2:1,children:[new G.y$t(Ad,{fill:"#fff",scale:.029,centerX:10,centerY:10})]}),new G.JxC(ds.Z.updates.upToDateStringProperty,{font:new it(e.big?16:14),fontWeight:e.big?"bold":"normal"})]},e))},createOutOfDateAboutNode:function(e){const t=new M.ZP([ds.Z.updates.outOfDateStringProperty,G.U2N],(e,t)=>t?`${e}`:e),i={url:Ed.updateURL},n=new G.Hof(t,{links:i,font:Id});return new G.BET((0,Ei.Z)({spacing:8,maxWidth:550,children:[new G.y$t(vd,{fill:"#E87600",scale:.03}),n],tagName:"div"},e))},createOutOfDateDialogNode:function(e,t,i,n){const s=new M.ZP([ds.Z.updates.newVersionAvailableStringProperty],e=>F.Z.format(e,i)),r=new M.ZP([ds.Z.updates.yourCurrentVersionStringProperty],e=>F.Z.format(e,t));return new G.SHm((0,Ei.Z)({spacing:15,maxWidth:550,children:[new G.SHm({spacing:5,align:"left",children:[new G.JxC(s,{font:new it(16),fontWeight:"bold"}),new G.JxC(r,{font:Id})]}),new G.BET({spacing:25,children:[new Vd(ds.Z.updates.getUpdateStringProperty,{visibleProperty:G.U2N,baseColor:"#6f6",font:Id,listener:function(){(0,G.MwI)(Ed.updateURL)}}),new Vd(ds.Z.updates.noThanksStringProperty,{baseColor:"#ddd",font:Id,listener:function(){e.hide()}})]})]},n))},createOfflineNode:function(e){return new G.BET((0,Ei.Z)({spacing:0,maxWidth:550,children:[new G.mE$(20),new G.JxC(ds.Z.updates.offlineStringProperty,{font:new it(e.big?16:14),fontWeight:e.big?"bold":"normal"})]},e))}};Te.Z.register("UpdateNodes",Md);const Sd=Md;class Td extends ro{constructor(e,t,i,n,s){const r=(0,Y.ZP)()({xSpacing:26,topMargin:26,bottomMargin:26,leftMargin:26,phetioReadOnly:!0,phetioDynamicElement:!0,isDisposable:!1,tandem:K.Z.REQUIRED},s),o=phet.brand.Brand;let a=[];const l=new G.JxC(e,{font:new it(32),maxWidth:550,tagName:"h1"});a.push(l);const h=new M.ZP([ds.Z.versionPatternStringProperty],e=>F.Z.format(e,t));a.push(new G.JxC(h,{font:new it(16),maxWidth:550,tagName:"p"})),phet.chipper.buildTimestamp&&a.push(new G.JxC(phet.chipper.buildTimestamp,{font:new it(10.4),maxWidth:550,tagName:"p",innerContent:phet.chipper.buildTimestamp}));let A=null,d=null,c=null;if(Ed.areUpdatesChecked){const e={left:0,top:0},t=Sd.createCheckingNode(e),i=Sd.createUpToDateNode(e),n=Sd.createOutOfDateAboutNode(e),s=Sd.createOfflineNode(e);A=t.stepListener,d=e=>{t.visible=e===fd.CHECKING,i.visible=e===fd.UP_TO_DATE,n.visible=e===fd.OUT_OF_DATE,s.visible=e===fd.OFFLINE,t.pdomVisible=t.visible,i.pdomVisible=i.visible,n.pdomVisible=n.visible,s.pdomVisible=s.visible},c=new G.NBX({children:[t,i,n,s],maxWidth:550,visibleProperty:G.U2N}),a.push(c)}const u=[];if(o.name&&u.push(new G.yhY(o.name,{font:new it(16),supScale:.5,supYOffset:3,maxWidth:550,tagName:"h2",innerContent:o.name})),o.copyright){const e=phet.chipper.buildTimestamp?phet.chipper.buildTimestamp.split("-")[0]:(new Date).getFullYear(),t=F.Z.fillIn(o.copyright,{year:e});u.push(new G.JxC(t,{font:new it(12),maxWidth:550,tagName:"p",innerContent:t}))}let g=null;o.additionalLicenseStatement&&(g=new G.yhY(o.additionalLicenseStatement,{font:new it(10.4),fill:"gray",align:"left",maxWidth:550,tagName:"p",innerContent:o.additionalLicenseStatement}),u.push(g)),u.length>0&&(a.push(new G.mE$(15)),a=a.concat(u));let p=null;"phet"!==o.id&&"phet-io"!==o.id||(a.push(new G.mE$(15)),p=new gd(i,{titleFont:new it({size:16,weight:"bold"}),textFont:new it(12),maxWidth:550}),a.push(p));const m=[],y=o.getLinks(yd.name,n);if(y&&y.length>0){m.push(new G.mE$(15));for(let t=0;tt?`${i}`:`${i}: ${e.url}`);m.push(new G.Hof(i,{links:{url:e.url},font:new it(16)}))}const e=new G.SHm({spacing:6,align:"left",children:m,maxWidth:550});a.push(e)}super(new G.SHm({align:"left",spacing:6,children:a,tagName:"div"}),r),this.updateStepListener=A,this.updateVisibilityListener=d,this.addAriaLabelledbyAssociation({thisElementName:G.Grz.PRIMARY_SIBLING,otherElementName:G.Grz.PRIMARY_SIBLING,otherNode:l})}show(){Ed.areUpdatesChecked&&!this.isShowingProperty.value&&(Ed.resetTimeout(),Ed.stateProperty.value!==fd.OFFLINE&&Ed.stateProperty.value!==fd.UNCHECKED||Ed.check(),this.updateStepListener&&O.Z.addListener(this.updateStepListener),this.updateVisibilityListener&&Ed.stateProperty.link(this.updateVisibilityListener)),super.show()}hide(){this.isShowingProperty.value&&(super.hide(),Ed.areUpdatesChecked&&(this.updateVisibilityListener&&Ed.stateProperty.unlink(this.updateVisibilityListener),this.updateStepListener&&O.Z.removeListener(this.updateStepListener)))}}Te.Z.register("AboutDialog",Td);class xd{static generateScreenshotAtIncreasedResolution(e,t){const i=document.createElement("canvas"),n=i.getContext("2d"),s=G.cQK.backingScale(n)*t;i.width=e.display.width*s,i.height=e.display.height*s,n.scale(s,s),n.fillStyle=e.display.domElement.style.backgroundColor,n.fillRect(0,0,i.width,i.height);const r=new G.LdF(i,n);return e.rootNode.renderToCanvasSubtree(r,Ht.Z.scaling(s)),i}static renderAtScale(e,t){const i=document.createElement("canvas"),n=i.getContext("2d");return i.width=e.width*t,i.height=e.height*t,n.scale(t,t),n.drawImage(e,0,0),i}static generateScreenshot(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"image/png";const i=xd.generateScreenshotAtIncreasedResolution(e,2);return xd.renderAtScale(i,.5).toDataURL(t)}}Te.Z.register("ScreenshotGenerator",xd);const Od=xd;class kd extends ro{constructor(e){const t={centerX:0,centerY:0,big:!0},i=Sd.createCheckingNode(t),n=Sd.createUpToDateNode(t),s=new G.NBX({tagName:"div"}),r=Sd.createOfflineNode(t);super(new G.NBX({children:[i,n,s,r],tagName:"div"}),e);const o=()=>{const e=Ed.latestVersion?Ed.latestVersion.toString():"x.x.xx",i=Ed.ourVersion.toString();s.children=[Sd.createOutOfDateDialogNode(this,i,e,t)]};o(),this.updateStepListener=i.stepListener,this.updateVisibilityListener=e=>{e===fd.OUT_OF_DATE&&o(),i.visible=e===fd.CHECKING,n.visible=e===fd.UP_TO_DATE,s.visible=e===fd.OUT_OF_DATE,r.visible=e===fd.OFFLINE,i.pdomVisible=i.visible,n.pdomVisible=n.visible,s.pdomVisible=s.visible,r.pdomVisible=r.visible}}show(){Ed.areUpdatesChecked&&!this.isShowingProperty.value&&(Ed.resetTimeout(),Ed.stateProperty.value!==fd.OFFLINE&&Ed.stateProperty.value!==fd.UNCHECKED||Ed.check(),O.Z.addListener(this.updateStepListener),Ed.stateProperty.link(this.updateVisibilityListener)),super.show()}hide(){this.isShowingProperty.value&&(super.hide(),Ed.areUpdatesChecked&&(Ed.stateProperty.unlink(this.updateVisibilityListener),O.Z.removeListener(this.updateStepListener)))}}Te.Z.register("UpdateDialog",kd);class Ld extends(io(G.NBX,0)){constructor(e,t){const i="phet"===phet.chipper.brand,n=phet.chipper.isApp,s=(0,Y.ZP)()({phetioType:Ld.PhetMenuIO,phetioState:!1,phetioDocumentation:"This menu is displayed when the PhET button is pressed.",phetioVisiblePropertyInstrumented:!1,tagName:"ul",ariaRole:"menu"},t);super(s);const r=new fo(t=>new Td(e.simNameProperty,e.version,e.credits,e.locale,{tandem:t,focusOnHideNode:this.focusOnHideNode}),[],{tandem:s.tandem.createTandem("aboutDialogCapsule"),phetioType:fo.PhetioCapsuleIO(ro.DialogIO),disposeOnClear:!1});let o=null;const a=[{textStringProperty:ds.Z.menuItem.phetWebsiteStringProperty,present:i,shouldBeHiddenWhenLinksAreNotAllowed:!0,callback:()=>{(0,G.MwI)("https://phet.colorado.edu/"+e.locale)}},{textStringProperty:ds.Z.menuItem.reportAProblemStringProperty,present:i&&!n,shouldBeHiddenWhenLinksAreNotAllowed:!0,callback:()=>{const t=`https://phet.colorado.edu/files/troubleshooting/?sim=${encodeURIComponent(e.simNameProperty.value)}&version=${encodeURIComponent(`${e.version} ${phet.chipper.buildTimestamp?phet.chipper.buildTimestamp:"(unbuilt)"}`)}&url=${encodeURIComponent(window.location.href)}&dependencies=${encodeURIComponent(JSON.stringify({}))}`;(0,G.MwI)(t)}},{textStringProperty:new J.Z("QR code"),present:phet.chipper.queryParameters.qrCode,shouldBeHiddenWhenLinksAreNotAllowed:!0,callback:()=>{(0,G.MwI)(`http://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(window.location.href)}&size=220x220&margin=0`)}},{textStringProperty:ds.Z.menuItem.getUpdateStringProperty,present:Ed.areUpdatesChecked,shouldBeHiddenWhenLinksAreNotAllowed:!0,callback:()=>{o||(o=new kd({focusOnHideNode:this.focusOnHideNode})),o.show()},options:{textFill:new M.ZP([Ed.stateProperty],e=>e===fd.OUT_OF_DATE?"#0a0":"#000")}},{textStringProperty:ds.Z.menuItem.screenshotStringProperty,present:!n,shouldBeHiddenWhenLinksAreNotAllowed:!1,callback:()=>{const t=Od.generateScreenshot(e);if(window.Blob&&new window.Blob){const i="data:image/png;base64,",n=t.slice(i.length),s=window.atob(n),r=new window.Uint8Array(s.length);for(let e=0;e{phet.chipper.isFuzzEnabled()||G.ITT.toggleFullScreen(e.display)},options:{checkedProperty:G.ITT.isFullScreenProperty,tandem:s.tandem.createTandem("fullScreenMenuItem"),phetioDocumentation:"This menu item requests full-screen access for the simulation display.",visiblePropertyOptions:{phetioFeatured:!0}}},{textStringProperty:ds.Z.menuItem.aboutStringProperty,present:!0,shouldBeHiddenWhenLinksAreNotAllowed:!1,callback:()=>r.getElement().show(),options:{separatorBefore:i,tandem:s.tandem.createTandem("aboutMenuItem"),phetioDocumentation:"This menu item shows a dialog with information about the simulation.",visiblePropertyOptions:{phetioFeatured:!0}}}].filter(e=>e.present||e.options&&e.options.tandem).map(e=>new ud(()=>this.hide(),e.textStringProperty,e.callback,e.present,e.shouldBeHiddenWhenLinksAreNotAllowed,e.options)).filter(e=>e.present);this.items=a;const l=new G.SHm({stretch:!0,spacing:2,children:_.flatten(a.map(e=>e.separatorBefore?[new G.qYj({stroke:"gray"}),e]:[e]))}),h=new G.y$t(null,{fill:"white",stroke:"black"});l.localBoundsProperty.link(()=>{l.left=5,l.top=5}),l.boundsProperty.link(e=>{h.shape=Qd(e.width+10,e.height+10)}),this.addChild(h),this.addChild(l);const A=new G.F3H({keys:["escape","arrowDown","arrowUp"],callback:(e,t)=>{const i=this.items[0],n=this.items[this.items.length-1];if(e&&e.domEvent&&(e.domEvent&&e.domEvent.preventDefault(),e.pointer.reserveForKeyboardDrag()),"arrowDown"===t){(n.focused?i:G.eDZ.getNextFocusable()).focus()}else if("arrowUp"===t){(i.focused?n:G.eDZ.getPreviousFocusable()).focus()}else"escape"===t&&this.hide()}});this.addInputListener(A),this.disposePhetMenu=()=>{this.removeInputListener(A),A.dispose()}}dispose(){this.disposePhetMenu(),_.each(this.items,e=>e.dispose()),super.dispose()}}p=Ld,_defineProperty(Ld,"PhetMenuIO",new hs.Z("PhetMenuIO",{valueType:p,documentation:"The PhET Menu in the bottom right of the screen"}));const Qd=(e,t)=>{const i=(new Ke.bn).moveTo(e-20,t).lineToRelative(0,20).lineToRelative(-20,-20).close();return Ke.bn.roundRect(0,0,e,t,8,8).shapeUnion(i)};Te.Z.register("PhetMenu",Ld);const Rd=Ld;class Nd extends Vo{constructor(e,t,i){const n=phet.brand.Brand,s=n.logoOnBlackBackground,r=n.logoOnWhiteBackground,o=new G.Eep(s,{scale:.28/s.height*108*.85,pickable:!1}),a=new ld({scale:.83,left:o.width+8,bottom:o.bottom-.5,pickable:!1}),l=[o,a];super(new G.NBX({children:l}),t,{highlightExtensionWidth:6,highlightExtensionHeight:5,highlightCenterOffsetY:4,listener:()=>{h.show(),h.items[0].focus(),Oi.play()},tandem:i,phetioType:Nd.PhetButtonIO,phetioDocumentation:"The button that appears at the right side of the navigation bar, which shows a menu when pressed",enabledPropertyOptions:{phetioFeatured:!0,phetioDocumentation:"When disabled, the (three dots) are hidden and the button cannot be pressed, hiding the PhET menu."},phetioVisiblePropertyInstrumented:!1,innerContent:ds.Z.a11y.phetMenuStringProperty,voicingNameResponse:ds.Z.a11y.phetMenuStringProperty});const h=new Rd(e,{tandem:i.createTandem("phetMenu"),focusOnHideNode:this});Ce.Z.multilink([e.boundsProperty,e.screenBoundsProperty,e.scaleProperty,h.localBoundsProperty],(e,t,i)=>{if(e&&t&&i){h.setScaleMagnitude(i),h.right=e.right-2;const n=e.height-t.height;h.bottom=t.bottom+n/2}}),Ce.Z.multilink([t,e.selectedScreenProperty,Ed.stateProperty],(t,i,n)=>{const l=i===e.homeScreen,h=!t.equals(G.Ilk.BLACK)&&!l,A=n===fd.OUT_OF_DATE;a.fill=h?A?"#0a0":"#222":A?"#3F3":"white",o.image=h?r:s}),this.buttonModel.enabledProperty.link(e=>{a.visible=e}),G.uai.mutateNode(this,!0)}}m=Nd,_defineProperty(Nd,"PhetButtonIO",new hs.Z("PhetButtonIO",{valueType:m,documentation:"The PhET Button in the bottom right of the screen"})),Te.Z.register("PhetButton",Nd);const Yd=Nd,Fd=new Q.Z(ur.LAYOUT_BOUNDS.width,40);class Gd extends G.NBX{constructor(e,t){super(),_defineProperty(this,"homeButton",null),this.navigationBarFillProperty=new M.ZP([e.selectedScreenProperty,e.lookAndFeel.navigationBarFillProperty],(t,i)=>t===e.homeScreen?yr.BACKGROUND_COLOR:i),this.background=new G.AeJ(0,0,Fd.width,Fd.height,{pickable:!0,fill:this.navigationBarFillProperty}),this.addChild(this.background),this.barContents=new G.NBX,this.addChild(this.barContents);const i=new G.xvT(e.displayedSimNameProperty,{font:new it(16),fill:e.lookAndFeel.navigationBarTextFillProperty,tandem:t.createTandem("titleText"),phetioFeatured:!0,phetioDocumentation:"Displays the title of the simulation in the navigation bar (bottom left)",visiblePropertyOptions:{phetioFeatured:!0},stringPropertyOptions:{phetioReadOnly:!0},phetioVisiblePropertyInstrumented:!0}),n=new G.NBX({children:[i],visibleProperty:new M.ZP([e.selectedScreenProperty],t=>t!==e.homeScreen)});this.barContents.addChild(n);const s=new Yd(e,this.navigationBarFillProperty,t.createTandem("phetButton"));let r;this.barContents.addChild(s),this.a11yButtonsHBox=new ed(e,this.navigationBarFillProperty,{tandem:t}),this.barContents.addChild(this.a11yButtonsHBox),this.localeNode&&this.barContents.addChild(this.localeNode),this.addAriaLabelledbyAssociation({thisElementName:G.Grz.PRIMARY_SIBLING,otherNode:this,otherElementName:G.Grz.LABEL_SIBLING});const o=this.a11yButtonsHBox.bounds.isValid()?this.a11yButtonsHBox.width:0;if(1===e.simScreens.length)i.maxWidth=ur.LAYOUT_BOUNDS.width-10-25-6-o-(this.localeNode?this.localeNode.width:0)-6-s.width-10;else{const n=Math.min(i.width,.2*ur.LAYOUT_BOUNDS.width),a=new V.Z(!0,{tandem:K.Z.GENERAL_MODEL.createTandem("screens").createTandem("isUserNavigableProperty"),phetioFeatured:!0,phetioDocumentation:"If the screens are user navigable, icons are displayed in the navigation bar and the user can switch between screens."});r=new G.NBX({tagName:"ol",containerTagName:"nav",labelTagName:"h2",labelContent:ds.Z.a11y.simScreensStringProperty,visibleProperty:new M.ZP([e.activeSimScreensProperty,e.selectedScreenProperty,a],(t,i,n)=>i!==e.homeScreen&&t.length>1&&n)}),r.ariaLabelledbyAssociations=[{thisElementName:G.Grz.CONTAINER_PARENT,otherElementName:G.Grz.LABEL_SIBLING,otherNode:r}],this.barContents.addChild(r),this.homeButton=new nd(Fd.height,e.lookAndFeel.navigationBarFillProperty,e.homeScreen?e.homeScreen.pdomDisplayNameProperty:new Jn.Z("NO HOME SCREEN"),{listener:()=>{e.selectedScreenProperty.value=e.homeScreen,this.homeButton.isPDOMClicking()&&e.homeScreen.view.focusHighlightedScreenButton()},tandem:t.createTandem("homeButton"),centerY:Fd.height/2}),e.homeScreen&&r.addChild(this.homeButton);const l=ur.LAYOUT_BOUNDS.width/2-10-n-25-5-this.homeButton.width-5,h=ur.LAYOUT_BOUNDS.width/2-6-o-(this.localeNode?this.localeNode.width:0)-6-s.width-10,A=2*Math.min(l,h),d=(A-0*(e.simScreens.length-1))/e.simScreens.length,c=e.simScreens.map(i=>new od(e.lookAndFeel.navigationBarFillProperty,e.selectedScreenProperty,i,e.simScreens.indexOf(i),Fd.height,{maxButtonWidth:d,tandem:t.createTandem(i.tandem.name+"Button")})),u=[this.homeButton,...c],g=Math.max(60,_.maxBy(c,e=>e.width).width),p=_.maxBy(c,e=>e.height).height,m=new Map;c.forEach(e=>{m.set(e.screen,new G.DbO(e,{excludeInvisibleChildrenFromBounds:!0,alignBounds:new L.Z(0,0,g,p),visibleProperty:e.visibleProperty}))});const y=new G.BET({spacing:0,maxWidth:A});r.addChild(y),e.activeSimScreensProperty.link(e=>{y.children=e.map(e=>m.get(e))}),G.bGt.create(this,[this.background,y],(e,t)=>{t.center=e.center}),G.$1I.create(this.barContents,[this.homeButton,...c],(function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),n=1;ne&&e.visible);e&&s.length>0&&(e.right=Math.min(...s.map(e=>e.left))-5)})),G.bGt.create(this.barContents,[this.homeButton,i],(e,t)=>{t.maxWidth=e.left-10-25}),e.simNameProperty.link(e=>{u.forEach(t=>{t.voicingContextResponse=e})})}i.left=10,i.centerY=Fd.height/2,s.centerY=Fd.height/2,G.bGt.create(this,[this.background,s],(e,t)=>{t.right=e.right-10}),G.bGt.create(this.barContents,[s,this.a11yButtonsHBox],(e,t)=>{t.right=e.left-6,t.centerY=e.centerY}),this.localeNode&&G.bGt.create(this.barContents,[s,this.a11yButtonsHBox,this.localeNode],(e,t,i)=>{t.right=e.left-6,t.centerY=e.centerY,i.centerY=e.centerY,i.right=Math.min(t.left,e.left)-6}),this.layout(1,Fd.width,Fd.height);const a=new G.NBX({tagName:"div",containerTagName:"section",labelTagName:"h2",labelContent:ds.Z.a11y.simResourcesStringProperty,pdomOrder:[this.a11yButtonsHBox,s].filter(e=>void 0!==e)});a.ariaLabelledbyAssociations=[{thisElementName:G.Grz.CONTAINER_PARENT,otherElementName:G.Grz.LABEL_SIBLING,otherNode:a}],this.addChild(a)}layout(e,t,i){this.background.rectWidth=t,this.background.rectHeight=i,this.barContents.setScaleMagnitude(e)}}_defineProperty(Gd,"NAVIGATION_BAR_SIZE",Fd),Te.Z.register("NavigationBar",Gd);const qd=Gd;var Hd=i(6103);let Zd=null;class Ud{constructor(){_defineProperty(this,"enabled",!0),_defineProperty(this,"registedProperties",[]);try{window.localStorage.setItem("test","test")}catch(e){if(this.enabled=!1,e instanceof Error){if(!(window.navigator.userAgent.includes("Safari")&&!window.navigator.userAgent.includes("Chrome"))||!e.message.includes("QuotaExceededError"))throw e;console.log("It looks like you are browsing with private mode in Safari. Please turn that setting off if you want to use PreferencesStorage")}}}registerToLocalStorage(e,t){const i="PREFERENCES:"+t;window.localStorage.getItem(i)&&(e.value=JSON.parse(window.localStorage.getItem(i))),e.link(e=>{window.localStorage.setItem(i,JSON.stringify(e))}),this.registedProperties.push(e)}static register(e,t){return phet.chipper.queryParameters.preferencesStorage?(Zd||(Zd=new Ud),Zd.enabled&&Zd.registerToLocalStorage(e,t),e):e}}Te.Z.register("PreferencesStorage",Ud);const Kd=Ud;var Wd=i(621),zd=i(5602);window.phet.chipper.queryParameters.regionAndCulture,null===(y=yd.phet)||void 0===y||null===(f=y.simFeatures)||void 0===f||f.supportedRegionsAndCultures;class jd extends z.Z{constructor(e,t,i){super(i),this.regionAndCultureID=t,this.labelProperty=e}static createRegionAndCulturePortrayalProperty(e,t){return new x.Z(e,{tandem:K.Z.GENERAL_MODEL.createTandem("regionAndCulturePortrayalProperty"),phetioFeatured:!0,phetioValueType:jd.RegionAndCulturePortrayalIO,phetioDocumentation:"Specifies the region and culture character portrayals in the simulation",validValues:t})}}w=jd,_defineProperty(jd,"RegionAndCulturePortrayalIO",new hs.Z("RegionAndCulturePortrayalIO",{valueType:w,supertype:(0,As.Z)(hs.Z.ObjectIO),documentation:"A RegionAndCulturePortrayal describes and holds the contents of how a region and culture will be portrayed through cartoon characters in the sim."})),Te.Z.register("RegionAndCulturePortrayal",jd);class Xd extends z.Z{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=phet.chipper.queryParameters,i={...(0,Y.ZP)()({tandem:K.Z.OPT_OUT,phetioType:Xd.PreferencesModelIO,phetioFeatured:!0,phetioState:!1,phetioReadOnly:!0},e),simulationOptions:(0,Y.ZP)()({tandemName:"simulationModel",customPreferences:[]},e.simulationOptions),visualOptions:(0,Y.ZP)()({tandemName:"visualModel",supportsProjectorMode:!1,supportsInteractiveHighlights:t.supportsInteractiveHighlights,customPreferences:[]},e.visualOptions),audioOptions:(0,Y.ZP)()({tandemName:"audioModel",supportsVoicing:t.supportsVoicing,supportsSound:t.supportsSound,supportsExtraSound:t.supportsExtraSound,customPreferences:[]},e.audioOptions),inputOptions:(0,Y.ZP)()({tandemName:"inputModel",supportsGestureControl:t.supportsGestureControl,customPreferences:[]},e.inputOptions),localizationOptions:(0,Y.ZP)()({tandemName:"localizationModel",supportsDynamicLocale:!!Xl.Z.validValues&&Xl.Z.validValues.length>1&&phet.chipper.queryParameters.supportsDynamicLocale,characterSets:[],customPreferences:[],includeLocalePanel:!0},e.localizationOptions)};super(i),this.simulationModel=i.simulationOptions;const n=i.tandem.createTandem("visualModel");this.visualModel=(0,Ei.Z)({interactiveHighlightsEnabledProperty:new V.Z(phet.chipper.queryParameters.interactiveHighlightsInitiallyEnabled,{tandem:n.createTandem("interactiveHighlightsEnabledProperty"),phetioState:!1}),colorProfileProperty:G.CEW},i.visualOptions);const s=i.audioOptions.supportsVoicing&&Wd.Z.isSpeechSynthesisSupported()&&(phet.chipper.locale.startsWith("en")||phet.chipper.queryParameters.supportsDynamicLocale&&_.some(Xl.Z.validValues,e=>e.startsWith("en"))),r="disabled"!==phet.chipper.queryParameters.audio;this.audioModel={supportsVoicing:s&&r,supportsSound:i.audioOptions.supportsSound&&r,supportsExtraSound:i.audioOptions.supportsExtraSound&&r,audioEnabledProperty:Qe.audioEnabledProperty,soundEnabledProperty:Ie.enabledProperty,extraSoundEnabledProperty:Ie.extraSoundEnabledProperty,voicingEnabledProperty:G.LY3.enabledProperty,voicingMainWindowVoicingEnabledProperty:G.LY3.mainWindowVoicingEnabledProperty,voicingObjectResponsesEnabledProperty:Hd.Z.objectResponsesEnabledProperty,voicingContextResponsesEnabledProperty:Hd.Z.contextResponsesEnabledProperty,voicingHintResponsesEnabledProperty:Hd.Z.hintResponsesEnabledProperty,voicePitchProperty:G.LY3.voicePitchProperty,voiceRateProperty:G.LY3.voiceRateProperty,voiceProperty:G.LY3.voiceProperty,toolbarEnabledProperty:new V.Z(!0,{tandem:i.tandem.createTandem("audioModel").createTandem("toolbarEnabledProperty"),phetioState:!1}),customPreferences:i.audioOptions.customPreferences,tandemName:i.audioOptions.tandemName};const o=i.tandem.createTandem("inputModel");if(this.inputModel=(0,Ei.Z)({gestureControlsEnabledProperty:new V.Z(!1,{tandem:o.createTandem("gestureControlsEnabledProperty"),phetioState:!1})},i.inputOptions),this.localizationModel=(0,Ei.Z)({localeProperty:Xl.Z},i.localizationOptions),i.localizationOptions.characterSets.length>0){const e=i.localizationOptions.characterSets;let n=e[0];const s=t.regionAndCulture;s&&(n=e.find(e=>e.regionAndCultureID===s),this.localizationModel.regionAndCulturePortrayalProperty=jd.createRegionAndCulturePortrayalProperty(n,e))}if(this.audioModel.supportsExtraSound,this.addPhetioLinkedElementsForModel(i.tandem,this.simulationModel),this.addPhetioLinkedElementsForModel(i.tandem,this.visualModel,[{property:this.visualModel.colorProfileProperty}]),this.addPhetioLinkedElementsForModel(i.tandem,this.audioModel,[{property:this.audioModel.audioEnabledProperty,tandemName:"audioEnabledProperty"},{property:this.audioModel.soundEnabledProperty,tandemName:"soundEnabledProperty"},{property:this.audioModel.extraSoundEnabledProperty,tandemName:"extraSoundEnabledProperty"},{property:this.audioModel.voicingEnabledProperty,tandemName:"voicingEnabledProperty"},{property:this.audioModel.voicingMainWindowVoicingEnabledProperty,tandemName:"voicingMainWindowVoicingEnabledProperty"},{property:this.audioModel.voicingObjectResponsesEnabledProperty,tandemName:"voicingObjectResponsesEnabledProperty"},{property:this.audioModel.voicingContextResponsesEnabledProperty,tandemName:"voicingContextResponsesEnabledProperty"},{property:this.audioModel.voicingHintResponsesEnabledProperty,tandemName:"voicingHintResponsesEnabledProperty"},{property:this.audioModel.voicePitchProperty,tandemName:"voicePitchProperty"},{property:this.audioModel.voiceRateProperty,tandemName:"voiceRateProperty"}]),this.addPhetioLinkedElementsForModel(i.tandem,this.inputModel),this.addPhetioLinkedElementsForModel(i.tandem,this.localizationModel,[{property:this.localizationModel.localeProperty,tandemName:"localeProperty"}]),s){G.LY3.enabledProperty.value=phet.chipper.queryParameters.voicingInitiallyEnabled;let e=!1;if(Xl.Z.link(t=>{const i=G.LY3.voicingSupportedForLocale(t);G.LY3.enabledProperty.value?(G.LY3.enabledProperty.value=i,e=!0):e&&i&&(G.LY3.enabledProperty.value=!0,e=!1)}),G.LY3.enabledProperty.link(e=>{G.KsW.enabled=e,!e&&G.KsW.clear()}),phet.chipper.queryParameters.voicingInitiallyEnabled){Hd.Z.objectResponsesEnabledProperty.value=!0,Hd.Z.contextResponsesEnabledProperty.value=!0,Hd.Z.hintResponsesEnabledProperty.value=!0;const e=Ce.Z.multilink([G.LY3.voicesProperty,G.LY3.isInitializedProperty],(t,i)=>{i&&t.length>0&&(G.LY3.voiceProperty.value=G.LY3.getEnglishPrioritizedVoices()[0],Ce.Z.unmultilink(e))})}}phet.chipper.queryParameters.printVoicingResponses&&G.LY3.startSpeakingEmitter.addListener(e=>console.log(e)),this.registerPreferencesStorage()}registerPreferencesStorage(){this.visualModel.supportsInteractiveHighlights&&Kd.register(this.visualModel.interactiveHighlightsEnabledProperty,"interactiveHighlightsEnabledProperty"),this.audioModel.supportsVoicing&&(Kd.register(this.audioModel.voicingObjectResponsesEnabledProperty,"objectResponsesEnabledProperty"),Kd.register(this.audioModel.voicingContextResponsesEnabledProperty,"contextResponsesEnabledProperty"),Kd.register(this.audioModel.voicingHintResponsesEnabledProperty,"hintResponsesEnabledProperty"),Kd.register(this.audioModel.voiceRateProperty,"voiceRateProperty"),Kd.register(this.audioModel.voicePitchProperty,"voicePitchProperty")),this.audioModel.supportsExtraSound&&Kd.register(this.audioModel.extraSoundEnabledProperty,"extraSoundEnabledProperty"),this.inputModel.supportsGestureControl&&Kd.register(this.inputModel.gestureControlsEnabledProperty,"gestureControlsEnabledProperty")}addPhetioLinkedElementsForModel(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const n=e.createTandem(t.tandemName),s=i;for(let r=0;r0}supportsSimulationPreferences(){return this.preferenceModelHasCustom(this.simulationModel)}supportsVisualPreferences(){return this.visualModel.supportsInteractiveHighlights||this.visualModel.supportsProjectorMode||this.preferenceModelHasCustom(this.visualModel)}supportsAudioPreferences(){return this.audioModel.supportsSound||this.audioModel.supportsExtraSound||this.audioModel.supportsVoicing||this.preferenceModelHasCustom(this.audioModel)}supportsInputPreferences(){return this.inputModel.supportsGestureControl||this.preferenceModelHasCustom(this.inputModel)}supportsLocalizationPreferences(){return this.localizationModel.supportsDynamicLocale||this.localizationModel.characterSets.length>0||this.preferenceModelHasCustom(this.localizationModel)}shouldShowDialog(){return this.supportsSimulationPreferences()||this.supportsVisualPreferences()||this.supportsInputPreferences()||this.supportsLocalizationPreferences()||this.supportsAudioPreferences()}}B=Xd,_defineProperty(Xd,"PreferencesModelIO",new hs.Z("PreferencesModelIO",{valueType:B,toStateObject:e=>({supportsProjectorMode:e.visualModel.supportsProjectorMode,supportsInteractiveHighlights:e.visualModel.supportsInteractiveHighlights,supportsVoicing:e.audioModel.supportsVoicing,supportsSound:e.audioModel.supportsSound,supportsExtraSound:e.audioModel.supportsExtraSound,supportsGestureControl:e.inputModel.supportsGestureControl,supportsDynamicLocale:e.localizationModel.supportsDynamicLocale,supportsAudioPreferences:e.supportsAudioPreferences(),supportsInputPreferences:e.supportsInputPreferences(),supportsLocalizationPreferences:e.supportsLocalizationPreferences(),supportsSimulationPreferences:e.supportsSimulationPreferences(),supportsVisualPreferences:e.supportsVisualPreferences()}),stateSchema:{supportsProjectorMode:zd.Z,supportsInteractiveHighlights:zd.Z,supportsVoicing:zd.Z,supportsSound:zd.Z,supportsExtraSound:zd.Z,supportsGestureControl:zd.Z,supportsDynamicLocale:zd.Z,supportsAudioPreferences:zd.Z,supportsInputPreferences:zd.Z,supportsLocalizationPreferences:zd.Z,supportsSimulationPreferences:zd.Z,supportsVisualPreferences:zd.Z}})),Te.Z.register("PreferencesModel",Xd);class Jd{constructor(){_defineProperty(this,"allTimes",[]),_defineProperty(this,"histogram",[]),_defineProperty(this,"longTimes",[]),_defineProperty(this,"frameStartTime",0),_defineProperty(this,"previousFrameStartTime",0);for(let e=0;e<30;e++)this.histogram.push(0);$("body").append('')}static start(e){const t=new Jd;e.frameStartedEmitter.addListener(()=>t.frameStarted()),e.frameEndedEmitter.addListener(()=>t.frameEnded())}frameStarted(){this.frameStartTime=Date.now()}frameEnded(){if(this.allTimes.length>0&&this.allTimes.length%60==0){let e=0;for(let i=0;i0&&(this.longTimes.sort((e,t)=>t-e),t=t+" — "+this.longTimes),$("#phetProfiler").html(t);for(let i=0;i<30;i++)this.histogram[i]=0;this.longTimes.length=0,this.allTimes.length=0}if(this.previousFrameStartTime){const e=this.frameStartTime-this.previousFrameStartTime;this.allTimes.push(e),e<30?this.histogram[e]++:this.longTimes.push(e)}this.previousFrameStartTime=this.frameStartTime}}Te.Z.register("Profiler",Jd);const _d=Jd,$d=new Image,ec=j.Z.createLock($d);$d.onload=ec,$d.src="data:image/png;base64,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";const tc=$d;class ic extends ro{constructor(e,t){const i=(0,Y.ZP)()({topMargin:20,bottomMargin:20,phetioType:ic.OopsDialogIO},t),n=new G.Hof(e,(0,Y.ZP)()({font:new it(20),maxWidth:600,maxHeight:400},i.richTextOptions)),s=i.iconNode||new G.Eep(tc,{maxHeight:132});super(new G.BET({spacing:20,children:[n,s]}),i),this.disposeOopsDialog=()=>{n.dispose()},"string"!=typeof e&&this.addLinkedElement(e)}dispose(){this.disposeOopsDialog(),super.dispose()}}P=ic,_defineProperty(ic,"OopsDialogIO",new hs.Z("OopsDialogIO",{valueType:P,supertype:ro.DialogIO})),U.register("OopsDialog",ic);class nc extends ic{constructor(e,t){const i=(0,Y.ZP)()({richTextOptions:{font:new it(16)},title:new G.xvT(ds.Z.queryParametersWarningDialog.invalidQueryParametersStringProperty,{font:new it(28)})},t);let n=ds.Z.queryParametersWarningDialog.oneOrMoreQueryParametersStringProperty.value+"";e.forEach(e=>{n+=`${e.key}=${e.value}
`}),n+="
"+ds.Z.queryParametersWarningDialog.theSimulationWillStartStringProperty.value,super(n,i)}}Te.Z.register("QueryParametersWarningDialog",nc);const sc=nc,rc="data:audio/mpeg;base64,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",oc=X(se,rc),ac=j.Z.createLock(rc),lc=new ie;let hc=!1;const Ac=()=>{hc||(ac(),hc=!0)},dc=se.decodeAudioData(oc.buffer,e=>{null===lc.audioBufferProperty.value&&(lc.audioBufferProperty.set(e),Ac())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),lc.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),Ac()});dc&&dc.then(e=>{null===lc.audioBufferProperty.value&&(lc.audioBufferProperty.set(e),Ac())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),Ac()});const cc=lc;class uc extends Ot{constructor(e,t,i){super(cc,i),e.lazyLink(e=>{e!==t&&this.play()})}}Te.Z.register("ScreenSelectionSoundGenerator",uc);const gc=uc;function pc(e,t,i,n,s,r,o,a,l){if(1===e.length&&i&&t){const e="cannot specify homeScreen=true for single-screen sims";QueryStringMachine.addWarning("homeScreen",t,e)}let h=[];if(o&&r)for(let u=0;u
=0&&i1&&t&&(c=l(h),A.unshift(c)),d=c&&0===n?c:0===n?h[0]:e[n-1],!A.includes(d))throw new Error("screen not found: "+n);return{homeScreen:c,initialScreen:d,selectedSimScreens:h,screens:A,allScreensCreated:_.isEqual(new Set(e),new Set(h))&&(!(e.length>1)||!!c)}}Te.Z.register("selectScreens",pc);class mc{constructor(){_defineProperty(this,"stringFactor",1),_defineProperty(this,"stride",0)}handleEvent(e){"ArrowLeft"===e.code?this.halveStrings():"ArrowRight"===e.code?this.doubleStrings():"ArrowUp"===e.code?this.setStride(this.stride+1):"ArrowDown"===e.code?this.setStride(this.stride-1):"Space"===e.code&&this.reset()}doubleStrings(){this.setStringFactor(Math.min(2*this.stringFactor,8))}halveStrings(){this.setStringFactor(Math.max(.5*this.stringFactor,.01))}setStringFactor(e){this.stringFactor=e,console.log("stringFactor = "+this.stringFactor),function(e){nt.j.forEach(t=>{if(t.restoreInitialValue("en"),1!==e){const i=t.property.value.replace(/[\u202A\u202B\u202C]/g,"");t.property.value=function(e,t){if(e>1)return function(e,t){let i=e;for(;t>1;)i+=e,t-=1;return i}(t,e);{const i=t.match(/{{(.+?)}}/g)||[],n=t.replace(/{{(.+?)}}/g,""),s=R.Z.toFixedNumber(n.length*e+1,0);return n.substring(0,s)+i.join("")}}(e,i)}})}(this.stringFactor)}setStride(e){const t=mc.WORDS;e>t.length-1?e=0:e<0&&(e=t.length-1),this.stride=e,console.log("stride = "+this.stride),nt.j.forEach((e,i)=>{e.property.value=t[(i+this.stride)%t.length]})}reset(){this.setStride(0),this.setStringFactor(1)}}_defineProperty(mc,"WORDS","Sometimes when Hippopotomonstrosesquippedaliophobia want lyrics you turn to Shakespeare like the following text copied from some work To be or not to be that is the question Supercalifragilisticexpeladocious tis nobler in the mind to suffer The slings and arrows of antidisestablishmentarianism fortune Or to take Incomprehensibility against a sea of Floccinaucinihilipilification".split(" ")),Te.Z.register("DynamicStringTest",mc);class yc{constructor(e,t){_defineProperty(this,"initialPointerPoint",null),_defineProperty(this,"relativePointerDistance",0),this.display=e;const i={move:this.handleMove.bind(this)},n=()=>{this.display.focusManager.pdomFocusHighlightsVisibleProperty.value=!0},s={};if(["click","input","change","keydown","keyup"].forEach(e=>{s[e]=n}),this.display.addInputListener(s),G.MMl.keyupEmitter.addListener(e=>{G.ntP.isKeyEvent(e,G.ntP.KEY_TAB)&&n()}),t.visualModel.supportsInteractiveHighlights){t.visualModel.interactiveHighlightsEnabledProperty.link(e=>{this.display.focusManager.interactiveHighlightsVisibleProperty.value=e});const e=t.visualModel.interactiveHighlightsEnabledProperty,n=this.display.focusManager.pdomFocusHighlightsVisibleProperty;Ce.Z.multilink([e,n],(e,t)=>{e&&t?(this.display.addInputListener(i),this.initialPointerPoint=null,this.relativePointerDistance=0):this.display.hasInputListener(i)&&this.display.removeInputListener(i)})}this.display.addInputListener({down:e=>{this.display.bounds.containsPoint(e.pointer.point)&&(this.display.focusManager.pdomFocusHighlightsVisibleProperty.value=!1,G.IKS.pdomFocusedNode&&(e.trail.nodes.includes(G.IKS.pdomFocusedNode)||(G.IKS.pdomFocus=null)))}})}handleMove(e){null===this.initialPointerPoint?this.initialPointerPoint=e.pointer.point:(this.relativePointerDistance=e.pointer.point.distance(this.initialPointerPoint),this.relativePointerDistance>100&&(this.display.focusManager.pdomFocusHighlightsVisibleProperty.value=!1,this.display.focusManager.interactiveHighlightsVisibleProperty.value=!0))}}Te.Z.register("HighlightVisibilityController",yc);const fc=yc;class wc extends G.sSl{constructor(e){const t=(0,Y.ZP)()({rootRenderer:"svg",webgl:wc.DEFAULT_WEBGL,allowBackingScaleAntialiasing:!0,allowSceneOverflow:!1,allowWebGL:phet.chipper.queryParameters.webgl,assumeFullWindow:!0,accessibility:phet.chipper.queryParameters.supportsInteractiveDescription,tandem:K.Z.REQUIRED},e);t.supportsInteractiveHighlights=t.preferencesModel.visualModel.supportsInteractiveHighlights,t.rootRenderer=phet.chipper.queryParameters.rootRenderer||t.rootRenderer,QueryStringMachine.containsKey("webgl")&&(t.webgl=phet.chipper.queryParameters.webgl),G.cQK.setWebGLEnabled(t.webgl),phet.chipper.isFuzzEnabled()&&(window.open=function(){return{focus:_.noop,blur:_.noop}}),$("body").css("padding","0").css("margin","0").css("overflow","hidden"),document.getElementById("sim")&&document.getElementById("sim").parentNode===document.body&&document.body.removeChild(document.getElementById("sim")),document.onselectstart=function(){return!1},super(new G.NBX({renderer:t.rootRenderer}),t),_defineProperty(this,"simulationRoot",new G.NBX),this.simulationRoot=new G.NBX,this.rootNode.addChild(this.simulationRoot);const i=phet.chipper.queryParameters.randomSeed*Math.PI;if(this.inputFuzzer=new G.$AB(this,i),this.keyboardFuzzer=new G.eXg(this,i),this.supportsPanAndZoomProperty=new V.Z(phet.chipper.queryParameters.supportsPanAndZoom,{tandem:t.tandem.createTandem("supportsPanAndZoomProperty"),phetioFeatured:!0}),this.domElement.id="sim",phet.chipper.queryParameters.supportsInteractiveDescription&&(this.pdomRootElement.lang="en"),this.highlightVisibilityController=new fc(this,t.preferencesModel),phet.chipper.queryParameters.sceneryLog&&G.QF$.enableLogging(phet.chipper.queryParameters.sceneryLog),phet.chipper.queryParameters.sceneryStringLog&&G.QF$.switchLogToString(),"dynamic"===phet.chipper.queryParameters.stringTest){const e=new mc;window.addEventListener("keydown",t=>e.handleEvent(t))}this.initializeEvents({tandem:K.Z.GENERAL_CONTROLLER.createTandem("input")}),window.phet.joist.rootNode=this.rootNode,window.phet.joist.display=this,this.setPointerDisplayVisible(phet.chipper.queryParameters.showPointers),this.setPointerAreaDisplayVisible(phet.chipper.queryParameters.showPointerAreas),this.setHitAreaDisplayVisible(phet.chipper.queryParameters.showHitAreas),this.setCanvasNodeBoundsVisible(phet.chipper.queryParameters.showCanvasNodeBounds),this.setFittedBlockBoundsVisible(phet.chipper.queryParameters.showFittedBlockBounds),G.Yj2.initialize(this.simulationRoot,{tandem:t.tandem.createTandem("panZoomListener")});const n=G.Yj2.listener;this.supportsPanAndZoomProperty.link(e=>{e?this.addInputListener(n):this.hasInputListener(n)&&this.removeInputListener(n)}),window.addEventListener("pageshow",e=>{e.persisted&&window.location.reload()})}fuzzInputEvents(){const e=phet.chipper.queryParameters.fuzzTouch||phet.chipper.queryParameters.fuzz,t=phet.chipper.queryParameters.fuzzMouse||phet.chipper.queryParameters.fuzz;(t||e)&&this.inputFuzzer.fuzzEvents(phet.chipper.queryParameters.fuzzRate,t,e,phet.chipper.queryParameters.fuzzPointers),phet.chipper.queryParameters.fuzzBoard&&document.hasFocus()&&this.keyboardFuzzer.fuzzBoardEvents(phet.chipper.queryParameters.fuzzRate)}step(e){this.supportsPanAndZoomProperty.value&&G.Yj2.listener.step(e)}}_defineProperty(wc,"DEFAULT_WEBGL",!1),Te.Z.register("SimDisplay",wc);var Bc=i(0),Pc=i(2306),Dc=i(170);class Cc extends z.Z{constructor(e){let t,i,n;super({tandem:K.Z.GENERAL_MODEL.createTandem("simInfo"),phetioType:Cc.SimInfoIO,phetioReadOnly:!0,phetioDocumentation:"A collection of data about the runtime and simulation. Available in the simStarted PhET-iO data stream event, as well as on demand in the PhET-iO state."}),_defineProperty(this,"info",{}),this.putInfo("url",window.location.href),this.putInfo("randomSeed",window.phet.chipper.queryParameters.randomSeed),this.putInfo("userAgent",window.navigator.userAgent),this.putInfo("language",window.navigator.language),this.putInfo("window",`${window.innerWidth}x${window.innerHeight}`),this.putInfo("referrer",document.referrer),this.putInfo("checkIE11StencilSupport",G.cQK.checkIE11StencilSupport()),this.putInfo("isWebGLSupported",!!phet.chipper.queryParameters.webgl&&G.cQK.isWebGLSupported);const s=[];window.navigator.pointerEnabled&&s.push("pointerEnabled"),window.navigator.msPointerEnabled&&s.push("msPointerEnabled"),window.navigator.onLine||s.push("offline");try{t=document.createElement("canvas"),i=t.getContext("2d"),n=G.cQK.backingStorePixelRatio(i),this.putInfo("pixelRatio",`${window.devicePixelRatio||1}/${n}`),(window.devicePixelRatio||1)/n!=1&&s.push("pixelRatioScaling")}catch(r){}this.putInfo("flags",s.join(", ")),t=null,this.putInfo("simName",e.simNameProperty.value),this.putInfo("simVersion",e.version),this.putInfo("repoName",yd.name),this.putInfo("screens",e.screens.map(t=>{const i={name:t.nameProperty.value||e.simNameProperty.value};return K.Z.PHET_IO_ENABLED&&(i.phetioID=t.tandem.phetioID),i})),K.Z.PHET_IO_ENABLED&&(this.putInfo("screenPropertyValue",e.selectedScreenProperty.value.tandem.phetioID),this.putInfo("wrapperMetadata",phet.preloads.phetio.simStartedMetadata),this.putInfo("dataStreamVersion",phet.phetio.dataStream.VERSION),this.putInfo("phetioCommandProcessorProtocol",phet.phetio.phetioCommandProcessor.PHET_IO_PROTOCOL))}putInfo(e,t){void 0===t&&(t="{{undefined}}"),this.info[e]=t}}D=Cc,_defineProperty(Cc,"SimInfoIO",new hs.Z("SimInfoIO",{valueType:D,toStateObject:e=>({simName:e.info.simName,screens:e.info.screens,repoName:e.info.repoName,screenPropertyValue:e.info.screenPropertyValue,dataStreamVersion:e.info.dataStreamVersion,phetioCommandProcessorProtocol:e.info.phetioCommandProcessorProtocol,simVersion:K.Z.API_GENERATION?null:e.info.simVersion,wrapperMetadata:K.Z.API_GENERATION?null:e.info.wrapperMetadata,randomSeed:K.Z.API_GENERATION?null:e.info.randomSeed,url:K.Z.API_GENERATION?null:e.info.url,userAgent:K.Z.API_GENERATION?null:e.info.userAgent,window:K.Z.API_GENERATION?null:e.info.window,referrer:K.Z.API_GENERATION?null:e.info.referrer,language:K.Z.API_GENERATION?null:e.info.language,pixelRatio:K.Z.API_GENERATION?null:e.info.pixelRatio,isWebGLSupported:K.Z.API_GENERATION?null:e.info.isWebGLSupported,checkIE11StencilSupport:K.Z.API_GENERATION?null:e.info.checkIE11StencilSupport,flags:K.Z.API_GENERATION?null:e.info.flags||null}),stateSchema:{simName:ot.Z,screens:(0,Bc.Z)(Dc.Z),repoName:ot.Z,screenPropertyValue:ot.Z,wrapperMetadata:(0,Pc.Z)(Dc.Z),dataStreamVersion:ot.Z,phetioCommandProcessorProtocol:ot.Z,simVersion:(0,Pc.Z)(ot.Z),randomSeed:(0,Pc.Z)(Se.Z),url:(0,Pc.Z)(ot.Z),userAgent:(0,Pc.Z)(ot.Z),window:(0,Pc.Z)(ot.Z),referrer:(0,Pc.Z)(ot.Z),language:(0,Pc.Z)(ot.Z),pixelRatio:(0,Pc.Z)(ot.Z),isWebGLSupported:(0,Pc.Z)(zd.Z),checkIE11StencilSupport:(0,Pc.Z)(zd.Z),flags:(0,Pc.Z)(ot.Z)}})),Te.Z.register("SimInfo",Cc);const Ec=Cc;class bc{constructor(e){this.sim=e,window.addEventListener("message",t=>{"pause"===t.data.messageName?(e.stepOneFrame(),e.activeProperty.value=!1):"resume"===t.data.messageName&&(e.activeProperty.value=!0)})}start(){this.sim.isConstructionCompleteProperty.link(e=>{e&&window.parent!==window&&window.parent.postMessage({message:"init"},"*")})}}Te.Z.register("LegendsOfLearningSupport",bc);const vc=bc;class Vc extends Hi{constructor(e,t,i){const n=(0,Y.ZP)()({radius:i&&i.content?null:30,lineWidth:.5,stroke:null,touchAreaDilation:0,mouseAreaDilation:0,touchAreaXShift:0,touchAreaYShift:0,mouseAreaXShift:0,mouseAreaYShift:0,aspectRatio:1,cursor:"pointer",xMargin:5,yMargin:5,buttonAppearanceStrategy:Vc.ThreeDAppearanceStrategy},i);n.content,n.radius&&(n.minUnstrokedWidth=2*n.radius,n.minUnstrokedHeight=2*n.radius),n.buttonAppearanceStrategyOptions||(n.buttonAppearanceStrategyOptions={stroke:n.stroke,lineWidth:n.lineWidth});const s=n.radius||Math.max(n.content.width+2*n.xMargin,n.content.height+2*n.yMargin)/2;if(n.content&&n.radius){const e=n.content,t=Math.min(2*(n.radius-n.xMargin)/e.width,2*(n.radius-n.yMargin)/e.height);n.content=new G.NBX({children:[e],scale:t})}const r=new G.Cdc(s);super(e,r,t,n);const o=r.localBounds.width/2;this.touchArea=Ke.bn.circle(n.touchAreaXShift,n.touchAreaYShift,o+n.touchAreaDilation),this.mouseArea=Ke.bn.circle(n.mouseAreaXShift,n.mouseAreaYShift,o+n.mouseAreaDilation),this.focusHighlight=Ke.bn.circle(0,0,o+5)}}Vc.ThreeDAppearanceStrategy=class{constructor(e,t,i,n){const s=n&&n.stroke?n.stroke:new G.M4p(i,{luminanceFactor:-.4}),r=n&&void 0!==n.lineWidth?n.lineWidth:.3,o=(0,Y.ZP)()({stroke:s,lineWidth:r,overStroke:s,overLineWidth:r,overButtonOpacity:1,selectedStroke:s,selectedLineWidth:r,selectedButtonOpacity:1,deselectedStroke:s,deselectedLineWidth:r,deselectedButtonOpacity:1,overFill:i},n),a=new G.M4p(i,{luminanceFactor:.8}),l=new G.M4p(i,{luminanceFactor:.7}),h=new G.M4p(i,{luminanceFactor:.3}),A=new G.M4p(i,{luminanceFactor:-.1}),d=new G.M4p(i,{luminanceFactor:-.2}),c=new G.M4p(i,{luminanceFactor:-.4}),u=new G.M4p(i,{luminanceFactor:-.5}),g=new M.ZP([i],e=>e.withAlpha(0)),p=e.width/2,m=p-2.5,y=p+2.5,f=new G.XMe(2.5,2.5,m,2.5,2.5,y).addColorStop(0,i).addColorStop(1,l),w=new G.XMe(-2.5,-2.5,m,-2.5,-2.5,y).addColorStop(0,g).addColorStop(1,u),B=new G.XMe(2.5,2.5,m,2.5,2.5,y).addColorStop(0,h).addColorStop(1,a),P=new G.XMe(-2.5,-2.5,m,-2.5,-2.5,y).addColorStop(0,g).addColorStop(1,u),D=new G.XMe(-2.5,-2.5,0,0,0,y).addColorStop(0,A).addColorStop(.6,d).addColorStop(.8,i).addColorStop(1,a),C=new G.Cdc(p,{stroke:o.stroke?o.stroke:c,lineWidth:o.lineWidth,pickable:!1});function E(t){switch(t){case ki.IDLE:e.fill=f,e.stroke=o.deselectedStroke,e.lineWidth=o.deselectedLineWidth,e.opacity=o.deselectedButtonOpacity,C.fill=w,C.opacity=o.deselectedButtonOpacity;break;case ki.OVER:e.fill=B,e.stroke=o.overStroke,e.lineWidth=o.overLineWidth,e.opacity=o.overButtonOpacity,C.fill=P,C.opacity=o.overButtonOpacity;break;case ki.PRESSED:e.fill=D,e.stroke=o.selectedStroke,e.lineWidth=o.selectedLineWidth,e.opacity=o.selectedButtonOpacity,C.fill=P,C.opacity=o.selectedButtonOpacity;break;default:throw new Error("unsupported interactionState: "+t)}}e.addChild(C),this.maxLineWidth=C.hasStroke()&&o&&"number"==typeof o.lineWidth?o.lineWidth:0,e.cachedPaints=[f,B,D],C.cachedPaints=[w,P],t.link(E),this.disposeThreeDAppearanceStrategy=()=>{t.hasListener(E)&&t.unlink(E),a.dispose(),l.dispose(),h.dispose(),A.dispose(),d.dispose(),c.dispose(),u.dispose(),g.dispose()}}dispose(){this.disposeThreeDAppearanceStrategy()}},At.register("RoundButton",Vc);class Ic extends Vc{constructor(e){const t=(0,Y.ZP)()({soundPlayer:Oi,tandem:K.Z.REQUIRED,tandemNameSuffix:"Button"},e),i=t.listener,n=_.omit(t,["listener"]),s=new Yi(n);super(s,new Li(s),n),this.pushButtonModel=s,i&&this.addListener(i);const r=()=>{t.soundPlayer.play()};s.produceSoundEmitter.addListener(r),this.disposeRoundPushButton=()=>{s.produceSoundEmitter.removeListener(r),s.dispose()}}dispose(){super.dispose(),this.disposeRoundPushButton()}addListener(e){this.pushButtonModel.addListener(e)}removeListener(e){this.pushButtonModel.removeListener(e)}}At.register("RoundPushButton",Ic);class Mc{constructor(e){this.screenProperty=e}createOverviewContent(){const e=this.screenProperty.value.view;return e.getVoicingOverviewContent()}createDetailsContent(){const e=this.screenProperty.value.view;return e.getVoicingDetailsContent()}createHintContent(){this.screenProperty.value.view;return this.screenProperty.value.view.getVoicingHintContent()}}Te.Z.register("VoicingToolbarAlertManager",Mc);const Sc=Mc,Tc={DEFAULT_BUTTON_RADIUS:20.8,PLAY_CONTROL_BUTTON_RADIUS:28};U.register("SceneryPhetConstants",Tc);const xc=Tc;class Oc extends Ke.bn{constructor(e){super(),this.rect(0,0,e,e)}}U.register("StopIconShape",Oc);class kc extends Vc{constructor(e,t,i,n){const s=(0,Y.ZP)()({valueOffSoundPlayer:rn,valueOnSoundPlayer:gn,tandem:K.Z.REQUIRED,phetioFeatured:!0,tandemNameSuffix:"Button"},n),r=new mn(t,i,e,s),o=new pn(r);super(r,o,s),this.addLinkedElement(e,{tandemName:"property"});const a=()=>{e.value===t?s.valueOffSoundPlayer.play():e.value===i&&s.valueOnSoundPlayer.play()};this.buttonModel.produceSoundEmitter.addListener(a),this.disposeRoundToggleButton=()=>{this.buttonModel.produceSoundEmitter.removeListener(a),r.dispose()}}dispose(){this.disposeRoundToggleButton(),super.dispose()}}At.register("RoundToggleButton",kc);class Lc extends kc{constructor(e,t,i,n){const s=(0,Y.ZP)()({content:null,tandem:K.Z.REQUIRED,tandemNameSuffix:"Button"},n),r=new ji(e,t,i,{tandem:s.tandem.createTandem("toggleNode")});s.content=r,super(e,!1,!0,s),this.disposeBooleanRoundToggleButton=function(){r.dispose()}}dispose(){this.disposeBooleanRoundToggleButton(),super.dispose()}}At.register("BooleanRoundToggleButton",Lc);const Qc=Lc,Rc="data:audio/mpeg;base64,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",Nc=X(se,Rc),Yc=j.Z.createLock(Rc),Fc=new ie;let Gc=!1;const qc=()=>{Gc||(Yc(),Gc=!0)},Hc=se.decodeAudioData(Nc.buffer,e=>{null===Fc.audioBufferProperty.value&&(Fc.audioBufferProperty.set(e),qc())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),Fc.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),qc()});Hc&&Hc.then(e=>{null===Fc.audioBufferProperty.value&&(Fc.audioBufferProperty.set(e),qc())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),qc()});const Zc=new ti(Fc,{soundClipOptions:{initialOutputLevel:.7},soundManagerOptions:{categoryName:"user-interface"}});ee.register("pauseSoundPlayer",Zc);const Uc=Zc,Kc="data:audio/mpeg;base64,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",Wc=X(se,Kc),zc=j.Z.createLock(Kc),jc=new ie;let Xc=!1;const Jc=()=>{Xc||(zc(),Xc=!0)},_c=se.decodeAudioData(Wc.buffer,e=>{null===jc.audioBufferProperty.value&&(jc.audioBufferProperty.set(e),Jc())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),jc.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),Jc()});_c&&_c.then(e=>{null===jc.audioBufferProperty.value&&(jc.audioBufferProperty.set(e),Jc())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),Jc()});const $c=new ti(jc,{soundClipOptions:{initialOutputLevel:.7},soundManagerOptions:{categoryName:"user-interface"}});ee.register("playSoundPlayer",$c);const eu=$c;class tu extends Ke.bn{constructor(e,t){super(),this.moveTo(0,0),this.lineTo(e,t/2),this.lineTo(0,t),this.close()}}U.register("PlayIconShape",tu);class iu extends Qc{constructor(e,t,i){const n=(0,Y.ZP)()({radius:xc.PLAY_CONTROL_BUTTON_RADIUS,scaleFactorWhenNotPlaying:1,includeGlobalHotkey:!1,startPlayingLabel:rt.a11y.playControlButton.playStringProperty,endPlayingLabel:null,valueOffSoundPlayer:Uc,valueOnSoundPlayer:eu,xMargin:0,yMargin:0},i),s=.8*n.radius,r=n.radius,o=new G.y$t(new tu(s,r),{fill:"black",centerX:.05*n.radius,centerY:0}),a=new G.Cdc(n.radius,{children:[o]});t.centerX=0,t.centerY=0;const l=new G.Cdc(n.radius,{children:[t]});super(e,l,a,n);const h=(e,t)=>{this.innerContent=e?n.endPlayingLabel:n.startPlayingLabel;const i=null===t?1:1/n.scaleFactorWhenNotPlaying;this.scale(e?i:n.scaleFactorWhenNotPlaying)};e.link(h);const A=["alt+k"];let d=null;n.includeGlobalHotkey&&phet.chipper.queryParameters.supportsInteractiveDescription&&(d=new G.F3H({keys:A,global:!0,listenerFireTrigger:"up",callback:()=>{e.set(!e.get());const t=e.get()?n.valueOnSoundPlayer:n.valueOffSoundPlayer;t&&t.play()}}),this.addInputListener(d)),this.disposePlayStopButton=()=>{e.hasListener(h)&&e.unlink(h),d&&(this.removeInputListener(d),d.dispose())}}dispose(){this.disposePlayStopButton(),super.dispose()}}U.register("PlayControlButton",iu);class nu extends iu{constructor(e,t){const i=(0,Y.ZP)()({radius:xc.PLAY_CONTROL_BUTTON_RADIUS,endPlayingLabel:rt.a11y.playControlButton.stopStringProperty},t),n=.75*i.radius;super(e,new G.y$t(new Oc(n),{fill:"black"}),i)}}U.register("PlayStopButton",nu);const su=ds.Z.a11y.toolbar.voicing.titleStringProperty,ru=ds.Z.a11y.toolbar.voicing.quickInfoStringProperty,ou=ds.Z.a11y.toolbar.voicing.simVoicingOnAlertStringProperty,au=ds.Z.a11y.toolbar.voicing.simVoicingOffAlertStringProperty,lu=ds.Z.a11y.toolbar.titleStringProperty,hu=ds.Z.a11y.toolbar.voicing.playOverviewLabelStringProperty,Au=ds.Z.a11y.toolbar.voicing.playDetailsLabelStringProperty,du=ds.Z.a11y.toolbar.voicing.playHintLabelStringProperty,cu=ds.Z.a11y.toolbar.voicing.overviewLabelStringProperty,uu=ds.Z.a11y.toolbar.voicing.detailsLabelStringProperty,gu=ds.Z.a11y.toolbar.voicing.hintLabelStringProperty;class pu extends G.NBX{constructor(e,t,i){var n,s;const r=(0,Y.ZP)()({tagName:"section",labelTagName:"h2",labelContent:lu,visiblePropertyOptions:{phetioReadOnly:!0}},i);super(r);const o={font:new it(14),fill:t.navigationBarTextFillProperty,maxWidth:90},a=new G.xvT(su,o),l=new G.JxC(ru,o);l.focusHighlight=new G.qLK(l,{innerStroke:"white"});const h=new ua(G.LY3.mainWindowVoicingEnabledProperty,!1,!0,(0,Y.JA)({a11yName:su,rightValueContextResponse:ou,leftValueContextResponse:au,tandem:null===(n=r.tandem)||void 0===n?void 0:n.createTandem("muteSpeechSwitch")},fa.TOGGLE_SWITCH_OPTIONS)),A=new Wo({labelNode:a,controlNode:h,tandem:null===(s=r.tandem)||void 0===s?void 0:s.createTandem("muteSpeechControl")}),d=new G.Lkj,c=new G.Lkj,u=new mu(cu,hu,d,c,t,e.createOverviewContent.bind(e)),g=new mu(uu,Au,d,c,t,e.createDetailsContent.bind(e)),p=new mu(gu,du,d,c,t,e.createHintContent.bind(e));this.children=[A,l,u.content,g.content,p.content],l.leftTop=A.leftBottom.plusXY(0,10),u.content.leftTop=l.leftBottom.plusXY(20,10),g.content.leftTop=u.content.leftBottom.plusXY(0,10),p.content.leftTop=g.content.leftBottom.plusXY(0,10);const m=[u,g,p],y=[u.playingProperty,g.playingProperty,p.playingProperty];m.forEach(e=>{e.playingProperty.link(t=>{e.playContent(y)})}),this.disposeVoicingToolbarItem=()=>{l.dispose(),a.dispose()}}dispose(){this.disposeVoicingToolbarItem(),super.dispose()}}class mu{constructor(e,t,i,n,s,r){this.lookAndFeel=s,this.objectResponseUtterance=new ui.Z,this.createAlert=r,this.playingProperty=new V.Z(!1,{reentrant:!0}),this.playStopButton=new nu(this.playingProperty,{startPlayingLabel:t,voicingNameResponse:t,voicingIgnoreVoicingManagerProperties:!0,radius:12,tandem:K.Z.OPT_OUT});const o=new G.xvT(e,{font:new it(12),fill:this.lookAndFeel.navigationBarTextFillProperty,maxWidth:100}),a=i.createBox(o,{xAlign:"left"}),l=n.createBox(this.playStopButton,{xAlign:"right"});this.content=new G.BET({children:[a,l],spacing:10}),G.LY3.endSpeakingEmitter.addListener((e,t)=>{t===this.objectResponseUtterance&&(this.playingProperty.set(!1),G.sSl.inputListeners.includes(A)&&G.sSl.removeInputListener(A))});const h=e=>{e.trail.nodes.includes(this.playStopButton)||(G.sSl.removeInputListener(A),this.objectResponseUtterance.priorityProperty.value=ui.Z.LOW_PRIORITY)},A={down:h,focus:h};G.LY3.startSpeakingEmitter.addListener((e,t)=>{t===this.objectResponseUtterance&&G.sSl.addInputListener(A)})}playContent(e){if(this.playingProperty.value){_.without(e,this.playingProperty).forEach(e=>{e.value=!1}),this.objectResponseUtterance.priorityProperty.value=ui.Z.TOP_PRIORITY,this.playStopButton.voicingSpeakResponse({objectResponse:this.createAlert(),utterance:this.objectResponseUtterance})}else G.KsW.cancelUtterance(this.objectResponseUtterance)}}Te.Z.register("VoicingToolbarItem",pu);const yu=pu,fu=ds.Z.a11y.toolbar.openToolbarStringProperty,wu=ds.Z.a11y.toolbar.closeToolbarStringProperty,Bu=ds.Z.a11y.toolbar.hideToolbarStringProperty,Pu=ds.Z.a11y.toolbar.showToolbarStringProperty,Du=ds.Z.a11y.toolbar.toolbarShownStringProperty,Cu=ds.Z.a11y.toolbar.toolbarHiddenStringProperty;class Eu extends G.NBX{constructor(e,t,i,n){var s;const r=(0,Y.ZP)()({tagName:"div",visiblePropertyOptions:{phetioReadOnly:!0}},n);super(r),_defineProperty(this,"layoutScale",1),this.isEnabledProperty=e,this.backgroundRectangle=new G.AeJ(0,0,0,0,{fill:i.navigationBarFillProperty}),this.openProperty=new V.Z(!0),this.isShowingProperty=M.ZP.and([this.isEnabledProperty,G.LY3.enabledProperty,Qe.audioEnabledProperty]);const o=new Sc(t);this.menuContent=new yu(o,i,{tandem:null===(s=r.tandem)||void 0===s?void 0:s.createTandem("menuContent")});const a=new bu;this.openButton=new Ic({content:a,listener:()=>this.openProperty.toggle(),buttonAppearanceStrategy:Hi.FlatAppearanceStrategy,baseColor:"lightgrey",tandem:K.Z.OPT_OUT}),this.contentWidth=this.menuContent.localBounds.width,this.contentMargin=this.openButton.localBounds.width,this.rightPositionProperty=new T.Z(this.getHiddenPosition()),this.rightDestinationPosition=0;const l=new G.NBX({children:[this.backgroundRectangle,this.menuContent,this.openButton]});this.addChild(l);O.Z.addListener(e=>{this.step(e)});const h=(e,t)=>{if(a.matrix=e?Ht.Z.scaling(-1,1):Ht.Z.IDENTITY,this.menuContent.pdomVisible=e,this.openButton.innerContent=e?wu:fu,this.openButton.voicingNameResponse=e?Bu:Pu,this.updateDestinationPosition(),null!==t){const t=e?Du:Cu;this.openButton.voicingSpeakContextResponse({contextResponse:t}),this.alertDescriptionUtterance(t)}};this.openProperty.link(h);const A=e=>{this.updateDestinationPosition(),l.pdomVisible=e};this.isShowingProperty.link(A),this.disposeToolbar=()=>{this.isShowingProperty.unlink(A),this.openProperty.unlink(h)}}getDisplayedWidth(){return this.rightPositionProperty.value*this.layoutScale+this.openButton.width/2}getHiddenPosition(){return-this.contentMargin/2}updateDestinationPosition(){this.isShowingProperty.value?this.rightDestinationPosition=this.openProperty.value?this.contentWidth+2*this.contentMargin:this.contentMargin:this.rightDestinationPosition=this.getHiddenPosition()}step(e){const t=Math.abs(this.rightPositionProperty.value-this.rightDestinationPosition);if(0!==t){const i=Math.min(t,250*e),n=this.rightPositionProperty.value;this.rightPositionProperty.value=this.rightDestinationPosition>n?n+i:n-i}}layout(e,t){this.layoutScale=e,this.menuContent.setScaleMagnitude(e),this.openButton.setScaleMagnitude(e),this.backgroundRectangle.rectWidth=e*(this.contentWidth+2*this.contentMargin),this.backgroundRectangle.rectHeight=t,this.backgroundRectangle.right=this.rightPositionProperty.value*e,this.openButton.center=this.backgroundRectangle.rightCenter,this.menuContent.centerTop=this.backgroundRectangle.centerTop.plusXY(0,15)}dispose(){this.disposeToolbar(),super.dispose()}}class bu extends G.y$t{constructor(){const e=new Ke.bn;for(let t=0;t<2;t++){const i=8*t;e.moveTo(i,0),e.lineTo(i+5,6),e.lineTo(i,12)}super(e,{stroke:"black",lineWidth:3.5,lineCap:"round"})}}Te.Z.register("Toolbar",Eu);const vu=Eu;class Vu{constructor(e){this.inclusions=e}size(){return this.inclusions.length}includes(e){return this.inclusions[e]}apply(e){return e.filter((e,t)=>this.inclusions[t])}inverted(){return new Vu(this.inclusions.map(e=>!e))}getIncludedIndices(){return _.range(0,this.size()).filter(e=>this.inclusions[e])}toString(){return`C[${this.inclusions.map(e=>e?"1":"0").join("")}]`}equals(e){return this.inclusions.length===e.inclusions.length&&_.isEqual(this.inclusions,e.inclusions)}static empty(e){return new Vu(_.range(0,e).map(()=>!1))}static full(e){return new Vu(_.range(0,e).map(()=>!0))}static combinations(e){const t=[],i=[];return function n(s){s===e?t.push(new Vu(i.slice())):(i.push(!1),n(s+1),i.pop(),i.push(!0),n(s+1),i.pop())}(0),t}static forEachCombination(e,t){const i=[];!function n(s){s===e.length?t(i):(n(s+1),i.push(e[s]),n(s+1),i.pop())}(0)}static combinationsOf(e){const t=[];return Vu.forEachCombination(e,e=>{t.push(e.slice())}),t}}Br.Z.register("Combination",Vu);const Iu=Vu;var Mu=i(2238);const Su=N.Z.android||N.Z.mobileSafari;phet.joist.elapsedTime=0,phet.joist.playbackModeEnabledProperty=new V.Z(phet.chipper.queryParameters.playbackMode);class Tu extends z.Z{constructor(e,t,i){window.phetSplashScreenDownloadComplete();const n=(0,Y.ZP)()({credits:{},homeScreenWarningNode:null,preferencesModel:null,webgl:wc.DEFAULT_WEBGL,phetioState:!1,phetioReadOnly:!0,tandem:K.Z.ROOT},i);n.preferencesModel||(n.preferencesModel=new Xd);const s={webgl:n.webgl,tandem:K.Z.GENERAL_VIEW.createTandem("display"),preferencesModel:n.preferencesModel};super(n),_defineProperty(this,"_isConstructionCompleteProperty",new x.Z(!1)),_defineProperty(this,"isConstructionCompleteProperty",this._isConstructionCompleteProperty),_defineProperty(this,"frameStartedEmitter",new S.Z),_defineProperty(this,"frameEndedEmitter",new S.Z({tandem:K.Z.GENERAL_MODEL.createTandem("frameEndedEmitter"),phetioHighFrequency:!0,phetioDocumentation:"Indicates when a frame ends. Listen to this Emitter if you have an action that must be performed after the model and view step completes."})),_defineProperty(this,"activeProperty",new V.Z(!0,{tandem:K.Z.GENERAL_MODEL.createTandem("activeProperty"),phetioFeatured:!0,phetioDocumentation:"Determines whether the entire simulation is running and processing user input. Setting this property to false pauses the simulation, and prevents user interaction."})),_defineProperty(this,"scaleProperty",new T.Z(1)),_defineProperty(this,"boundsProperty",new x.Z(null)),_defineProperty(this,"screenBoundsProperty",new x.Z(null)),_defineProperty(this,"lookAndFeel",new wr),_defineProperty(this,"memoryMonitor",new br),_defineProperty(this,"version",yd.version),_defineProperty(this,"frameCounter",0),_defineProperty(this,"resizePending",!0),_defineProperty(this,"locale",phet.chipper.locale||"en"),_defineProperty(this,"toolbar",null),_defineProperty(this,"modalNodeStack",(0,I.Z)()),_defineProperty(this,"barrierRectangle",new W(this.modalNodeStack)),_defineProperty(this,"topLayer",new G.NBX({children:[this.barrierRectangle]})),_defineProperty(this,"lastStepTime",-1),_defineProperty(this,"lastAnimationFrameTime",-1),this.credits=n.credits,this.simNameProperty=e,phet.joist.playbackModeEnabledProperty.lazyLink(()=>{throw new Error("playbackModeEnabledProperty cannot be changed after Sim construction has begun")});const r=new x.Z(new Q.Z(0,0),{valueComparisonStrategy:"equalsFunction"});this.dimensionProperty=r,this.resizeAction=new Me.Z((e,t)=>{if(r.value=new Q.Z(e,t),0===e||0===t)return;const i=Math.min(e/ur.LAYOUT_BOUNDS.width,t/ur.LAYOUT_BOUNDS.height),n=i*qd.NAVIGATION_BAR_SIZE.height;this.navigationBar.layout(i,e,n),this.navigationBar.y=t-n,this.display.setSize(new Q.Z(e,t));const s=t-this.navigationBar.height;this.toolbar&&this.toolbar.layout(i,s);const o=this.toolbar?this.toolbar.getDisplayedWidth():0,a=new L.Z(o,0,e,s);_.each(this.screens,e=>e.view.layout(a)),this.topLayer.children.forEach(e=>{e.layout&&e.layout(a)}),N.Z.mobileSafari&&window.scrollTo(0,0),this.scaleProperty.value=i,this.boundsProperty.value=new L.Z(0,0,e,t),this.screenBoundsProperty.value=a.copy(),G.Yj2.listener.setTargetScale(i),G.Yj2.listener.setTargetBounds(this.boundsProperty.value),G.Yj2.listener.setPanBounds(this.boundsProperty.value)},{tandem:K.Z.GENERAL_MODEL.createTandem("resizeAction"),parameters:[{name:"width",phetioType:Se.Z},{name:"height",phetioType:Se.Z}],phetioPlayback:!0,phetioEventMetadata:{alwaysPlaybackableOverride:!0},phetioDocumentation:"Executes when the sim is resized. Values are the sim dimensions in CSS pixels."}),this.stepSimulationAction=new Me.Z(e=>{this.frameStartedEmitter.emit(),this.frameCounter++,e*=phet.chipper.queryParameters.speed,this.resizePending&&this.resizeToWindow();const t=this.selectedScreenProperty.value;e=Math.min(e,t.maxDT),phet.joist.elapsedTime+=1e3*e,O.Z.emit(e),t.model.step&&e&&t.model.step(e),window.TWEEN&&window.TWEEN.update(phet.joist.elapsedTime),this.display.step(e),t.view.step(e),K.Z.PHET_IO_ENABLED&&!phet.phetio.phetioEngine.isReadyForDisplay||this.display.updateDisplay(),phet.chipper.queryParameters.memoryLimit&&this.memoryMonitor.measure(),this.frameEndedEmitter.emit()},{tandem:K.Z.GENERAL_MODEL.createTandem("stepSimulationAction"),parameters:[{name:"dt",phetioType:Se.Z,phetioDocumentation:"The amount of time stepped in each call, in seconds."}],phetioHighFrequency:!0,phetioPlayback:!0,phetioDocumentation:"A function that steps time forward."});const o=K.Z.GENERAL_MODEL.createTandem("screens"),a=pc(t,phet.chipper.queryParameters.homeScreen,QueryStringMachine.containsKey("homeScreen"),phet.chipper.queryParameters.initialScreen,QueryStringMachine.containsKey("initialScreen"),phet.chipper.queryParameters.screens,QueryStringMachine.containsKey("screens"),e=>{const i=e.map(e=>t.indexOf(e)+1),n=_.flatten(Iu.combinationsOf(i).map(e=>Mu.Z.permutationsOf(e))).filter(e=>e.length>0).sort();this.availableScreensProperty=new x.Z(i,{tandem:o.createTandem("availableScreensProperty"),isValidValue:e=>_.some(n,t=>_.isEqual(e,t)),phetioFeatured:!0,phetioValueType:(0,Bc.Z)(Se.Z),phetioDocumentation:"Controls which screens are available, and the order they are displayed."}),this.activeSimScreensProperty=new M.ZP([this.availableScreensProperty],e=>e.map(e=>t[e-1]))},e=>new yr(this.simNameProperty,()=>this.selectedScreenProperty,e,this.activeSimScreensProperty,{tandem:n.tandem.createTandem(window.phetio.PhetioIDUtils.HOME_SCREEN_COMPONENT_NAME),warningNode:n.homeScreenWarningNode}));this.homeScreen=a.homeScreen,this.simScreens=a.selectedSimScreens,this.screens=a.screens,this.allScreensCreated=a.allScreensCreated,this.selectedScreenProperty=new x.Z(a.initialScreen,{tandem:o.createTandem("selectedScreenProperty"),phetioFeatured:!0,phetioDocumentation:"Determines which screen is selected in the simulation",validValues:this.screens,phetioValueType:Es.ScreenIO}),this.activeSimScreensProperty.lazyLink(e=>{const t=this.selectedScreenProperty.value;t===this.homeScreen?1===e.length?this.selectedScreenProperty.value=e[0]:e.includes(this.homeScreen.model.selectedScreenProperty.value)||(this.homeScreen.model.selectedScreenProperty.value=e[0]):e.includes(t)||(this.selectedScreenProperty.value=e[0])}),this.displayedSimNameProperty=M.ZP.deriveAny([this.availableScreensProperty,this.simNameProperty,this.selectedScreenProperty,ds.Z.simTitleWithScreenNamePatternStringProperty,...this.screens.map(e=>e.nameProperty)],()=>{const e=this.availableScreensProperty.value,i=this.simNameProperty.value,n=this.selectedScreenProperty.value,s=ds.Z.simTitleWithScreenNamePatternStringProperty.value,r=n.nameProperty.value,o=1===e.length&&t.length>1;return o&&i&&r?F.Z.fillIn(s,{simName:i,screenName:r}):o&&r?r:i},{tandem:K.Z.GENERAL_MODEL.createTandem("displayedSimNameProperty"),tandemNameSuffix:"NameProperty",phetioDocumentation:"Customize this string by editing its dependencies.",phetioFeatured:!0,phetioValueType:ot.Z});const l=new V.Z(!0,{tandem:K.Z.GENERAL_MODEL.createTandem("browserTabVisibleProperty"),phetioDocumentation:"Indicates whether the browser tab containing the simulation is currently visible",phetioReadOnly:!0,phetioFeatured:!0});this.browserTabVisibleProperty=l,document.addEventListener("visibilitychange",()=>{l.set("visible"===document.visibilityState)},!1),this.supportsGestureDescription=phet.chipper.queryParameters.supportsInteractiveDescription&&Su,this.hasKeyboardHelpContent=_.some(this.simScreens,e=>!!e.createKeyboardHelpNode),window.phet.joist.sim=this,this.preferencesModel=n.preferencesModel,Qe.initialize(this),this.preferencesModel.audioModel.supportsSound&&Ie.addSoundGenerator(new gc(this.selectedScreenProperty,this.homeScreen,{initialOutputLevel:.5}),{categoryName:"user-interface"}),window.phet.joist.ScreenshotGenerator=Od,this.simNameProperty.link(e=>{document.title=e}),this.preferencesModel.audioModel.supportsVoicing&&(this.toolbar=new vu(this.preferencesModel.audioModel.toolbarEnabledProperty,this.selectedScreenProperty,this.lookAndFeel),this.toolbar.rightPositionProperty.lazyLink(()=>{this.resize(this.boundsProperty.value.width,this.boundsProperty.value.height)})),this.display=new wc(s),this.rootNode=this.display.rootNode,Dn.initialize(this,this.display),Ce.Z.multilink([this.activeProperty,phet.joist.playbackModeEnabledProperty],(e,t)=>{t?(this.display.interactive=!0,G.MMl.enabled=!0):(this.display.interactive=e,G.MMl.enabled=e)}),document.body.appendChild(this.display.domElement),Fe.start(this),this.navigationBar=new qd(this,K.Z.GENERAL_VIEW.createTandem("navigationBar")),this.updateBackground=()=>{this.lookAndFeel.backgroundColorProperty.value=G.Ilk.toColor(this.selectedScreenProperty.value.backgroundColorProperty.value)},this.lookAndFeel.backgroundColorProperty.link(e=>{this.display.backgroundColor=e}),this.selectedScreenProperty.link(()=>this.updateBackground()),this.selectedScreenProperty.lazyLink((e,t)=>t.view.interruptSubtreeInput()),this.simInfo=new Ec(this),K.Z.PHET_IO_ENABLED&&phet.phetio.phetioEngine.onSimConstructionStarted(this.simInfo,this.isConstructionCompleteProperty,this.frameEndedEmitter,this.display),xe.Z.lazyLink(e=>{e||this.updateViews()}),this.boundRunAnimationLoop=this.runAnimationLoop.bind(this),phet.chipper.queryParameters.legendsOfLearning&&new vc(this).start()}updateViews(){this.resizeToWindow(),this.selectedScreenProperty.value.view.step&&this.selectedScreenProperty.value.view.step(0),this.display.descriptionUtteranceQueue.clear(),G.KsW.clear(),v.Z.runOnNextTick(()=>phet.joist.display.updateDisplay())}finishInit(e){_.each(e,e=>{e.view.layerSplit=!0,this.display.simulationRoot.addChild(e.view)}),this.display.simulationRoot.addChild(this.navigationBar),this.preferencesModel.audioModel.supportsVoicing&&(this.display.simulationRoot.addChild(this.toolbar),this.display.simulationRoot.pdomOrder=[this.toolbar],G.LY3.voicingFullyEnabledProperty.link(e=>{this.setSimVoicingVisible(e)})),this.selectedScreenProperty.link(t=>{e.forEach(e=>{const i=e===t;i&&e.activeProperty.set(i),e.view.setVisible(i),i||e.activeProperty.set(i)}),this.updateBackground(),xe.Z.value||G.Yj2.listener.resetTransform()}),this.display.simulationRoot.addChild(this.topLayer);const t=()=>{phet.joist.playbackModeEnabledProperty.value||(this.resizePending=!0)};if($(window).resize(t),window.addEventListener("resize",t),window.addEventListener("orientationchange",t),window.visualViewport&&window.visualViewport.addEventListener("resize",t),this.resizeToWindow(),Ed.check(),QueryStringMachine.warnings.length){const e=new sc(QueryStringMachine.warnings,{closeButtonListener:()=>{e.hide(),e.dispose()}});e.show()}}showPopup(e,t){t&&(this.rootNode.interruptSubtreeInput(),this.modalNodeStack.push(e),this.setPDOMViewsVisible(!1),this.setNonModalVoicingVisible(!1)),e.layout&&e.layout(this.screenBoundsProperty.value),this.topLayer.addChild(e)}hidePopup(e,t){t&&(this.modalNodeStack.remove(e),0===this.modalNodeStack.length&&(this.setNonModalVoicingVisible(G.LY3.voicingFullyEnabledProperty.value),this.setPDOMViewsVisible(!0))),this.topLayer.removeChild(e)}resizeToWindow(){this.resizePending=!1,this.resize(window.innerWidth,window.innerHeight)}resize(e,t){this.resizeAction.execute(e,t)}start(){const e=[];this.screens.forEach(t=>{e.push(()=>{t.backgroundColorProperty.hasListener(this.updateBackground)||t.backgroundColorProperty.link(this.updateBackground),t.initializeModel()}),e.push(()=>{t.initializeView(this.simNameProperty,this.displayedSimNameProperty,this.screens.length,this.homeScreen===t)})});const t=i=>{setTimeout(()=>{e[i]();const n=R.Z.linear(0,e.length-1,.25,1,i);document.getElementById("progressBarForeground")&&document.getElementById("progressBarForeground").setAttribute("width",""+273*n),i+1{if(this.finishInit(this.screens),G.cQK.polyfillRequestAnimationFrame(),phet.chipper.queryParameters.profiler&&_d.start(this),this._isConstructionCompleteProperty.value=!0,this.boundRunAnimationLoop(),phet.joist.playbackModeEnabledProperty.value){0,O.Z.emit(0)}K.Z.PHET_IO_ENABLED&&!phet.preloads.phetio.queryParameters.phetioStandalone||window.phetSplashScreen.dispose(),phet.chipper.brand,phet.chipper.queryParameters.continuousTest&&phet.chipper.reportContinuousTestResult({type:"continuous-test-load"}),phet.chipper.queryParameters.postMessageOnLoad&&window.parent&&window.parent.postMessage(JSON.stringify({type:"load",url:window.location.href}),"*")},25)},30/e.length)};t(0)}runAnimationLoop(){window.requestAnimationFrame(this.boundRunAnimationLoop),this.activeProperty.value&&!phet.joist.playbackModeEnabledProperty.value&&(this.frameCounter>0&&this.display.fuzzInputEvents(),this.stepOneFrame());const e=Date.now();v.Z.emit(xu(this.lastAnimationFrameTime,e)),this.lastAnimationFrameTime=e,K.Z.PHET_IO_ENABLED&&phet.phetio.phetioCommandProcessor.onAnimationLoop(this)}stepOneFrame(){const e=Date.now(),t=xu(this.lastStepTime,e);this.lastStepTime=e,t>0&&this.stepSimulation(t)}stepSimulation(e){this.stepSimulationAction.execute(e)}setPDOMViewsVisible(e){for(let t=0;t=2&&this.screens.forEach(e=>{if(!(e instanceof yr)&&e.nameProperty instanceof k.Z){e.nameProperty.stringKey}})}}function xu(e,t){return-1===e?1/60:(t-e)/1e3}Te.Z.register("Sim",Tu);let Ou=null;const ku=j.Z.createLock({name:"brand"});if(i(163)(`./${phet.chipper.brand}/js/Brand.js`).then(e=>ku()).catch(e=>console.log(e)),K.Z.PHET_IO_ENABLED){const e=j.Z.createLock({name:"phetioEngine"});Promise.resolve().then((function(){var e=new Error("Cannot find module '../../phet-io/js/phetioEngine.js'");throw e.code="MODULE_NOT_FOUND",e})).then(t=>{Ou=t.default,e()}).catch(e=>console.log(e))}const Lu=j.Z.createLock({name:"launch"});const Qu=new class{constructor(){this.launchComplete=!1}launch(e){j.Z.addListener(()=>{var t;(window.phet.joist.launchSimulation=()=>{var t;(this.launchComplete=!0,K.Z.PHET_IO_ENABLED)&&(null===(t=Ou)||void 0===t||t.onCrossFrameListenersReady());e()},K.Z.PHET_IO_ENABLED)&&(null===(t=Ou)||void 0===t||t.initialize());phet.chipper.queryParameters.postMessageOnReady&&window.parent&&window.parent.postMessage(JSON.stringify({type:"ready",url:window.location.href}),"*"),K.Z.PHET_IO_ENABLED&&!phet.preloads.phetio.queryParameters.phetioStandalone||phet.chipper.queryParameters.playbackMode||window.phet.joist.launchSimulation()}),Lu(),window.phet.joist.launchCalled=!0}};Te.Z.register("simLauncher",Qu);const Ru=Qu,Nu=new Image,Yu=j.Z.createLock(Nu);Nu.onload=Yu,Nu.src="data:image/png;base64,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AAAAkCjBDgAAAECiBDsAAAAAiRLsAAAAACRKsAMAAACQKMEOAAAAQKIEOwAAAACJEuwAAAAAJEqwAwAAAJAowQ4AAABAogQ7AAAAAIkS7AAAAAAkSrADAAAAkCjBDgAAAECiBDsAAAAAiRLsAAAAACRKsAMAAACQKMEOAAAAQKIEOwAAAACJEuwAAAAAJEqwAwAAAJAowQ4AAABAogQ7AAAAAIkS7AAAAAAkSrADAAAAkCjBDgAAAECiBDsAAAAAiRLsAAAAACRKsAMAAACQKMEOAAAAQKIEOwAAAACJEuwAAAAAJEqwAwAAAJAowQ4AAABAogQ7AAAAAIkS7AAAAAAkSrADAAAAkCjBDgAAAECiBDsAAAAAiRLsAAAAACRKsAMAAACQKMEOAAAAQKIEOwAAAACJEuwAAAAAJEqwAwAAAJAowQ4AAABAogQ7AAAAAIkS7AAAAAAkSrADAAAAkCjBDgAAAECiBDsAAAAAiRLsAAAAACRKsAMAAACQKMEOAAAAQKIEOwAAAACJEuwAAAAAJEqwAwAAAJAowQ4AAABAogQ7AAAAAIkS7AAAAAAkSrADAAAAkCjBDgAAAECiBDsAAAAAiRLsAAAAACRKsAMAAACQKMEOAAAAQKIEOwAAAACJEuwAAAAAJEqwAwAAAJAowQ4AAABAogQ7AAAAAIkS7AAAAAAkSrADAAAAkCjBDgAAAECiBDsAAAAAiRLsAAAAACRKsAMAAACQKMEOAAAAQKIEOwAAAACJEuwAAAAAJEqwAwAAAJAowQ4AAABAogQ7AAAAAIkS7AAAAAAkSrADAAAAkCjBDgAAAECiBDsAAAAAiRLsAAAAACRKsAMAAACQKMEOAAAAQKIEOwAAAACJEuwAAAAAJEqwAwAAAJAowQ4AAABAogQ7AAAAAIkS7AAAAAAkSrADAAAAkCjBDgAAAECiBDsAAAAAiRLsAAAAACRKsAMAAACQKMEOAAAAQKIEOwAAAACJEuwAAAAAJEqwAwAAAJAowQ4AAABAirIs+/99bZP74W9q/QAAAABJRU5ErkJggg==";const Fu=Nu,Gu=new Z.Z("numberLineOperations"),qu=(0,nt.Z)("NUMBER_LINE_OPERATIONS");Gu.register("NumberLineOperationsStrings",qu);const Hu=qu,Zu=()=>!0;class Uu{constructor(e,t){t=(0,Ei.Z)({itemAcceptanceTest:Zu,capacity:4},t),this.position=e,this.radius=125,this.containedItemList=[],this.itemAcceptanceTest=t.itemAcceptanceTest,this.capacity=t.capacity,this.possibleItemPositions=[],4===this.capacity?_.times(this.capacity,e=>{const t=this.position.x,i=this.position.y-.3*this.radius+e*this.radius*.33;this.possibleItemPositions.push(new Ze.Z(t,i))}):5===this.capacity&&_.times(this.capacity,e=>{let t,i;0===e?(t=this.position.x,i=this.position.y-.35*this.radius):(t=this.position.x+(e%2?-1:1)*this.radius*.35,i=this.position.y+Math.sign(e-2.5)*this.radius*.25+.25*this.radius),this.possibleItemPositions.push(new Ze.Z(t,i))})}acceptsItem(e){return this.itemAcceptanceTest(e)}addItem(e){this.containedItemList.push(e),e.inBagProperty.set(!0),this.moveNewItemIntoPosition(e)}removeItem(e){this.containedItemList=_.without(this.containedItemList,e),e.inBagProperty.set(!1),4===this.capacity&&this.consolidateItems()}containsItem(e){return-1!==this.containedItemList.indexOf(e)}getTotalValue(){return this.containedItemList.reduce((e,t)=>e+t.value,0)}isWithinCaptureRange(e){return e.positionProperty.value.distance(this.position)<=this.radius}moveNewItemIntoPosition(e){const t=this.containedItemList.indexOf(e);if(4===this.capacity)e.animateTo(this.possibleItemPositions[t]);else if(5===this.capacity){const t=this.possibleItemPositions.find(e=>void 0===this.containedItemList.find(t=>t.positionProperty.value.equals(e)));e.animateTo(t)}}consolidateItems(){this.containedItemList.forEach((e,t)=>{const i=this.possibleItemPositions[t];e.positionProperty.value.equals(this.possibleItemPositions[t])||e.animateTo(i)})}}Uu.ACCEPT_ONLY_POSITIVE_VALUES=e=>e.value>0,Uu.ACCEPT_ONLY_NEGATIVE_VALUES=e=>e.value<0,Gu.register("HoldingBag",Uu);const Ku=Uu;class Wu{constructor(e,t,i){this.rectangleBounds=new L.Z(e.x,e.y,e.x+t.width,e.y+t.height),this.mapOfItemsToStoragePositions=new Map;const n=t.height/i.length,s=n/2;i.forEach((e,t)=>{e.teleportTo(new Ze.Z(this.rectangleBounds.centerX,this.rectangleBounds.minY+s+t*n)),this.mapOfItemsToStoragePositions.set(e,e.positionProperty.value)})}returnItem(e,t){const i=this.mapOfItemsToStoragePositions.get(e);t?e.animateTo(i):e.teleportTo(i)}holdsItem(e){return void 0!==this.mapOfItemsToStoragePositions.get(e)}}Gu.register("HoldingBox",Wu);const zu=Wu;var ju=i(5076);const Xu=ju.Z.byKeys(["ADDITION","SUBTRACTION"]);Gu.register("Operation",Xu);const Ju=Xu,_u=new Z.Z("numberLineCommon");class $u{constructor(e,t){t=(0,Ei.Z)({valueProperty:null,initialValue:null,colorProperty:null,initialColor:null,controller:null},t),this.disposeEmitterNumberLinePoint=new S.Z,this.valueProperty=t.valueProperty,this.valueProperty||(this.valueProperty=new T.Z(null===t.initialValue?0:t.initialValue),this.disposeEmitterNumberLinePoint.addListener(()=>{this.valueProperty.dispose()})),this.colorProperty=t.colorProperty,this.colorProperty||(this.colorProperty=new G.M4p(null===t.initialColor?G.Ilk.BLACK:t.initialColor),this.disposeEmitterNumberLinePoint.addListener(()=>{this.colorProperty.dispose()})),this.isDraggingProperty=new V.Z(!1),this.numberLine=e,this.controller=t.controller,this.mostRecentlyProposedValue=null}getPositionInModelSpace(){return this.numberLine.valueToModelPosition(this.valueProperty.value)}proposeValue(e){const t=this.numberLine.getConstrainedValue(e);t!==this.valueProperty.value&&(this.valueProperty.value=t),this.mostRecentlyProposedValue=e}toString(){return`point value: ${this.valueProperty.value}, color: ${this.colorProperty.value}`}dispose(){this.disposeEmitterNumberLinePoint.emit()}}_u.register("NumberLinePoint",$u);const eg=$u;class tg{constructor(e){e=(0,Ei.Z)({initialPointSpecs:[],constrainPointValue:e=>R.Z.roundSymmetric(e),preventOverlap:!0},e),this.initialPointSpecs=e.initialPointSpecs,this.constrainPointValue=e.constrainPointValue,this.residentPoints=(0,I.Z)(),this.residentPoints.addItemAddedListener(t=>{const i=i=>{if(i||!e.preventOverlap||this.getPointsAt(t.valueProperty.value).length<=1)return;let n=t.mostRecentlyProposedValue;null===n&&(n=t.valueProperty.value),t.valueProperty.value=this.getNearestUnoccupiedValue(n)};t.isDraggingProperty.link(i);const n=e=>{e===t&&(e.isDraggingProperty.unlink(i),this.residentPoints.removeItemRemovedListener(n))};this.residentPoints.addItemRemovedListener(n)}),this.addInitialPoints()}addInitialPoints(){this.initialPointSpecs.forEach(e=>{this.addPoint(new eg(this,{initialValue:e.initialValue,initialColor:e.color}))})}addPoint(e){this.residentPoints.add(e)}removePoint(e){this.residentPoints.remove(e)}hasPoint(e){return this.residentPoints.includes(e)}removeAllPoints(){this.residentPoints.clear()}getConstrainedValue(e){return this.constrainPointValue(e)}hasPointAt(e){return this.residentPoints.some(t=>t.valueProperty.value===e)}getPointsAt(e){return this.residentPoints.filter(t=>t.valueProperty.value===e)}getNearestUnoccupiedValue(e){const t=R.Z.roundSymmetric(e);let i=0;const n=e=>[t-e,t+e].filter(e=>!this.hasPointAt(e)&&this.displayedRangeProperty.value.contains(e));let s=n(i);for(;0===s.length;)i++,s=n(i);return _.sortBy(s,[t=>Math.abs(t-e)])[0]}reset(){this.removeAllPoints(),this.addInitialPoints()}}_u.register("NumberLine",tg);const ig=tg;class ng extends ig{constructor(e,t){super(t),t=(0,Ei.Z)({initialOrientation:xa.Z.HORIZONTAL,initialDisplayedRange:new Sa.Z(-10,10),labelsInitiallyVisible:!1,tickMarksInitiallyVisible:!1,absoluteValuesInitiallyVisible:!1,widthInModelSpace:100,heightInModelSpace:100,pointCreationPerpendicularDistance:60,pointCreationEndDistance:20,pointRemovalPerpendicularDistance:120,pointRemovalEndDistance:25},t),this.centerPositionProperty=new Ue.Z(e),this.orientationProperty=new Ci(t.initialOrientation),this.displayedRangeProperty=new x.Z(t.initialDisplayedRange,{valueType:Sa.Z}),this.showPointLabelsProperty=new V.Z(t.labelsInitiallyVisible),this.showTickMarksProperty=new V.Z(t.tickMarksInitiallyVisible),this.showAbsoluteValuesProperty=new V.Z(t.absoluteValuesInitiallyVisible),this.showOppositesProperty=new V.Z(!1),this.modelToPositonScale=Ze.Z.ZERO.copy(),this.displayedRangeProperty.link(e=>{this.modelToPositonScale=new Ze.Z(e.getLength()/t.widthInModelSpace,e.getLength()/t.heightInModelSpace)}),this.modelProjectedLineProperty=new M.ZP([this.centerPositionProperty,this.orientationProperty,this.displayedRangeProperty],(e,t,i)=>{let n,s,r,o;return t===xa.Z.HORIZONTAL?(n=e.x+i.min/this.modelToPositonScale.x,r=e.x+i.max/this.modelToPositonScale.x,s=e.y,o=e.y):(n=e.x,r=e.x,s=e.y+i.min/this.modelToPositonScale.y,o=e.y+i.max/this.modelToPositonScale.y),new Ke.x1(new Ze.Z(n,s),new Ze.Z(r,o))}),this.pointCreationPerpendicularDistance=t.pointCreationPerpendicularDistance,this.pointCreationEndDistance=t.pointCreationEndDistance,this.pointRemovalPerpendicularDistance=t.pointRemovalPerpendicularDistance,this.pointRemovalEndDistance=t.pointRemovalEndDistance}get isHorizontal(){return this.orientationProperty.value===xa.Z.HORIZONTAL}get isVertical(){return this.orientationProperty.value===xa.Z.VERTICAL}modelPositionToValue(e){let t;return t=this.isHorizontal?(e.x-this.centerPositionProperty.value.x)*this.modelToPositonScale.x:(e.y-this.centerPositionProperty.value.y)*-this.modelToPositonScale.y,t}valueToModelPosition(e){let t;return t=this.isHorizontal?new Ze.Z(e/this.modelToPositonScale.x+this.centerPositionProperty.value.x,this.centerPositionProperty.value.y):new Ze.Z(this.centerPositionProperty.value.x,e/-this.modelToPositonScale.y+this.centerPositionProperty.value.y),t}getScaledOffsetFromZero(e){let t;return t=this.isHorizontal?e/this.modelToPositonScale.x:e/-this.modelToPositonScale.y,t}isWithinPointCreationDistance(e){return this.isWithinDistance(e,this.pointCreationPerpendicularDistance,this.pointCreationEndDistance)}isWithinPointRemovalDistance(e){return this.isWithinDistance(e,this.pointRemovalPerpendicularDistance,this.pointRemovalEndDistance)}isPointInDisplayedRange(e){return this.displayedRangeProperty.value.contains(e.valueProperty.value)}isWithinDistance(e,t,i){let n;const s=this.modelProjectedLineProperty.value,r=s.getStart(),o=s.getEnd();return n=this.isHorizontal?new L.Z(r.x-i,r.y-t,o.x+i,r.y+t):new L.Z(r.x-t,r.y-i,o.x+t,o.y+i),n.containsPoint(e)}getConstrainedValue(e){const t=super.getConstrainedValue(e),i=this.displayedRangeProperty.value;return R.Z.clamp(R.Z.roundSymmetric(t),i.min,i.max)}reset(){super.reset(),this.showAbsoluteValuesProperty.reset(),this.orientationProperty.reset(),this.displayedRangeProperty.reset(),this.showPointLabelsProperty.reset(),this.showTickMarksProperty.reset(),this.showOppositesProperty.reset()}}_u.register("SpatializedNumberLine",ng);const sg=ng,rg={LAYOUT_BOUNDS:dr.DEFAULT_LAYOUT_BOUNDS,NUMBER_LINE_WIDTH:dr.DEFAULT_LAYOUT_BOUNDS.width-200,CHECKBOX_SPACING:12,OPERATION_ENTRY_CAROUSEL_LEFT_INSET:70,ERASER_BUTTON_ICON_WIDTH:32,ERASER_BUTTON_INSET:12,OPERATION_AUTO_DEACTIVATE_TIME:4e3,OPERATION_FADE_OUT_TIME:1500,NET_WORTH_WITH_CURRENCY_STRING_PROPERTY:new gs(Hu.netWorthWithCurrencyPatternStringProperty,{netWorthString:Hu.netWorthStringProperty,currencyUnits:Hu.currencyUnitsStringProperty}),NET_WORTH_RANGE:new Sa.Z(-1e3,1e3),DARK_BLUE_POINT_COLOR:new G.Ilk("#0000C4"),MEDIUM_BLUE_POINT_COLOR:new G.Ilk("#4069FF"),LIGHT_BLUE_POINT_COLOR:new G.Ilk("#64A3FF")};Gu.register("NLOConstants",rg);const og=rg;var ag=i(8676);class lg extends x.Z{constructor(e,t,i){(0,ag.Z)("Use EnumerationProperty. EnumerationDeprecated should be exchanged for classes that extend EnumerationValue, see WilderEnumerationPatterns for examples."),super(t,i=(0,Ei.Z)({valueType:e,phetioValueType:(0,Di.Z)(e),validValues:e.VALUES},i)),this.enumeration=e}}Ge.Z.register("EnumerationDeprecatedProperty",lg);const hg=lg;class Ag{constructor(e){e=(0,Ei.Z)({initialOperationType:Ju.ADDITION,initialAmount:0,initiallyActive:!1},e),this.operationTypeProperty=new hg(Ju,e.initialOperationType),this.amountProperty=new T.Z(e.initialAmount),this.isActiveProperty=new V.Z(e.initiallyActive)}getResult(e){let t=e;return this.operationTypeProperty.value===Ju.ADDITION?t+=this.amountProperty.value:this.operationTypeProperty.value===Ju.SUBTRACTION&&(t-=this.amountProperty.value),t}toString(){return`operation type: ${this.operationTypeProperty.value}, amount: ${this.amountProperty.value}, isActive: ${this.isActiveProperty.value}`}reset(){this.operationTypeProperty.reset(),this.amountProperty.reset()}}Gu.register("NumberLineOperation",Ag);const dg=Ag;class cg extends sg{constructor(e,t){super(e,t=(0,Ei.Z)({numberOfOperationsTracked:1,startingValueProperty:null,pointColorList:[og.DARK_BLUE_POINT_COLOR,og.MEDIUM_BLUE_POINT_COLOR],operationLabelsInitiallyVisible:!0,operationDescriptionsInitiallyVisible:!0,automaticallyDeactivateOperations:!1,operationOptionsArray:[]},t)),this.startingValueProperty=t.startingValueProperty,this.startingValueProperty||(this.startingValueProperty=new T.Z(0)),this.showOperationLabelsProperty=new V.Z(t.operationLabelsInitiallyVisible),this.showOperationDescriptionsProperty=new V.Z(t.operationDescriptionsInitiallyVisible),this.operations=[],_.times(t.numberOfOperationsTracked,e=>{this.operations.push(new dg(t.operationOptionsArray[e]||{}))}),this.startingPoint=new eg(this,{valueProperty:this.startingValueProperty,initialColor:t.pointColorList[0]}),this.addPoint(this.startingPoint),this.endpoints=[],_.times(t.numberOfOperationsTracked,e=>{this.endpoints.push(new eg(this,{initialColor:t.pointColorList[e+1]}))}),this.operationExpirationTimes=new Map;const i=()=>{this.operations.forEach((e,t)=>{const i=this.endpoints[t];e.isActiveProperty.value?(this.hasPoint(i)||this.addPoint(i),i.isDraggingProperty.value||i.valueProperty.set(this.getOperationResult(e))):(i.valueProperty.set(0===t?this.startingValueProperty.value:this.endpoints[t-1].valueProperty.value),this.hasPoint(i)&&this.removePoint(i))})},n=()=>{this.endpoints.forEach((e,t)=>{if(e.isDraggingProperty.value){const i=this.operations[t],n=i.operationTypeProperty.value===Ju.SUBTRACTION?-1:1;i.amountProperty.set(n*(e.valueProperty.value-this.getOperationStartValue(i)))}})};this.operations.forEach(e=>{Ce.Z.multilink([e.isActiveProperty,e.amountProperty,e.operationTypeProperty],i),e.isActiveProperty.link(i=>{i?(t.automaticallyDeactivateOperations&&this.operationExpirationTimes.set(e,phet.joist.elapsedTime+og.OPERATION_AUTO_DEACTIVATE_TIME),this.getOperationStartPoint(e).colorProperty.reset()):this.operationExpirationTimes.has(e)&&this.operationExpirationTimes.delete(e)})}),this.startingValueProperty.link(i),this.endpoints.forEach(e=>{e.valueProperty.link(n)})}getOperationEndpoint(e){return this.endpoints[this.operations.indexOf(e)]}deactivateAllOperations(){this.operations.forEach(e=>{e.isActiveProperty.set(!1)})}getCurrentEndValue(){let e=this.startingValueProperty.value;return this.operations.forEach(t=>{t.isActiveProperty.value&&(e=t.getResult(e))}),e}getOperationResult(e){let t=this.startingValueProperty.value;for(let i=0;in.max&&i>n.max}isOperationAtEdgeOfDisplayedRange(e){const t=this.getOperationStartValue(e),i=this.getOperationResult(e),n=this.displayedRangeProperty.value;return t===n.min&&i<=t||t===n.max&&i>=t||i===n.min&&t<=i||i===n.max&&t>=i}isOperationPartiallyInDisplayedRange(e){const t=this.getOperationStartValue(e),i=this.getOperationResult(e),n=this.displayedRangeProperty.value;return n.contains(t)&&!n.contains(i)||!n.contains(t)&&n.contains(i)||tn.max||t>n.min&&i{t.isActiveProperty.value&&e.push(t)}),e}getOperationStartPoint(e){const t=this.operations.indexOf(e);let i;return i=0===t?this.startingPoint:this.endpoints[t-1],i}step(){for(const[e,t]of this.operationExpirationTimes){const i=this.getOperationStartPoint(e),n=i.colorProperty.value;if(tnew wg(e)),this.duration=t.duration,this.delay=t.delay;const i=t.stepEmitter;if(i){const e=this.step.bind(this);this.runningProperty.link(t=>{t&&!i.hasListener(e)?i.addListener(e):!t&&i.hasListener(e)&&i.removeListener(e)}),this.disposeEmitter.addListener(()=>{i.hasListener(e)&&i.removeListener(e)})}}start(e){return this.runningProperty.value||(this.remainingDelay=this.delay,this.runningProperty.value=!0,this.startEmitter.emit(),this.step(void 0!==e?e:0)),this}stop(){return this.runningProperty.value?(this.runningProperty.value=!1,this.stopEmitter.emit(),this.endedEmitter.emit(),this):this}step(e){if(!this.runningProperty.value)return this;if(!this.animatingProperty.value){if(this.remainingDelay-=e,e=-this.remainingDelay,this.remainingDelay>0)return this;this.length=this.duration;for(let e=0;e0?R.Z.clamp((this.length-this.remainingAnimation)/this.length,0,1):1;for(let i=0;ie.start(t)),e}dispose(){this.runningProperty.dispose(),this.animatingProperty.dispose(),this.startEmitter.dispose(),this.beginEmitter.dispose(),this.finishEmitter.dispose(),this.stopEmitter.dispose(),this.endedEmitter.dispose(),this.updateEmitter.dispose(),super.dispose()}}pg.register("Animation",Bg);const Pg=Bg;class Dg{constructor(e){this.value=e,this.positionProperty=new Ue.Z(Ze.Z.ZERO),this.isDraggingProperty=new V.Z(!1),this.inProgressAnimationProperty=new x.Z(null),this.inBagProperty=new V.Z(!1)}animateTo(e){this.stopAnimation();const t=new Pg({duration:Math.max(.3,this.positionProperty.value.distance(e)/1e3),targets:[{property:this.positionProperty,easing:yg.CUBIC_IN_OUT,to:e}]});this.inProgressAnimationProperty.value=t,t.start(),t.finishEmitter.addListener(()=>{this.inProgressAnimationProperty.value=null}),t.stopEmitter.addListener(()=>{this.inProgressAnimationProperty.value=null})}teleportTo(e){this.stopAnimation(),this.positionProperty.set(e)}stopAnimation(){this.inProgressAnimationProperty.value&&(this.inProgressAnimationProperty.value.stop(),this.inProgressAnimationProperty.value=null)}}Gu.register("ValueItem",Dg);const Cg=Dg,Eg=new Sa.Z(-15,15),bg=new Q.Z(122,320);class vg{constructor(e){this.totalInBagsProperty=new T.Z(0),this.netWorthAccordionBoxExpandedProperty=new V.Z(!0,{tandem:e.createTandem("netWorthAccordionBoxExpandedProperty")}),this.numberLine=new ug(og.LAYOUT_BOUNDS.center.minusXY(0,110),{initialDisplayedRange:Eg,tickMarksInitiallyVisible:!0,preventOverlap:!1,automaticallyDeactivateOperations:!0,widthInModelSpace:og.NUMBER_LINE_WIDTH});const t=this.numberLine.operations[0];this.chips=[],_.times(5,e=>{this.chips.push(new Cg(e+1))}),_.times(5,e=>{this.chips.push(new Cg(-(e+1)))});this.negativeChipsBox=new zu(new Ze.Z(105,290),bg,this.chips.filter(e=>e.value<0).sort((e,t)=>t.value-e.value)),this.positiveChipsBox=new zu(new Ze.Z(800,290),bg,this.chips.filter(e=>e.value>0).sort()),this.storageBoxes=[this.positiveChipsBox,this.negativeChipsBox];this.negativeChipsBag=new Ku(new Ze.Z(380,475),{itemAcceptanceTest:Ku.ACCEPT_ONLY_NEGATIVE_VALUES,capacity:5}),this.positiveChipsBag=new Ku(new Ze.Z(645,475),{itemAcceptanceTest:Ku.ACCEPT_ONLY_POSITIVE_VALUES,capacity:5}),this.bags=[this.negativeChipsBag,this.positiveChipsBag],this.chips.forEach(e=>{e.isDraggingProperty.lazyLink(i=>{if(i)this.bags.forEach(i=>{i.containsItem(e)&&(i.removeItem(e),t.isActiveProperty.set(!1),this.numberLine.startingValueProperty.set(this.totalInBagsProperty.value),t.operationTypeProperty.set(Ju.SUBTRACTION),t.amountProperty.set(e.value),t.isActiveProperty.set(!0))});else{let i=!1;this.bags.forEach(n=>{n.acceptsItem(e)&&n.isWithinCaptureRange(e)&&(n.addItem(e),i=!0,this.numberLine.startingValueProperty.set(this.totalInBagsProperty.value),t.isActiveProperty.set(!1),t.operationTypeProperty.set(Ju.ADDITION),t.amountProperty.set(e.value),t.isActiveProperty.set(!0))}),i||this.returnItemToStorage(e)}this.totalInBagsProperty.set(this.positiveChipsBag.getTotalValue()+this.negativeChipsBag.getTotalValue())})})}reset(){this.chips.forEach(e=>{let t=!1;this.bags.forEach(i=>{i.containsItem(e)&&(i.removeItem(e),t=!0)}),t&&this.returnItemToStorage(e)}),this.netWorthAccordionBoxExpandedProperty.reset(),this.numberLine.reset(),this.totalInBagsProperty.reset()}returnItemToStorage(e){this.storageBoxes.forEach(t=>{t.holdsItem(e)&&t.returnItem(e,!0)})}step(){this.numberLine.step()}}vg.CHIPS_NUMBER_LINE_RANGE=Eg,Gu.register("NLOChipsModel",vg);const Vg=vg,Ig={LABEL_BACKGROUND_CORNER_RADIUS:3,LABEL_BACKGROUND_OPTIONS:{rectangleOptions:{opacity:.83,cornerRadius:3},xMargin:3,yMargin:3,pickable:!1},SCREEN_VIEW_X_MARGIN:15,SCREEN_VIEW_Y_MARGIN:15,ACCORDION_BOX_COMMON_OPTIONS:{fill:"white",showTitleWhenExpanded:!1,cornerRadius:5,buttonXMargin:8,buttonYMargin:6,expandCollapseButtonOptions:{touchAreaXDilation:15,touchAreaYDilation:15,mouseAreaXDilation:5,mouseAreaYDilation:5}}};_u.register("NLCConstants",Ig);const Mg=Ig;class Sg extends fi{constructor(e,t,i){i=(0,Ei.Z)({boxWidth:17,textOptions:{font:new it(16),maxWidth:200},isDisposable:!1,touchAreaXDilation:5,touchAreaYDilation:5,mouseAreaXDilation:5,mouseAreaYDilation:5},i),super(e,new G.xvT(t,i.textOptions),i)}}_u.register("NLCheckbox",Sg);const Tg=Sg;class xg extends G.SHm{constructor(e,t){super(t=(0,Ei.Z)({children:e,spacing:12,align:"left",left:Mg.SCREEN_VIEW_X_MARGIN,top:Mg.SCREEN_VIEW_Y_MARGIN,isDisposable:!1},t))}}_u.register("NLCheckboxGroup",xg);const Og=xg,kg="data:audio/mpeg;base64,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7e9diUP/+zDEqoMHICsabPMmEM4Eow2e5MIIZrVcxtoYKA8xbIDmUnGddoh0rLaVhaELboGA3I///+32tj0qUhAXA4lABA0VFRzYs5Bxwo8cRAZqIgBjC0wyrCVrVBy0Sl3U0lLcrNkmJX3vXQ9xHrF1kft9KnLd0/5XIPY0tSK0DTykPgmqBACpusgAjZhT0YwByozh1IJWKp2KmeLt9Ov/+zLEt4MG7C8QLXcGENuFYg2eZMLR2pQ6RirmqAoCYKg0PHnDwUA5I6x8afWSCCjoaGWkABNLoLs3MMFnGvzaGfMY2VvKaYxjfVvVP6f/9DGVtSlb//VsrzTGDCnJFXIg08GgaduIVUxBTUUzLjk5LjNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//syxMQDx4gzCgzwxsDphiFBzJkQVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7MsTMggc4KQgN5YhA0YShqJwkmlVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+zDE2QBG9BsHQYXiANIdX3A0iMBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=",Lg=X(se,kg),Qg=j.Z.createLock(kg),Rg=new ie;let Ng=!1;const Yg=()=>{Ng||(Qg(),Ng=!0)},Fg=se.decodeAudioData(Lg.buffer,e=>{null===Rg.audioBufferProperty.value&&(Rg.audioBufferProperty.set(e),Yg())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),Rg.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),Yg()});Fg&&Fg.then(e=>{null===Rg.audioBufferProperty.value&&(Rg.audioBufferProperty.set(e),Yg())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),Yg()});const Gg=new ti(Rg,{soundClipOptions:{initialOutputLevel:.39,enabledDuringPhetioStateSetting:!0},soundManagerOptions:{categoryName:"user-interface"}});ee.register("resetAllSoundPlayer",Gg);const qg=Gg;class Hg extends Ke.bn{constructor(e){super();const t=.4*e,i=.625*e,n=2.25*(i-t),s=.35*-Math.PI,r=-2*Math.PI*.85,o=.18*-Math.PI;this.moveTo(t*Math.cos(s),t*Math.sin(s)),this.lineTo(i*Math.cos(s),i*Math.sin(s));const a=s+r;this.arc(0,0,i,s,a,!0);const l=(n-(i-t))/2;this.lineTo((i+l)*Math.cos(a),(i+l)*Math.sin(a));const h=.55*(i+t);this.lineTo(h*Math.cos(a+o),h*Math.sin(a+o)),this.lineTo((t-l)*Math.cos(a),(t-l)*Math.sin(a)),this.lineTo(t*Math.cos(a),t*Math.sin(a)),this.arc(0,0,t,a,s),this.close()}}U.register("ResetShape",Hg);class Zg extends Ic{constructor(e){const t=e&&e.radius?e.radius:24,i=(0,Y.ZP)()({radius:t,arrowColor:"black",baseColor:"white",xMargin:6,yMargin:6,xContentOffset:-.03*t,yContentOffset:-.0125*t,tandem:K.Z.REQUIRED,tandemNameSuffix:"ResetButton"},e),n=new Hg(i.radius),s=new G.y$t(n,{fill:i.arrowColor}),r=new G.y$t(n.transformed(Ht.Z.scaling(-1,-1)));s.localBounds=s.localBounds.union(r.localBounds),i.content=s,super(i)}}U.register("ResetButton",Zg);const Ug=5/xc.DEFAULT_BUTTON_RADIUS;class Kg extends Zg{constructor(e){const t=(0,Y.ZP)()({radius:xc.DEFAULT_BUTTON_RADIUS,phetioRestoreScreenStateOnReset:!0,touchAreaDilation:5.2,baseColor:Os.RESET_ALL_BUTTON_BASE_COLOR,arrowColor:"white",tandem:K.Z.REQUIRED,tandemNameSuffix:"ResetAllButton",phetioDocumentation:"The orange, round button that can be used to restore the initial state",soundPlayer:qg,innerContent:rt.a11y.resetAll.labelStringProperty,voicingNameResponse:rt.a11y.resetAll.labelStringProperty,voicingContextResponse:rt.a11y.voicing.resetAll.contextResponseStringProperty},e);t.xMargin=t.yMargin=t.radius*Ug,super(t);const i=new Lo({alert:rt.a11y.resetAll.alertStringProperty});let n=G.KsW.enabled;const s=new Map;this.pushButtonModel.isFiringProperty.lazyLink(e=>{e?(n=G.KsW.enabled,G.KsW.enabled=!1,G.KsW.clear()):(K.Z.PHET_IO_ENABLED&&t.phetioRestoreScreenStateOnReset&&this.isPhetioInstrumented()&&phet.phetio.phetioEngine.phetioStateEngine.restoreStateForScreen(t.tandem),G.KsW.enabled=n,this.voicingSpeakFullResponse()),this.forEachUtteranceQueue(t=>{e?(s.set(t,t.enabled),t.enabled=!1,t.clear()):(t.enabled=s.get(t)||t.enabled,t.addToBack(i))})});const r=new G.F3H({keys:["alt+r"],callback:()=>this.pdomClick(),global:!0,listenerFireTrigger:"up"});this.addInputListener(r),this.disposeResetAllButton=()=>{this.removeInputListener(r),s.clear()}}dispose(){this.disposeResetAllButton(),super.dispose()}}U.register("ResetAllButton",Kg);const Wg=new Image,zg=j.Z.createLock(Wg);Wg.onload=zg,Wg.src="data:image/png;base64,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";const jg=Wg,Xg=new Image,Jg=j.Z.createLock(Xg);Xg.onload=Jg,Xg.src="data:image/png;base64,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";const _g=Xg,$g={fill:G.Ilk.WHITE,stroke:G.Ilk.BLACK,cornerRadius:5};class ep extends G.NBX{constructor(e,t){const i=e.itemAcceptanceTest===Ku.ACCEPT_ONLY_NEGATIVE_VALUES?_g:jg,n=new G.Eep(i,{maxWidth:2*e.radius,centerX:e.position.x,bottom:e.position.y+e.radius}),s=new G.xvT(t,{font:new it(20),maxWidth:90}),r=new G.AeJ(0,0,123,s.height+16,$g);i===_g?(r.right=n.centerX-19,r.centerY=n.top+4):(r.left=n.centerX+20,r.centerY=n.top+6),r.addChild(s),G.bGt.create(r,[s],e=>{s.centerY=r.height/2,i===_g?s.left=12:s.right=r.width-12}),super({children:[r,n]})}}Gu.register("HoldingBagNode",ep);const tp=ep;class ip extends G.AeJ{constructor(e){super(e.rectangleBounds.minX,e.rectangleBounds.minY,e.rectangleBounds.width,e.rectangleBounds.height,7,7,{fill:"white",stroke:"black"})}}Gu.register("HoldingBoxNode",ip);const np=ip,sp=ju.Z.byKeys(["NEVER","SOME","ALL"]);_u.register("PointsOffScaleCondition",sp);const rp=sp;class op extends Ke.bn{constructor(e,t,i,n,s){if(super(),i!==e||n!==t){const r=op.getArrowShapePoints(e,t,i,n,[],s);this.moveTo(r[0].x,r[0].y);const o=_.tail(r);_.each(o,e=>this.lineTo(e.x,e.y)),this.close()}}static getArrowShapePoints(e,t,i,n,s,r){const o=(0,Y.ZP)()({tailWidth:5,headWidth:10,headHeight:10,fractionalHeadHeight:.5,doubleHead:!1,isHeadDynamic:!1,scaleTailToo:!1},r);if(s||(s=[]),i===e&&n===t)s.length=0;else{const r=new Ze.Z(i-e,n-t),a=r.magnitude;let l=o.headWidth,h=o.headHeight,A=o.tailWidth;if(o.isHeadDynamic){const e=o.fractionalHeadHeight*a;o.headHeight>e&&(h=e,o.scaleTailToo&&(l=o.headWidth*h/o.headHeight,A=o.tailWidth*h/o.headHeight))}else h=Math.min(o.headHeight,o.doubleHead?.35*a:.99*a);let d=0;const c=r.normalized(),u=c.rotated(Math.PI/2),g=function(i,n){const r=c.x*i+u.x*n+e,o=c.y*i+u.y*n+t;s[d]?(s[d].x=r,s[d].y=o):s.push(new Ze.Z(r,o)),d++};o.doubleHead?(g(0,0),g(h,l/2),g(h,A/2)):g(0,A/2),g(a-h,A/2),g(a-h,l/2),g(a,0),g(a-h,-l/2),g(a-h,-A/2),o.doubleHead?(g(h,-A/2),g(h,-l/2)):g(0,-A/2),d1){e.moveToPoint(this.shapePoints[0]);for(let t=1;t{t.isEmpty()||(this.background.setRect(0,0,e.width+2*i.xMargin,e.height+2*i.yMargin),n.center=this.background.center)}),i.children=[this.background,n],this.mutate(i)}}U.register("BackgroundNode",Ap);class dp extends G.x12{constructor(e,t){t=(0,Ei.Z)({stroke:"black"},t),super(new Ze.Z(0,e.top),new Ze.Z(0,e.bottom),t)}}_u.register("AbsoluteValueLine",dp);const cp=dp,up=new it(18),gp=new G.xvT(8,{font:up});class pp extends G.NBX{constructor(e,t,i){super();const n=e=>{this.visible=e};e.showAbsoluteValuesProperty.link(n),this.distanceFromNumberLineProperty=new T.Z(i),this.numberLinePoint=t,this.translateAnimation=null;const s=new G.NBX,r=new Ap(s,Mg.LABEL_BACKGROUND_OPTIONS);this.addChild(r);const o=new G.y$t(null,{stroke:t.colorProperty,lineWidth:2});this.addChild(o);const a=()=>{const i=new Ke.bn,n=this.distanceFromNumberLineProperty.value,s=t.getPositionInModelSpace();e.isHorizontal?(i.moveTo(e.centerPositionProperty.value.x,e.centerPositionProperty.value.y-n-5),i.lineTo(e.centerPositionProperty.value.x,e.centerPositionProperty.value.y-n+5),i.moveTo(e.centerPositionProperty.value.x,e.centerPositionProperty.value.y-n),i.lineTo(s.x,s.y-n),i.moveTo(s.x,e.centerPositionProperty.value.y-n-5),i.lineTo(s.x,e.centerPositionProperty.value.y-n+5)):(i.moveTo(e.centerPositionProperty.value.x-n-5,e.centerPositionProperty.value.y),i.lineTo(e.centerPositionProperty.value.x-n+5,e.centerPositionProperty.value.y),i.moveTo(e.centerPositionProperty.value.x-n,e.centerPositionProperty.value.y),i.lineTo(s.x-n,s.y),i.moveTo(s.x-n-5,s.y),i.lineTo(s.x-n+5,s.y)),o.shape=i},l=()=>{const i=t.valueProperty.value;s.removeAllChildren(),s.addChild(new cp(gp)),s.addChild(new G.xvT(i,{font:up,left:s.width+1})),s.addChild(new cp(gp,{left:s.width+1})),s.addChild(new G.xvT("=",{font:up,left:s.width+4})),s.addChild(new G.xvT(Math.abs(i),{font:up,left:s.width+4}));const n=this.distanceFromNumberLineProperty.value,o=t.getPositionInModelSpace();e.isHorizontal?(r.centerX=(e.centerPositionProperty.value.x+o.x)/2,r.bottom=e.centerPositionProperty.value.y-n-5):(r.centerX=o.x-n,i>0?r.bottom=o.y-5:r.top=o.y+5)};t.valueProperty.link(()=>{a(),l()});const h=Ce.Z.multilink([e.orientationProperty,e.displayedRangeProperty,this.distanceFromNumberLineProperty],()=>{a(),l()});this.disposeAbsoluteValueSpanNode=()=>{h.dispose(),e.showAbsoluteValuesProperty.unlink(n)}}setDistanceFromNumberLine(e,t){const i=this.distanceFromNumberLineProperty.value;if(e!==i)if(t){const t=Math.min(Math.abs(i-e)/160,.5),n={property:this.distanceFromNumberLineProperty,to:e,duration:t,easing:yg.CUBIC_IN_OUT};this.translateAnimation&&this.translateAnimation.stop(),this.translateAnimation=new Pg(n),this.translateAnimation.start(),this.translateAnimation.endedEmitter.addListener(()=>{this.translateAnimation=null})}else this.distanceFromNumberLineProperty.value=e}dispose(){this.disposeAbsoluteValueSpanNode(),super.dispose()}}_u.register("AbsoluteValueSpanNode",pp);const mp=pp,yp=new it(18);class fp extends Ap{constructor(e,t,i){i=(0,Ei.Z)({rectangleOptions:{lineWidth:2},textOptions:{font:yp},colorizeBackground:!0,colorizeText:!1},Mg.LABEL_BACKGROUND_OPTIONS,i);const n=new G.xvT(e,i.textOptions);super(n,i);const s=e=>{i.colorizeBackground&&(this.background.stroke=e,this.background.fill=e.colorUtilsBrighter(.75)),i.colorizeText&&(n.fill=e)};t.link(s),this.disposeColorizedReadoutNode=()=>{t.unlink(s),n.dispose()}}dispose(){this.disposeColorizedReadoutNode(),super.dispose()}}_u.register("ColorizedReadoutNode",fp);const wp=fp;class Bp extends G.NBX{constructor(e,t,i){i=(0,Ei.Z)({radius:4.5,usePointColorForLabelText:!0,colorizeLabelBackground:!1,labelTemplate:new Jn.Z("{{value}}"),labelFont:new it(18),labelOpacity:1,isDoppelganger:!1},i),super();const n=new G.Cdc(i.radius,{fill:e.colorProperty,stroke:i.isDoppelganger?"gray":e.colorProperty});this.addChild(n);const s=new gs(i.labelTemplate,{value:e.valueProperty},{maps:{value:e=>i.isDoppelganger?-e:e}}),r=new wp(s,e.colorProperty,{colorizeBackground:i.colorizeLabelBackground,colorizeText:i.usePointColorForLabelText,opacity:i.labelOpacity,yMargin:1,textOptions:{font:i.labelFont,maxWidth:60}});this.addChild(r);const o=e=>{r.visible=e};t.showPointLabelsProperty.link(o);const a=Ce.Z.multilink([e.isDraggingProperty,e.valueProperty],()=>{this.moveToFront()}),l=Ce.Z.multilink([e.valueProperty,t.showOppositesProperty,t.displayedRangeProperty,t.centerPositionProperty,t.orientationProperty],(e,s,o)=>{o.contains(e)?(this.visible=!0,i.isDoppelganger&&(e=-e,this.visible=s),n.center=t.valueToModelPosition(e),t.isHorizontal?(r.centerX=n.centerX,r.bottom=n.y-20):(r.right=n.x-20,r.centerY=n.centerY)):this.visible=!1});this.disposePointNode=()=>{t.showPointLabelsProperty.unlink(o),l.dispose(),a.dispose(),r.dispose(),s.dispose()}}dispose(){this.disposePointNode(),super.dispose()}}_u.register("PointNode",Bp);const Pp=Bp,Dp=hp.pointsOffScaleStringProperty,Cp=new it(14),Ep={fill:G.Ilk.WHITE,stroke:G.Ilk.BLACK,cornerRadius:Mg.LABEL_BACKGROUND_CORNER_RADIUS},bp={tailWidth:2},vp=(e,t)=>e.isHorizontal?55+40*t:105+95*t;class Vp extends G.NBX{constructor(e,t){var i;t=(0,Ei.Z)({numberLineWidth:1,tickMarkLineWidth:1,tickMarkLength:10,zeroTickMarkLineWidth:2,zeroTickMarkLength:16,tickMarkLabelOptions:{font:new it(16),maxWidth:70},tickMarkLabelPositionWhenVertical:"right",tickMarkLabelPositionWhenHorizontal:"below",color:"black",pointRadius:10,numericalLabelTemplate:new Jn.Z("{{value}}"),showAbsoluteValueSpans:!1,displayedRangeInset:25,arrowSize:10,pointNodeOptions:{usePointColorForLabelText:!0,colorizeLabelBackground:!1},pointsOffScaleCondition:rp.NEVER,offScaleIndicatorHorizontalOffset:50,offScaleIndicatorVerticalOffset:50,unitsString:""},t),super(),i=this,this.options=t,this.numberLine=e;const n={doubleHead:!0,lineWidth:t.numberLineWidth,tailWidth:t.numberLineWidth,headHeight:t.arrowSize,headWidth:t.arrowSize,stroke:t.color,fill:t.color},s=new G.NBX;this.addChild(s);const r=new G.NBX;s.addChild(r),e.orientationProperty.link(i=>{const s=e.getScaledOffsetFromZero(e.displayedRangeProperty.value.min),o=e.getScaledOffsetFromZero(e.displayedRangeProperty.value.max);r.removeAllChildren(),i===xa.Z.HORIZONTAL?r.addChild(new ap(s-t.displayedRangeInset,0,o+t.displayedRangeInset,0,n)):r.addChild(new ap(0,o-t.displayedRangeInset,0,s+t.displayedRangeInset,n)),this.addTickMark(r,0,!0)});const o=new G.NBX;s.addChild(o);const a=new G.NBX;e.showTickMarksProperty.linkAttribute(a,"visible"),s.addChild(a);const l=new G.NBX;this.addChild(l),e.showAbsoluteValuesProperty.linkAttribute(l,"visible");const h=new G.NBX;this.addChild(h);const A=new G.NBX;this.addChild(A);const d=[],c=function(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];for(;d.lengthe.residentPoints.length;){const e=d.pop();l.removeChild(e)}const n=i.getPointsSortedByAbsoluteValue();let s=0,r=0;const o=e.centerPositionProperty.value;n.forEach((e,t)=>{const i=d[t],n=e.valueProperty.value;if(0===n)i.visible=!1,i.setLine(o.x,o.y,o.x,o.y);else{i.visible=!0,i.moveToBack(),i.stroke=e.colorProperty.value;const t=e.getPositionInModelSpace();i.setLine(o.x,o.y,t.x,t.y),n>0?(s++,i.lineWidth=2+3*s):(r++,i.lineWidth=2+3*r)}});const a=_.sortBy(g,e=>e.distanceFromNumberLineProperty.value);a.forEach((i,n)=>{i.setDistanceFromNumberLine(vp(e,n),t)})},u=()=>{this.getPointsSortedByAbsoluteValue().forEach((e,t)=>{const i=d[t];0!==e.valueProperty.value&&(i.stroke=e.colorProperty.value)})};let g=[];const p=i=>{const n=new Pp(i,e,(0,Ei.Z)({labelTemplate:t.numericalLabelTemplate},t.pointNodeOptions));A.addChild(n);const s=new Pp(i,e,{isDoppelganger:!0,labelTemplate:t.numericalLabelTemplate});h.addChild(s);let r=null;if(t.showAbsoluteValueSpans){const t=vp(e,g.length);r=new mp(e,i,t),g.push(r),this.addChild(r)}i.valueProperty.link(c),i.colorProperty.link(u);const o=t=>{t===i&&(A.removeChild(n),n.dispose(),h.removeChild(s),s.dispose(),r&&(this.removeChild(r),r.dispose(),g=_.without(g,r)),c(!0),i.valueProperty.unlink(c),i.colorProperty.unlink(u),e.residentPoints.removeItemRemovedListener(o))};e.residentPoints.addItemRemovedListener(o)};e.residentPoints.forEach(p),e.residentPoints.addItemAddedListener(p);const m=new G.xvT(t.unitsString,t.tickMarkLabelOptions);if(this.addChild(m),Ce.Z.multilink([e.displayedRangeProperty,e.orientationProperty],(i,n)=>{let s,r;switch(a.children.forEach(e=>{e.dispose()}),o.children.forEach(e=>{e.dispose()}),e.displayedRangeProperty.value.getLength()){case 20:s=1;break;case 30:case 40:case 60:s=5;break;case 100:s=10;break;case 200:s=25;break;case 2e3:s=100;break;default:s=1}switch(e.displayedRangeProperty.value.getLength()){case 20:r=1;break;case 40:case 60:r=5;break;case 100:r=10;break;case 200:r=25;break;case 2e3:r=500;break;default:r=1}const l=e.displayedRangeProperty.value.min+s,h=e.displayedRangeProperty.value.max-s;this.addTickMark(o,i.min,!0),this.addTickMark(o,i.max,!0);for(let e=l;e<=h;e+=s)0!==e&&this.addTickMark(a,e,e%r==0);if(c(),n===xa.Z.HORIZONTAL){const e=this.numberLine.valueToModelPosition(i.max);m.left=e.x+18,m.top=e.y+t.tickMarkLength+5}else{const e=this.numberLine.valueToModelPosition(i.min);m.top=e.y+10,m.left=e.x+t.tickMarkLength+13}}),e.centerPositionProperty.link(e=>{s.translation=e}),t.pointsOffScaleCondition!==rp.NEVER){const i=new G.Hof(Dp,{font:Cp,maxWidth:100,maxHeight:50,align:"left"}),n=new ap(0,0,25,0,bp),s=new ct(new G.BET({children:[i,n],spacing:5}),(0,Ei.Z)({},Ep));this.addChild(s);const r=new G.Hof(Dp,{font:Cp,maxWidth:100,maxHeight:50,align:"right"}),o=new ap(0,0,-25,0,bp),a=new ct(new G.BET({children:[o,r],spacing:5}),(0,Ei.Z)({},Ep));this.addChild(a);const l=new G.Hof(Dp,{font:Cp,maxWidth:100,maxHeight:50,align:"center"}),h=new ap(0,0,0,-25,bp),A=new ct(new G.BET({children:[h,l],spacing:5}),(0,Ei.Z)({},Ep));this.addChild(A);const d=new G.Hof(Dp,{font:Cp,maxWidth:100,maxHeight:50,align:"center"}),c=new ap(0,0,0,25,bp),u=new ct(new G.BET({children:[c,d],spacing:5}),(0,Ei.Z)({},Ep));this.addChild(u);const g=()=>{const i=e.displayedRangeProperty.value;if(a.left=e.valueToModelPosition(i.min).x-25,a.centerY=e.centerPositionProperty.value.y-t.offScaleIndicatorVerticalOffset,s.right=e.valueToModelPosition(i.max).x+25,s.centerY=a.centerY,A.centerX=e.centerPositionProperty.value.x-t.offScaleIndicatorHorizontalOffset,A.top=e.valueToModelPosition(i.max).y-25,u.centerX=A.centerX,u.bottom=e.valueToModelPosition(i.min).y+25,t.pointsOffScaleCondition===rp.ALL){const t=!e.residentPoints.some(e=>e.valueProperty.value>=i.min),n=!e.residentPoints.some(e=>e.valueProperty.value<=i.max);a.visible=e.residentPoints.length>0&&t&&e.orientationProperty.value===xa.Z.HORIZONTAL,s.visible=e.residentPoints.length>0&&n&&e.orientationProperty.value===xa.Z.HORIZONTAL,A.visible=e.residentPoints.length>0&&n&&e.orientationProperty.value===xa.Z.VERTICAL,u.visible=e.residentPoints.length>0&&t&&e.orientationProperty.value===xa.Z.VERTICAL}else{const t=e.residentPoints.some(e=>e.valueProperty.valuee.valueProperty.value>i.max);a.visible=t&&e.orientationProperty.value===xa.Z.HORIZONTAL,s.visible=n&&e.orientationProperty.value===xa.Z.HORIZONTAL,A.visible=n&&e.orientationProperty.value===xa.Z.VERTICAL,u.visible=t&&e.orientationProperty.value===xa.Z.VERTICAL}};Ce.Z.multilink([e.displayedRangeProperty,e.centerPositionProperty,e.orientationProperty,i.boundsProperty,r.boundsProperty,l.boundsProperty,d.boundsProperty],g),e.residentPoints.addItemAddedListener(e=>{e.valueProperty.link(g)}),e.residentPoints.addItemRemovedListener(e=>{e.valueProperty.hasListener(g)&&(g(),e.valueProperty.unlink(g))})}}addTickMark(e,t,i){const n=0===t?this.options.zeroTickMarkLength:this.options.tickMarkLength,s=0===t?this.options.zeroTickMarkLineWidth:this.options.tickMarkLineWidth,r={stroke:this.options.color,lineWidth:s},o=this.numberLine.valueToModelPosition(t).minus(this.numberLine.centerPositionProperty.value);let a;if(a=this.numberLine.isHorizontal?new G.x12(o.x,o.y-n,o.x,o.y+n,r):new G.x12(o.x-n,o.y,o.x+n,o.y,r),e.addChild(a),i){const i=new G.xvT(t,this.options.tickMarkLabelOptions);if(e.addChild(i),this.numberLine.isHorizontal)i.centerX=a.centerX,"above"===this.options.tickMarkLabelPositionWhenHorizontal?i.bottom=a.top-5:i.top=a.bottom+5;else{i.centerY=a.centerY;const e=5;"left"===this.options.tickMarkLabelPositionWhenVertical?i.right=a.left-e:i.left=a.right+e}}}getPointsSortedByAbsoluteValue(){return _.sortBy(this.numberLine.residentPoints,e=>Math.abs(e.valueProperty.value))}}_u.register("SpatializedNumberLineNode",Vp);const Ip=Vp,Mp=G.Ilk.BLACK,Sp={stroke:Mp,lineWidth:2},Tp=(new Ke.bn).lineTo(-.4,1.14).lineTo(0,1).lineTo(.4,1.14).lineTo(0,0);class xp extends G.NBX{constructor(e,t,i){i=(0,Ei.Z)({relativePosition:Np.RelativePosition.ABOVE_NUMBER_LINE},i),super(),this.numberLine=e,this.operation=t,this.curvedLineNode=new G.y$t(null,Sp),this.addChild(this.curvedLineNode),this.arrowheadNode=new Op(15,0,Ze.Z.ZERO),this.addChild(this.arrowheadNode);const n=i.relativePosition===Np.RelativePosition.ABOVE_NUMBER_LINE;let s=!1;t.isActiveProperty.lazyLink(e=>{e&&i.animateOnActive&&(s=!0)});const r=e.operations.indexOf(t),o=0===r?e.startingPoint:e.endpoints[r-1];let a=null;Ce.Z.multilink([t.isActiveProperty,t.operationTypeProperty,t.amountProperty,o.valueProperty,e.centerPositionProperty,e.displayedRangeProperty],i=>{if(this.visible=i,i){const i=e.valueToModelPosition(e.getOperationStartValue(t)),r=e.valueToModelPosition(e.getOperationResult(t));a&&(a.stop(),a=null),s&&i.distance(r)>0?(a=new Pg({duration:.75,from:0,to:1,easing:yg.CUBIC_OUT,setValue:e=>{this.updateArrow(n,e)}}),a.start(),a.finishEmitter.addListener(()=>{a=null}),s=!1):this.updateArrow(n,1)}})}updateArrow(e,t){const i=this.operation,n=this.numberLine;let s,r;const o=i.operationTypeProperty.value===Ju.SUBTRACTION?-1:1,a=(n.valueToModelPosition(i.amountProperty.value).x-n.valueToModelPosition(0).x)*o,l=n.valueToModelPosition(n.getOperationStartValue(i)),h=n.valueToModelPosition(n.getOperationResult(i));if(Math.abs(a/2)>=25){const i=Math.pow(l.distance(h),2)/200+12.5,n=e?l.y-25+i:l.y+25-i,o=new Ze.Z((l.x+h.x)/2,n),A=l.minus(o).getAngle(),d=h.minus(o).getAngle(),c=A+(d-A)*t;let u;u=e?l.x>h.x:h.x>l.x,s=Ke.bn.arc(o.x,o.y,i,A,c,u);const g=15/(2*i);r=e?a<0?Math.PI-A+g:Math.PI+d-g:a<0?-A-g:d+g}else if(Math.abs(a)>0){const i=Math.abs(a/2),n=25;let o,h,A;const d=i/n*Math.PI*.1;e?a>0?(o=-Math.PI,h=o+t*Math.PI,A=!1,r=Math.PI-d):(o=0,h=-t*Math.PI,A=!0,r=Math.PI+d):a>0?(o=Math.PI,h=o-t*Math.PI,A=!0,r=d):(o=0,h=t*Math.PI,A=!1,r=-d),s=(new Ke.bn).ellipticalArc(l.x+a/2,l.y,i,n,0,o,h,A)}else{const t=l,n=25*(e?-1.5:1.5),o=.6,a=new Ze.Z(t.x-25*o,t.y+n),h=new Ze.Z(t.x+25*o,t.y+n);s=(new Ke.bn).moveToPoint(t).cubicCurveToPoint(a,h,t);const A=.025,d=s.bounds.width;r=i.operationTypeProperty.value===Ju.ADDITION?e?Math.PI+d*A:-d*A:e?Math.PI-d*A:d*A}this.curvedLineNode.shape=s,this.arrowheadNode.updateShape(r,h),this.arrowheadNode.visible=t>.9;let A=null;if(n.isOperationCompletelyOutOfDisplayedRange(i)||n.isOperationPartiallyInDisplayedRange(i)&&0!==i.amountProperty.value){const e=n.displayedRangeProperty.value,t=n.valueToModelPosition(e.min).x,i=n.valueToModelPosition(e.max).x;A=Ke.bn.rect(t,l.y-125,i-t,250)}this.curvedLineNode.clipArea=A,this.arrowheadNode.clipArea=A}}class Op extends G.y$t{constructor(e,t,i,n){super(null,n=(0,Ei.Z)({lineJoin:"round",fill:Mp},n)),this.length=e,this.updateShape(t,i)}updateShape(e,t){this.setShape(Tp.transformed(Ht.Z.scale(this.length)).transformed(Ht.Z.rotationAround(e,0,0)).transformed(Ht.Z.translationFromVector(t)))}}Gu.register("OperationArrowNode",xp);const kp=xp,Lp=ju.Z.byKeys(["ABOVE_NUMBER_LINE","BELOW_NUMBER_LINE"]),Qp=new it(14);class Rp extends G.NBX{constructor(e,t,i,n,s){super(s=(0,Ei.Z)({relativePosition:Lp.ABOVE_NUMBER_LINE,operationLabelFont:new it(18),operationDescriptionFont:new it(18),animateOnActive:!0,operationDescriptionsFadeIn:!1,useFinancialDescriptions:!1},s)),this.numberLine=n,this.operation=e,this.descriptionPatternStringProperty=null;const r=n.operations.indexOf(e),o=0===r?n.startingPoint:n.endpoints[r-1],a=s.relativePosition===Lp.ABOVE_NUMBER_LINE,l=new G.xvT("",{font:s.operationLabelFont,maxWidth:150}),h=new G.xvT(Hu.operationOffScaleStringProperty,{font:Qp,maxWidth:150}),A=new G.NBX({children:[l,h],excludeInvisibleChildrenFromBounds:!0}),d=new Ap(A,Mg.LABEL_BACKGROUND_OPTIONS);this.addChild(d);const c=new G.NBX,u=new Ap(c,(0,Ei.Z)({},Mg.LABEL_BACKGROUND_OPTIONS,{maxWidth:225}));this.addChild(u);let g=0,p=0,m=null;e.isActiveProperty.lazyLink(e=>{if(e&&s.operationDescriptionsFadeIn){m&&m.stop();const e=1.1;m=new Pg({duration:e,from:0,to:e,easing:yg.CUBIC_IN,setValue:e=>{u.opacity=e<=.7?0:Math.min((e-.7)/.4,1)}}),m.start(),m.endedEmitter.addListener(()=>{m=null})}}),this.addChild(new kp(n,e,{relativePosition:s.relativePosition,animateOnActive:s.animateOnActive}));const y=Ce.Z.multilink([e.isActiveProperty,o.valueProperty,t,i,e.operationTypeProperty,e.amountProperty,n.displayedRangeProperty,n.centerPositionProperty,u.boundsProperty],(t,i,r,o)=>{const A=n.getOperationResult(e);if(t){this.visible=!0;const t=n.valueToModelPosition(i),m=n.valueToModelPosition(A);if(n.isOperationCompletelyOutOfDisplayedRange(e)||n.isOperationAtEdgeOfDisplayedRange(e)&&0!==e.amountProperty.value)h.visible=!0,l.visible=!1,d.background.stroke=G.Ilk.BLACK;else{h.visible=!1,l.visible=!0;const t=e.operationTypeProperty.value===Ju.ADDITION?kl.UNARY_PLUS:kl.MINUS,i=e.amountProperty.value<0?kl.MINUS:e.amountProperty.value>0?kl.UNARY_PLUS:"";l.string=`${t} ${i}${Math.abs(e.amountProperty.value).toString(10)}`,l.font=s.operationLabelFont,d.background.stroke=null}a?d.bottom=t.y-45:d.top=t.y+45,c.children=[new G.xvT(this.getOperationDescriptionString(e,s.useFinancialDescriptions),{font:s.operationDescriptionFont})],g=a?d.top-u.height/2-3:d.bottom+u.height/2+3,p=d.centerY,u.centerY=r?g:p;const y=R.Z.clamp((t.x+m.x)/2,n.valueToModelPosition(n.displayedRangeProperty.value.min).x+u.width/2-50,n.valueToModelPosition(n.displayedRangeProperty.value.max).x-u.width/2+50);d.centerX=y,u.centerX=y;const f=n.displayedRangeProperty.value,w=n.residentPoints.reduce((e,t)=>e&&t.valueProperty.value>f.max,!0),B=n.residentPoints.reduce((e,t)=>e&&t.valueProperty.value{u.centerY=e}};t.lazyLink(e=>{f&&f.stop(),e&&u.centerY!==g?(f=new Pg((0,Ei.Z)({from:u.centerY,to:g},w)),f.start()):e||u.centerY===p||(f=new Pg((0,Ei.Z)({from:u.centerY,to:p},w)),f.start()),f&&f.endedEmitter.addListener(()=>{f=null})}),this.disposeNumberLineOperationNode=()=>{y.dispose()}}getOperationDescriptionString(e,t){const i=e.operationTypeProperty.value===Ju.ADDITION?Hu.addStringProperty:Hu.removeStringProperty;return this.descriptionPatternStringProperty&&this.descriptionPatternStringProperty.dispose(),t?0===e.amountProperty.value?this.descriptionPatternStringProperty=new gs(Hu.addRemoveZeroCurrencyPatternStringProperty,{addOrRemove:i,currencyUnits:Hu.currencyUnitsStringProperty}):this.descriptionPatternStringProperty=new gs(Hu.addRemoveAssetDebtPatternStringProperty,{addOrRemove:i,assetOrDebt:e.amountProperty.value>0?Hu.assetStringProperty:Hu.debtStringProperty,currencyUnits:Hu.currencyUnitsStringProperty,value:e.amountProperty},{maps:{value:e=>Math.abs(e)}}):0===e.amountProperty.value?this.descriptionPatternStringProperty=new gs(Hu.addRemoveZeroPatternStringProperty,{addOrRemove:i}):this.descriptionPatternStringProperty=new gs(Hu.addRemovePositiveNegativePatternStringProperty,{addOrRemove:i,positiveOrNegative:e.amountProperty.value>0?Hu.positiveStringProperty:Hu.negativeStringProperty,value:e.amountProperty},{maps:{value:e=>Math.abs(e)}}),this.descriptionPatternStringProperty}dispose(){this.disposeNumberLineOperationNode(),super.dispose()}}Rp.RelativePosition=Lp,Gu.register("NumberLineOperationNode",Rp);const Np=Rp;class Yp extends Ip{constructor(e,t){t=(0,Ei.Z)({numberLineOperationNodeOptions:{},pointsOffScaleCondition:rp.ALL},t),super(e,t),this.numberLine=e,this.operationToNodeMap=new Map,e.operations.forEach((i,n)=>{const s=n%2==1?{relativePosition:Np.RelativePosition.BELOW_NUMBER_LINE}:{},r=new Np(i,e.showOperationLabelsProperty,e.showOperationDescriptionsProperty,e,(0,Ei.Z)(s,t.numberLineOperationNodeOptions));this.addChild(r),r.moveToBack(),this.operationToNodeMap.set(i,r)})}step(){for(const[e,t]of this.operationToNodeMap)if(this.numberLine.operationExpirationTimes.has(e)){const i=this.numberLine.operationExpirationTimes.get(e);t.opacity=Math.min(1,(i-phet.joist.elapsedTime)/og.OPERATION_FADE_OUT_TIME)}}}Gu.register("OperationTrackingNumberLineNode",Yp);const Fp=Yp,Gp="data:audio/mpeg;base64,//swxAAABSAbF7TAgDE5nqu/MHICAAAAcDYkDIEtmZ+0OAIDonAEAIOjgnenW/yhz/g+fh+CEocif//+c5RVQlRIdHdXcHffj/DYYCgBdaS6OzOU+xCNTd7EPI6nQ7mODNUkXlljx1AXgvbsgTi8z3+Z7a8aMfHP9uQFmXb1f/cmZM/9//sIhYP//sNqQJAgNJhWTyGAwFAoAATS//syxAeACW0Hgbi1EBESBuvjNGAAfDtZrw0MQaBPJj2MwQyJDLEhJZGoPjAvCMnP3dlJiAtJ8xr/PKk5hYV//3KDxif//6MYVcnt//+VFswo04EQAACAAC9YdezBqNoZHHQDlUSCuyZAkxazLI1qAeiR+JfccaBj1xti9B5JXrESzzBnSIgoXKxEzkQCos+pbPmxfwWXkwAAFm+93//7MsQDgAh4Z1G5gwABEY3y9x5iAuzlQAAAAAB2Wop4QsaAhgpWdRTKJsZcpp1XP57ykSikyYckLZ4Ty1TSs+HageepBZpVjXhgAMSIXXKmU65I0d/7dt7v7sNgMBwALVb09GkvHVk7fqBciIEitH44DchaeFCkbZVn3vi+3iz997uspO3MNCwv4nKHDdB/+gTro/8WA6oYAgMAeW//+zLEAwAIZH9bHaGAAQMgrTTxid9Ko07zWxQmamYZMUXJVhdXnyiL/VNVCqJJVOgImNStCjd9bH2ZjwZ/qQYUyG79QVWCpgKmMChqVd/4VIkkywFXa2uRpIAhLLU5m1VG6LimpHOKzIapjKZdQGJoCUbq7bMoVyt+j5W6t+WZ/r/KqPLMbv1Kxurf//8tBTuFZBUABV3GwiMDZuFj//swxAUCB4SDK0ywaICeAyN0wyROlYmGu6/rSDZ4E2kDhIFxZeHE1XJXBGqqqgLGqsZQ8m6ArsXr1fUvL1lChr+v/7fq//SC5HLZU2AEjwW0VUCig+dQNmTNmsUQ+tQt+EhX+skFfU3+n+u7/hV6TEFNRTMuOTkuNaqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq",qp=X(se,Gp),Hp=j.Z.createLock(Gp),Zp=new ie;let Up=!1;const Kp=()=>{Up||(Hp(),Up=!0)},Wp=se.decodeAudioData(qp.buffer,e=>{null===Zp.audioBufferProperty.value&&(Zp.audioBufferProperty.set(e),Kp())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),Zp.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),Kp()});Wp&&Wp.then(e=>{null===Zp.audioBufferProperty.value&&(Zp.audioBufferProperty.set(e),Kp())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),Kp()});const zp=new ti(Zp,{soundClipOptions:{initialOutputLevel:.5},soundManagerOptions:{categoryName:"user-interface"}});ee.register("accordionBoxClosedSoundPlayer",zp);const jp=zp,Xp="data:audio/mpeg;base64,//swxAAABsArNnTzABEnmTA3HoACAAIOAYznNNVnYDYAWAjClBSA3BwKB48VkSUAABBynBhYP5QMCc+T4JnwQcoH/6gff/Of/l4gAIJkjluslkskluuAAAkTmCV7K1w6pqz7VkryDnmQVVFCJY0HRFDgrNPT7QRsUHNV+KVNJRPtYt0/426/nj/Tv/sPVjjhtrzPbywAATqIdRsL//syxAOACHStW/2RACEMj6e2smAEqYAYhGmdJfGbQRJM6d5rUVhcXmZTOP9blIoBChWlL5hQoqBgpUdHqJ/1McBGpaGctDO3++hgIUqDV8QgqAAntdpnEwAD6ruLLBhIIEPkpGtP5xWnwVF2czcptv1Fgk0VRRGN9VJRU46pQrSVRX///853QKKZ0dz3cGnwCKBwcHYEIC0hEM5EMv/7MsQEAAiQXW+5hIAREZRslzKwACEMBgAAD9/MyuFW/l8vMAkS99TuX45zufo9JjH/gbUAtafz/MqCaqJP4IIAARGcawPpR8H3iefS7zg45qAIBFAAV1AtJXsx44xwqAZ24lKIsEc5bDMUuS6XnBEXQqAakxM3KX8vlruv28Pc++21X/p71t0ufET/PUOSB+v8FT3Fl3GALLrbdbr/+zLEA4AIWHtvuPWAEROSLXcegALRIIBAAAAIpME09Jpkm6HEpcYWjTFeQLCjn4NAjRM5fbfr4UULuXdO+HtlGqi0a/9EFQ66zxGCz/4GGlyg0HFHJZM7ZIAwEAAAErGUoi0JXI6UF+hiurPpjdxalUIbk1pRYWEUpY39w/BVt/p1i48ySduL+KRKEg8sPo/yoV/yLlIIpJIQSCOJ//swxAODxLAbO7xggDAAADSAAAAEweQCRznEiWHEqW49z3nuJf8Fbqzvw1+e6j3TPf/BakxBTUUzLjk5LjWqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq",Jp=X(se,Xp),_p=j.Z.createLock(Xp),$p=new ie;let em=!1;const tm=()=>{em||(_p(),em=!0)},im=se.decodeAudioData(Jp.buffer,e=>{null===$p.audioBufferProperty.value&&($p.audioBufferProperty.set(e),tm())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),$p.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),tm()});im&&im.then(e=>{null===$p.audioBufferProperty.value&&($p.audioBufferProperty.set(e),tm())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),tm()});const nm=new ti($p,{soundClipOptions:{initialOutputLevel:.5},soundManagerOptions:{categoryName:"user-interface"}});ee.register("accordionBoxOpenedSoundPlayer",nm);const sm=nm;class rm extends((0,G.tTM)(G.NBX)){constructor(e,t){const i=(0,Y.ZP)()({titleNode:null,expandedProperty:null,resize:!0,overrideTitleNodePickable:!0,allowContentToOverlapTitle:!1,cursor:"pointer",lineWidth:1,cornerRadius:10,stroke:"black",fill:"rgb( 238, 238, 238 )",minWidth:0,titleAlignX:"center",titleAlignY:"center",titleXMargin:10,titleYMargin:2,titleXSpacing:5,showTitleWhenExpanded:!0,useExpandedBoundsWhenCollapsed:!0,titleBarExpandCollapse:!0,buttonAlign:"left",buttonXMargin:4,buttonYMargin:2,contentAlign:"center",contentVerticalAlign:"center",contentXMargin:15,contentYMargin:8,contentXSpacing:5,contentYSpacing:8,expandedSoundPlayer:sm,collapsedSoundPlayer:jp,tagName:"div",headingTagName:"h3",accessibleNameBehavior:rm.ACCORDION_BOX_ACCESSIBLE_NAME_BEHAVIOR,voicingNameResponse:null,voicingObjectResponse:null,voicingContextResponse:null,voicingHintResponse:null,tandem:K.Z.REQUIRED,tandemNameSuffix:"AccordionBox",phetioType:rm.AccordionBoxIO,phetioEventType:q.Z.USER,visiblePropertyOptions:{phetioFeatured:!0},titleBarOptions:{fill:null,stroke:null}},t);i.expandCollapseButtonOptions=(0,Y.JA)({sideLength:16,cursor:i.cursor,valueOnSoundPlayer:i.expandedSoundPlayer,valueOffSoundPlayer:i.collapsedSoundPlayer,voicingNameResponse:i.voicingNameResponse,voicingObjectResponse:i.voicingObjectResponse,voicingContextResponse:i.voicingContextResponse,voicingHintResponse:i.voicingHintResponse,tandem:i.tandem.createTandem("expandCollapseButton")},i.expandCollapseButtonOptions),super(),_defineProperty(this,"expandedBoxOutline",null),_defineProperty(this,"collapsedBoxOutline",null);let n=i.titleNode;n||(n=new G.xvT("",{tandem:i.tandem.createTandem("titleText")}),this.disposeEmitter.addListener(()=>n.dispose())),i.overrideTitleNodePickable&&(n.pickable=!1),this.expandedProperty=i.expandedProperty,this.expandedProperty||(this.expandedProperty=new V.Z(!0,{tandem:i.tandem.createTandem("expandedProperty")}),this.disposeEmitter.addListener(()=>this.expandedProperty.dispose())),this.expandCollapseButton=new wn(this.expandedProperty,i.expandCollapseButtonOptions),this.disposeEmitter.addListener(()=>this.expandCollapseButton.dispose());const s={fill:i.fill,cornerRadius:i.cornerRadius};this.expandedBox=new G.AeJ(s),this.collapsedBox=new G.AeJ(s),this.expandedTitleBar=new om(null,(0,Y.JA)({lineWidth:i.lineWidth,cursor:i.cursor},i.titleBarOptions)),this.expandedBox.addChild(this.expandedTitleBar),this.collapsedTitleBar=new am((0,Y.JA)({cornerRadius:i.cornerRadius,cursor:i.cursor},i.titleBarOptions)),this.collapsedBox.addChild(this.collapsedTitleBar),this.disposeEmitter.addListener(()=>{this.collapsedTitleBar.dispose(),this.expandedTitleBar.dispose()}),i.titleBarExpandCollapse?this.collapsedTitleBar.addInputListener({down:()=>{this.expandCollapseButton.isEnabled()&&(this.phetioStartEvent("expanded"),this.expandedProperty.value=!0,i.expandedSoundPlayer.play(),this.phetioEndEvent())}}):(this.expandedTitleBar.interactiveHighlight="invisible",this.collapsedTitleBar.interactiveHighlight="invisible"),i.showTitleWhenExpanded&&i.titleBarExpandCollapse&&this.expandedTitleBar.addInputListener({down:()=>{this.expandCollapseButton.isEnabled()&&(this.phetioStartEvent("collapsed"),i.collapsedSoundPlayer.play(),this.expandedProperty.value=!1,this.phetioEndEvent())}});const r=()=>{const e=this.expandCollapseButton.visible&&this.expandCollapseButton.pickable;this.collapsedTitleBar.pickable=e,this.expandedTitleBar.pickable=e};if(this.expandCollapseButton.visibleProperty.lazyLink(r),this.expandCollapseButton.pickableProperty.lazyLink(r),this.expandCollapseButton.enabledProperty.link(e=>{const t=i.titleBarExpandCollapse&&e;this.collapsedTitleBar.cursor=t&&i.cursor||null,this.expandedTitleBar.cursor=t&&i.cursor||null}),this.expandCollapseButton.setFocusHighlight(new G.bjc(this.expandedTitleBar)),this.expandedBox.addChild(e),i.stroke){const e={stroke:i.stroke,lineWidth:i.lineWidth,cornerRadius:i.cornerRadius,pickable:!1};this.expandedBoxOutline=new G.AeJ(e),this.expandedBox.addChild(this.expandedBoxOutline),this.collapsedBoxOutline=new G.AeJ(e),this.collapsedBox.addChild(this.collapsedBoxOutline)}const o=new G.NBX({excludeInvisibleChildrenFromBounds:!i.useExpandedBoundsWhenCollapsed});this.addChild(o);const a=new G.NBX({tagName:"div",ariaRole:"region",pdomOrder:[e],ariaLabelledbyAssociations:[{otherNode:this.expandCollapseButton,otherElementName:G.Grz.PRIMARY_SIBLING,thisElementName:G.Grz.PRIMARY_SIBLING}]}),l=new G.NBX({tagName:i.headingTagName,pdomOrder:[this.expandCollapseButton]}),h=new G.NBX({children:[l,a]});this.addChild(h),this.constraint=new lm(this,e,o,this.expandedBox,this.collapsedBox,this.expandedTitleBar,this.collapsedTitleBar,this.expandedBoxOutline,this.collapsedBoxOutline,n,this.expandCollapseButton,i),this.constraint.updateLayout(),this.constraint.enabled=i.resize;const A=()=>{const e=this.expandedProperty.value;this.expandedBox.visible=e,this.collapsedBox.visible=!e,n.visible=e&&i.showTitleWhenExpanded||!e,h.setPDOMAttribute("aria-hidden",!e),this.expandCollapseButton.voicingSpeakFullResponse({hintResponse:null})};this.expandedProperty.link(A),this.disposeEmitter.addListener(()=>this.expandedProperty.unlink(A)),this.mutate(_.omit(i,"cursor")),this.resetAccordionBox=()=>{i.expandedProperty||this.expandedProperty.reset()}}getCollapsedBoxHeight(){const e=this.constraint.lastCollapsedBoxHeight;return e}getExpandedBoxHeight(){const e=this.constraint.lastExpandedBoxHeight;return e}reset(){this.resetAccordionBox()}}E=rm,_defineProperty(rm,"AccordionBoxIO",new hs.Z("AccordionBoxIO",{valueType:E,supertype:G.NBX.NodeIO,events:["expanded","collapsed"]})),_defineProperty(rm,"ACCORDION_BOX_ACCESSIBLE_NAME_BEHAVIOR",(e,t,i,n)=>(n.push(()=>{e.expandCollapseButton.accessibleName=i}),t));class om extends((0,G.wgH)(G.y$t)){}class am extends((0,G.wgH)(G.AeJ)){}class lm extends G.dmK{constructor(e,t,i,n,s,r,o,a,l,h,A,d){super(e),_defineProperty(this,"lastCollapsedBoxHeight",null),_defineProperty(this,"lastExpandedBoxHeight",null),this.accordionBox=e,this.contentNode=t,this.containerNode=i,this.expandedBox=n,this.collapsedBox=s,this.expandedTitleBar=r,this.collapsedTitleBar=o,this.expandedBoxOutline=a,this.collapsedBoxOutline=l,this.titleNode=h,this.expandCollapseButton=A,this.options=d,this.accordionBox.localPreferredWidthProperty.lazyLink(this._updateLayoutListener),this.accordionBox.localPreferredHeightProperty.lazyLink(this._updateLayoutListener),this.accordionBox.expandedProperty.lazyLink(this._updateLayoutListener),this.addNode(t),this.addNode(h)}layout(){super.layout();const e=this.options;if(!this.accordionBox.isChildIncludedInLayout(this.contentNode))return void(this.containerNode.children=[]);this.containerNode.children=[this.expandedBox,this.collapsedBox,this.titleNode,this.expandCollapseButton];const t=this.accordionBox.expandedProperty.value||e.useExpandedBoundsWhenCollapsed,i=null===e.stroke?0:e.lineWidth,n=this.createLayoutProxy(this.contentNode),s=this.createLayoutProxy(this.titleNode),r=n.minimumWidth,o=n.minimumHeight,a=s.minimumWidth,l=Math.max(this.expandCollapseButton.height+2*e.buttonYMargin,this.titleNode.height+2*e.titleYMargin),h=e.showTitleWhenExpanded?Math.max((e.allowContentToOverlapTitle?e.contentYMargin:l+e.contentYSpacing)+o+e.contentYMargin,l):Math.max(this.expandCollapseButton.height+2*e.buttonYMargin,o+2*e.contentYMargin);let A=Math.max(e.minWidth,e.buttonXMargin+this.expandCollapseButton.width+e.titleXSpacing+a+e.titleXMargin);"center"===e.titleAlignX&&(A=Math.max(A,2*(e.buttonXMargin+this.expandCollapseButton.width+e.titleXSpacing)+a),A=Math.max(A,2*e.titleXMargin+a)),A=e.showTitleWhenExpanded?Math.max(A,r+2*e.contentXMargin):Math.max(A,this.expandCollapseButton.width+r+e.buttonXMargin+e.contentXMargin+e.contentXSpacing);const d=A+i,c=(t?h:l)+i,u=Math.max(d,this.accordionBox.localPreferredWidth||0)-i,g=Math.max(c,this.accordionBox.localPreferredHeight||0)-i;this.lastCollapsedBoxHeight=l,t&&(this.lastExpandedBoxHeight=g),this.collapsedBox.rectWidth=u,this.collapsedBox.rectHeight=l;const p=this.collapsedBox.selfBounds;if(this.collapsedTitleBar.rectWidth=u,this.collapsedTitleBar.rectHeight=l,this.collapsedBoxOutline&&(this.collapsedBoxOutline.rectWidth=u,this.collapsedBoxOutline.rectHeight=l),t){this.expandedBox.rectWidth=u,this.expandedBox.rectHeight=g;const t=this.expandedBox.selfBounds;this.expandedBoxOutline&&(this.expandedBoxOutline.rectWidth=u,this.expandedBoxOutline.rectHeight=g),this.expandedTitleBar.shape=Ke.bn.roundedRectangleWithRadii(0,0,u,l,{topLeft:e.cornerRadius,topRight:e.cornerRadius});let i=t.left+e.contentXMargin,n=t.right-e.contentXMargin;e.showTitleWhenExpanded||("left"===e.buttonAlign?i+=this.expandCollapseButton.width+e.contentXSpacing:n-=this.expandCollapseButton.width+e.contentXSpacing);const s=n-i,r=g-(e.showTitleWhenExpanded&&!e.allowContentToOverlapTitle?l+e.contentYMargin+e.contentYSpacing:2*e.contentYMargin);(0,G.S3T)(this.contentNode)&&null!==this.accordionBox.localPreferredWidth&&(this.contentNode.preferredWidth=s),(0,G.fJO)(this.contentNode)&&null!==this.accordionBox.localPreferredHeight&&(this.contentNode.preferredHeight=r),"top"===e.contentVerticalAlign?this.contentNode.top=t.bottom-e.contentYMargin-r:"bottom"===e.contentVerticalAlign?this.contentNode.bottom=t.bottom-e.contentYMargin:this.contentNode.centerY=t.bottom-e.contentYMargin-r/2,"left"===e.contentAlign?this.contentNode.left=i:"right"===e.contentAlign?this.contentNode.right=n:this.contentNode.centerX=(i+n)/2}let m=p.left+e.titleXMargin,y=p.right-e.titleXMargin;"left"===e.buttonAlign?(this.expandCollapseButton.left=p.left+e.buttonXMargin,m=this.expandCollapseButton.right+e.titleXSpacing):(this.expandCollapseButton.right=p.right-e.buttonXMargin,y=this.expandCollapseButton.left-e.titleXSpacing),(0,G.S3T)(this.titleNode)&&(this.titleNode.preferredWidth=y-m),"left"===e.titleAlignX?this.titleNode.left=m:"right"===e.titleAlignX?this.titleNode.right=y:this.titleNode.centerX=p.centerX,"top"===e.titleAlignY?(this.expandCollapseButton.top=this.collapsedBox.top+Math.max(e.buttonYMargin,e.titleYMargin),this.titleNode.top=this.expandCollapseButton.top):(this.expandCollapseButton.centerY=this.collapsedBox.centerY,this.titleNode.centerY=this.expandCollapseButton.centerY),n.dispose(),s.dispose(),this.accordionBox.localMinimumWidth=d,this.accordionBox.localMinimumHeight=c}dispose(){this.accordionBox.localPreferredWidthProperty.unlink(this._updateLayoutListener),this.accordionBox.localPreferredHeightProperty.unlink(this._updateLayoutListener),this.accordionBox.expandedProperty.unlink(this._updateLayoutListener),super.dispose()}}At.register("AccordionBox",rm);class hm extends rm{constructor(e,t){t=(0,Ei.Z)({titleText:Hu.totalStringProperty,labelText:Hu.totalStringProperty,showTotalAsCurrency:!1,minWidth:350,maxWidth:350},Mg.ACCORDION_BOX_COMMON_OPTIONS,t);const i=new M.ZP([e],e=>e<0?kl.MINUS:"");let n;n=t.showTotalAsCurrency?new gs(Hu.totalCurrencyPatternStringProperty,{totalString:t.labelText,sign:i,currencyUnits:Hu.currencyUnitsStringProperty,totalValue:e},{maps:{totalValue:e=>Math.abs(e)}}):new gs(Hu.totalValuePatternStringProperty,{totalString:t.labelText,totalValue:e},{maps:{totalValue:e=>i.value+Math.abs(e).toString(10)}});const s=new G.xvT(n,{font:new it(26),maxWidth:315}),r=new G.xvT(t.titleText,{font:new it(18)});super(s,(0,Ei.Z)(t,{titleNode:r}))}}Gu.register("TotalValueAccordionBox",hm);const Am=hm;class dm extends G.NBX{constructor(e,t,i,n){const s=(0,Y.ZP)()({labelCenterOffset:Ze.Z.ZERO,isCurrency:!1,zeroFill:G.Ilk.WHITE,mostPositiveFill:new G.Ilk("#1fb493"),leastPositiveFill:new G.Ilk("#a5e1d4"),mostNegativeFill:new G.Ilk("#fb1d25"),leastNegativeFill:new G.Ilk("#fda5a8"),labelMaxWidth:54},n),r=new M.ZP([e],e=>e<0?"-":"");let o;o=s.isCurrency?new gs(Hu.currencyValuePatternStringProperty,{sign:r,currencyUnits:Hu.currencyUnitsStringProperty,value:e},{maps:{value:e=>Math.abs(e)}}):new gs(Hu.currencyValuePatternStringProperty,{sign:r,currencyUnits:"",value:e},{maps:{value:e=>Math.abs(e)}});const a=new G.xvT(o,{font:new it(22),lineWidth:.8,fill:"white",stroke:"black",center:Ze.Z.ZERO,maxWidth:s.labelMaxWidth}),l=new G.DbO(a,{alignBounds:t.bounds,xAlign:"center"});super((0,Y.JA)({children:[t,l]},s)),e.link(e=>{l.center=t.center.plus(s.labelCenterOffset);let n=s.zeroFill;e<0?n=G.Ilk.interpolateRGBA(s.leastNegativeFill,s.mostNegativeFill,e/i.min):e>0&&(n=G.Ilk.interpolateRGBA(s.leastPositiveFill,s.mostPositiveFill,e/i.max)),t.fill=n})}}Gu.register("TotalValueIndicatorNode",dm);const cm=dm,um=new Ze.Z(-2,2),gm=new Ze.Z(5,5),pm=new Ze.Z(0,-17.25);class mm extends G.NBX{constructor(e){const t=e.value>0?G.Ilk.YELLOW:G.Ilk.RED,i=um.timesScalar(Math.abs(e.value)-1),n=new G.NBX;let s=null,r=null;_.times(Math.abs(e.value),()=>{const e=new G.Cdc(23,{fill:t,stroke:G.Ilk.BLACK,center:i});n.addChild(e),r=e,s=s?s.shapeUnion(Ke.bn.circle(i.x,i.y,23)):Ke.bn.circle(i.x,i.y,23),i.subtract(um)});const o=e.value>0?"+":"",a=new G.xvT(o+e.value,{font:new it(22),center:Ze.Z.ZERO});r.addChild(a);const l=gm.copy().setMagnitude(23),h=new G.y$t(s,{fill:new G.oas(s.bounds.centerX,s.bounds.centerY,l.x,l.y).addColorStop(.5,new G.Ilk(20,20,20,.4)).addColorStop(1,new G.Ilk(80,80,80,.2))});super({children:[h,n],cursor:"pointer"}),e.isDraggingProperty.link(e=>{h.visible=e,h.translation=e?gm:Ze.Z.ZERO}),e.inProgressAnimationProperty.link(e=>{this.pickable=null===e}),this.addInputListener(new G._U3({dragBoundsProperty:new x.Z(this.layoutBounds),start:t=>{e.isDraggingProperty.value=!0,e.teleportTo(this.eventToPosition(t)),this.moveToFront()},drag:t=>{e.teleportTo(this.eventToPosition(t))},end:()=>{e.isDraggingProperty.value=!1}})),e.positionProperty.link(e=>{this.center=e})}eventToPosition(e){return this.globalToParentPoint(e.pointer.point).plus(pm)}}Gu.register("ChipStackNode",mm);const ym=mm;class fm extends G.NBX{constructor(e,t){super(t),this.outline=e}getFill(){return this.outline.fill}get fill(){return this.getFill()}set fill(e){this.setFill(e)}setFill(e){this.outline.fill=e}}Gu.register("FillableBackgroundNode",fm);const wm=new Image,Bm=j.Z.createLock(wm);wm.onload=Bm,wm.src="data:image/png;base64,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";const Pm=wm,Dm=new Ke.bn("M367.541,188.392c0,0-7.992-7.075,39.988-42.405\n\tc0,0-10.671,0-10.671-11.777c0-11.776,18.663-23.553,7.991-35.345c-5.487-6.056-11.005-3.377-18.298,0.641\n\tc-5.152-6.143-11.326-12.548-16.348-14.775c-4.862-2.14-18.575-0.859-32.07,1.165c-1.965-3.931-9.841-8.225-37.251-8.225\n\tc-24.122,0-33.06,3.348-35.025,8.239c-14.586-1.048-27.819-0.247-28.969,5.881c-2.664,14.135-15.999,23.554-15.999,23.554\n\tc-7.861,2.605-13.32,9.433-13.32,9.433s10.67,21.209,2.664,40.047c0,0,39.989,4.716,37.325,28.27c0,0-87.984,42.405-146.649,110.722\n\tS-3.072,482.855,2.256,546.456c5.328,63.601,31.997,141.351,101.318,155.485c69.321,14.136,327.959,21.194,423.95-7.074\n\tc0,0,18.661-2.358,29.333-21.195c10.67-18.852,53.322-70.676,53.322-171.979C610.18,400.39,551.515,282.621,367.541,188.392z");class Cm extends fm{constructor(e){e=(0,Ei.Z)({fill:"rgba( 0, 0, 0, 0 )",lineWidth:0},e);const t=new G.y$t(Dm,{fill:e.fill,lineWidth:e.lineWidth,center:Ze.Z.ZERO}),i=new G.Eep(Pm,{opacity:.9});i.setScaleMagnitude(t.width/i.width),i.center=Ze.Z.ZERO,e.children=[t,i],super(t,e)}}Gu.register("FillableBagNode",Cm);const Em=Cm;class bm extends dr{constructor(e,t){super({tandem:t});const i=[new Tg(e.numberLine.showOperationDescriptionsProperty,Hu.operationDescriptionsStringProperty),new Tg(e.numberLine.showOperationLabelsProperty,Hu.operationLabelsStringProperty),new Tg(e.numberLine.showTickMarksProperty,Hu.tickMarksStringProperty)];this.addChild(new Og(i)),this.addChild(new Am(e.totalInBagsProperty,{expandedProperty:e.netWorthAccordionBoxExpandedProperty,centerX:this.layoutBounds.centerX,top:this.layoutBounds.minY+Mg.SCREEN_VIEW_Y_MARGIN})),this.numberLineNode=new Fp(e.numberLine,{pointNodeOptions:{radius:6}}),this.addChild(this.numberLineNode);const n=new cm(e.totalInBagsProperty,new Em({maxWidth:46}),Vg.CHIPS_NUMBER_LINE_RANGE,{centerY:e.numberLine.centerPositionProperty.value.y+64,labelCenterOffset:new Ze.Z(0,5),leastPositiveFill:new G.Ilk("#FFFFCC"),mostPositiveFill:G.Ilk.YELLOW,labelMaxWidth:44});this.addChild(n),e.totalInBagsProperty.link(t=>{n.centerX=e.numberLine.valueToModelPosition(t).x}),this.addChild(new np(e.positiveChipsBox)),this.addChild(new np(e.negativeChipsBox)),this.addChild(new tp(e.positiveChipsBag,Hu.positivesStringProperty)),this.addChild(new tp(e.negativeChipsBag,Hu.negativesStringProperty)),e.chips.forEach(e=>{this.addChild(new ym(e))});const s=new Kg({listener:()=>{this.interruptSubtreeInput(),e.reset()},right:this.layoutBounds.maxX-Mg.SCREEN_VIEW_X_MARGIN,bottom:this.layoutBounds.maxY-Mg.SCREEN_VIEW_Y_MARGIN,tandem:t.createTandem("resetAllButton")});this.addChild(s)}step(){this.numberLineNode.step()}}Gu.register("NLOChipsScreenView",bm);const vm=bm;class Vm extends Es{constructor(e){super(()=>new Vg(e.createTandem("model")),t=>new vm(t,e.createTandem("view")),{name:Hu.screen.chipsStringProperty,backgroundColorProperty:new x.Z("#f8f6fe"),homeScreenIcon:new cs(new G.Eep(Fu),{maxIconWidthProportion:1,maxIconHeightProportion:1}),tandem:e})}}Gu.register("NLOChipsScreen",Vm);const Im=Vm,Mm=new Image,Sm=j.Z.createLock(Mm);Mm.onload=Sm,Mm.src="data:image/png;base64,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";const Tm=Mm,xm=ju.Z.byKeys(["ALWAYS","NEVER","WHEN_CLOSE"]);_u.register("LockToNumberLine",xm);const Om=xm;class km{constructor(e){e=(0,Ei.Z)({color:"black",offsetFromHorizontalNumberLine:50,offsetFromVerticalNumberLine:52,scaleInBox:1,lockToNumberLine:Om.WHEN_CLOSE,numberLines:[],numberLinePoints:[],bidirectionalAssociation:!0},e),this.offsetFromHorizontalNumberLine=e.offsetFromHorizontalNumberLine,this.offsetFromVerticalNumberLine=e.offsetFromVerticalNumberLine,this.lockToNumberLine=e.lockToNumberLine,this.bidirectionalAssociation=e.bidirectionalAssociation,this.numberLines=e.numberLines,this.positionProperty=new Ue.Z(Ze.Z.ZERO,{reentrant:!0}),this.scaleInBox=e.scaleInBox,this.scaleProperty=new T.Z(this.scaleInBox),this.isDraggingProperty=new V.Z(!1),this.inProgressAnimationProperty=new x.Z(null),this.numberLinePoints=(0,I.Z)(),e.numberLinePoints.forEach(e=>{this.associateWithNumberLinePoint(e)}),this.color=e.color;const t=[];e.numberLines.forEach(e=>{const i=Ce.Z.multilink([e.displayedRangeProperty,e.centerPositionProperty],()=>{if(this.lockToNumberLine!==Om.NEVER&&1===this.numberLinePoints.length){const t=this.numberLinePoints.find(t=>t.numberLine===e);t&&this.setPositionRelativeToPoint(t)}});t.push(i)}),this.isDraggingProperty.link(e=>{this.numberLinePoints.forEach(t=>{t.isDraggingProperty.value=e})}),this.disposePointController=()=>{t.forEach(e=>{e.dispose()})}}dispose(){this.clearNumberLinePoints(),this.disposePointController()}isControllingNumberLinePoint(){return this.numberLinePoints.length>0}associateWithNumberLinePoint(e){if(this.numberLinePoints.add(e),this.bidirectionalAssociation){const t=()=>{this.setPositionRelativeToPoint(e)};e.valueProperty.link(t);const i=n=>{n===e&&(this.numberLinePoints.removeItemRemovedListener(i),e.valueProperty.unlink(t))};this.numberLinePoints.addItemRemovedListener(i)}e.isDraggingProperty.value=this.isDraggingProperty.value}dissociateFromNumberLinePoint(e){e.isDraggingProperty.value=!1,this.numberLinePoints.remove(e)}clearNumberLinePoints(){[...this.numberLinePoints].forEach(e=>{this.dissociateFromNumberLinePoint(e)})}removePointsFromNumberLines(){this.numberLinePoints.forEach(e=>{e.numberLine.removePoint(e)})}removeClearAndDisposePoints(){const e=this.numberLinePoints.getArrayCopy();this.removePointsFromNumberLines(),this.clearNumberLinePoints(),e.forEach(e=>{e.dispose()})}proposePosition(e){if(this.isControllingNumberLinePoint())this.numberLinePoints.forEach(t=>{const i=t.numberLine.modelPositionToValue(e);this.lockToNumberLine===Om.ALWAYS?t.proposeValue(i):this.lockToNumberLine===Om.NEVER?(t.proposeValue(i),t.numberLine.isHorizontal?this.positionProperty.value=new Ze.Z(this.positionProperty.value.x,e.y):this.positionProperty.value=new Ze.Z(e.x,this.positionProperty.value.y)):this.lockToNumberLine===Om.WHEN_CLOSE&&(t.numberLine.isWithinPointRemovalDistance(e)?t.proposeValue(i):(t.numberLine.removePoint(t),this.dissociateFromNumberLinePoint(t)))});else if(this.lockToNumberLine===Om.WHEN_CLOSE){const t=this.numberLines.filter(t=>t.isWithinPointCreationDistance(e)),i=t.map(t=>t.getConstrainedValue(t.modelPositionToValue(e)));t.length>0?t.forEach((e,t)=>{const n=new eg(e,{initialValue:i[t],initialColor:this.color,controller:this});e.addPoint(n),this.associateWithNumberLinePoint(n)}):this.goToPosition(e)}else this.goToPosition(e)}goToPosition(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.stopAnimation(),t){const t=new Pg({duration:Math.max(.3,this.positionProperty.value.distance(e)/1e3),targets:[{to:this.scaleInBox,property:this.scaleProperty,easing:yg.CUBIC_IN_OUT},{property:this.positionProperty,easing:yg.CUBIC_IN_OUT,to:e}]});this.inProgressAnimationProperty.value=t,t.start(),t.finishEmitter.addListener(()=>{this.inProgressAnimationProperty.value=null}),t.stopEmitter.addListener(()=>{this.inProgressAnimationProperty.value=null})}else this.positionProperty.value=e}setPositionRelativeToPoint(e){const t=e.getPositionInModelSpace();let i,n;const s=this.lockToNumberLine===Om.ALWAYS||this.lockToNumberLine===Om.WHEN_CLOSE;e.numberLine.isHorizontal?(i=t.x,n=s?t.y+this.offsetFromHorizontalNumberLine:this.positionProperty.value.y):(n=t.y,i=s?t.x+this.offsetFromVerticalNumberLine:this.positionProperty.value.x),this.goToPosition(new Ze.Z(i,n))}stopAnimation(){this.inProgressAnimationProperty.value&&(this.inProgressAnimationProperty.value.stop(),this.inProgressAnimationProperty.value=null)}reset(){this.clearNumberLinePoints(),this.stopAnimation(),this.positionProperty.reset(),this.scaleProperty.reset()}}_u.register("PointController",km);const Lm=km,Qm=[new Sa.Z(-10,10),new Sa.Z(-30,30),new Sa.Z(-100,100)],Rm=og.LAYOUT_BOUNDS,Nm=Rm.centerX,Ym=new Ze.Z(Nm,Rm.centerY),Fm=Ym.minusXY(0,.15*Rm.height),Gm={numberOfOperationsTracked:2,initialDisplayedRange:Qm[0],tickMarksInitiallyVisible:!0,preventOverlap:!1,labelsInitiallyVisible:!0,operationDescriptionsInitiallyVisible:!1,widthInModelSpace:og.NUMBER_LINE_WIDTH,operationOptionsArray:[{initialAmount:1},{initialAmount:1}]};class qm{constructor(e){this.secondNumberLineVisibleProperty=new V.Z(!1),this.primaryNumberLine=new ug(Ym,(0,Ei.Z)({startingValueProperty:new T.Z(1),pointColorList:[og.DARK_BLUE_POINT_COLOR,og.MEDIUM_BLUE_POINT_COLOR,og.LIGHT_BLUE_POINT_COLOR]},Gm)),this.primaryLineInitialValuePointController=new Lm({color:this.primaryNumberLine.startingPoint.colorProperty.value,numberLines:[this.primaryNumberLine],numberLinePoints:[this.primaryNumberLine.startingPoint],lockToNumberLine:Om.ALWAYS}),this.primaryNumberLinePointControllers=(0,I.Z)(),this.primaryNumberLine.residentPoints.addItemAddedListener(e=>{const t=new Lm({color:e.colorProperty.value,numberLines:[this.primaryNumberLine],numberLinePoints:[e],lockToNumberLine:Om.ALWAYS});this.primaryNumberLinePointControllers.push(t);const i=n=>{n===e&&(this.primaryNumberLinePointControllers.remove(t),t.dispose(),this.primaryNumberLine.residentPoints.removeItemRemovedListener(i))};this.primaryNumberLine.residentPoints.addItemRemovedListener(i)}),this.secondaryNumberLine=new ug(this.primaryNumberLine.centerPositionProperty.value.plusXY(0,62),(0,Ei.Z)({startingValueProperty:new T.Z(1),pointColorList:[new G.Ilk("#a400cc"),new G.Ilk("#ef29ff"),new G.Ilk("#fb71ff")]},Gm)),this.primaryNumberLine.showPointLabelsProperty.link(e=>this.secondaryNumberLine.showPointLabelsProperty.set(e)),this.primaryNumberLine.showOperationLabelsProperty.link(e=>this.secondaryNumberLine.showOperationLabelsProperty.set(e)),this.primaryNumberLine.showTickMarksProperty.link(e=>this.secondaryNumberLine.showTickMarksProperty.set(e)),this.secondaryLineInitialValuePointController=new Lm({color:this.secondaryNumberLine.startingPoint.colorProperty.value,numberLines:[this.secondaryNumberLine],numberLinePoints:[this.secondaryNumberLine.startingPoint],lockToNumberLine:Om.ALWAYS}),this.secondaryNumberLinePointControllers=(0,I.Z)(),this.secondaryNumberLine.residentPoints.addItemAddedListener(e=>{const t=new Lm({color:e.colorProperty.value,numberLines:[this.secondaryNumberLine],numberLinePoints:[e],lockToNumberLine:Om.ALWAYS});this.secondaryNumberLinePointControllers.push(t);const i=n=>{n===e&&(this.secondaryNumberLinePointControllers.remove(t),t.dispose(),this.secondaryNumberLine.residentPoints.removeItemRemovedListener(i))};this.secondaryNumberLine.residentPoints.addItemRemovedListener(i)}),this.primaryNumberLineAnimation=null,this.secondNumberLineVisibleProperty.link(e=>{const t=e?Fm:Ym;this.primaryNumberLine.centerPositionProperty.value.equals(t)||(this.primaryNumberLineAnimation&&this.primaryNumberLineAnimation.stop(),this.primaryNumberLineAnimation=new Pg({duration:.5,targets:[{property:this.primaryNumberLine.centerPositionProperty,easing:yg.CUBIC_IN_OUT,to:t}]}),this.primaryNumberLineAnimation.start(),this.primaryNumberLineAnimation.endedEmitter.addListener(()=>{this.primaryNumberLineAnimation=null}))})}reset(){this.primaryNumberLine.reset(),this.secondaryNumberLine.reset(),this.secondNumberLineVisibleProperty.reset()}}qm.NUMBER_LINE_RANGES=Qm,Gu.register("NLOGenericModel",qm);const Hm=qm,Zm=new it(16);class Um extends jl{constructor(e,t,i,n){n=(0,Ei.Z)({listPosition:"above",xMargin:13,yMargin:6,cornerRadius:4,buttonTouchAreaXDilation:7,buttonTouchAreaYDilation:7,align:"right"},n);const s=[];t.forEach(e=>{s.push({value:e,createNode:()=>new G.xvT(new gs(hp.rangePatternStringProperty,{lowValue:e.min,highValue:e.max}),{font:Zm,maxWidth:150})})}),super(e,s,i,n)}}_u.register("NumberLineRangeSelector",Um);const Km=Um,Wm=new Image,zm=j.Z.createLock(Wm);Wm.onload=zm,Wm.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAAA5CAYAAACLWl2QAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAB41JREFUeNrUm+tPU0kUwA+lavGDvCKKgNvwAXxTeQhmcUVZ8BHMaiQrEJ5fTDYL4gf/gPUv2PUrmqxRUDEiKL5AkFZlsypKC8FWECi2yMMIJSbyWGh3zvTe2pYWLtB2rieZzty596Zzfz3nzJlzp34gMjl9+rScVMdJ+YWUIFIUDIahl4oICEL4k5RiPA4ODiYlBKKjo8mRBSwWLODQJp8AfNvC9dvOuylmC5gd+sxgNlvbg0YDmEwm/BK5VERaUovakZSUBKn79sGm8HA6WLPdA1mPzXYPxz2U2UyPzViTwvfzx3NcbZ7D9pxTjf1z0Nv7noeCopSKAAqaSguaTU5uLiQlJtp+TV/J6OgIvHzxL0RGRoLRaMQutUQMUAICAoLOnTsHe4i2+FrGx8fg2VMVkDFAdnY2362RiAHK76WlEBERwQRKU2MD+Pv7Q3l5OXz+/NnmfCWsoZSWljGBMjMzAw2PHlIoZWVl1IzGxsbouYqKCqWEJRQcUEQkCyjT8OjhAwonLy+PjCGS9nd3d1P/gh9SZlDOnIGITZvA4mso0zPw4P49GCNmk5OTAzt27LSd4x0vfkh8CAXjlFqEcoZAiWRgPigqZQv1Jb+eOgWJds4e+yYnJ7E54DMwHBSckuX5+fnUnllIS0sz6PX98GNqKiQmJDqcMxoHbTGMT8DYQVHkFxTArl27mEB50tQE73Q6iI+Ph6ysrHnnBweNfNP7pmQPpYBASUlOZgJFo24HnU4Lu3fvhpMns11ew/kXPZmRTF4F4wwlOTmFCZS3b7tIAPcUNm7cCEeOHnV7XU9Pj01bvAZmnqaksIHS1dUFjxsbKZSi4hKQyWQurxsk2sI5XhXfJ/UmlMLCQk5TLD6HMjo6SmegDRs2QAEZhzsoKB2dnXyzzpsaY4PCSlMQys3qG+Dn5wdZx46BbI1swetfvnhBzYj4F71XwBBt+RuhpOzdyxTKjevXaTs3N49qzELSSbSFWwpcsO+XeBhK8V4CpYhoCwuZnpoiUe19mJ6ehlM5uRC2CBSUhoZHWJnszchjYOyhFDKCMkWgXLtWRXMrhw4fhrCwsEXvwdlqcJAGdhf4adpjYMQABaWq8iqMjIxARmYmbNu2XVDKoZHMWJxv+cP5vMRj5lNUxAzK3fq7FErqvp9g69Ztgu6prr7JT9Elrs5Lvnsod+5Ah0YDsVu2QJwiTtA99+rroa+vF5vnibaoPQZGLFCUSiVoNGqIiY2FAwfTBd3z5s1raG1tpTGLKxNaNhixQFGT9Y+KgAkPD4f9aQcE3aPVaqGmpoYP/UsWulayXCjFxcXMoLQTKHW1tRASEgrpGZmC7hkeHoLa27f5qfmA8yzkLNLvDYq+v58+YHBICBw6cgRWr169OJSRYbh65QpO6YKgCAYjFihDQ0NQVVVFYWRkHhIEBWerqspKeyhqId8l+Z6gXLp0kb45PPhzhiAoGPThDIT1UqAsqjFigTI1OQWVJICbm5uDNDL74HvtRZcHZFlQfeM6XTuho10KlAU1RkxQKi5WkEh1HBKT9kBQ0LKgXF7q9/q5gYK7Ds5iOyYmZkUP5u4dtHXjgmXBPmxi6I5Q4hMSQR4dDf4Sf5BK/emLsvlFArP/zcLtmlvw6dOnZUNxaUpcoulsaGgoYFkpBFcPyyeu+Ov5a5xr3H0wMTEB23fshKjNPwgagyeguPMx1G7QfJy1xfnBLQ4PbPdgDntXvhXzvD0qjts1zBb77RpmqL97Bzo7OiAyarOgh2l+3MRDOb8SKO7AlKOmrNSEPJJ0IlPtunWBsGrVqsXThs3N8O6dDpuXFwr1l+V8uVeo8vT0dOZQMOmEMUiIAHNWtbTYQynxxPc7a0w5figUCuZgBj7QN6WLgnmmUkFPT7dHobgCcxyhLNXpekM+DHBgQtyP5fmzp9D7/r3HoTiAIWaEOyWDxKAtVGP0AxSKO//yT+tz6Ovt9QoUZx+D20chLi6OOZQJMk2PkIUfLhRdyeu2Nq9CcQZDzWjt2rXMwegXMCN9fx90Wx2t0ltQbKZEzChNVGY0oCfRrXSexgzo++H1q1d8oumEN8cgFZsZoeB2DWco6Izb37TxUATlVDxhSmlRUVGiMKPh4WGaJggK/gbGYPjgUyhUY7i1kUIMka7VXPS0Xr/e+sLMaDRAp0btUyi8xig8sYr2lOi0OpDJAkAWIKMzEwsoPJg0MYHBPXJBwcHw5csX6LJuzzD5GgrvfOMw0hWDf9FptbReI5NBe9srmJ2dZQKFByMXwxLAGqNY/csAiVXsNEXNYizUx8TGxooCjJbTGNZQ5qUd2E7TQ2AyjfOHJ1hC4cGYDAYDczBPmp/wTUxJKlmPB8HUqdVqYAmn5tYtYkZvsfnXSlOSnhL/hIQEDamL29raZIGBgTQXIySVuByx2DUmpyYBfxB8ddpvdba4Uv5NLKbtxy0iMcjD/yTK8RiXBwgIaxTc+4/TOZ/85mMed8nwr1+/ggF3WnN9uOt6kvTh5bg1HTcDfvz40TYZgQeS114B45Ss2s9Fw3IelIfFxEWyWFQESB2IUPyEXMSlJXgR+l9oBwcqBoe6FPlfgAEATKZKoArJoOIAAAAASUVORK5CYII=";const jm=Wm,Xm="data:audio/mpeg;base64,//swxAAABbQXJue9InEGkeow9gy2AWSSSTAYoasSAbQuZ2IxjE6OhsMSZyx0576hvOP937/yhc4f0+H8LGFLHEz/XACUm0rv4BAiekAH6Jm5k8ECY8EgUIZ/AWGETh20scbX3gG7mZV3GgAhQncv3c4W4c9K5vl8EbDh9vE4Pl0bhBdl1QI5EgYIAkvMcggdSAIDGiYaCi1TJEP3//syxAuDiiyfQi2kcoEWjupFl5kgnLqM4ZI3NY8CQdRuXdoWvuuoGEFJjQ7a8upTGkSD3r2gYuE8ECDCcjuVOucc7PFj4P9PekLOItFR8vjb6SV/gLubu4jCdBDBUZqEFTw/hQO0ybCPVq3CQyd5UHRCwsCEH0Q2jEIIZNfXX87QzJsM1BcYADgQAD46ZctK/iAM1+rAAABG7CPrHv/7MsQEAAhUV2EspMpBDpFtsPMN3ulsDrrB7ZQEtNXcZW2+eAIHA1iQRS9ljECBZvLtnu+S6a0YJB+JgA6CDaxPlVGWHQ8HCBR6DCHeop9TISRiRalWFgH80HmEgJsLEZSTTztIStqpXKlQ8kZdEvWy8/YHdL2UHbB5ExRrSNWBrmZcZcEPZJL6UvqfSVDXar//BZXAxySNtyOOAMj/+zLEBIAItGtxp6SqsRAR7HT0jS4d8QmJJZG00FqAYyyFThGaVJDhkyhEHLIVsIpRT5Ssl3QDJM4wO6FDnlUhth1ElXKmXHvDqFQ0q1d5VN1FDjbkjTkcbALCLomUkUyMYChZlETMFQ9IXGnxGCb5rKyyHa0yhr8jfhbAY0MMamoklKVfb/Chu1FTLVMmzBJmtJ63PVoASmWaSySw//swxAOACFCLR6wwY6EPjiUFjRgoASFZYJYluFJiTQJCKPxyWSbCVDbjImuKZcwigTEdWzMMCOq6gJHJt0opTbvnSzCnRRM4GisU2ZL21TSX8JwGyJ1hZsTyoi3rd1yuVAdq07U9pFBBxQEHNQFHBVEi558+dTrbqXNvkmfcf9RQCtDgmnC0PPQXGaQzhe3o3evtdZUlttySX9Dh//syxAOAB/CXQ4ekZbDzkKc08wy0Wm4WA3SxrggemjmvrLhYPMwbgiQojkTMANwObSCpMBsRVwWZ03B7lJnulzuVMH3jG94r//vrv9DwI1K5XLM2UAR0cp3AuyNw3weQIg517NTTJHBXYkqjgo8ISOcjM523jJ9g1NmhoJtiVyLJKhB5Wi//Tdr9qgE0i2422iBAFsxlsAgejsEw6//7MsQJAAdMYTOnsGGg5opk3YMM2AMNO5+lxBo0cc4gsbfEqUFiQY53+2jBwHIGwgfJbxsYm3Z2UK7P//0gBBSJAoKalowNRlKnpTAkNJysTRiR23F8rIPdNBNHvoJIJDyIPAuCbzAXFUx7FEd0cWU1ZTd//+/qCLRKSikaIMATpvhKx1LK+hL2NEuYzCasqVFKkCuijuwbJkO+FGr/+zLEEwAG5Gczp4RpIM2RZzTAjAQICZLT4rfEYug+7Vq//0f6tYJTcdlt2gaAD05A3UhQo0dZrmawLqX/IKoI1DC8rt4NGcleF1HLcuOR0TbQd/98bsfo/uoAgIJKVAFYD8GhU5BgKLBU6eDdbu/RJej3f6k9RX7NSP++3qpMQU1FMy45OS41qqqqqqqqqqqqqqqqqqqqqqqqqqqq//swxCGDxHAPGOekYBAAADSAAAAEqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq",Jm=X(se,Xm),_m=j.Z.createLock(Xm),$m=new ie;let ey=!1;const ty=()=>{ey||(_m(),ey=!0)},iy=se.decodeAudioData(Jm.buffer,e=>{null===$m.audioBufferProperty.value&&($m.audioBufferProperty.set(e),ty())},e=>{console.warn("decode of audio data failed, using stubbed sound, error: "+e),$m.audioBufferProperty.set(se.createBuffer(1,1,se.sampleRate)),ty()});iy&&iy.then(e=>{null===$m.audioBufferProperty.value&&($m.audioBufferProperty.set(e),ty())}).catch(e=>{console.warn("promise rejection caught for audio decode, error = "+e),ty()});const ny=$m;class sy extends Wi{constructor(e){const t=(0,Y.ZP)()({iconWidth:20,baseColor:Os.BUTTON_YELLOW,soundPlayer:new ti(ny,{soundClipOptions:{initialOutputLevel:.22}})},e);t.content=new G.Eep(jm),t.content.scale(t.iconWidth/t.content.width),super(t)}}U.register("EraserButton",sy);class ry extends G.Cdc{constructor(e,t){const i=(0,Y.ZP)()({mainColor:"gray",highlightColor:"white",shadowColor:"black",highlightDiameterRatio:.5,highlightXOffset:-.4,highlightYOffset:-.4},t);super(e/2,i),this.updateShadedSphereFill=()=>{const e=this.radius,t=e*i.highlightXOffset,n=e*i.highlightYOffset;this.fill=new G.XMe(t,n,0,t,n,2*e).addColorStop(0,i.highlightColor).addColorStop(i.highlightDiameterRatio,i.mainColor).addColorStop(1,i.shadowColor)},this.updateShadedSphereFill()}invalidatePath(){super.invalidatePath(),this.updateShadedSphereFill&&this.updateShadedSphereFill()}}U.register("ShadedSphereNode",ry);const oy=new V.Z(!0);class ay extends G.NBX{constructor(e,t){super(t=(0,Ei.Z)({node:null,connectorLine:!0,connectorLineVisibleProperty:oy,cursor:"pointer"},t));const i=new G.x12(0,0,0,0,{stroke:"gray"});i.visible=!1,this.addChild(i),this.draggableNode=t.node||new ry(20,{mainColor:e.color}),this.addChild(this.draggableNode);const n=()=>{i.visible=t.connectorLineVisibleProperty.value&&e.isControllingNumberLinePoint()},s=()=>{if(e.numberLinePoints.length>=1){let t=!1;e.numberLines.forEach(i=>{e.numberLinePoints.forEach(e=>{i.isPointInDisplayedRange(e)&&(t=!0)})}),this.visible=t}else this.visible=!0};if(e.lockToNumberLine===Om.ALWAYS){e.numberLines[0].displayedRangeProperty.link(s)}const r=r=>{if(t.connectorLine&&e.isControllingNumberLinePoint()){const t=e.numberLinePoints.get(0).getPositionInModelSpace();i.setLine(r.x,r.y,t.x,t.y)}n(),this.draggableNode.translation=r,s()};e.positionProperty.link(r);const o=()=>{this.moveToFront()};e.numberLinePoints.forEach(e=>{e.valueProperty.link(o)});const a=e=>{e.valueProperty.link(o)};e.numberLinePoints.addItemAddedListener(a);const l=e=>{e.valueProperty.unlink(o)};e.numberLinePoints.addItemRemovedListener(l),t.connectorLineVisibleProperty!==oy&&t.connectorLineVisibleProperty.link(n);e.scaleProperty.link(e=>{this.draggableNode.setScaleMagnitude(e)});const h=e=>{e&&this.moveToFront()};e.isDraggingProperty.link(h);const A=e=>{this.pickable=null===e};if(e.inProgressAnimationProperty.link(A),!1!==t.pickable){let t;this.addInputListener(new G._U3({dragBoundsProperty:new x.Z(this.layoutBounds),start:i=>{e.isDraggingProperty.value=!0;const n=this.draggableNode.globalToParentPoint(i.pointer.point),s=n.minus(this.draggableNode),r=s.dividedScalar(e.scaleProperty.value).minus(s);e.scaleProperty.value=1,e.proposePosition(this.draggableNode.translation.minus(r)),t=n.minus(this.draggableNode)},drag:i=>{e.isDraggingProperty.value=!0;const n=this.globalToParentPoint(i.pointer.point);e.proposePosition(n.minus(t))},end:()=>{e.isDraggingProperty.value=!1}}))}let d;t.node||(d=e=>{const t=this.draggableNode.localBounds;let i;if(e===xa.Z.HORIZONTAL){i=t.dilateXY(5,20).shiftedY(15)}else{i=t.dilateXY(20,5).shiftedX(15)}this.draggableNode.setTouchArea(i)},e.numberLines[0].orientationProperty.link(d)),this.disposePointControllerNode=()=>{e.positionProperty.unlink(r),e.isDraggingProperty.unlink(h),e.inProgressAnimationProperty.unlink(A),t.connectorLineVisibleProperty.hasListener(n)&&t.connectorLineVisibleProperty.unlink(n),e.numberLines.forEach(e=>{e.displayedRangeProperty.hasListener(s)&&e.displayedRangeProperty.unlink(s),e.orientationProperty.hasListener(d)&&e.orientationProperty.unlink(d)}),e.numberLinePoints.removeItemAddedListener(a),e.numberLinePoints.removeItemRemovedListener(l),e.numberLinePoints.forEach(e=>{e.valueProperty.unlink(o)})}}dispose(){this.interruptSubtreeInput(),this.disposePointControllerNode(),super.dispose()}}_u.register("PointControllerNode",ay);const ly=ay;class hy extends G.NBX{constructor(e,t,i,n,s){s=(0,Ei.Z)({numberLineNodeOptions:{pointNodeOptions:{radius:6,labelOpacity:.7}}},s),super();const r=new G.NBX;this.addChild(r);const o=new Fp(e,s.numberLineNodeOptions);this.addChild(o);const a=new ly(t);r.addChild(a);const l=new Map([[t,a]]);let h=null;const A=()=>{if(!h||!h.isDraggingProperty.value){const e=[t,...i];h=e.find(e=>e.isDraggingProperty.value)}h?l.forEach((e,t)=>{e.pickable=t===h,t!==h&&t.isDraggingProperty.value&&e.interruptSubtreeInput()}):l.forEach(e=>{e.pickable=!0})};t.isDraggingProperty.link(A),i.addItemAddedListener(e=>{const t=new ly(e);l.set(e,t),r.addChild(t),e.isDraggingProperty.link(A);const n=s=>{s===e&&(r.removeChild(t),t.dispose(),l.delete(s),s.isDraggingProperty.unlink(A),i.removeItemRemovedListener(n))};i.addItemRemovedListener(n)})}}Gu.register("ControllableOperationNumberLineNode",hy);const Ay=hy,dy={up:0,down:Math.PI,left:-Math.PI/2,right:Math.PI/2};class cy extends Wi{constructor(e){const t=(0,Y.ZP)()({arrowDirection:"up",arrowSize:new Q.Z(20,7),arrowPathOptions:{stroke:"black",lineWidth:3,lineCap:"round"},baseColor:"rgba( 200, 200, 200, 0.5 )",buttonAppearanceStrategy:Hi.FlatAppearanceStrategy,cornerRadius:4},e);let i=null;void 0===t.stroke&&(i=new G.M4p(t.baseColor,{luminanceFactor:-.8}),t.stroke=i);let n=(new Ke.bn).moveTo(0,0).lineTo(t.arrowSize.width/2,-t.arrowSize.height).lineTo(t.arrowSize.width,0);n=n.transformed(Ht.Z.rotation2(dy[t.arrowDirection])),t.content=new G.y$t(n,t.arrowPathOptions);const s=t.arrowDirection,r=t.cornerRadius;if(t.leftTopCornerRadius="up"===s||"left"===s?r:0,t.rightTopCornerRadius="up"===s||"right"===s?r:0,t.leftBottomCornerRadius="down"===s||"left"===s?r:0,t.rightBottomCornerRadius="down"===s||"right"===s?r:0,"up"===s||"down"===s){const e=t.mouseAreaYDilation/2||0,i=t.touchAreaYDilation/2||0;t.mouseAreaYDilation=e,t.touchAreaYDilation=i,t.mouseAreaYShift="up"===s?-e:e,t.touchAreaYShift="up"===s?-i:i}else{const e=t.mouseAreaXDilation/2||0,i=t.touchAreaXDilation/2||0;t.mouseAreaXDilation=e,t.touchAreaXDilation=i,t.mouseAreaXShift="left"===s?-e:e,t.touchAreaXShift="left"===s?-i:i}super(t),this.customStrokeProperty=i}dispose(){this.customStrokeProperty&&this.customStrokeProperty.dispose(),super.dispose()}}At.register("CarouselButton",cy);const uy=new Q.Z(20,7);class gy extends G.NBX{constructor(e,t){let i=!1;const n=(0,Y.ZP)()({orientation:"horizontal",fill:"white",stroke:"black",lineWidth:1,cornerRadius:4,defaultPageNumber:0,itemsPerPage:4,spacing:12,margin:6,alignBoxOptions:{phetioType:G.RnV,phetioState:!0,visiblePropertyOptions:{phetioFeatured:!0}},buttonOptions:{xMargin:5,yMargin:5,touchAreaXDilation:0,touchAreaYDilation:0,mouseAreaXDilation:0,mouseAreaYDilation:0,baseColor:"rgba( 200, 200, 200, 0.5 )",disabledColor:Fi.LIGHT_GRAY,lineWidth:1,arrowPathOptions:{stroke:"black",lineWidth:3},arrowSize:uy,enabledPropertyOptions:{phetioReadOnly:!0,phetioFeatured:!1},soundPlayer:Oi},separatorsVisible:!1,separatorOptions:{stroke:"rgb( 180, 180, 180 )",lineWidth:.5,pickable:!1},animationEnabled:!0,animationOptions:{duration:.4,stepEmitter:O.Z,easing:yg.CUBIC_IN_OUT},tandem:K.Z.OPTIONAL,visiblePropertyOptions:{phetioFeatured:!0}},t);super(),_defineProperty(this,"isAnimatingProperty",new V.Z(!1)),this.animationEnabled=n.animationEnabled,this.items=e,this.itemsPerPage=n.itemsPerPage,this.defaultPageNumber=n.defaultPageNumber;const s=xa.Z.fromLayoutOrientation(n.orientation),r=new G.Lkj,o=n.tandem.createTandem("items");this.carouselItemNodes=Yt(e,o),this.alignBoxes=e.map((e,t)=>r.createBox(this.carouselItemNodes[t],(0,Y.JA)({tandem:e.tandemName?o.createTandem(e.tandemName):K.Z.OPTIONAL},n.alignBoxOptions,e.alignBoxOptions))),this.scrollingNode=new py(this,{children:this.alignBoxes,orientation:n.orientation,spacing:n.spacing,[s.opposite.coordinate+"Margin"]:n.margin}),this.visibleAlignBoxesProperty=M.ZP.deriveAny(this.alignBoxes.map(e=>e.visibleProperty),()=>this.getVisibleAlignBoxes()),this.scrollingNode.childrenReorderedEmitter.addListener(()=>this.visibleAlignBoxesProperty.recomputeDerivation());const a=(0,Y.JA)({cornerRadius:n.cornerRadius},n.buttonOptions),l=n.separatorsVisible?new G.NBX({pickable:!1}):null,h=new G.NBX({children:n.separatorsVisible?[l,this.scrollingNode]:[this.scrollingNode]}),A=e=>Math.max(Math.ceil(e.length/n.itemsPerPage),1);this.numberOfPagesProperty=new M.ZP([this.visibleAlignBoxesProperty],e=>A(e),{isValidValue:e=>e>0});const d=A(this.alignBoxes);this.pageNumberProperty=new T.Z(n.defaultPageNumber,{tandem:n.tandem.createTandem("pageNumberProperty"),numberType:"Integer",isValidValue:e=>e=0,range:new Sa.Z(0,d-1),phetioFeatured:!0});const c=new M.ZP([this.numberOfPagesProperty],e=>e>1),u=new cy((0,Y.JA)({arrowDirection:s===xa.Z.HORIZONTAL?"right":"down",tandem:n.tandem.createTandem("nextButton"),listener:()=>this.pageNumberProperty.set(this.pageNumberProperty.get()+1),enabledProperty:new M.ZP([this.pageNumberProperty,this.numberOfPagesProperty],(e,t)=>ethis.pageNumberProperty.set(this.pageNumberProperty.get()-1),enabledProperty:new M.ZP([this.pageNumberProperty],e=>e>0),visibleProperty:c},a)),p=new G.NBX({children:[h]}),m=new G.AeJ({cornerRadius:n.cornerRadius,fill:n.fill}),y=new G.AeJ({cornerRadius:n.cornerRadius,stroke:n.stroke,pickable:!1});this.carouselConstraint=new my(this,m,y,p,g,u,h,this.alignBoxes,s,this.scrollingNode,this.itemsPerPage,n.margin,r,l,n.separatorOptions);let f=null;const w=new L.Z(0,0,0,0);Ce.Z.multilink([this.pageNumberProperty,h.localBoundsProperty],(e,t)=>{var r;if(e>=this.numberOfPagesProperty.value)return;f&&f.stop();const o=this.visibleAlignBoxesProperty.value[e*n.itemsPerPage],a=o?-o[s.minSide]+n.margin:0,l=null===w||!w.equals(t);w.set(t),!this.animationEnabled||null!==(r=xe.Z)&&void 0!==r&&r.value||!i||l?h[s.coordinate]=a:(f=new Pg((0,Y.JA)({},n.animationOptions,{to:a,getValue:()=>h[s.coordinate],setValue:e=>{h[s.coordinate]=e}})),f.endedEmitter.addListener(()=>this.isAnimatingProperty.set(!1)),f.start(),this.isAnimatingProperty.value=!0)}),this.visibleAlignBoxesProperty.link(()=>{this.pageNumberProperty.value=Math.min(this.pageNumberProperty.value,this.numberOfPagesProperty.value-1)}),n.children=[m,p,u,g,y],this.disposeCarousel=()=>{this.visibleAlignBoxesProperty.dispose(),this.pageNumberProperty.dispose(),this.alignBoxes.forEach(e=>{e.dispose()}),this.scrollingNode.dispose(),this.carouselConstraint.dispose(),this.carouselItemNodes.forEach(e=>e.dispose())},this.mutate(n),i=!0}dispose(){this.disposeCarousel(),super.dispose()}reset(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const t=this.animationEnabled;this.animationEnabled=e,this.pageNumberProperty.value=Math.min(this.defaultPageNumber,this.numberOfPagesProperty.value-1),this.animationEnabled=t}scrollToItemVisibleIndex(e){this.pageNumberProperty.set(this.itemVisibleIndexToPageNumber(e))}scrollToItem(e){this.scrollToAlignBox(this.getAlignBoxForItem(e))}scrollToAlignBox(e){const t=this.visibleAlignBoxesProperty.value.indexOf(e);t>=0&&this.scrollToItemVisibleIndex(t)}setItemVisible(e,t){this.getAlignBoxForItem(e).visible=t}getAlignBoxForItem(e){const t=this.alignBoxes[this.items.indexOf(e)];return t}getNodeForItem(e){const t=this.carouselItemNodes[this.items.indexOf(e)];return t}itemVisibleIndexToPageNumber(e){return Math.floor(e/this.itemsPerPage)}getVisibleAlignBoxes(){return _.sortBy(this.alignBoxes.filter(e=>e.visible),e=>this.scrollingNode.children.indexOf(e))}}class py extends G.N52{constructor(e,t){super(t),this.carousel=e}onIndexedNodeIOChildMoved(e){this.carousel.scrollToAlignBox(e)}}class my extends G.dmK{constructor(e,t,i,n,s,r,o,a,l,h,A,d,c,u,g){super(e),this.carousel=e,this.backgroundNode=t,this.foregroundNode=i,this.windowNode=n,this.previousButton=s,this.nextButton=r,this.scrollingNodeContainer=o,this.alignBoxes=a,this.orientation=l,this.scrollingNode=h,this.itemsPerPage=A,this.margin=d,this.alignGroup=c,this.separatorLayer=u,this.separatorOptions=g,[this.backgroundNode,this.foregroundNode,this.windowNode,this.previousButton,this.nextButton,this.scrollingNodeContainer,...this.alignBoxes].forEach(e=>this.addNode(e,!1)),this.separatorLayer&&this.scrollingNode.constraint.finishedLayoutEmitter.addListener(()=>{this.updateSeparators()}),this.updateLayout()}updateSeparators(){const e=this.carousel.getVisibleAlignBoxes(),t=e.length>=2?_.range(1,e.length):[];this.separatorLayer.children=t.map(t=>{const i=(e[t-1][this.orientation.maxSide]+e[t][this.orientation.minSide])/2;return new G.Z0O((0,Y.JA)({[this.orientation.coordinate+"1"]:i,[this.orientation.coordinate+"2"]:i,[this.orientation.opposite.coordinate+"2"]:this.scrollingNode[this.orientation.opposite.size]},this.separatorOptions))})}computeClipArea(){const e=this.orientation,t=this.carousel.getVisibleAlignBoxes();if(0===t.length)return new Q.Z(0,0);{const i=t[this.itemsPerPage-1]||t[t.length-1],n=new Q.Z(i[e.maxSide]-t[0][e.minSide]+2*this.margin,this.scrollingNodeContainer.boundsProperty.value[e.opposite.size]);return this.orientation===xa.Z.HORIZONTAL?n:n.swapped()}}getBackgroundDimension(){let e,t;if(this.orientation===xa.Z.HORIZONTAL){const i=this.nextButton.visible?this.nextButton.width:0,n=this.previousButton.visible?this.previousButton.width:0;e=this.windowNode.width+i+n,t=this.windowNode.height}else{const i=this.nextButton.visible?this.nextButton.height:0,n=this.previousButton.visible?this.previousButton.height:0;e=this.windowNode.width,t=this.windowNode.height+i+n}return new Q.Z(e,t)}layout(){super.layout();const e=this.orientation,t=this.alignGroup.getMaxSizeProperty(e.opposite).value+2*this.margin;this.nextButton[e.opposite.preferredSize]=t,this.previousButton[e.opposite.preferredSize]=t,this.nextButton[e.opposite.centerCoordinate]=this.backgroundNode[e.opposite.centerCoordinate],this.previousButton[e.opposite.centerCoordinate]=this.backgroundNode[e.opposite.centerCoordinate],this.windowNode[e.opposite.centerCoordinate]=this.backgroundNode[e.opposite.centerCoordinate],this.previousButton[e.minSide]=this.backgroundNode[e.minSide],this.nextButton[e.maxSide]=this.backgroundNode[e.maxSide],this.windowNode[e.centerCoordinate]=this.backgroundNode[e.centerCoordinate];const i=this.computeClipArea().toBounds();this.windowNode.clipArea=Ke.bn.bounds(i),this.windowNode.localBounds=i;const n=this.getBackgroundDimension();this.carousel.backgroundWidth=n.width,this.carousel.backgroundHeight=n.height;const s=n.toBounds();this.backgroundNode.rectBounds=s,this.foregroundNode.rectBounds=s,this.separatorLayer&&this.updateSeparators()}}At.register("Carousel",gy);class yy extends G.NBX{constructor(e,t,i){const n=(0,Y.ZP)()({interactive:!1,orientation:"horizontal",dotRadius:3,lineWidth:1,dotSpacing:10,dotTouchAreaDilation:4,dotMouseAreaDilation:4,currentPageFill:"black",currentPageStroke:null,pageFill:"rgb( 200, 200, 200 )",pageStroke:null,tandem:K.Z.REQUIRED,tandemNameSuffix:"PageControl",visiblePropertyOptions:{phetioFeatured:!0}},i),s=new G.$o8({press:t=>{t.currentTarget instanceof fy&&(e.value=t.currentTarget.pageNumber)},tandem:n.tandem.createTandem("pressListener")}),r={lineWidth:n.lineWidth,mouseArea:0===n.dotMouseAreaDilation?null:Ke.bn.circle(0,0,n.dotRadius+n.dotMouseAreaDilation),touchArea:0===n.dotTouchAreaDilation?null:Ke.bn.circle(0,0,n.dotRadius+n.dotTouchAreaDilation),boundsMethod:"unstroked",cursor:n.interactive?"pointer":null,inputListeners:n.interactive?[s]:[]},o=new G.N52({orientation:n.orientation,spacing:n.dotSpacing});let a=[];o.boundsProperty.link(()=>{o.center=Ze.Z.ZERO});const l=e=>{a.forEach(t=>{t.fill=e===t.pageNumber?n.currentPageFill:n.pageFill,t.stroke=e===t.pageNumber?n.currentPageStroke:n.pageStroke})};e.link(l);const h=t=>{a=_.range(0,t).map(e=>new fy(e,n.dotRadius,r)),o.children=a,l(e.value)};t.link(h),n.children=[o],super(n),this.disposePageControl=()=>{s.dispose(),t.unlink(h),e.unlink(l)}}dispose(){this.disposePageControl(),super.dispose()}}class fy extends G.Cdc{constructor(e,t,i){super(t,i),this.pageNumber=e}}At.register("PageControl",yy);class wy extends Be.Z{}_defineProperty(wy,"SELECTED",new(b=wy)),_defineProperty(wy,"DESELECTED",new b),_defineProperty(wy,"OVER",new b),_defineProperty(wy,"PRESSED",new b),_defineProperty(wy,"enumeration",new we.Z(b)),At.register("RadioButtonInteractionState",wy);class By extends M.Fo{constructor(e,t,i){super([e.focusedProperty,e.overProperty,e.looksOverProperty,e.looksPressedProperty,t],(e,t,n,s,r)=>{const o=r===i;return!n||s||o?(t||e)&&s?wy.PRESSED:o?wy.SELECTED:wy.DESELECTED:wy.OVER},{valueType:wy})}}At.register("RadioButtonInteractionStateProperty",By);class Py extends Ui{constructor(e,t,i){const n=(0,Y.ZP)()({soundPlayer:null,baseColor:Fi.LIGHT_BLUE,buttonAppearanceStrategy:Py.FlatAppearanceStrategy,buttonAppearanceStrategyOptions:{overButtonOpacity:.8,overStroke:null,selectedStroke:G.Ilk.BLACK,selectedLineWidth:1.5,selectedButtonOpacity:1,deselectedStroke:new G.Ilk(50,50,50),deselectedLineWidth:1,deselectedButtonOpacity:.6},contentAppearanceStrategy:Py.ContentAppearanceStrategy,contentAppearanceStrategyOptions:{overContentOpacity:.8,selectedContentOpacity:1,deselectedContentOpacity:.6},tagName:"input",inputType:"radio",labelTagName:"label",containerTagName:"li",appendDescription:!0,appendLabel:!0,tandem:K.Z.REQUIRED,tandemNameSuffix:"Button",phetioReadOnly:z.Z.DEFAULT_OPTIONS.phetioReadOnly},i),s=new Ni({enabledPropertyOptions:n.enabledPropertyOptions,tandem:n.tandem,phetioEnabledPropertyInstrumented:n.phetioEnabledPropertyInstrumented}),r=new By(s,e,t);super(s,r,n),this.interactionStateProperty=r,e.value===t&&this.setPDOMAttribute("checked","checked");const o=e=>{this.pdomChecked=e===t};e.link(o),this.property=e,this.value=t,this.firedEmitter=new S.Z({tandem:n.tandem.createTandem("firedEmitter"),phetioDocumentation:"Emits when the radio button is pressed",phetioReadOnly:n.phetioReadOnly,phetioEventType:q.Z.USER}),this.firedEmitter.addListener(()=>e.set(t)),s.downProperty.link(e=>{e||!s.overProperty.get()&&!s.focusedProperty.get()||s.interrupted||(this.fire(),this.voicingSpeakFullResponse({hintResponse:null}))});const a=n.soundPlayer||Oi,l=()=>{a.play()};s.produceSoundEmitter.addListener(l),this.disposeRectangularRadioButton=()=>{e.unlink(o),this.firedEmitter.dispose(),s.produceSoundEmitter.removeListener(l),s.dispose(),this.interactionStateProperty.dispose()}}dispose(){this.disposeRectangularRadioButton(),super.dispose()}fire(){this.buttonModel.enabledProperty.get()&&(this.firedEmitter.emit(),this.buttonModel.produceSoundEmitter.emit())}}_defineProperty(Py,"TANDEM_NAME_SUFFIX","RadioButton"),_defineProperty(Py,"FlatAppearanceStrategy",class{constructor(e,t,i,n){const s=(0,Y.ZP)()({stroke:i,lineWidth:1,deselectedButtonOpacity:1,deselectedLineWidth:1,deselectedStroke:"gray",overButtonOpacity:.8,overFill:null,overLineWidth:0,overStroke:null,selectedButtonOpacity:1,selectedLineWidth:1,selectedStroke:"black"},n),r=new G.M4p(i,{luminanceFactor:-.4}),o=new G.M4p(s.overFill||i,{luminanceFactor:n&&n.overFill?0:.4}),a=new G.M4p(s.overStroke||s.deselectedStroke,{luminanceFactor:n&&n.overStroke?0:-.4});function l(t){switch(t){case wy.SELECTED:e.fill=i,e.stroke=s.selectedStroke,e.lineWidth=s.selectedLineWidth,e.opacity=s.selectedButtonOpacity;break;case wy.DESELECTED:e.fill=i,e.stroke=s.deselectedStroke,e.lineWidth=s.deselectedLineWidth,e.opacity=s.deselectedButtonOpacity;break;case wy.OVER:e.fill=o,e.stroke=a,e.lineWidth=Math.max(s.overLineWidth,s.deselectedLineWidth),e.opacity=s.overButtonOpacity;break;case wy.PRESSED:e.fill=r,e.stroke=s.deselectedStroke,e.lineWidth=s.deselectedLineWidth,e.opacity=s.selectedButtonOpacity;break;default:throw new Error("unsupported interactionState: "+t)}}this.maxLineWidth=Math.max(s.selectedLineWidth,s.deselectedLineWidth,s.overLineWidth),e.cachedPaints=[i,o,r,a,s.selectedStroke,s.deselectedStroke],t.link(l),this.disposeFlatAppearanceStrategy=()=>{t.hasListener(l)&&t.unlink(l),a.dispose(),o.dispose(),r.dispose()}}dispose(){this.disposeFlatAppearanceStrategy()}}),_defineProperty(Py,"ContentAppearanceStrategy",class{constructor(e,t,i){const n=(0,Y.ZP)()({deselectedContentOpacity:1,overContentOpacity:1,selectedContentOpacity:1},i);function s(t){if(null!==e)switch(t){case wy.DESELECTED:e.opacity=n.deselectedContentOpacity;break;case wy.OVER:e.opacity=n.overContentOpacity;break;case wy.SELECTED:e.opacity=n.selectedContentOpacity;break;case wy.PRESSED:e.opacity=n.deselectedContentOpacity;break;default:throw new Error("unsupported state: "+t)}}t.link(s),this.disposeContentAppearanceStrategy=()=>{t.hasListener(s)&&t.unlink(s)}}dispose(){this.disposeContentAppearanceStrategy()}}),At.register("RectangularRadioButton",Py);let Dy=0;class Cy extends G.N52{constructor(e,t,i){const n=(0,Y.ZP)()({soundPlayers:null,labelAlign:"bottom",labelSpacing:0,a11yHighlightXDilation:0,a11yHighlightYDilation:0,touchAreaXDilation:0,touchAreaYDilation:0,mouseAreaXDilation:0,mouseAreaYDilation:0,radioButtonOptions:{baseColor:Fi.LIGHT_BLUE,cornerRadius:4,xMargin:5,yMargin:5,xAlign:"center",yAlign:"center",buttonAppearanceStrategyOptions:{selectedStroke:"black",selectedLineWidth:1.5,selectedButtonOpacity:1,deselectedStroke:new G.Ilk(50,50,50),deselectedLineWidth:1,deselectedButtonOpacity:.6,overButtonOpacity:.8},contentAppearanceStrategy:Py.ContentAppearanceStrategy,contentAppearanceStrategyOptions:{overContentOpacity:.8,selectedContentOpacity:1,deselectedContentOpacity:.6}},spacing:10,orientation:"vertical",disabledOpacity:G.iaM.DISABLED_OPACITY,tandem:K.Z.REQUIRED,tandemNameSuffix:"ButtonGroup",visiblePropertyOptions:{phetioFeatured:!0},phetioEnabledPropertyInstrumented:!0,phetioFeatured:!0,tagName:"ul",labelTagName:"h3",ariaRole:"radiogroup",groupFocusHighlight:!0},i);Dy++;const s=new Map,r=Math.max(n.radioButtonOptions.buttonAppearanceStrategyOptions.selectedLineWidth,n.radioButtonOptions.buttonAppearanceStrategyOptions.deselectedLineWidth),o=Yt(t,n.tandem),a=_.maxBy(o,e=>e.width).width,l=_.maxBy(o,e=>e.height).height,h=[],A=[],d=[],c=n.radioButtonOptions.xMargin,u=n.radioButtonOptions.yMargin;for(let y=0;ye.layoutNode.width).layoutNode.width,p=_.maxBy(A,e=>e.layoutNode.height).layoutNode.height;A.forEach(e=>{e.radioButton.touchArea=Ke.bn.rectangle(-n.touchAreaXDilation-r/2,-n.touchAreaYDilation-r/2,g+2*n.touchAreaXDilation,p+2*n.touchAreaYDilation),e.radioButton.mouseArea=Ke.bn.rectangle(-n.mouseAreaXDilation-r/2,-n.mouseAreaYDilation-r/2,g+2*n.mouseAreaXDilation,p+2*n.mouseAreaYDilation);const t=G.Nqr.getDilationCoefficient(e.layoutNode);e.radioButton.focusHighlight=Ke.bn.rectangle(-n.a11yHighlightXDilation-r/2-t,-n.a11yHighlightYDilation-r/2-t,g+2*(n.a11yHighlightXDilation+t),p+2*(n.a11yHighlightYDilation+t))}),super(n),this.radioButtonMap=s,this.addAriaLabelledbyAssociation({thisElementName:G.Grz.PRIMARY_SIBLING,otherNode:this,otherElementName:G.Grz.LABEL_SIBLING});const m={keydown:e=>e.pointer.reserveForKeyboardDrag()};this.addInputListener(m),this.addLinkedElement(e,{tandemName:"property"}),this.disposeRadioButtonGroup=()=>{this.removeInputListener(m),h.forEach(e=>e.dispose()),d.forEach(e=>e.dispose&&e.dispose()),o.forEach(e=>e.dispose())}}getButtonForValue(e){const t=this.radioButtonMap.get(e);return t}dispose(){this.radioButtonMap.clear(),this.disposeRadioButtonGroup(),super.dispose()}}At.register("RectangularRadioButtonGroup",Cy);var Ey=i(9196);const by=new go.Z,vy=e=>{if(!by.has(e)){const t=e.join(",");by.set(e,new hs.Z(`StringUnionIO<${t}>`,{documentation:"An IOType validating on specific string values.",isValidValue:t=>e.includes(t),toStateObject:_.identity,fromStateObject:_.identity,stateSchema:Ey.Z.asValue(`StringUnionIO<${t}>`,{isValidValue:t=>e.includes(t)})}))}return by.get(e)};jr.Z.register("StringUnionIO",vy);const Vy=vy;class Iy extends x.Z{constructor(e,t){super(e,(0,Y.ZP)()({phetioValueType:Vy(t.validValues)},t))}}Ge.Z.register("StringUnionProperty",Iy);const My=(e,t)=>class extends(yl(e,t)){constructor(){for(var e=arguments.length,i=new Array(e),n=0;n{if(this.enabledProperty.get()&&G.ntP.isRangeKey(e.domEvent)){const t=e.domEvent;t.preventDefault(),t.metaKey||this._callbackTimer.isRunning()||(this._accessibleNumberSpinnerHandleKeyDown(e),o=this._accessibleNumberSpinnerHandleKeyDown.bind(this,e),a=t,this._callbackTimer.addCallback(o),this._callbackTimer.start())}},keyup:e=>{const t=G.ntP.getEventCode(e.domEvent);G.ntP.isRangeKey(e.domEvent)&&(a&&t===G.ntP.getEventCode(a)&&(this._emitKeyState(e.domEvent,!1),this._callbackTimer.stop(!1),this._callbackTimer.removeCallback(o),o=null,a=null),this.handleKeyUp(e))},blur:e=>{o&&(this._emitKeyState(a,!1),this._callbackTimer.stop(!1),this._callbackTimer.removeCallback(o)),this.handleBlur(e)},input:this.handleInput.bind(this),change:this.handleChange.bind(this)};this.addInputListener(l),this._disposeAccessibleNumberSpinner=()=>{this._callbackTimer.dispose(),this.incrementDownEmitter.dispose(),this.decrementDownEmitter.dispose(),this.removeInputListener(l)}}_accessibleNumberSpinnerHandleKeyDown(e){this.handleKeyDown(e),this._emitKeyState(e.domEvent,!0)}_emitKeyState(e,t){(0,qt.Z)(e,{valueType:Event}),G.ntP.isAnyKeyEvent(e,[G.ntP.KEY_UP_ARROW,G.ntP.KEY_RIGHT_ARROW])?this.incrementDownEmitter.emit(t):G.ntP.isAnyKeyEvent(e,[G.ntP.KEY_DOWN_ARROW,G.ntP.KEY_LEFT_ARROW])&&this.decrementDownEmitter.emit(t)}dispose(){this._disposeAccessibleNumberSpinner(),super.dispose()}};At.register("AccessibleNumberSpinner",My);const Sy=My,Ty=["up","down","over","out"];class xy extends(Sy(G.NBX,0)){constructor(e,t,i){const n=(0,Y.ZP)()({color:new G.Ilk(0,0,255),backgroundColor:"white",cornerRadius:6,xMargin:3,yMargin:3,decimalPlaces:0,font:new it(24),incrementFunction:e=>e+1,decrementFunction:e=>e-1,timerDelay:400,timerInterval:100,noValueString:kl.NO_VALUE,align:"center",touchAreaXDilation:10,touchAreaYDilation:10,mouseAreaXDilation:0,mouseAreaYDilation:5,backgroundStroke:"gray",backgroundLineWidth:.5,arrowHeight:6,arrowYSpacing:3,arrowStroke:"black",arrowLineWidth:.25,valueMaxWidth:null,onInput:_.noop,incrementEnabledFunction:(e,t)=>null!=e&&enull!=e&&e>t.min,disabledOpacity:G.iaM.DISABLED_OPACITY,valueChangedSoundPlayer:nl,boundarySoundPlayer:tl,cursor:"pointer",valueProperty:e,enabledRangeProperty:t,pageKeyboardStep:2,voicingObjectResponse:()=>e.value,tandem:K.Z.REQUIRED,tandemNameSuffix:"Picker",phetioReadOnly:z.Z.DEFAULT_OPTIONS.phetioReadOnly,visiblePropertyOptions:{phetioFeatured:!0},phetioEnabledPropertyInstrumented:!0,phetioFeatured:!0},i);n.formatValue||(n.formatValue=e=>R.Z.toFixed(e,n.decimalPlaces));let s=null;void 0===n.pressedColor&&(s=new G.M4p(n.color),n.pressedColor=new M.ZP([s],e=>e.darkerColor()));let r=e.value;const o=n.onInput;n.onInput=()=>{o(),e.value!==r&&(e.value===t.get().max||e.value===t.get().min?n.boundarySoundPlayer.play():n.valueChangedSoundPlayer.play()),r=e.value};const a=n.incrementFunction(e.get())-e.get();n.keyboardStep=a,n.shiftKeyboardStep=a;const l=_.pick(n,G.NBX.REQUIRES_BOUNDS_OPTION_KEYS);super(_.omit(n,G.NBX.REQUIRES_BOUNDS_OPTION_KEYS));const h=new Iy("up",{validValues:Ty}),A=new Iy("down",{validValues:Ty}),d=new M.ZP([e,t],n.incrementEnabledFunction),c=new M.ZP([e,t],n.decrementEnabledFunction),u=new G.xvT("",{font:n.font,pickable:!1});let g=t.get().min;const p=[];for(;g<=t.get().max;)p.push(g),g=n.incrementFunction(g);let m=Math.max.apply(null,p.map(e=>(u.string=n.formatValue(e),u.width)));null!==n.valueMaxWidth&&(m=Math.min(m,n.valueMaxWidth));const y=m+2*n.xMargin,f=u.height+2*n.yMargin,w=n.cornerRadius;u.maxWidth=m;const B=new G.y$t((new Ke.bn).arc(w,w,w,Math.PI,3*Math.PI/2,!1).arc(y-w,w,w,-Math.PI/2,0,!1).lineTo(y,f/2+1).lineTo(0,f/2+1).close(),{pickable:!1}),P=new G.y$t((new Ke.bn).arc(y-w,f-w,w,0,Math.PI/2,!1).arc(w,f-w,w,Math.PI/2,Math.PI,!1).lineTo(0,f/2).lineTo(y,f/2).close(),{pickable:!1}),D=new G.AeJ(0,0,y,f,w,w,{pickable:!1,stroke:n.backgroundStroke,lineWidth:n.backgroundLineWidth}),C=new Q.Z(.5*y,n.arrowHeight),E={stroke:n.arrowStroke,lineWidth:n.arrowLineWidth,pickable:!1};this.incrementArrow=new G.y$t((new Ke.bn).moveTo(C.width/2,0).lineTo(C.width,C.height).lineTo(0,C.height).close(),E),this.incrementArrow.centerX=B.centerX,this.incrementArrow.bottom=B.top-n.arrowYSpacing,this.decrementArrow=new G.y$t((new Ke.bn).moveTo(C.width/2,C.height).lineTo(0,0).lineTo(C.width,0).close(),E),this.decrementArrow.centerX=P.centerX,this.decrementArrow.top=P.bottom+n.arrowYSpacing;const b=new G.NBX({children:[B,this.incrementArrow]});b.addChild(new G.AeJ(b.localBounds));const v=new G.NBX({children:[P,this.decrementArrow]});v.addChild(new G.AeJ(v.localBounds)),this.addChild(b),this.addChild(v),this.addChild(D),this.addChild(u),b.touchArea=Ke.bn.rectangle(b.left-n.touchAreaXDilation/2,b.top-n.touchAreaYDilation,b.width+n.touchAreaXDilation,b.height+n.touchAreaYDilation),v.touchArea=Ke.bn.rectangle(v.left-n.touchAreaXDilation/2,v.top,v.width+n.touchAreaXDilation,v.height+n.touchAreaYDilation),b.mouseArea=Ke.bn.rectangle(b.left-n.mouseAreaXDilation/2,b.top-n.mouseAreaYDilation,b.width+n.mouseAreaXDilation,b.height+n.mouseAreaYDilation),v.mouseArea=Ke.bn.rectangle(v.left-n.mouseAreaXDilation/2,v.top,v.width+n.mouseAreaXDilation,v.height+n.mouseAreaYDilation);const V={up:n.color,over:n.color,down:n.pressedColor,out:n.color,disabled:"rgb(176,176,176)"},I=ky(n.color,n.backgroundColor,n.color,f),S=ky(n.pressedColor,n.backgroundColor,n.pressedColor,f),T={up:n.backgroundColor,over:I,down:S,out:S,disabled:n.backgroundColor},x={fireOnHold:!0,fireOnHoldDelay:n.timerDelay,fireOnHoldInterval:n.timerInterval};this.incrementInputListener=new Oy(h,(0,Y.JA)({tandem:n.tandem.createTandem("incrementInputListener"),fire:i=>{e.set(Math.min(n.incrementFunction(e.get()),t.get().max)),n.onInput(i),this.voicingSpeakFullResponse({nameResponse:null,hintResponse:null})}},x)),b.addInputListener(this.incrementInputListener),this.decrementInputListener=new Oy(A,(0,Y.JA)({tandem:n.tandem.createTandem("decrementInputListener"),fire:i=>{e.set(Math.max(n.decrementFunction(e.get()),t.get().min)),n.onInput(i),this.voicingSpeakFullResponse({nameResponse:null,hintResponse:null})}},x)),v.addInputListener(this.decrementInputListener),d.link(e=>{!e&&this.incrementInputListener.interrupt(),b.pickable=e}),c.link(e=>{!e&&this.decrementInputListener.interrupt(),v.pickable=e});const O=e=>{if(null==e)u.string=n.noValueString,u.x=(y-u.width)/2;else if(u.string=n.formatValue(e),"center"===n.align)u.centerX=B.centerX;else if("right"===n.align)u.right=B.right-n.xMargin;else{if("left"!==n.align)throw new Error("unsupported value for options.align: "+n.align);u.left=B.left+n.xMargin}u.centerY=f/2};e.link(O),Ce.Z.multilink([h,d],(e,t)=>{Ly(e,t,B,this.incrementArrow,T,V)}),Ce.Z.multilink([A,c],(e,t)=>{Ly(e,t,P,this.decrementArrow,T,V)});const k=this.localBounds.dilated(G.Nqr.getDilationCoefficient(this));this.focusHighlight=new G.Nqr(Ke.bn.roundedRectangleWithRadii(k.minX,k.minY,k.width,k.height,{topLeft:n.cornerRadius,topRight:n.cornerRadius,bottomLeft:n.cornerRadius,bottomRight:n.cornerRadius})),this.incrementDownEmitter.addListener(e=>{h.value=e?"down":"up"}),this.decrementDownEmitter.addListener(e=>{A.value=e?"down":"up"}),this.addLinkedElement(e,{tandemName:"valueProperty"}),this.mutate(l),this.disposeNumberPicker=()=>{s&&s.dispose(),d.dispose(),c.dispose(),e.hasListener(O)&&e.unlink(O)}}static createIcon(e,t){const i=(0,Y.ZP)()({highlightIncrement:!1,highlightDecrement:!1,range:new Sa.Z(e-1,e+1),numberPickerOptions:{pickable:!1,tandem:K.Z.OPT_OUT}},t),n=new xy(new T.Z(e),new x.Z(i.range),i.numberPickerOptions);return n.removeFromPDOM(),i.highlightDecrement&&(n.decrementInputListener.isOverProperty.value=!0),i.highlightIncrement&&(n.incrementInputListener.isOverProperty.value=!0),n}dispose(){this.disposeNumberPicker(),super.dispose()}setArrowsVisible(e){e||(this.incrementInputListener.interrupt(),this.decrementInputListener.interrupt()),this.incrementArrow.visible=e,this.decrementArrow.visible=e}}class Oy extends G.eMb{constructor(e,t){super(t),Ce.Z.multilink([this.isOverProperty,this.isPressedProperty],(t,i)=>{e.set(t&&!i?"over":t&&i?"down":t||i?"out":"up")})}}function ky(e,t,i,n){return new G.oas(0,0,0,n).addColorStop(0,e).addColorStop(.5,t).addColorStop(1,i)}function Ly(e,t,i,n,s,r){if(t)if(n.stroke="black","up"===e)i.fill=s.up,n.fill=r.up;else if("over"===e)i.fill=s.over,n.fill=r.over;else if("down"===e)i.fill=s.down,n.fill=r.down;else{if("out"!==e)throw new Error("unsupported buttonState: "+e);i.fill=s.out,n.fill=r.out}else i.fill=s.disabled,n.fill=r.disabled,n.stroke=r.disabled}At.register("NumberPicker",xy);const Qy={font:new it(32)},Ry=(new Ke.bn).lineTo(.45,0).lineTo(.45,.5).lineTo(.65,.5).lineTo(.35,1).lineTo(.05,.5).lineTo(.25,.5).lineTo(.25,.2).lineTo(0,.2).lineTo(0,0).transformed(Ht.Z.scale(28));class Ny extends G.BET{constructor(e,t){t=(0,Ei.Z)({spacing:15,increment:100,buttonBaseColor:G.Ilk.BLUE,arrowDirection:"down",numberPickerRangeProperty:new x.Z(new Sa.Z(-200,200)),numberPickerOptions:{yMargin:10,arrowHeight:10,color:G.Ilk.BLACK,font:new it(26),timerDelay:300,timerInterval:30}},t);const i=new Cy(e.operationTypeProperty,[{value:Ju.ADDITION,createNode:()=>new G.xvT(kl.PLUS,Qy)},{value:Ju.SUBTRACTION,createNode:()=>new G.xvT(kl.MINUS,Qy)}],{orientation:"vertical",spacing:5,touchAreaXDilation:4,touchAreaYDilation:2.5,radioButtonOptions:{baseColor:G.Ilk.WHITE,xMargin:8,yMargin:0,buttonAppearanceStrategyOptions:{selectedLineWidth:2.5}}}),n=new xy(e.amountProperty,t.numberPickerRangeProperty,(0,Ei.Z)({incrementFunction:e=>e+t.increment,decrementFunction:e=>e-t.increment},t.numberPickerOptions));let s;s="down"===t.arrowDirection?Ry:Ry.transformed(Ht.Z.scale(1,-1));const r=new G.y$t(s,{fill:G.Ilk.BLACK}),o=new Ic({enabledProperty:M.ZP.not(e.isActiveProperty),listener:()=>{e.isActiveProperty.set(!0)},content:r,radius:30,xMargin:16,yMargin:16,baseColor:t.buttonBaseColor});super((0,Ei.Z)({children:[i,n,o]},t)),this.controlledOperation=e}reset(){this.controlledOperation.reset()}}Gu.register("OperationEntryControl",Ny);const Yy=Ny,Fy=new G.Ilk(153,206,255),Gy=ju.Z.byKeys(["ABOVE","BELOW"]);class qy extends G.NBX{constructor(e,t){t=(0,Ei.Z)({themeColor:Fy},t),t=(0,Ei.Z)({entryControl1Options:{buttonBaseColor:t.themeColor},entryControl2Options:{buttonBaseColor:t.themeColor},pageControlPosition:Gy.BELOW},t);const i=[{createNode:i=>new Yy(e.operations[0],t.entryControl1Options)},{createNode:i=>new Yy(e.operations[1],t.entryControl2Options)}],n=new gy(i,{orientation:"horizontal",itemsPerPage:1,margin:10,fill:new G.Ilk(255,255,255,.5),stroke:t.themeColor,buttonOptions:{baseColor:t.themeColor,stroke:new G.Ilk(255,255,255,.1),disabledColor:new G.Ilk(255,255,255,.1)}}),s=new yy(n.pageNumberProperty,n.numberOfPagesProperty,{orientation:"horizontal",interactive:!0,centerX:n.centerX});t.pageControlPosition===Gy.BELOW?s.top=n.bottom+10:s.bottom=n.top-10,super((0,Ei.Z)({children:[n,s],stroke:t.themeColor,buttonColor:t.themeColor},t)),this.selectedPageProperty=n.pageNumberProperty,this.operationEntryControls=i,this.carousel=n,this.numberLine=e}showOperationWithEndpoint(e){const t=this.numberLine.endpoints.indexOf(e);t>=0&&this.selectedPageProperty.set(t)}reset(){this.carousel.pageNumberProperty.reset(),this.operationEntryControls.forEach(e=>this.carousel.getNodeForItem(e).reset())}}qy.PageControlPosition=Gy,Gu.register("OperationEntryCarousel",qy);const Hy=qy;class Zy extends M.WZ{constructor(e){super([e.looksOverProperty,e.looksPressedProperty],(e,t)=>e&&!t?ki.OVER:t?ki.PRESSED:ki.IDLE,{valueType:ki})}}At.register("MomentaryButtonInteractionStateProperty",Zy);class Uy extends Ni{constructor(e,t,i,n){super((0,Y.ZP)()({tandem:K.Z.REQUIRED,phetioReadOnly:z.Z.DEFAULT_OPTIONS.phetioReadOnly},n));const s=n=>{n?this.enabledProperty.get()&&i.set(t):i.set(e)};this.downProperty.lazyLink(s);const r=e=>{this.downProperty.set(e===t)};i.link(r),this.disposeMomentaryButtonModel=()=>{this.downProperty.unlink(s),i.unlink(r)}}dispose(){this.disposeMomentaryButtonModel(),super.dispose()}}At.register("MomentaryButtonModel",Uy);class Ky extends Ui{constructor(e,t,i,n){const s=(0,Y.ZP)()({tandem:K.Z.REQUIRED,tandemNameSuffix:"Button"},n),r=new Uy(t,i,e,s);super(r,new Zy(r),s),this.disposeRectangularMomentaryButton=()=>{r.dispose()}}dispose(){this.disposeRectangularMomentaryButton(),super.dispose()}}At.register("RectangularMomentaryButton",Ky);const Wy=new Q.Z(280,70),zy=new G.Ilk(16645526);class jy extends rm{constructor(e,t){const i=t.showTitleWhenExpanded?22:15;t=(0,Ei.Z)({contentXMargin:i,titleNode:new G.xvT(og.NET_WORTH_WITH_CURRENCY_STRING_PROPERTY,{font:new it(18),maxWidth:.9*Wy.width}),numericalExpressionOptions:{top:0,maxWidth:Wy.width}},Mg.ACCORDION_BOX_COMMON_OPTIONS,t);const n=new M.ZP([e.operations[0].isActiveProperty,e.operations[0].amountProperty,e.operations[1].isActiveProperty,e.operations[1].amountProperty],(e,t,i,n)=>e&&t<0||i&&n<0),s=new V.Z(!1),r=new Ky(s,!1,!0,{content:new G.xvT(Hu.simplifyStringProperty,{font:new it(16),maxWidth:150}),baseColor:zy,enabledProperty:n,xMargin:5,yMargin:3.5,touchAreaXDilation:8,touchAreaYDilation:8}),o=new M.ZP([e.operations[0].isActiveProperty,e.operations[1].isActiveProperty],(e,t)=>e||t),a=new V.Z(!1),l=new Ky(a,!1,!0,{content:new G.xvT(kl.EQUAL_TO,{font:new it(20)}),baseColor:zy,enabledProperty:o,xMargin:5,yMargin:1,touchAreaXDilation:8,touchAreaYDilation:8}),h=new G.BET({children:[r,l],spacing:20,centerX:Wy.width/2,bottom:Wy.height}),A=new Xy(e,s,a,t.numericalExpressionOptions),d=()=>{A.centerX=Wy.width/2,A.top=0};d(),A.updatedEmitter.addListener(d);const c=new G.SHm({children:[A,h],spacing:12});super(new G.DbO(c,{alignBounds:new L.Z(0,0,Wy.width,Wy.height)}),t),this.simplifyProperty=s}reset(){this.simplifyProperty.reset(),this.expandedProperty.reset()}}class Xy extends G.NBX{constructor(e,t,i,n){n=(0,Ei.Z)({font:new it(30),showCurrencyWhenEvaluated:!1},n);const s=new T.Z(e.getCurrentEndValue()),r=new M.ZP([s],e=>e<0?kl.MINUS:"");let o;o=n.showCurrencyWhenEvaluated?new gs(Hu.currencyValuePatternStringProperty,{sign:r,currencyUnits:Hu.currencyUnitsStringProperty,value:s},{maps:{value:e=>Math.abs(e)}}):new gs(Hu.currencyValuePatternStringProperty,{sign:r,currencyUnits:"",value:s},{maps:{value:e=>Math.abs(e)}});const a=new G.xvT(o,n),l=new G.xvT("",n);super({children:[a,l],excludeInvisibleChildrenFromBounds:!0}),this.updatedEmitter=new S.Z;const h=()=>{const n=e.getActiveOperations();if(i.value||0===n.length)s.set(e.getCurrentEndValue()),a.visible=!0,l.visible=!1;else{a.visible=!1,l.visible=!0;const i=[];if(i.push(e.startingValueProperty.value),n.forEach((e,t)=>{(t>0||i.length>0)&&i.push(e.operationTypeProperty.value),i.push(e.amountProperty.value)}),t.value)for(let e=1;e{if("number"==typeof e)e<0&&(s+=kl.MINUS),s+=Math.abs(e);else{const t=e===Ju.ADDITION?kl.PLUS:kl.MINUS;s+=` ${t} `}}),l.string=s}this.updatedEmitter.emit()};e.startingValueProperty.link(h),e.operations.forEach(e=>{Ce.Z.multilink([e.isActiveProperty,e.amountProperty,e.operationTypeProperty],h)}),i.lazyLink(h),t.lazyLink(h)}}Gu.register("NumericalExpressionAccordionBox",jy);const Jy=jy,_y={doubleHead:!0,tailWidth:1};class $y extends Cy{constructor(e,t){super(e,[{value:!1,createNode:()=>ef()},{value:!0,createNode:()=>new G.SHm({children:[ef(),ef()],spacing:10})}],t=(0,Ei.Z)({orientation:"horizontal",spacing:12,touchAreaXDilation:2,touchAreaYDilation:2,radioButtonOptions:{xMargin:5,yMargin:10,baseColor:"white",buttonAppearanceStrategyOptions:{selectedLineWidth:2,deselectedLineWidth:.5,deselectedButtonOpacity:.5}}},t))}}const ef=()=>new ap(-20,0,20,0,_y);Gu.register("SingleDualNumberLineSelector",$y);const tf=$y,nf=new G.Ilk(15056373),sf={arrowDirection:"up"};class rf extends dr{constructor(e,t){super({tandem:t});const i=[new Tg(e.primaryNumberLine.showOperationLabelsProperty,Hu.operationLabelsStringProperty),new Tg(e.primaryNumberLine.showPointLabelsProperty,Hu.pointLabelsStringProperty),new Tg(e.primaryNumberLine.showTickMarksProperty,Hu.tickMarksStringProperty)],n=new Og(i);this.addChild(n);const s=new of(e.primaryNumberLine,e.primaryLineInitialValuePointController,e.primaryNumberLinePointControllers,this.layoutBounds,{numericalExpressionAccordionBoxOptions:{top:this.layoutBounds.minY+Mg.SCREEN_VIEW_Y_MARGIN},operationEntryCarouselOptions:{top:this.layoutBounds.minY+Mg.SCREEN_VIEW_Y_MARGIN}});this.addChild(s);const r=new G.NBX({visible:!1,opacity:0});this.addChild(r);const o=new of(e.secondaryNumberLine,e.secondaryLineInitialValuePointController,e.secondaryNumberLinePointControllers,this.layoutBounds,{numericalExpressionAccordionBoxOptions:{bottom:this.layoutBounds.maxY-Mg.SCREEN_VIEW_Y_MARGIN},operationEntryCarouselOptions:{bottom:this.layoutBounds.maxY-Mg.SCREEN_VIEW_Y_MARGIN,themeColor:nf,entryControl1Options:sf,entryControl2Options:sf,pageControlPosition:Hy.PageControlPosition.ABOVE}});r.addChild(o);const a=new Kg({listener:()=>{this.interruptSubtreeInput(),s.reset(),o.reset(),e.reset()},right:this.layoutBounds.maxX-Mg.SCREEN_VIEW_X_MARGIN,bottom:this.layoutBounds.maxY-Mg.SCREEN_VIEW_Y_MARGIN,tandem:t.createTandem("resetAllButton")});this.addChild(a);const l=new tf(e.secondNumberLineVisibleProperty,{left:n.left,bottom:a.centerY});this.addChild(l);let h=null;e.secondNumberLineVisibleProperty.lazyLink(e=>{const t=e?1:0;r.opacity!==t&&(h&&h.stop(),h=new Pg({duration:.5,from:r.opacity,to:t,easing:yg.CUBIC_IN_OUT,setValue:e=>{1===r.opacity&&e<1&&(r.interruptSubtreeInput(),r.pickable=!1),r.opacity=e,e>0&&!r.visible?r.visible=!0:0===e&&r.visible&&(r.visible=!1)}}),h.start(),h.endedEmitter.addListener(()=>{1===r.opacity&&(r.pickable=!0),h=null}))}),this.addChild(new Km(e.primaryNumberLine.displayedRangeProperty,Hm.NUMBER_LINE_RANGES,this,{left:l.left,bottom:l.top-12})),e.primaryNumberLine.displayedRangeProperty.link(t=>{e.secondaryNumberLine.displayedRangeProperty.set(t)})}}class of extends G.NBX{constructor(e,t,i,n,s){s=(0,Ei.Z)({numericalExpressionAccordionBoxOptions:{titleNode:new G.xvT(Hu.numericalExpressionStringProperty,{font:new it(18),maxWidth:250}),centerX:n.centerX},operationEntryCarouselOptions:{entryControl1Options:{increment:1},entryControl2Options:{increment:1},right:n.maxX-og.OPERATION_ENTRY_CAROUSEL_LEFT_INSET}},s),super();const r=new G.NBX;this.addChild(r);const o=new Ay(e,t,i,n,{numberLineNodeOptions:{numberLineOperationNodeOptions:{operationLabelFont:new it(22)}}});this.addChild(o),this.numericalExpressionAccordionBox=new Jy(e,s.numericalExpressionAccordionBoxOptions),this.addChild(this.numericalExpressionAccordionBox),this.operationEntryCarousel=new Hy(e,s.operationEntryCarouselOptions),this.addChild(this.operationEntryCarousel);const a=new sy({iconWidth:og.ERASER_BUTTON_ICON_WIDTH,right:n.maxX-og.ERASER_BUTTON_INSET,touchAreaXDilation:8,touchAreaYDilation:8,listener:()=>{o.interruptSubtreeInput(),e.deactivateAllOperations(),this.operationEntryCarousel.reset(),e.operations.forEach(e=>e.amountProperty.set(0))}});this.addChild(a),e.operations.forEach(t=>{t.isActiveProperty.link(()=>{a.enabled=e.getActiveOperations().length>0})}),e.centerPositionProperty.link(e=>{a.centerY=e.y}),e.residentPoints.addItemAddedListener(t=>{const i=e=>{e&&this.operationEntryCarousel.showOperationWithEndpoint(t)};t.isDraggingProperty.lazyLink(i),e.residentPoints.addItemRemovedListener((function n(s){s===t&&(s.isDraggingProperty.unlink(i),e.residentPoints.removeItemRemovedListener(n))}))})}reset(){this.operationEntryCarousel.reset(),this.numericalExpressionAccordionBox.reset()}}Gu.register("NLOGenericScreenView",rf);const af=rf;class lf extends Es{constructor(e){super(()=>new Hm(e.createTandem("model")),t=>new af(t,e.createTandem("view")),{name:Hu.screen.genericStringProperty,backgroundColorProperty:new x.Z("#f3fffe"),homeScreenIcon:new cs(new G.Eep(Tm),{maxIconWidthProportion:1,maxIconHeightProportion:1}),tandem:e})}}Gu.register("NLOGenericScreen",lf);const hf=lf,Af=new Q.Z(122,300);class df{constructor(e){this.netWorthProperty=new T.Z(0),this.netWorthAccordionBoxExpandedProperty=new V.Z(!0,{tandem:e.createTandem("netWorthAccordionBoxExpandedProperty")}),this.numberLine=new ug(og.LAYOUT_BOUNDS.center.minusXY(0,110),{initialDisplayedRange:og.NET_WORTH_RANGE,tickMarksInitiallyVisible:!0,preventOverlap:!1,automaticallyDeactivateOperations:!0,widthInModelSpace:og.NUMBER_LINE_WIDTH});const t=this.numberLine.operations[0];this.balanceSheetItems=[new Cg(-400),new Cg(-300),new Cg(-200),new Cg(-100),new Cg(100),new Cg(200),new Cg(300),new Cg(400)];this.debtsBox=new zu(new Ze.Z(105,310),Af,this.balanceSheetItems.filter(e=>e.value<0).sort((e,t)=>t.value-e.value)),this.assetsBox=new zu(new Ze.Z(800,310),Af,this.balanceSheetItems.filter(e=>e.value>0).sort()),this.storageBoxes=[this.assetsBox,this.debtsBox];this.debtsBag=new Ku(new Ze.Z(380,475),{itemAcceptanceTest:Ku.ACCEPT_ONLY_NEGATIVE_VALUES}),this.assetsBag=new Ku(new Ze.Z(645,475),{itemAcceptanceTest:Ku.ACCEPT_ONLY_POSITIVE_VALUES}),this.bags=[this.debtsBag,this.assetsBag],this.balanceSheetItems.forEach(e=>{e.isDraggingProperty.lazyLink(i=>{if(i)this.bags.forEach(i=>{i.containsItem(e)&&(i.removeItem(e),t.isActiveProperty.set(!1),this.numberLine.startingValueProperty.set(this.netWorthProperty.value),t.operationTypeProperty.set(Ju.SUBTRACTION),t.amountProperty.set(e.value),t.isActiveProperty.set(!0))});else{let i=!1;this.bags.forEach(n=>{n.acceptsItem(e)&&n.isWithinCaptureRange(e)&&(n.addItem(e),i=!0,this.numberLine.startingValueProperty.set(this.netWorthProperty.value),t.isActiveProperty.set(!1),t.operationTypeProperty.set(Ju.ADDITION),t.amountProperty.set(e.value),t.isActiveProperty.set(!0))}),i||this.returnItemToStorage(e)}this.netWorthProperty.set(this.assetsBag.getTotalValue()+this.debtsBag.getTotalValue())})})}reset(){this.balanceSheetItems.forEach(e=>{let t=!1;this.bags.forEach(i=>{i.containsItem(e)&&(i.removeItem(e),t=!0)}),t&&this.returnItemToStorage(e)}),this.netWorthAccordionBoxExpandedProperty.reset(),this.numberLine.reset(),this.netWorthProperty.reset()}returnItemToStorage(e){this.storageBoxes.forEach(t=>{t.holdsItem(e)&&t.returnItem(e,!0)})}step(){this.numberLine.step()}}Gu.register("NLONetWorthModel",df);const cf=df,uf=new Image,gf=j.Z.createLock(uf);uf.onload=gf,uf.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABHcAAAMKCAYAAAAPtKiKAAAACXBIWXMAABcRAAAXEQHKJvM/AAAgAElEQVR4nOzBwQkAMAgEsHP/fYsv7RxCkuo3GwAAAADuSfIBAAD//+zRAQkAAAwEoWP9Qy/Hg1bwtAEAAACMqh4AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zRsQkAIAxE0RSuZXT/SjNJsoG4gYGAzX/9wYdrnAcAAH4zW+IRqQrbd+Pl5aozv+mjvAMAAOCJiBwAAAD//+zYsRVAQBCE4VHBXQVWBU7/GRpAJSfxRIgEx3OZwPN/4exusuEU67LtfAsAAOR0fZtM5xg1TsPt4rp3equI+YqnwijUQc75JPPOqw5NkllpMqt++z8AAJAh6QAAAP//Gh3cGQWjYBSMglEwCkYA+PgRNBhzEe7RQ4cOwNnocrgGbkgFOqpiDHw87Fh1geV4scvBAD8PO4O2qtigipzHzz8xPH5BeIXR1duvGD5+/olb7gt2OWIB+gAQ+uCPvp4BA78AZNBIgJ+fQU/PgFyrRsEoGAWjYBSMglEw2AEDAwMAAAD//xod3BkFo2AUjIJRMAqGIEAekHn48AEYw9mPHmKIEwusDGVRVFoZofJlJfgZZCX5CIqNAtLBsfOPMfSgi6EPGj1+8Ynh8XPit7OhDwrBtpMhi4+uEhoFo2AUjIJRMAqGGGBgYAAAAAD//+zbIQ7AIBBE0b3/wZBVSE5QWRQONXTSEIKkyX8Sh538ZdwBAOAwOm3SKZMPObvnTV7NeCXzrWFWdQ3+x6ugp7bI5R5/SNc7FM2GpBkVQF7/6I0RCACAQ0REBwAA///s3MEJgEAMRNE0INt/t4I4mIPgssie3ivjM4m4AwAb5XFwIk2WNjOnUAkx43gCTV/NCDWsSOjpMeg6P7sXQV9nZH31kyVQfgy9/RQCAH5WVScAAAD//+zcsQnAMBADwB8mpfefz0UQPMaQxkXAd2MIScIdADgoYU0mUWuYs9PbNJlBjedt2/zxd4Y79b+hBEKZiX3Nw9L26eGPLyAAOKSqJgAAAP//7NsxCsAgEETROYFptfD+F0rnDSwlTbqw0bUKAVv5D2RZjzDMEu4AALDIz6Q8sLEzqr/mTU6Hcgx9pjDbNgQ32E27bp2lzhbQO20f/1/stMuet3wIfgAAWCTpAQAA///s3cEJACAMBMH0X7UEPIhgOph5WcOxqnEHABapcPpnqXn+yZWoLm8y2hhv4JWRJxVQyp/tDaBZ/GQESv0DAFxVdQAAAP//7N2hDQAgDETRbtL9tyQnSBAIBK7vqc7wc0nFHQDGe404e4GTkJPlTcKNT1Hwxy385L4tfs7QkwDU3ZY+AMxVVQsAAP//7N2xDQAgCABBJkL3n858DI2htuGvMa7wQTTuSJJGYQcOT6qIODyn6nbhVMRhCqfizftFuKR/aqkzEz4EH+5d9CH0ZK57ru2UjyRphog4AAAA///s3dEJACAIRVH3n7EJmiKKkD5cIDlnjMtDxR0A2sqAc4NOtcbZ0eZd4og48I9c94x5Xr1Xh50FHwDai4gFAAD//+zdUQ0AIAxDwfnBw/CvBROkQP9mgOWdjKbrCHcAAC145FgBTtXI8f6N2jj6RDVeoAOgF593qeVzGz6rDHwy5znl8p4PAADfiogNAAD//+zdywkAIAwE0S3Bhvy0bioTBUXwkHNw3iU9DAsh7gAAQrpXOWb9+VS1FznzEnKAv3nBJ60vXVUltxN9AAAIQ9IAAAD//+zcwQkAIRAEwU3C/GPwTFCGQ/HlX6iCTaJZRtwB4An5zPlG3585iTtLNnL+mNN2zAG4Wds9CT65c8NH7AHgKVU1AQAA///s3cEJwCAMQNFMJi4gHbYLCC5WcggIXnvw8B5kiU+i4g4A13oz5qx5bOZUzKmxlQP8oUJPvt+zf8+esWeMJ1rrzrgAuE9EfAAAAP//7NwxDQAgEATBFwrBJjU6EEO++AoBUMzI2FxO3AHgG7nGqaCTK50i5gAvZOCZa1/Lnvrs6W1Y9QDwXkQcAAAA///s3bERABAMRuEMYw69grMttTUs436nyAQo3tfY4V0SxB0AwFO6maOQo6jjp3MUcVIMrFkB+ILu9rQTevqY+2t2c1M9Jdf9AgBwnZktAAAA//8aHdwZBaNgFIyCUUB3ABrQWbxkIXhQB3Z2Dug2Kw87VQZPWxXwjVZ8POyjETMKRsEoGLQAdF7Pym1XUVb1jA70jIJRMApGwSgYEMDAwAAAAAD//xod3BkFo2AUjIJRQBcA23I1eepErAM6HnYqoxExCkbBKBiSAHQ4847Dt8GDPegDPbGxCeBzekbBKBgFo2AUjAKaAQYGBgAAAAD//+zd0QmAMAxF0ewrxX06gl+F7OFMJYKdQH/KOWNcwou4A8Cv6kInc6wNHUEH2Nkbevp1r3frNcDcjvOJPcaYAfhcREwAAAD//xod3BkFo2AUjIJRQHUAWpkDGtSZMmUiw4ePH8DGg87P8bBVZQj30h4N8FEwCkbBiACwrVsrt12Bn9EDOoR5dDXPKBgFo2AUjAKqAgYGBgAAAAD//+zdQQ0AIAwEwROEERRgoglaCAgmbagC+LEjYx93xB0AwDO+pTPXiLCj83LlMafVwsMVgK9l5MmLdX/cMusRewAAuCJpAwAA///s3cEJwCAQRNEpKJXYQIoxIIGkL10bkwmectTrfwVsAcMMS7gDANgWvel5b0XU75Q/XJ3poKUDAD9u83iy5aBHc7J15ULIAwBYJ2kAAAD//xod3BkFo2AUjIJRQDYAbb8qLSuEn6cDGtQpSbYC06NgFIyCUTAKcAPQ2Twrt19hmL3yLHjL1uggzygYBaNgFIwCsgEDAwMAAAD//xod3BkFo2AUjIJRQDL4+PEDeKUOaAsWw+igDl0BqEPokrAQfn7HKBgFtAITqz1HV9/RAXz68pNh1qqz8EEeOzsH8CDP6Jk8o2AUjIJRMAqIBgwMDAAAAAD//xod3BkFo2AUjIJRQBIAXWeempYIPihZR1WMoSnfcXRQh04A1AkMylkJvmrZ2UiKQUyAc0T4exTQHyzfdxd8s92eBfGj52XRCYAGbnvmHYNv18rNyQcP8vDzC4wA34+CUTAKRsEooAgwMDAAAAAA//8aHdwZBaNgFIyCUUAUAK3WAQ3qgLZggTp9oJU6qWHGo4FHR5DfuoNh/a5rDL/+/GOIdFJmkBPjGTF+HwX0BZ0rLjKwsTAxmOhKM6ybEj4a+nQEoAOX6ybuBw/igrZqrV65jkFPz2DE+H8UjIJRMApGARmAgYEBAAAA//9iGg23UTAKRsEoGAWEAOgWLDMLI/DADmiVDmg2f3Rgh74AdtOOtYbgSPL2KBhAoK/ACx5oAK0mGQX0A5AyNg48gA461wxU9k6BboEdBaNgFIyCUTAKsAIGBgYAAAAA//8aHdwZBaNgFIyCUYAXgG7CcnN3AncyQJ0N0Cz+6DYN+gLQ7Tr5rdsZNGV4GGRFOEaS10fBAAIhHlYGfQU+hp65x8BpcBTQF5QkWTHsXRAHWSlZVgheOTkKRsEoGAWjYBRgBQwMDAAAAAD//xod3BkFo2AUjIJRgBOAztdxc3dk+P/3O8OC9gBwZ2MU0BeAztlJqNzIICHAzmCqwj8a+qOArgC0egc0yAPaEjgK6A+0VcUYTq9NA59vtnjJwtEBnlEwCkbBKBgF2AEDAwMAAAD//xod3BkFo2AUjIJRgBWAtmKBOhKgWWPQah0PO5XRgBoAAFqx8/L1ZwYHHaER5/dRMDiAg44ww637b8DnwIwC+gM+aBkMG+ApLSscjYVRMApGwSgYBaiAgYEBAAAA//8aHdwZBaNgFIyCUYABQIcnh4YHgW/Emt8RAJ49HgX0B6CzTrYfusPgZiACPtx2FIyCgQA8HMzgFTyg67pBZ/CMAvoD5AGeyVMmgldVjoJRMApGwSgYBXDAwMAAAAAA///s3cEJACAMQ9GO6Eqi4hTiNs4lKejFu738N0UJJOVSBAA8asu+sVN4cx7Gh2zH8iqWajFApLP3pHqWqoL4TwHP7Olu8CiEBwDAmdkGAAD//xod3BkFo2AUjIJRgAJAHQbQzDBohnj0RqyBAY+ff2JIrNjAoCzBBe5Uj4JRMBgA6KY20BbB2tHtWQMGQIfZw27RWrx44QgNhVEwCkbBKBgFGICBgQEAAAD//+zdsQ2AMBADQEtMyhhsRUnNHJkFISNRMEEo7lZI9VbeL9wB4OMdGJQnz7Nue5ZcCpT5la4GNuDpSf7jHB5nkobu/b3T/h0AeCS5AQAA///s3MENABAQRNFtQRESNTg4a5coBBXJcFIBh/+6IPuHzx0AwKW2sh8ODCi/oexF47UxOHZ28B2lWboo09A3edY7OXkbs5NmAQAOM1sAAAD//+zcMQ0AIAxE0TOBBDaMYwAfkOCmJKTdUFCG/wx06NI0l+NqBAA8PO5PgXKOPnakIjwdQc8OfuWJsmMWDx7kaLXE3LkmGwAASJIuAAAA//8aHdwZBaNgFIyCUYACQIM7o4D+4OrtVwx1E/fBD64dBaNgsALY9izQTW6zV50djacBALISo1s2R8EoGAWjYBQgAQYGBgAAAAD//xod3BkFo2AUjIJRgAEev/g0Gih0BKDtLQmVGxk4WRhGz9kZBUMCiAuwgwciQTe6gQ4AHwX0BdsPj555NApGwSgYBaMACTAwMAAAAAD//2IZDY9RMApGwSgYBejg8fOP4Bn50duy6ANAtw+BwhzUWb744DNRdl65/57h8auvQ9/zgxTwcbMy8HOzjegwePflN155OREOhrsvvoG3Z62bEk43d410AFrlB9q+OQpGwSgYBaNgFMABAwMDAAAA//8aHdwZBaNgFIyCUYAVgAYc+Hg4GMK9tEcDiMYAdL2xlaEs0ZZYCUJW9/wbkr4dGuDo1VcMH0f4gcGn73wkSt2x84/BAw6jZ3XRHoBW+YEOXefmZGX4+h3/4NsoGAWjYBSMghEEGBgYAAAAAP//Gh3cGQWjYBSMglGAAYy1JBikRHmgN+L8GF3BQ2MAvnY+aVh7cRSMglFAIQANoIG2b7IyMzIUxpgztMw+Mhqko2AUjIJRMAoggIGBAQAAAP//Gj1zZxSMglEwCkYBVlCfacOQFmIAXsGTWLlh9FyNUTAKRsEoGCDQM+8Yg3PCIgZRAQ6GjjwnBh7O0dv0RsEoGAWjYBQgAQYGBgAAAAD//xpduTMKRsEoGAWjACcADe6AVvE0Tj/C4JKwkCE13JghLcyYgY+HfTTQRsEoGAWjgMZg5bar4IGdD5++g8vjaC8dhi9fR7djjYJRMApGwShAAwwMDAAAAAD//xod3BkFo2AUjIJRgBeABnc2TQ5hmLXmAsPMFWcYZq88Cx7kCffUAZ8VMwpGwSgYBaOAugA2qAM6aN3XXgU8sCMmxM3w5t2P0ZAeBaNgFIyCUYAJGBgYAAAAAP//Gh3cGQWjYBSMglFAFAB1LiK9tBiWb7sGHuQBXYEc7qXD4GmrwuBhpzIaiKNgFIyCUUABAG19Xbn9CnhgBzaoM63KlUFSlAds6PsPI/uA71EwCkbBKBgFeAADAwMAAAD//xod3BkFo2AUjIJRQDTg5WKDD/IcPP2IYdn2a+AreWUl+cGDPKCbtUZvzBkFo2AUjALiAOj2q+2H7oDLUdCtY6CD7H3sVcADO7BBHRD49v0Pw6/fo/fjjYJRMApGwSjAARgYGAAAAAD//xod3BkFo2AUjIJRQDIADfKAOiAgfOvhO4bNB+8wbNl/k2HWqrOjAz2jYBSMglGAB4BW6IAGcnYcvg0e2AEB0GBOT4kTg4OJHIbGv3//M3z5+mc0SEfBKBgFo2AU4AYMDAwAAAAA//8aHdwZBaNgFIyCUUARUJMXYiiOMwNj9IEefh52Bg87VfBgj5WR7OhBzKNgFIyCEQlAgzngAZ1Ddxiu3H7FwMvNBj7PrCHThsHeVA48YI4LfPj0i+H///+jCWcUjIJRMApGAW7AwMAAAAAA//8aHdwZBaNgFIyCUUA1gD7Qc/baC4YDpx8xJGy7ArZCR1WMwcpQFoJHB3tGwSgYBcMUXL39Cj6gc+zcY4aPX36Ct1yBBnIS/HWwrtDBBr5++8Pw58/odqxRMApGwSgYBQQAAwMDAAAA//8aHdwZBaNgFIyCUUAUeP76C3hVDmi2GYQJAdBADwhHemoxfP72CzzQAx7sOXUfvKqHAW2wB7SFa/T2rVEwCkbBUATIAzmggR3YYA6orCyMNQXTyGfoEANANxSCcEeeI4Pu6BbXUTAKRsEoGAX4AAMDAwAAAP//7NwrDoAwEEXRWUMTNBjAsP9d4KrAYEBQywLIK59UTlCIe0xtLbfDEHcAAC5bOvKHhhYqe+JOSb8c6KX6ea1W7JmWa7JnjOsbe7SvZ2irHHoUfBR/mO4B8CeKOAo4cU73uefbdU2wvg6fY05J0zpaogwAgIuZnQAAAP//Gh3cGQWjYBSMglFAdwAa7EFfAQTaxgUb8Nm09wb4qnUGLAM+shL8oyt8RsEoGAU0B6CbrEADN9gGckBn5oBWJlrpSzHkRhqBB3bwnZtDCgCdr/Px82+G0WN2RsEoGAWjYBQQDRgYGAAAAAD//+zdsQ2AMAxEUe+/FCVb0KQgJaGkQt+SaRHQUPw3QAY43TmGO5KkX6gZFz9wFYIeQh9aQ9O8XIEPqtlD0JOTLkMfSS/RxuEXq9ZHTqta36OtIx9jXkV4Q5DDvRzaOV9aOXe2cXhnR5L0TEScAAAA///s3CEOgDAMQNG6qYEjwSMJnvsfAI9BIHGbG4a0ZASBWTAk/KeaHeGnK3EHAPBZT/d9cuzRLZ952eyGj86ZRp/aOws+fddI5Z29Afi3K95Mq4R4buXcI07extGQMw6tzaVfUN8KMUnaCTsAgEIicgAAAP//7N3BCYAwFIPht0b3n8wFvFhQKIKEmoMtCEIvlf+boaeQlxLuAACm4oZP+9vMI/RZ1q7po2/Z62hzbfg4+GHXB/gPjxkrwBG1cHxeZWripHvs2CHOyLOqlhqIDo7ebLnEfpy8RgDAdxFxAQAA//8aHdwZBaNgFIyCUUA3kN60A9yJAl2VTm2Aa9AHdMsXeNDn4TuGz18ht3bdefAGZeCHAbriB0wbQejRwZ9RMAoGH4AN2sAGccD0559wPgzABnAggzbC4HNxiBlgoQUAlXuggaSZdR44TQcN6oweoDwKRsEoGAWjgGzAwMAAAAAA///s3bENgDAMRNGbgIYGKgraDMAE7D8SOiRHlktQUv3XWFE2uNgO4Q4AYBoHK7Pt6ZW+il+7cnXHj2sNf96On23pI19KgRD7foD/anATo1NKdyHCG9d2rrqvo59H7sMZwcGOx7EAAPhM0gMAAP//7N2xDcAgEATBb8MFuBJ3QP85bVggn3xCLyIn1u+kxCSrExB3AABl6deuYV38iIKUlj/9edw5C0Dhwed4g49WQH4OVOCLmiza+Js34gsb3c92nfO+/jHe7BB2AACfiIgbAAD//+zcMQrAMAwEwfv/q4OKBSFiVzZJsVO6d6FDOsMdSZI2GC53xaoEP2wA8VbnX+UtBMoIejgHywiD6AqSvja7a/o2DedRWQQ2ads2/T/ReVNu9t78kcGOJOmYJA8AAAD//+zdMQoAIAxD0dz/1NKhEEq7dVD5bxI8gaGNhDsAgOdkj84tj0Hv8ZgmgGRrYN05poHSFAaF2gHkoZCaySA6g+DqelPtqvGQprt3HtbkepRKYPPDpE2Gt5s/Z0V5Mh07AIA1kg4AAAD//xod3BkFo2AUjIJRMOTA5oN3GGatuQA+oJTeVxVTApC3gTEQGAiCAVjHEgaQzy1CHxTCtVUMHWDbGoY+SMRAYNXQ6PYy2gJcgyrgLU13XmGIow/KMOBZQYMM0A8ZBvFhgzQgADvLBgaGUn6jFuhdeAqc786sSKCKiaDVOqO3Yo2CUTAKRsEooCpgYGAAAAAA///s3TEKACEMRNG5/21lK9kiWwVCWCSiheB/Z7BxmCSEOwAAHCxf95n9XOcl1t56inJI5HKwVFUdJYt7iVbsCppGLZWquE9mJI84zfh7A7E542KDxt02+nQSM1N7XvVOsAMA2EzSBwAA///s3TEKACAIhWHvf9hojohwazAQykX/7wiOj6cS7gAAkFhE0+JcL7NYAZLlvEv0wtNW8vi1QuSZuTZk9D33TbbDwdVpsNP6kDlX9VEAACKIyAYAAP//7NuxCQAgDETRGyZ7ZAHdfxgF5cDKwk60+A+yQCDNkSPcAQBgBQ2uX9QMlQxWcrDXy4Af+WvN45t+HZS1Pgh2AAD3SJoAAAD//+zcwQkAIAwDwOD+Q0ucwJf1cTdCIY9Cm2W8AJDzftRF8ObiBPhf89xurslM69YB4IkkGwAA///s3EENAAAMhDD8q56J5V6tDoJyBwAAnhknAzBTHQAAAP//7NyxCQAgEAPA7L+rWFuIYiu2WsjdDmme5DV3AOCiNffanxoDZz/kpfeRUpvDDgDvJJkAAAD//+zdUQ3AIAxF0eqYBZRgYf6FLA8DQLafkXOSSuhf0+tyB4AlqewkPX558rrl64wynOzv+5ISVopYeaD81t3bGACYqqoHAAD//+zdIQ4AIH4iqu4AACAASURBVAwDwP7/u+AwZBY1BYi7X6xpVuEOAC2e6P6njuBaXTrnroG7KswZc2nrAPBGks2+HdsADMJQFPS22YOZKNKyB5OAhJBZAkW5W8Eu/5NlAcBHPeU9Swe4JTOq/MPa+m9vMOaSYQFwV0RsAAAA///s3cEJACAMQ9HuP4YTSZfwqCAI3oSITiAI+t8IPYbQEO4AADb3yDEgCo4CwdGLapvLcOnAitTPK3OrrZNL158dAACuMbMBAAD//xod3BkFo2AUjIJRAAaggR03d6fRwBgFYADqsN968I5qgQG6ktokYgHVDssFrRQBmTlSAOxab2oMyIDiFTR4t3kEr7ahFMBW63z7/mdA3fHxw4cBtX8UjIJRMApGwSABDAwMAAAAAP//Gh3cGQWjYBSMglEAH9j5//c7g5Wh7GiAjIJBDzZTeXCHmoMnDDTYrgRz30hcITOYADmrdaK9dBhczBVo4ovUtMTRFZejYBSMglEwChgYGBgYAAAAAP//Gh3cGQWjYBSMghEOHj58AB7Y+fDxA8O6KeEMVka0G9wB3YADunFrFIyCwQaoPXgykrcrDVcAOlPn9VvSV+uAbrxyMVekSaiAyu3UtCSGjx9HV/CMglEwCkbBiAYMDAwAAAAA//8aHdwZBaNgFIyCEQ5S05PAHYSJ1Z4M2qpiIz04RsEoGAWjACv49PkXVa44pybIiTJhuHjpAngFzygYBaNgFIyCEQwYGBgAAAAA//8aHdwZBaNgFIyCEQwWL1nIcOjQAYa0MGOGcC/t0aQwCkbBKBgFUADbggU6X2ewgpxIEwYzXSmGTZs3Mhw6fHA06kbBKBgFo2CkAgYGBgAAAAD//xod3BkFo2AUjIIRDFpaGxn4edgZSpKtRpPBKBgFo2AUQAFo6xU5W7AGArQXOIJtBZXno2AUjIJRMApGKGBgYAAAAAD//2IZjftRMApGwSgYmQB0CCfovB3Qqh0+HvYhFQZSojwMxloSDLzcbIPANaNgFIyC4QJ+/vzL8Pnrb5TDkkGHIesNsi2r955+YODjhpTb0mK8DC4Wigx7Dh0Al+ny8rQ5vHkUjIJRMApGwSAGDAwMAAAAAP//Gl25MwpGwSgYBSMUgJbxg4CHnQpKAOioiIEPgqXWrUG0AD72KuCDmdXkhUaT7ygYBaOAYgDaegW6AevDp18Yt2CBDkMGHYo8mMDxS0/B27FgwNkCMqBz6dLF0cQwCkbBKBgFIxEwMDAAAAAA//8aHdwZBaNgFIyCEQpgt6ugX30OGuyRleRn6F10ajRpjIJRMAqGNYAN6oDwYD5bBxnsOXmf4fLtVwxxfrpwUdDqHRC4OHot+igYBaNgFIxMwMDAAAAAAP//Gh3cGQWjYBSMghEKLuKZ4Z1Y7cFw4PQjhsbpR0aTxygYBaNg2AHQ6hzQ7VdDaVCHATqw07/kFEO8nx7Kyp1RMApGwSgYBSMcMDAwAAAAAP//Gh3cGQWjYBSMghEOHj//hBEAoNU8oKvRD519zJDetIPh87dfwz6Q1BSEwFu9fO1ViFA9CkbBKBjswBe2fVMBsX3zz59/4EGdN+9+MHz/8XdIxeGy7VfBAzuBzuoMlamjh+CPglEwCkbBKEACDAwMAAAAAP//Gh3cGQWjYBSMghEOjp1/jDUAQFejr5sSzvDq/XcGv9w1DFsO3hnWAcXLxQY+pFlSlGcQuGYUjIJRQCmQhB28zsUG33719v3PITeoc+/JB4aKSfsZlm67wlCVag2/HQsZ7D3xYCCdOApGwSgYBaNgoAEDAwMAAAD//xod3BkFo2AUjIIRDlZuu4IzALRVxRj2LohjiPTWZWiYfgS8igd02PIoGAWjYBQMBQC6/WqonakDAy/ffQWv1Mnt3MnAycHCsGFiKMo5O8hgz4n7A+jSUTAKRsEoGAUDDhgYGAAAAAD//xq9Cn0UjIJRMApGOACt3AFh9IOVYQB0TXpTviN4JU/txP3gAR7QbHhaiAGYHgX4AWhryGg4jYJRQBygVn4Brc75+u03xs1XQwGABnWWbbsKPl8HdFAyaKUOaCsWLrBo02WGp68+j6awUTAKRsEoGMmAgYEBAAAA//8aHdwZBaNgFIyCEQ4cTOUY8lt3gFfogAZycAHQKh7QNi3QQFDP3GPgQR7QWRZRnlrgq8lHAXYwGjajYBQQDyjJL////2f49h00qPMHzB5qAHQD1sYDt8DXnBMzqAMCN+69ZZiy7AyDrqoYWP8oGAWjYBSMghEKGBgYAAAAAP//Gt2WNQpGwSgYBSMc1GfaMHz49J0hKGclUQEBWuEDGuQBDQYZakmBt2s5Ji8DX53+/PWXkR6cdAWgFQ7Ih8WOglEwEgHskORXb34wfPn6e0gN7IBW6YAGdJLqt4DP1fn7/z/D1GoPhr1zowkO7Hz++ouhcuJ+BhFBToZoT226uXkUjIJRMApGwSAEDAwMAAAAAP//Gl25MwpGwSgYBSMcgA4bBd0oA1qJA1rBA7oGnRgAWskDUtuc7wg+t2fWqnMMy7ddAw82gLZWgGbgQWaPAtoBULyNglEwkAA0wHhmRQLdXQAawPnx8x/Dt+9/wIM7Qwl8/f6b4filJwwnLj0Fr9Lh42YHD+TE+euCV+wQA0ADO3FVmxgePf/IML/Rl+Hek/ej+WAUjIJRMApGMmBgYAAAAAD//xod3BkFo2AUjIJRwKAmLwQf4Ll6+xV4ZQ6+LVrIAKQuNcwYjEFbtlZuu8owZ+1Fht6Fp8BbvhxM5BjsTeVGB3qGGKB2h10KdnMR92g6GGgAiouhemYWaCAHNKADGtgZSit00Ad0QMDFQhG8SsfZQoEks0Dn6+S07gQP7HTkOTFwc7LSyNWjYBSMglEwCoYMYGBgAAAAAP//Gh3cGQWjYBSMglEABsgDPM4JixgWtPuDV+eQAkBbtsAHM1d7MOw4dIdh++E7DP2LT4O3bsFW9IAGe0avGx95wAe6motaYKQdVA3zLzW24UlCB3eGChiqq3RAW65Agzmgs3CQB3RAZ+mAaHIGOk9dfgYe2AFtxQKt2Bkd2BkFo2AUjIJRAAYMDAwAAAAA//9i/PHt39A7cW4UjIJRMApGAcXAzcOJ4dChAxgrND5/+8VQ0rMPfOU5aMsVaEUOpQA20ANa2fP4+UfwygHQah5QZxU02DMKRsFAA9B5Uc9efwEPnlBjlRkoH9168A6c1kcHM8kDoKvLf/wYWqt0YAM5l++8Yrj35AN4yxVoZY6ZrhTZAzoM0G1YoIOTF266xOBirsiQFmyIMrADshd0Zk9NdT0Yj4JRMApGwSgYYYCBgQEAAAD//xpduTMKRsEoGAWjAAXAzuCZteYC+Orz7YfugAd5SF3Fgww87FTAGARA275AAz2gAR/QGT0M0HM7wAM9pnLgFUSjYBTQG0hSeRAGlI9Gr8AnHYCuLget0Pn56++QuMYcNIADGshBXp2jqSTCYGskx9CQZQce1KEUgFbrVE7Yz/Dh8w+Gwhgz8ODOKBgFo2AUjIJRgAIYGBgAAAAA//8aHdwZBaNgFIyCUYAVgLZtgAZbQGfngLZphXvpgAd5iD2LBxcADRKBcEmSFcOnLz8Zjp17DB7s2X70PnhACTSzDRvsAW9DGR3sGQWjYFgD0CAOaDDn+4+/g37bFfJgzqXbr8Bn6YAOQQYN4oC2W4FoYg9FJgRAZ+u0zz7GsOfEfQZLPWmG5mx7BnEhblp6bxSMglEwCkbBUAUMDAwAAAAA//8aHdwZBaNgFIyCEQrk5eQJehx2Ds+Wg3fAAy+mwbMYUsONGdLCjCke5GGAHsaMvKrn8fNP4K1bILxq103wwBID0soe2Jkjo4czj4JRMLQB7Bwd0LYr0ParwQpAgziX77wGD+SAbqSCDeaAVufkx5iBt1xRazAHBkCDOqAtWOv33gQP5nTkOTLoUrBychSMglEwCkbBCAAMDAwAAAAA//8aHdwZBaNgFIyCEQrk5SE3tIDOGiG0HQV0EC7ojBzQNqqZK84wzF55lqqDPDAgK8nHEC6pzRDupQ0WQR7sOXbxGXiACQRAAzzq8kLwwZ7R1T2jYBQMfgAb0AGt0vn58++gcy9oVc69p+8ZLt9+DaZBfAboNisNRWGGKG9tqq7MQQfogzrkbMES4BegidtGwSgYBaNgFAxywMDAAAAAAP//Gj1QeRSMglEwCkYoWLxkIUNqWiJDQ6YNSbcYgQ6KBQ3yLN9+DXzIJ2i7FmiLFWhghtYAtI3ryu1XkMGec4/B5/d8/PITbCtsoAc06DM64DMKRsHgALAtV6DBnMG0Qgc2kAOhP4BX6IAA6ABkDSVh8CCOpqIImKb19f2gM3VAAzqwQZ0oL22SB3VmrT3PsPHALYZTJ84x6OkNnZvQRsEoGAWjYBRQCTAwMAAAAAD//xod3BkFo2AUjIIRCj5+/MCgrqHEICbIxLCsw4/kQAAN8hw8/Qi8mgZ0yxDoCnTQQA9s1Q29AGiA58rt11AaMvADA8gDPqDVSaMH3I6CUUB7ADo35+evfww/fg6OM3RAAzega8nRB3JAADaIAxrQgdH0AKCBcdBZOos2XWa4fu8Ng5KMAIO/gxpZhyWDtool1m9mEBGTZrh5/R5d3D8KRsEoGAWjYJABBgYGAAAAAP//Gh3cGQWjYBSMghEMWlobwbinxImiK8kPnHkEPpfnwOlHDPw87OBBHtAV6vRYzYMNoA/4IK/wAQ32gK6nVoOu8IEN/IyCUTAKyAewlTkDecsVbADn/tMP4PNxYHwGtBU54DNz6DiQgwxu3HsLvs5874kHDJ++/gQP5riYK1B0ps6y7VcZlm67wrB65XoGX19/Wjh7FIyCUTAKRsFgBwwMDAAAAAD//xod3BkFo2AUjIIRDkBbszasX86waXIIxQcVg87v2XzwDnigB7SaR0dVDLySx8NWdcAGemAAdH7P4xcfwSt7QIM9IP4VpBl80KoeKeh12MgDQKNgFIwCTADbbgUe0KHz+TmgARvQwA1oEOfl269gNvJqHNAZOaABHPBgjo4Ug7Q4L83OySEGgM7SAW+72nMTzAat0oEM6igycHOyUmQ2KCxyO3cy1FTXg/EoGAWjYBSMghEKGBgYAAAAAP//Gh3cGQWjYBSMghEOQNuz3NydGL5/egS+GYtaN1GdvfYCsprnzCPwFoTBNNCDDOADPXdeYR30gd3OhT74M3pj1ygYSQB0GPKvX//otjoHtNUItvrm1btv0GvHf8FX4jCgDeKAVuLA2IMBgAZxQKtzQIM6oG1XoLN0LPSkwQM6oMEdaoVRbsdOBnUdU4ZdO/YNCn+PglEwCkbBKBggwMDAAAAAAP//7J0xCoNAFETnAkFImxT2AXtvlnN4Gy32AFYiOUNSpQhEBBeCzCe/MPUGFOc1C1stWz7mz5fcEUIIgb7vTPCwfyel4HEoeNjP8yt62NNzWemKXx/lYtLHUj+P12K8C9+0D8tWmfDx0wWQEFuHIifGD6bpP2XIJm6eg/XguMx5j3GRwvFxKoobJnCYxPG7tcGRK8qc9nY3ocNUTlmcTeqUxSnpa/lf1yrgcMzR1AGZtmQJIcS+ATADAAD//+zdQQpAUBSF4bsDU4oZGzCQCWP2ZRe2YzWGSDGQzuVOXiklMThfyR7+znuPcYeIiBQCT5anukp5I/AYCz1Y9uDoVhR4Uhexhp6qvP9q15cQfIZx0bXPVfhxVz72Z/yhv8Llx4g4+q2brnWesHiDYIMjVNO8asjpz6NUxg04WOEgluJ+nD9DqMZLV7gY2e7QeWOh48J6qWk78cOEYYeIiA4isgMAAP//Gh3cGQWjYBSMglEAB+YWRgwXL10Ad6x6ip1ofrvUrYfvwIcwgwZ8bj14BxYDDfJ42qkM6lU9+ADyih8QAF3ZzgAdEEIGsEEe2IofBuhKIAakrWCjYBTQEsBW5vz+Q/pgDmylDQhcvvMaTMNW3qAP3jBAb6VCoQfxChx8ADSYA1qZAxrMAa3OAQHQYciglTmgQR3Q4A4twfFLTxn6l5wEh78AvwDDi+fvBmU4jYJRMApGwSigM2BgYAAAAAD//xod3BkFo2AUjIJRAAdTpkxkKCkrhPPTQgzAmB4AdrU6aEUPbFUP6OYtKyNZ8EDPUB3sQQewQR7YIBBs5c/jFxAaGSCv8oEN/CCLjQ4CjQJiAWjg5vef/wS3WSEP2sDOuwGBS9CtUtgGbkBn34AGKWErb8CDNorCQ3LwBh3ABnPA9OVnYFnY6hzQoI6eqhjFhyITA0DxAroRa+OBWyiqf3wb+KvmR8EoGAWjYBQMAsDAwAAAAAD//xod3BkFo2AUjIJRAAeHDh9kcHN3ZGAXFWGQ8nJleLxmI4MYFxNDfaYNzVfxoAPQzVuwgR70wR7QIA9swGc4AvQBIPAWMGjnGn37Fwwgxw8x7FEwvAFoixVkMOcvw7nrL8F8EICdb8OAtNIGBJDPuYEB5MEZ8FYpHjb4wA0D0iqc4QJA26xAq3GwDeaABnJ0VUXBNK1X56AD0Gqd2WvPM7z9+Z+BW16O4eO1GwxGhsYM586fHR3cGQWjYBSMglEAAQwMDAAAAAD//xod3BkFo2AUjIJRgAI4uJjAXOuV8xh+vn7DcHvaPHBnwsFUjqE4zmzAzovBNtjDAN3GBTqgGTbgM5hu4qI1gA0Cwc7/gbOhHfVPX36i3PyFDNDP/kEe+EHeKoaNPwroD0BpHhmAtjSCBiNgAFkedFPTizdfsboRtsqGAWnABs6Gig+3QRtcAHQA8vX7b8CDODfuv4VvswKdlaOrIgahB2AwBwZAK6T6l5wCD7yJ2VszKMZHMrw6eJTh/sLlDJKSkgzPnz8fHdwZBaNgFIyCUQABDAwMAAAAAP//Gh3cGQWjYBSMglGAAmCDO+bzpjCwcHOB2e9On2e4t3A5eLDH114FvFVroA8FBm3jAnVoQWf1wAZ8QAC0ugc80GMky6CjAhn0GUkDPrgA+kAP8gog5AEhEMC2RQwdYNsShuuwaHzbx4bTAdOgAUjYoCM6AKVX2LlShPTgMwcGQAeRg7ZB/fsH6dwjD9Qgr65hQBvQGakANOCFPJgDW5UD2lKlJCMI3l6lqyIKZtNjmxU+ABrUWbbtKsOek/cZuBXkwIM6/FrqYB0fr91kuNLYCdc9OrgzCkbBKBgFowAMGBgYAAAAAP//Gh3cGQWjYBSMglGAAtw8nBgOHTrAoFNfDu9QwABo1vjR6o2DapAHGYBWM4A60DehNLYBH1kJfgYdVdFhcX4PvQC2FUDYtofBzg9CB7i2kpECBnIQiJjBFmIAtm2E/LzsWNMiulpQukUepASdofP543f44M4oQADQwA36YA4MgFbiKEkLDPiqHGwAeVAHtDVWLtQfvGIHHZxMymH48xVyFtLo4M4oGAWjYBSMAjBgYGAAAAAA//8aHdwZBaNgFIyCUYAC8A3uwAD6II+PvcqgPc8F14APCMC2c4E6zeAtXWgd6FFAewAeEHqBf5UQA9rWM3oD2OAgMYAe50D9+/ef4evn7wx//47sjj1o8AY0iAMawIGzoVurkFfkiAlxMShJC9LsanJKAWjb1dLtV8E0vkEdGLg9bS64DGYYHdwZBaNgFIyCUQADDAwMAAAAAP//Gh3cGQWjYBSMglEAB5cuXWAIDQ9iePjwAd7BHRgAdTCebdvN8PXBI/DWmyhPLQZ7U7lBf4MTaCUGbLAHNPgDWpWBvGUGcnYPZKAHtLULRI+u9BkFgwH8/PGb4cf3XyRdWz7UAWjlDfiwYyyDOAzQM3JAgzfiwtzgrVViwtyDakUONgA61Bq0Qmfj/lvgFTv8WhrgQ+yFTA0J6gUNqp/JKQOz9fUMGGJj4hl8ff0Z5OUV6O+RUTAKRsEoGAWDAzAwMAAAAAD//xod3BkFo2AUjIIRDkADOZs3b2RYvGQhw8VLF+CBATpQmVgAOgfi1YEj4MEe0NkeDiZyDJFeWkPuEF7kgR5sgz7gAR8JPvCKH9iADymrOkbBKCAX/Pnzl+H715/DdrUOaNDm09ef4JuqPn+BDOQ8ffkZPJADA7BtVKBBHEVpATB7sK7GwQVAN1+duPQUPLADOtNMyMQQvFIHtGKHFAC6yRC0ehIZ2Nk5gAd6/Hz9Gfj5h1a4jIJRMApGwSigEDAwMAAAAAD//+ycPQrCQBhEv8og/iBYegpF75GjBvcYit7AytZgr0J4n6wkWwSxkSXzIJh0sQnkZWYkd4QQYqAgc0KobB+6LwjUAZa7zVdfkFPYgUDwcJDmYSeFyhbVrZxHc+PmCpWuOIyb7rC0xc98Vnjix3+5nhZ/vX+RL0gdkjrPxyvr/4GkibKmc54IHGTNZDzyOpVXq1aLLJI4fVyud5c5SB1SOowke0pnu/6M1v8Cz9v6eLbb4eSj923ekqf0RI8QQogBYGYNAAAA///snTEKgDAQBO8B9j7Gxi+K/srClwixM8FC9shJCAqKlXEHJLVNIMPuHeUOIYT8CNSu+qHTpI5b3PHjEDkqdF4+NlIgdyB55nHSGgFqW5A8SPWUsh1JkpXUdtpMn3x1tUkeq3vZfB8mf8gZwW/i1/CZpI4NLcZKcSRwruSNxAROFWfilCJwcnKhg2RO3TYqz5+mdO6AOxZ3rYl1A1UtiB58rG0RQkjBiMgOAAD//+ydwQmAMBAErwcr8WE3CrYkpFDTgUzw4MzPh6LHDoSABQQy3m4kd4QQIjm17m06p5TtErvigsHf42EaH7lsRHrRw0QP3TzInr9Ft+7Syx7fXQZFvIzXBZDFbyp7Tg89OnTqIHa+8gqWx6WAyBS4sGk9OKH7BhA0iJpe3tgpdTJD5IpS5Ch0OF8ROkzrvIWftyx/VQuIay3zqmkeIYTIiJkdAAAA///snTsKgDAQRPeiwQOIeEUbL2Ahgjews1QbmcDIEiws/GCYV4ZUKRby2J2V3BFCiEw569JhxgOkzpufDU8qepjRg21bfwhjvhuOd3Hcy5z48WceP+qF9e7Eb2p6Y2uTuAeMXkHorMv2+IumQobChjk3Z3cIR6YobgACjEFunTdXgMChzOnGKYYko65C6KDOflVjPVHyNK3N/XCcooOnKmsLoVA2jxBC5IKZ7QAAAP//7J3NCYNAGES3AP+6ENJaAhbr1QrSQi7ydp3wKZ5EA4Z54EG8L/iYmbXcMcaYP4MtHR6uMxdnbTycjaoE/HhoM4L6FqJHwscUYtJH6Z8of7YbQJEog9p6XQPTNtD33RtBP4GUTqlefQ6ldFR5Wr2H+lNM3OxVo4SEDZCwqRa5KmnDt7uNFl8F8gaJg9AZp3euXnGeNo8+11q5XfDqFORROGu52TCmebq2y4Ln9Rxc2TLGmLuTUpoBAAD//xod3BkFo2AUjIJhAEBbrxYvXsgweepE8O1XMADaDiDmYEPwSvPBAt5BB3pAt2/Bzo0ADfAg41FAGKCv+EE+/wd9Oxj62UDoAHZQNDKAHRqNDPCdHTTSVxF9+vKT4crtV2A2bFDn968/YD5s5QwywDYYgzxYgw1wI62mYYBujwLdKgUDsMEaBvCADmS71CjAD0CDOfeevGe4fOc1w/FLT8CDOQzQwXLQ6hw+LY0hU7YiA9AAz5MN2xi+P3sOFwWdyZObk8+gp2cwGJw4CkbBKBgFo4BUwMDAAAAAAP//Gh3cGQWjYBSMgiEMQAM5oFU6oPN0YFuvWHl5GBRiwxkUYsIZmDnYGX5//sLw+8NHhr8/fgwpj4Jmlz9duwm+Cebrw8cYgz2wFT4jbRsXrQH6YA+2s4GwDQjhWzlECJA6+IN8JhEtwNXbrxg+fsY9kIIOkAdvSAXIK2dggAdtoAYExIS4ULY9ja6ooT4AbbMCDeAgr8xhgA7mgAZx+LU0wKt0BtPqR1IAKy8vAwsvD5hmZGYCD6bfnj4XXMbCAOg69ZrqegY7W/sh4qtRMApGwSgYBWDAwMAAAAAA//8aHdwZBaNgFIyCIQhAgzotrY3ggR0Y4JSSZFDNSmaQ8ffC6qF/v3+DB3r+fv3G8Psz9i0agxnABnvQV/aADmdGHuwZ7gc0DzWA69wgGCAkjw1gG3CiJgClKVJvdENfVfbnzz+G7z/+gmmGEXCY8FAEoEGce08hgzmggRzQ4A4IgAZx+LXVGbjl5Yb0YA4jMzN4sJ+FlxdM4wKgFTy3p81leLJxG1zF6CDPKBgFo2AUDDHAwMAAAAAA///s3cEKQEAUheGbmpUF2YuNPJiVF5aVpKyVNEVdo7k1SlmwkanzbeYFrP5OF+IOAIBH7qKOvfVQ1JX8zvwpw7sEHtZago9h9vIzsJFnblpa+kHCj7sl4WJPmSXyIvjAF5gNrRtfog78gws5NuJ043SucuyNnDBPJei4hY7PAqVkmaPiSJabbyDyAAB4jIgOAAAA///s3DsKgDAURNEHdrpzEXdnYeensrBQTDASRCYgxCJVLKLMabKHy+Qx7hARfcBbUSfEai123VzwwcLnq3A0VHWjqH6QpWnd6wcfLDLu2IOXX7ooFiKOOU7ZDYNOCvw7OdOsHiEHCxyscf6wyvEh5mRF7tY5iDuxQpGnKmve5CEiSpWIXAAAAP//7N0xCoAwEETRLSwk2ImteP+jqViKpfzAQghBEBQjzKtCjjDM7ircERGpGIuSCXU4ae6eDHVK/j6+lcsDn2NZ458l4zce/Phb5IqPXNHSoa0j36CNwyjVvO3xihWhDuGOJY2cbhrj4uN26Ku9ZHUXAQ6hFONWTQhxf84bSiEPi5dp8ui6lohIZczsBAAA///s3csJgDAQhOHtII0G7Fvw6CEKImOYsEg8iCgJzlfGzz4Ud0REGoSog6DjDyW/HXWu+NDT81SPh2keHmlm/MEtH6pFH036/FtKOeYs66ag8yFO4mCliq/Ix2ku93E4jYOQk4NO/6tVNT7m3F23euocefBCPcbh+K4Vgo56i4g0wcx2AAAA///snTEKgDAQBK/3qLD6aQAAIABJREFUDeKLgv8Swcf5AB8gdoIBG9nTgxDSWGgk7lQpUw+7t5Q7hBDyMVC9QlrHJs1zSZ0UpaV6YiB6/LzoHR8VQFfix6pdEtS7QuHDtE95QOBA5EDoQOyQ5zCBs267THoX53yPwQJZSuJUTV1ErSrFW+mcO8TrWkjv9N0gzrXZ/0YIIb9HRA72zi4DQCCKwpeIjBbeY4+JlpKa9tAeWkAyEbm3KRqRKE05H+O+zvNxfiDuAACAJ+imFlFH60o+dLZ+5QNrVw/fr02tX2F1+hgb6eIC56kfdm4fssJPrELp9HEv8B8Rc8zizkF/zr1w700/jJsD50jAIbtUFahI4lQs4vD7oxPHhZetxJVzY3fOU3SlpjZJxdFDto8nzwpEtQAA4E2IaAYAAP//7J1BCkBQGIT/srEna7eycgjFjWxcxwmslZWUpWZ6TygpmxfNV/qvoK+ZeZI7QggRGFSw6qbax5LxY5+XBdM6XwIvcFH2zDNlyF8qXE9cxc864k6nbR9wlDw+6eOvKl9hgMCByPFSR7yDuzfTsidvQO+kzXEHx9wWTkxpk1icpUzjREzl/DeFcweTOU7o4H4JJDiHtmNdy4MtHnxCCCECYGYbAAAA///snbEJgEAQBA9MvhW70+AxMbUJDezJWsTkE1llRcFAfFBfdsoYdu4kd4QQ4kUgdLwvt7s6WOnkVbEIntSB3IH4SP3deixMvSh/mHtBhOHmz54zAcQEzCSBomFqFYJu51yB0gZwcTNO6/rGTsQNQC4FUYF8CvKC65s/HTS+S+bcQeZ8IbWKBeudoW4OqVbX9nqdLoQQT2NmMwAAAP//Gh3cGQWjYBSMggEAoPN0UtOT4Fuw+DRUGbTKCgbFuTq0An9//IRs3/r6DUyP1MEebODjtZtgUdBgD2gwDDYABBZDO/MHBmCDP8gDQsgDQaPbwSArc37/+T86mIMEkLdBwQZsGJBW2oC3TkGvDkcGsBU3IAC6SpwBKgYbsBkJW6dIBcNxMAcXAG3VulTTAh7IBwHQYcugVTyjBy6PglEwCkYBnQADAwMAAAD//+ydQQqAMAwE90Xit0XwXz7BHqqsNhBKEUQRW3dOPfYYht1EckcIIV6GF7C4W4dpnVorWE/gZQ/39fylxnUHk0CLq3xZDQwnIghOBiGTQCgkgmpNCB2pHAqdiBAi1rXNEcd21hi+DkVmd00KmdDxeGFjSZv9napSkLS5xJ9kTgmKHQoeih6kFM84TOi6/mtfFUKI9gCwAQAA///s3dEJgDAQA9DDgVzQX6d1B0FSDJ6h/atFaN4YIZdzuGNmNoi2dfAFa923Mpxs7zOumTZ7vsJzMDjLLtBzAsZBaNJhaFVrAWlARK3PYT2bRAht0MhBM4ftnL8OIGsQk+XmDOWzJzokrKnBEDFxkJhyWOPzqH64mbPcoc5sYU6Ltni8xWNmNkBEXAAAAP//7N0xCoAwFAPQgIMODu6CiJdy8f53cJOKkfqxUgsWlby5U6fySX803BERycCmdVwLVj+NuvoLXNDMb1x/buN6GyaEaDbLoXEyIMLWnmb3CN0RkxhyQ5zQy2VoG9QJiSM2N6UIpWJi+MkZH789UbHusOmOZ5SoyWpvs6rKTy5Azs2meNSoJSLyMAALAAAA//8aHdwZBaNgFIwCGgLQTVipaYkMmzZvBFsyulqHMoDYxvVz9NyeIQaQVxLhAp8IrCAiBD5evUmWPtjNTeQA5FUxuMDoQMzQA6AtVuCBHC4u8AqdwXw1+WAGTzZuY7jeOQE82CPALwA+bNnX13+kB8soGAWjYBRQHzAwMAAAAAD//+zdMQrAIAyF4XdGoXgMVy9ZKE6F3sJJh0qJ4OiYqf93gezhvYTlDgA4KeXSEcOsYxlL6/zxto6nVeUarevtbXtvBgB2SOX4so9aZ8qq9zPnUNMCAAeSPgAAAP//7N2xDYAwDETR24nJkCJmSMu2ToPQOXiDhOq/Jqk8gOWzae4AwAaOYbXrzMKe0jnunhexsN+McA09EfkS5wJQ3MhxE6d25fjPVM4/HNPyJI++mJaXLXNNCwAWkfQCAAD//xod3BkFo2AUjAIqAtA2rJLSQobFSxaCDRV3smPQa6kBn7MzCgYOjA74jIJRMPIAbCCHmZ2DgQk0oDO6vWrAAfI2LX09A4bZs+aN3qY1CkbBKBgF1AAMDAwAAAAA//8aHdwZBaNgFIwCKgHQ9quw8CCGi5cugA3UKs8fPTR5EAPkAR/Y9q5RMApGwdAEoytyhg4Abc86mZQNP4dn1ar1DHa29iM9WEbBKBgFo4AywMDAAAAAAP//Gh3cGQWjYBSMAioA0Pk6bu5O8NuwjCd2MgiZGo4G7RADsFU9/0GDPdDBn9FDm0fBKBhcgBlp8AZ0Rg5oZc7oNeRDC4AGdkADPLBzeEAHLcfGxI/0YBkFo2AUjALyAQMDAwAAAP//7N3BCQAgDATBKGi/PuxfNmgFgg/ZKePIXQx3JOkSFaw5RwY77Oqwr+M3rH/wkp2xZq98pLcIb2pveY1TCHJ2qKM/EPBQ0To7PA4tS9KFiFgAAAD//+zdMQoAMAgDQP//6pJBKN2ko3cg+IYQVLgD8CHBTl6dl/s66yTkyeQ1e+9CH5h7Q5ze2eE+tJz2Tlo8AAxV1QEAAP//7NyxCQAgDAXRXzqEE9m4/yqCIiYGrNN6D7LEkYS4AwBJJ+rE4+Tam4Ud4N300Zx23rWGxx/gZ/HQ2KYUP6tiEwf30fKJPCLwAECOpA0AAP//7NyxCQAgDAXR6C5Olkr3bxUxErBTtJN7I6Q8wifuAMCFNeykopKyckZs2YZPq/bt4xGI8IOfjIAT4hw39i8cNnFwgsADAA9EpAMAAP//7Nu5DQAgEAPB679q5AB0KU9AMFPGyhZ3ADb1sJO1TlY7cGuFn7b4CVcvfjIvVH2Bk3Aj4PCCwANwqKoGAAAA///s3TEKABAAheEn17c5gcmRjE6ilCiZKLL83wXe/i+PuAMABwg7+GXEntJjzxyDePTCLXaJNWaJOcBrOUQl59sKgQcANkmqAAAA//9iGQ2rUTAKRsEoIA6MDuyMgoEEsANmcR00CzvUGbTdC3SrFwPSABB4CxhUbBSMTMDIzAw/3wa+ygZJbPQA41EwWIC0vxd4MPv2tLnwOnd0gGcUjIJRMAoIAAYGBgAAAAD//+zdIQrAMAxG4V/NtnIuPcrE7n+mQlhGasLkCu9TkdWPkBJ3AOADwg7+btmsKH5si+CjtAUU93/emRC0hRxs4s6Nz8+2jXLIATZx9KbzvvyxEXjMBt+kA0BF0gQAAP//7NuxCYAwGAXhK11b0MEsXMZkAO0kIeKPCIJt7oMUIRscec6yJOnDNI/1YNhRh645GC0MESZg8c0o9F+MNDxDXbkPd6BxHqUeHCmzp8y2rDXw0H7vlJmWJOkFcAIAAP//7NsxDoAgEETRuRh6bmw8iPEUXsAMySZkIyRUNv/VVBQUn13iDgBM+MfQUzsi7ADL+imhkANRiLWykT/jUY4vX0ZrTX2YCUzTAHN+C57rbmccdxx57KintrJzewCQSXoBAAD//xod3BkFo2AUjAIc4NDhgwxu7o5gSYWYcAat8vzRoBoFo2AUjIJRMAroAL4+fAS/LRA2wCPAL8Bw8sQ58DatUTAKRsEoGAVIgIGBAQAAAP//7NohEoAwDETRNShEb9CBI4FIB8WVOz1JcgOGig4CXfWfXRERlw21EQD8aK3K7OjB+63DYQcAgHmWlMas/b60blkeLiunIpxNAMCXpAcAAP//Gh3cGQWjYBSMAjQAajSmpiWBG5F8GqoMmuUFo0E0CkbBKBgFo2AU0BGw8vKCt0SCAAs3F4NOXRmYvnjpAkNJaeFoVIyCUTAKRgEyYGBgAAAAAP//7NyxDYAwDATAb+hgnsyJlLTMGhkRCTEA1V3jAVzY+uKFOwAf1bFTz+N27GnXuCcA8J/qpXrf3xXw5OnD6/20DYAlyQQAAP//7Ns7CgAhDITh8dFYeFhB9l6rF5Sk2gVrG/8P0qRJGwaGcAcAPuxZHPP1xa3BTgxBJabtAABwSq71d8mqWVbRMv1pXqEGAEiStAAAAP//7N0hDoAwDAXQv7A5Em4CBEE4JI5jIZCEcAcEbglpSRcUAoXbf6qtq6v6ZaAyEdHDjsR+6FJjGTsWopyL4BwqH1AWHt65z61FFVEFUQSX1SKptzkREdGfzm2Hvj7sreOEY17Q1G0KWCYiyh6AGwAA//8aXbkzCkbBKBgF0HN2QsODwGxxJ7sRM7ADWqUjwsrGIM/BxSDAwkpwYIcBaWUPSD1IrzQ7B4MSBxcYg9hCrGwMfMwsoyt9RsEoGAWjYBRQDLCtoFXNTIafv1NaNnr+zigYBaNgFDAwMDAAAAAA///s2zsOQFAQheEThccSsBWPNQob0NsAjd3QUt2EmCuj1WhUc77+NlNNJv9luUNEBDzLYds1SLIUxdCb+I6lR5o8jBEF/975te45vcBp6SOC03s4uT68JCIi645th1vW1xS03NGCR03jjKqsrY+KiCwDcAMAAP//Gh3cGQWjYBSMeHDo8EEGN3dHcDBYzJvKIGRqOOyDhF4DO/gAbNBndHvXKBgFo2AUjAJc4P/ffwyfbt7CKnt/4XKGZ9t2j27PGgWjYBSMeMDAwMAAAAAA//8a3ZY1CkbBKBjRAHLteSI4CEBbsUbCwA4IiLOyD+jADgiw4NjepcLJDWaLs7GDt3hxM48e5jwKRsEoGAUjFYBuzQJtwcIGZEP84duzWlobR9PIKBgFo2DkAgYGBgAAAAD//+zdsQnAIBRF0QeakCaNXQbIZOmcOm4SnsTGCYR/zwRiI1z4fuIOgNA8itXa28ex7vqEuAqHEgeTlfmMZ8oqedO1Hz32OPqMf30IPwAQx7w1a3DY8f87+rdd+j0HgJAkfQAAAP//Gt2WNQpGwSgYsQDUCFTXVAJ733hiB/gg5ZEAQAMjoIGT4QZgt3hBtnv9h5/vM7rVaxSMglEwCoY2+PvjJ8OXe/dx+uFKYxfDx2s3GPx8/RlWrVw/GtujYBSMgpEHGBgYAAAAAP//Gl25MwpGwSgYsSA1PQnsddCgzkgZ2AEBNsbhWfTDbvGCrfgRY2NH2eoly84J5oO2gIFW/YDUjq76GQWjYBSMgsEPmDnYGZhYWXG6UzULUp9v2rwRfI7eKBgFo2AUjDjAwMAAAAAA///s3TEOgDAIheF3MqIHdlcHT2Zag7VNk8a5A/+3cAA2Ag82dwCE1Icor8f2nmVF4YMOjDzQOSl/VW3z586lAgDm8Y9Z/jnrTw1XNlt07hedAhCLpAcAAP//7N1BCsAgDETRAXfe/0A10Mv0FCViwE3FTWnR/47gchIn6+3lA8CEKF70np2dgh21EOPrMuU/ijd52uaJb1/Oz7qrC4AiFAIAvCPlLA3CHS9Xvsops6MOcDiNDmArkm4AAAD//xod3BkFo2AUjDiweMlCcOOPlZcHfEPWSAO//v9jYGcYHdwhFYC3fTFCBn7wbeeCrQACrYuFDQb9/PeXAbZO9vu/v4POb6Ng6AFQemSHbrEEDUyC+GA2I4iN3zvo51KNpslRMBQArhuzYAAkL+XlyvBo9UbwBM7o6p1RMApGwYgCDAwMAAAAAP//Gt2WNQpGwSgYcQB0iDLoMGXQqh3YLRsjCYAGJkBnz4yCgQXIK4FgnW0GpNVAEPHRLWEjGYAHbRgYGTiZYYOKED4tVt49/fljdJBnFAx68OnmbYb/f3Gn0z9fvzGczS0D07t27h9dvTMKRsEoGDmAgYEBAAAA///s3TEKgDAQRNFZiU3ufxHJ0YKVBARR2UaxEaL7X7ekSZFqmCU0dwCEUsq0BTtRWzvamyNza91/h/53vgn0hA+D5FbDdJy5mVDoO0YzJRvO9s2bAc4d/7aAXqWctdR6eTvaOwDCkrQCAAD//xod3BkFo2AUjCgweepEsHcVYsPBAzwjFbz8/ZNBjomTgYWRwP6NUTBoAPpgECk3fcG2isEA8pYxhBrE1jEYGB0kohzABm9AgB4rcMgBoJVj/0bjeRQMAQC6NQvf4A4ISHpCBndA268vXbrAoKdnMBq1o2AUjILhDxgYGAAAAAD//xod3BkFo2AUjBgAOmBxJJ+1gwxAHbnnv34wSLNxwM/qGAXDF2AbROBmQB8cwn3NMDqAbCPDvtID28ARVjP+Dc6BI/BgDBGDLpx41Ay1K/ZHt2ONgqECmEHn7rzG71jQ6h0xe2vw4cqTp0xkmD1r/mj8joJRMAqGP2BgYAAAAAD//xod3BkFo2AUjBiwePECsFfFnexG9KodGACt5nj66weDGCv76O1Zo4AkwAJejYJ7AANz4GgUDGbw5e+f0fgZBUMCgLZlEQPkQiE3Z4EuUOjp7mfg5xcYjeBRMApGwfAGDAwMAAAAAP//Gm3Nj4JRMApGBPj48QO4kccAvf58FEAAbIBndOZ+FIyCkQlAq/i+4jmgdhSMgsEGmDkIXwjALirCwK+lAWYvXrxwNA5HwSgYBcMfMDAwAAAAAP//Gh3cGQWjYBSMCABr3AmbGjFwSkmORjoSAHXuQDflfPjze9C4aRSMglFAH/BhdNXOKBhiAHTuDjFAzMEarAp21t4oGAWjYBQMa8DAwAAAAAD//xod3BkFo2AUjAgAW7Uj7e81GuE4wJvfvxhe/fo5erDqKBgFIwSA8vrooO4oGGqAiZW488GETAzB5++AbsgEHaw8CkbBKBgFwxowMDAAAAAA///s3b0JACAMhNHbfztXsVaQCynSCLaG700RLn+EOwDac2E3srDzvR3czb1iTau+1QbQk6d2CHPxmziq/MDBjgMelQYPALQl6QAAAP//Gh3cGQWjYBQMezAFuiRbxt9r9CBlIgDsHJ7Po9s1RsEoGLYAlM/f/f41GsGjYMgBZnbCZ+7AAGgrNghs2rxxNKJHwSgYBcMbMDAwAAAAAP//Gh3cGQWjYBQMe3Do0EGwF0dX7RAPQLP5L3/9BF+XPjqzPwpGwfACoDz94teP0VgdBUMSMDIT330RMh3dmjUKRsEoGCGAgYEBAAAA///s3bEJACAMRNFfuP+SVk4gIY0IDiBYGf4b48jlDHcklWYl681e0ekxXdOSChkZpKGtPtYuq1mc3zt4vSOpOmABAAD//+zdwQkAIAwDwG7gII7f8fxI0QHEn3I3RQklEe4AX8t9zAl27o29plWFy7544G1Vmm76nNedliqX1tckegp3gJ9FxAQAAP//Gh3cGQWjYBQMa3Do8AGw94RNDUcjmkIAulVndBXPKBgFQxeABnY+jZ6lNQqGASBlcAe2cge0ivfjxw+j0T8KRsEoGJ6AgYEBAAAA///s3DEKACAIBVBpCrpDdP9TRkF7Q0vy3uQFBPmowh0gNf923rLFA/9ZvSrYIZNS758qrxOuNvquz0wAkE5ETAAAAP//Gh3cGQWjYBQMWwA6PPHDxw/gG7I4pSRHI5qKALaKZ3R7xygYBYMb/AENyP76MTqwMwqGFSDlUGUQ4NdSB9MXRw9VHgWjYBQMV8DAwAAAAAD//+zdsQkAIAxE0RRWlu4/jW7iEiJYSKL2FhYS/gOXOI8c4Q4At84PXdpTqHhLWzy6pqVv0OIBvqPha+3NZs8BT0K8P6gsFu6suzu50NwB4JSITAAAAP//YhmN21EwCkbBcAWwGbrR83ZoC0AdyO//vjMIsLAyCDCzMDAxMg5n746CUTDoAWgb1rs/v8Er7EbBKBgFDAzcCrJg+tChA6OhMQpGwSgYnoCBgQEAAAD//xpduTMKRsEoGLbg0qWLYK/xqauNRjKNAbgz+fsXeKvW59HtH6NgFAwYAOW/Bz+/jw7sjIJhD0i5Dp1dVASu/tLo1qxRMApGwXAEDAwMAAAAAP//Gh3cGQWjYBQMWwBbucOroToayXQCoK1aL3/9BB+6PHqr1igYBfQDoPwGyneg/Dd62PkoGAWYgFsecqjyw4cPR0NnFIyCUTD8AAMDAwAAAP//7N2xDQAgCARAEgtLB3H//QwFvY0WercDBU/yCHeAJ9VlLouUs1CZu2rR1McDZ9WsCVT5Tev7H7PSmEqVgYdFxAIAAP//Gj1zZxSMglEwLAFsZo5LevSWrIEEoPN4vv79xsDHzMIgxMrGwDJ6Hs8oGAVUAaCBnHe/f48O6IyCEQtIvTELtDWLYXRb1igYBaNguAIGBgYAAAAA///s3bEJACAMRNGDbOD+S1prISdkAK0k/gcOYGFz4SLhDoCScjLXWKb8BH/D7EPIA9xz3crvqM+xK5DA1yKObp/hDrUsACVJWgAAAP//7N3BCQAgCAVQoUNBQ7T/VrVJkBN0i3hvAwUvH0XhDvClteYpy0nWW4Q8cC834HJ2gFRavepEH/kxy1kW8KWI2AAAAP//Gh3cGQWjYBQMS/DwEWRmbvSmrMEJYIM83MzM4CvUOZlIm4EdBaNguIOf//6Bb74CDeqMrtIZBaOAcoB8u9bHjx8Y+PkFRkN1FIyCUTB8AAMDAwAAAP//Gj1QeRSMglEwLMGli5CZOZbRlTuDGoBWJMAOgx29Qn0UjHQAyg+vfv1kePjjG8Nj6HXmowM7o2AUYAeMZEwK8GtpgOmLly6OhuooGAWjYHgBBgYGAAAAAP//7N09CoAwDIbhr1pHxfsfUtJJKLRIMznq2PA+N0jIFPLD5A6AkKyYh3XwBn0K4yjsXZuuVLXnTeeatbCyheDGdI7Xfm/e2AHw3d+1rLdiRqYBxCLpAQAA///s3cEJACAMBMHrv8hUID5FzEdOrEEw7NSQV1gSyh0A5XBv51+uFHouxRynYOATECrxMsc1jmc7bp3TcrHYAR7hHTqAsiRtAAAA///s3bEJACAMRNETTSe4hvtvZxNFQSewUf4rM8Pxw3IHwHdOb6fS23nZ7vJYCCrJlGMiwIxnzM9Wrc9ljqutdY6vGwAAwHWSBgAAAP//7NzBCcAgEETRJcFTsIXYfxlJulJQma3AS0CW/0DcmwcPwjBIuAMgHOrWsajNo3aDlj5gVsiTT54v7EUtMzVzqsKc0X0G8K8jJeutLZ9xldv393u4GQCxmNkEAAD//xptHY+CUTAKhh2ALbcWMjUcjdxhBiBXQv9leM34i4GHiZmBm5kFPOAzCkYBPcHoQM4oGAWDAzCxkTa4w4x0Y9YoGAWjYBQMK8DAwAAAAAD//+zdsQkAIAwEwBQ2uv+4FqIQcAGLyN0GaR/+I9wBoJxdb8na1h5eFvTwwl2tmoIcKK+Nfk7Ij5oA34iIBQAA//8aHdwZBaNgFAw7cAm6codTSnI0ckcAwDbQw8nMzMDNxDx649YoIBr8+f+f4TfSGTmgVTmj15CPglEwvAC3AmRbFuxGzVEwCkbBKBg2gIGBAQAAAP//7N0xEgAQDETRDIXh/geVUmPMRuMK+K9Jrd3ZCOEOgOd093hSI9z5zhn0SI1GT45ZEgcisWmtSmHOmLuJo0YOnx0DAIBrmdkCAAD//+zdMQoAIAxD0V5Mvf8txDuIo9KK4uoa/tvcnUJoCHcAALJGrBTtmem31eNhD8tb+m6AM3cb57wBaPCDyr+8vdNri6PKORV+AgANZrYAAAD//xod3BkFo2AUDDtw6NABsJd4NVRHI3cUwAH6qh7QFeuco4M9wwIgb6n6A91OBRvUGwWjYBQMX0DO4A4L1+ihyqNgFIyCYQgYGBgAAAAA///s3DEKACEMRNExsGyj9z+s4C5jITb2ov81sU/3CRJ3ABzrKZnlYskBoE6xJ3rsCb0OPp4p+LNnMw427dO4xPGbiAMAAK4n6QcAAP//7N3BCQAgDEPRIoIHZxDcfyBxDe+iorQbiAf5b4yQtIQ7AABos8derZugIY93jsDnEQtrdgtn6IyqT44bA7gj5iSt1NPyZZYF4BsisgAAAP//7N0xCsAgEETRXwgpvP91TRgRsQ2IhfzX2FsOO7uGO5Kukg49XsrSJn1fCw2W4ZCEOwl5EvykyvUY+vySP22842VO4LjUWNIJpVrLknQh4AMAAP//7N0rDgAgDETBDQ6uwP3PiCIQPkVha+CNRFZuuoVwB8CTUibcgY8RQJRWr3WgOL9f16x2hb35Y+8/sJmsGzjtbN5I1KcAAADcSOoAAAD//+zbwQkAIAwEwejHBrT/lsSKJELkCvChslNBwN9yEncAADgkAoZ+7VIee7KlHYCcRiB3ywpIY0wsa0KsbRyLGwAvKa2ua8fovBuAf5jZBAAA///s3cEJACAIhWEP7j9jbpALRBQIEUR0i/q/DaTbQ3uEOwCeYpb6OMpnyrjQWMO9CoBmcQa209q/dAiJykHtN1s1AH4R4U52580BvENEKgAAAP//7N2xDQAwCANBT8D+m6aNUlCnh7uWDV6yEHeAUTrulDfoDNEzsJ/z7hoNAMA+SS4AAAD//+zZMQEAAAzDoPhXPQl7e4AN/goEAAAAYFN1AAAA///s3TERADAMAzHvwdArf5a9FEYiMfjVi407AADACnXPz+wrdIAxkjwAAAD//+zdsQ0AAAgCMBb/f9nJxRNIewYJINwBqlwta2zuAACPK3SgUpIFAAD//+zYQQ0AMAwDsSAYjJU/pA7JpMKobAan/OLcAVbp15Nz6hoWAADYL8kHAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s3TERAAAIA7H6V8ehiAkTkFj4rUuNOwAAwBt7h95dogM3JBkAAAD//+zYMREAMAwDsYzlj9Rm0KVrCeQkCPb24g6wShOHAgBf58WdtEYCdpiZCwAA///s2TERAEAIA8FowMkX+NeAI5pXwexauC4x7gCnzH/hqp+wAADAfUkWAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NhXrTKhAAAgAElEQVTBCQAgEAPB/K1BuP6rkKtMsAxvpoMlvzh3AACAMVbtl9p9jA78Icll546JAABCGAimoHr8C8UBDl4AsyvhyhQx7gBnzDhTBgD+qp9CwC1JFgAA///s2EENACAMBMF6wAkJ/jUUMX3xICCjmXFw2d85d4A2cuefMtYUFQCaO1USAzwRcQEAAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s3DERADAMAzHfdSt/gA2TDGWRSBR+82DjDgAAsMa5/3On6okOzJCkAQAA///s2EENACAQA8H+8UDOv6tDCQkyuBkHm/7q3AEAAMZYtV9qnzY68IckFwAA///s2TEBADAIA8EMjMW/XSZMlDsLvyXGHeAb+8BVP1EBAIAbkgwAAAD//+zYMQ0AIBAEwVOACxL8q4OC5EOBic+Mhe3W3AHa+HNnrCkqADR395EY4ElSAAAA///s2MEJAAAIA7Huv3NRHENIVrjfmTsAAMA704oGcJIsAAAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYuwkAIBAD0OudQdx/C7m9/IAj2CnvNWkD6eLcAQAAnrLGvK5bWj2Z2Y0O/CEiNgAAAP//7NixDQAgDANBF1Rk/12hQGIHuqC7CV5yZ+cOAADQytnrOXfUNDbwlyQXAAD//+zdMQEAAAjDsD34t8w1E5DI6FNxBzijt6yxQgcAAL5IsgAAAP//7NhRDQAgDEPBKkAG8y9pKCFBBrtz8NK/OneAb/Tpl7JqGxUAAJghyQUAAP//7NwxDQAACMCw+VeNCC5IK2PHxB0AAOCUzXMH4J1qAAAA///s3DENAAAIBLH3r5iJ4IEN0sq44cQdAADglK79cwfgnSQDAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2EERAAAIw7D5V8scoIMjsdBfzR0AAOCldoQH7kuyAAAA///s2LEJACAQA8DfwDXE/Rd5p9FCEFzB6uGuSRtIF+cOAABQyln7q24b/WXONDxQX0RcAAAA///s2DkNAAAMxLDjz7nPVBCVbArZYu4AAACvTJdgACfJAgAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7N1BCQAwDAPAGJiMwfwrGFU26Gsayp2DkF8+Me4AY1TdjrLOVioADOYKHeCT5AEAAP//7N2hDQBADAOxkLLv/tNWKvwdKnuFYyEx7gDnVD9RAeCwcYUO8CVZAAAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NtBCQAADMSw+le9/xwcJDIKFXcAAIAZliyApzoAAAD//+zbsQkAAAzDsPz/cYdC5p5QkM4wWNwBAADe2LFkARxJCgAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7NtBCQAADMSw+le9/xwcJDIKFXcAAIAZtiyApzoAAAD//+zdsQkAIBADwHQOIO6/kjqQCM5g83DXZIB0aWLcAQAAyjgfnrLa6C/3mooH6ktyAQAA///s2EENACAQA8E+EUDOv8TDAQkuyM042PRX5w4AADDKqv1y+7Thgf8luQAAAP//7NixCQAADMOw/P9yoHTtCwXpBW82dwAAgDemFQvgSrIAAAD//+zYQQ0AAAwDofOvev85aAIykDsAAMAMuQPwVAcAAP//7NoBDQAACIAw+re1gT30j8EQd4ATxlYNAAB8VC0AAAD//+zYQQkAIBBE0e1gE8H+GdY0ehAET2ZY3msw/Ns4d4AScuab0UYXFAAKO2vLC/CLiAsAAP//7NgxDQAADMOw8udcbe8oTLIp5Iu5AwAAvDGtWABXkgUAAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zYoQ0AAAzDsP5/cNHA+D6YZL8QFnMHAAB4YVqhAK4kCwAA///s2AENAAAAwqD3T20ON4iB3AEAAAB4VQ0AAP//7N0xDQAADMOw8oe8YyqAIZhkw8gTcQcAAHhhxwYd4EhSAAAA///s2DENAAAIA7D5t8zBBKCApJVRuQMAALywI3cAjiQFAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2LEJAAAIBLHff2ItBHs3EJIVrjtzBwAAeGGqhQK4kiwAAAD//+zYOQ0AAAzEsOPPuc9eBpVsCtli7gAAAC9Ml1AAV5IFAAD//+zcMREAAAwCMfyrLQ5qokvvEgu/MWDcAQAAXrg+VG5HeOC/JAsAAP//7NwxDQAgEAPAKkAHwb+RRxAhQQPLJ3dLBXTrUOMOAADQwvl0qDzWfFm7FA/0l+QCAAD//+zYAQ0AAADCoPdPbQ43iIHcAQAAAHhVDQAA///s2DEBAAAIw7D5F7yLAwMI4Egs9Ku5AwAAvDetSACXJAsAAP//7NgBDQAAAMKg909tDjeIgdwBAAAAeFUNAAD//+zdMQEAAAyDMPyrnoL9PRIZPIg7AADAPBt0gEd1AAAA///s3TENAAAIwLD590yCAQRwtDL2TNwBAAD+Gxt0gFO1AAAA///s2jERAAAMhDD8q66C7j8kMjjEHQAAYJ5zB+BRHQAAAP//7NpBEQAACMOw+RcNM4AAHomMXsUdAADgvR3nDsApSQEAAP//7NixCQAgEATBT+1A7L8gtRwFEYyt4Jnp4NjsnDtACnP0N6O0KigAJHTWlhXgJyIuAAAA///s2LEJACAMRNG0jiDuv1+shSBYO0F4b4Pjui/uAC3kzjdjrOlQAGiojrgD8BURFwAA///s2DEBAAAMw6D4Vz0Hu3uADOQOAAAwTewAPKoDAAD//+zYMQEAAAzDoPhXPQe7e4AM5A4AADBN7gA8qgMAAP//7NwxAQAADIMw/Kueg909EhkciDsAAMA0vx2AR3UAAAD//+zaMQ0AAAjAsPk3DQr4OVoZy8QdAADgtXHuANyqBQAA///s2KENAAAIBLHff2IQJEyAR7QrnDtzBwAAeG2qBQK4JFkAAAD//+zYOQEAAAjEsPPvmUcBO0NioVvNHQAA4LXpEgjgkmQBAAD//+zaMREAAAyEMPyrroPOPyQyOMQdAABgmnMH4FEdAAAA///s2rENAAAIw7D+/zOiF7Az2GdEEXcAAIDXdpw7AKckBQAA///s2KEBAAAIw7D9f/AUgg/QiOSFupo7AADAW9OKA3BJsgAAAP//7Ng5AQAACMSw8++ZxwEzQ2KhW80dAADgrakWB+CSZAEAAP//7NihEQAACAOx7j9xFccGaESywrs3dwAAgLemFQfgkmQBAAD//+zYMQ0AAAzDsPKnXGkag907bAr5Yu4AAABvTSsOwCXJAgAA///s2DEBAAAMw6D4Vz0Je3uADOQOAAAwS+4APKoDAAD//+zdMQEAAAyDMPyrnoS9PRIZPIg7AADALBt0gEd1AAAA///s3TERAAAIA7H3r5pDAStDIuOHVtwBAABe2jFlN+gAh2oAAAD//+zcoQ0AAAzDsP7/8cCknjA6YJ8REHEHAAB4acdMGeCUpAAAAP//7NyhEQAACAOx7j8ygusIWEQyxosXdwAAgJd2/HYATkkKAAD//+zcIQEAAAjAsPcvDRGwiC3GxcUdAADgpTFTBrhVCwAA///s2KEBAAAIw7D9f/AUghOwiOSFupo7AADAS9MKA3BJsgAAAP//7NsxDQAADMOw8Ec9Cjt72DAiRdwBAAAm2bIAHqoDAAD//+zbMQ0AAAjAsPkXTZDAy9HKWDJxBwAAeGlsWQC3agEAAP//7NsxDQAADMOw8Ec9Cjt72DAiRdwBAADmWLIAnqoDAAD//+zbMQ0AAAzDsPBHPQo7e9gwIkXcAQAA5liyAJ6qAwAA///s3TEBAAAMgzD8q56FnT0SGTyIOwAAwBynLICn6gAAAP//7NsxDQAADMOw8Ec9Cjt72DAiRdwBAADm2LIAnqoDAAD//+zYoQ0AAAgEsd9/YhAkrIBEtCucO3MHAAB4Z6pFAbhIsgAAAP//7NgxAQAwDMOw8OectRR67pAo+LO5AwAAfGX6Mq0oABdJFgAA///s2KENAAAIBLHff2IQJKyARLQrnDtzBwAAeGW6BAG4SrIAAAD//+zbMQ0AAAzDsPBHPQz7etgwIkXcAQAApliyAB6qAwAA///s2jENAAAMw7DyR7xrKoWdO2wYUcQdAADglR3nDsBZkgIAAP//7NoxEQAADIQw/Kuuhm4/JDI4xB0AAGCKcwfgoToAAAD//+zaMQ0AAAjAsPn3TIIFTo5WxjJxBwAAeGWcOwB31QIAAP//7NoxEQAADIQw/Kuuhm4/JDI4xB0AAGCGawfgqToAAAD//+zaMREAAAyEMPyrroZuPyQyOMQdAABghmsH4Kk6AAAA///s2jENAAAIwLD5F03QwMfRylgm7gAAAG+McwfgploAAAD//+zaMQ0AAAzDsPJnvGNSMezbYcOIIu4AAABv7Dh3AE6SFAAA///s2CEBAAAIxMDv3xcUggw4xF2FuZk7AADAG1MtBsBFkgUAAP//7NwxAQAADIMw/Kueh109EhkciDsAAMAEM2WAh+oAAAD//+zcMQEAAAyDMPyrnoddPRIZHIg7AADABDNlgIfqAAAA///s3DEBAAAMgzD8q56HXT0SGRyIOwAAwAQzZYCH6gAAAP//7NyhAQAACMOw/X8wCrEbcIjkjIqKOwAAwAs7fjsAZ0kKAAD//+zbMQ0AAAzDsPBHPQ67etgwIkXcAQAAJtiyAB6qAwAA///s2jERAAAMhDD8q66HLr8kMjjEHQAAYM61A/BUHQAAAP//7N0xAQAADIMw/Kuehz19Ehk8iDsAAMCcUxbAU3UAAAD//+zawQkAIAwDwG5S959IcAvBZ0FwBH/K3QYhvxDjDvCFzHZizD4UCgAPquW5A3AlIjYAAAD//+zcoREAMAwDMe+/bgoLirJAWXLSCmYPLO4AK3TcuXUMCgAD+dsB+JTkAQAA///s2LEJAAAIBLHff2VBBEewsUngljhzBwAAeNVVGwAHSQYAAP//7NwxAQAADIMw/KueiB19EhkciDsAAMCU3w7AQ3UAAAD//+zcMQEAAAyDMPyrnogdfRIZHIg7AADAlN8OwEN1AAAA///s3TEBAAAMgzD8q56IHX0SGTyIOwAAwJQNOsBDdQAAAP//7NwxAQAADIMw/KueiB19EhkciDsAAMCUmTLAQ3UAAAD//+zaMREAAAyEMPyrrogOvyQyOMQdAABgxrUD8FQdAAAA///s3DEBAAAMgzD8q56IHX0SGRyIOwAAwIzfDsBTdQAAAP//7NoxEQAADIQw/KuuiA6/JDI4xB0AAGDGuQPwVB0AAAD//+zasQkAIBADwEzi77+VuIOdheASj3DXZIB0IcYdAACgzWl47uy5XtYoxQP/S3IBAAD//+zasQkAQAgDwGyi++/48I07iHC3QIp0IcYdAABgxdZr501uVSseuC/JBwAA///s3DENAAAMw7DwRz0Sk/rYMHJE3AEAACb8dgAeVAcAAP//7NwxDQAADMOw8Ec9EpP62DByRNwBAAAm/HYAHlQHAAD//+zcQQ0AAAyEMPyrnoxLllYGD8QdAABgYvHbAXinOgAAAP//7NpBDQAADIQw/KueieVerQyCuAMAAMy5dgCeVAcAAP//7NwxEQAADIQw/Kuuid5PiQwGxB0AAGDObwfgSXUAAAD//+zaQQ0AAAyEMPyrnonlXq0MgrgDAADMOXcAnlQHAAD//+zcOREAAAzDsPDn3IdEr5MEw4PFHQAA4NVU++0AXEmyAAAA///s2kENAAAMhDD8q56J5V6tDIK4AwAATLl2AB5VBwAA///s3DERAAAMhDD8q66J3k+JDAbEHQAAYMpvB+BRdQAAAP//7NihEQAACAOx7r9uJYYlOFQywss3dwAAgFfTCg5wJckCAAD//+zYwQkAAAjEsNt/ZUEEZxBfCXSJmjsAAMCbrtoAOJJkAAAA///s3DERAAAMhDD8q66J3k+JDAbEHQAAYMZIGeBZdQAAAP//7NgxEQAACMSw928XRgZMcEyJhI41dwAAgDdTLTbApSQLAAD//+zdMREAAAyEMPyrroneT4kMFsQdAABgxikL4Fl1AAAA///s2FEJACAQRMFL5PXPINjECKJoBj9EZhos+/fEHeALWfLM6LU5FAAetcPOHMM9ADdFxAIAAP//7NsxDQAwDANBM0j5w+zcISQ6RNEdhd8s2bgDrFB1hASA4d51yQL4LkkDAAD//+zbQQ0AAAyEMPyrnordq5VBgrgDAABMWLIAHlQHAAD//+zdMQ0AAAgDwfpXzEJC8ADbnYQfu9S4AwAAvNv7864SGuBakgEAAP//7N0xAQAADIMw/FveMxX9Ehk8iDsAAMDcuWQBbFQPAAD//+zbsQkAAAzDsPz/b8dCrsgmnWGwuAMAAMz9WbIAJpIUAAD//+zYsQ3AIBADwJ+IsP8eKTJG9CUiRMoKKILirnFrubRzBwAA+NXoT7TMbUa+z+vLo9TlXQCmRcQLAAD//+zdQQ0AAAgDsTkA/2pRQUJIK+Mem7gDAACsujqkXO1tE3ggyQAAAP//7NrBCQAACAOx7j+zD6coiCRjHCfuAAAAVXPo2gF4J8kCAAD//+zcIQEAAACDMPqnfoq7LQYCcQcAALgyUwY4qgYAAP//7NtBDQAACAOx+fe8QBDBr5VwzyUz7gAAAG/ukjWtwABfkiwAAAD//+zaMQ0AAAzDsPKHu3tHUfSzYUQRdwAAgJk/1w7AVJICAAD//+zdQQkAAAjAwPVPbQpB5C7GPhN3AACANZcuWQAvVQMAAP//7NixDQAwCASx339iIgTKFHT2CFeeuQMAAJyYetlucQEuJfkAAAD//+zYoQEAAAjDsP1/LWgMV8wlJ1TW3AEAACpuVliAtiQPAAD//+zbQQ0AAAyEMPyrnordq5VBgrgDAAC8sGQBDFQHAAD//+zbQQ0AAAyEMPyrnonlXq0MEsQdAADgnSULYKQ6AAAA///s3cEJAAAIA7Huv65PP26hIMkYB6XiDvBOl1cOALhmkgWwJMkAAAD//+zbUQkAIBAD0CU77J9AMIYFhAuhIO81GPsbzLgDfKNqdJQ9l1IB4DGXLIBLkhwAAAD//+zbQQ0AAAyEMPyrnonlXq0MEsQdAADglSULYKg6AAAA///s20ENAAAMhDD8q56J5V6tDBLEHQAA4JUlC2CoOgAAAP//7NtBDQAADIQw/KueieVerQwSxB0AAOCVJQtgqDoAAAD//+zbsQkAIBADwN/g3X9FrcXCQnAFBS3umrSpAzHuAAAA18zev79kjdp2lsznXQCORcQCAAD//+zbsQkAMAwDQU1ksv9m7tJkgwSC4W4C1Q8SdwAAgGcmXLL6xJ2q9X0LwLUkGwAA///s2DERAAAIxLD3bxc2FkxwTImEjjV3AACAM1MtJsCnJAsAAP//7NgxDQAACASx9++ZQPBAmFoJN565AwAAnNix01ViAnxKMgAAAP//7N0xDQAADMOw8Ec9EpP62DDyRNwBAABeuGQBDFQHAAD//+zdOQEAAAjEsPPvmUcEA0sio0vFHQAA4GyqXbIAPiRZAAAA///s2qERAAAIA7Huvy0W1SEQmGSMvxd3AACAsx3XDsCLJAUAAP//7NsxDQAADMOw8Ec9EDv62DAiRdwBAADeLFkAI9UBAAD//+zYsQ0AMAgEsd9/YiSUiCEoaOwRrjxzBwAAWPndeVUiAlxIMgAAAP//7NihEQAACMSw339XDo9iCAQmGaGy5g4AAHAy1QICfEmyAAAA///s3LEJACAQA8Bs8O4/oG5gLfwQCnK3QUiXIsYd4BujqqPsuZQKABf52wF4KMkBAAD//+zYwQkAIBADwatI7L8tBR9yKFiEgsx0kDxX3AG+UUo9U4a4AwDXzNZjZToc4JWI2AAAAP//7NwxAQAADIMw/Kuehz19EhkciDsAAMCbkTLAWHUAAAD//+zcoREAAAgDse6/LhLDsQIGk4zwsqLGHQAA4GSPlLtKPIBPSQYAAP//7NoxDQAwDANB8+ebTh3KIeqQSHcIfrZs3AEAAFo2vnZunQEVAB8leQAAAP//7NixCQAgEATBr+yx/y7EGkyMHixBBBFmkksvXnEHAAA4sj6MO7OPvZnt+ReAKyKiAAAA///s3EEKwCAMBdFvVcj972oRMaWIoDewXcxbzTJknyQ2CQAA/upxV691TdfusjpcUdlsdtwN4IzxSHmcZQEAPibpBQAA///s3DEKACEMRNFhs2Ej3v+ogiiCkBtYLFj810z66aYI4w4AALjC7F2jtcw1R96nHjO9EfpqzfQoMncKBn7AI2UAuISkDQAA///s3CEKACAMRuE/CWLR+9/SIWiT2cwKGt7XVnaA8RjHHQAA8IRXOV7i9GoaVtd8au1sbTsMedETUlLMhboHuIRHygDwEUkTAAD//+zasQkAIRBE0QE5EY4z0f47XDDRWLYCAw8x+A+mieFz7gAAgKP8eBmt/XborHgJ5OtmCk9Uyp/eUil6gA1UOwBwEUkTAAD//+zbIQoAIBBE0YmCaPH+FzSoYBCbrDewqOE/2Lwwcdil3AEAAFeM1tRz3i9Xr9huK3lsXIjyKe2rHgBnZqkkBgC/kLQAAAD//+zdsQkAIRBFwW3A8Oy/Rk0uUzQ2MFEMZmCbeHxYcQcAOOqFqLPy1zJvxJ30ZZEHNo0PWe3C6g6ATRHRAQAA//8aHdwZBaNgFIyCUTAKRgFNAGj71acXz8FbogYzALnz7df74MEdPgnJ0XN5RsEoIAB+ja7aGQWjYBSMgsEFGBgYAAAAAP//7N2xDcAgDERRD5AW9h8MFgAqhGgACeGOCUjIfyu4O+nOhDsArtNy4ajAQWtHp8Sg1acvWSFP8k6rWo+x+nkLwK7XKuPlgS0A/I6ITAAAAP//YhqN9VEwCkbBcAF2dg5gn3y+eXs0TkfBKBggABkguTvkBnaQAcjtID+QcxX7KBgFwx2MHqQ8CkbBKBgFgxAwMDAAAAAA///s3bkNACAMA8DsvyQswAJUyGIDRJHibgO3Vh7lDgDwRaZ11hztbuu8SIZkyVoZcOX9+VbuAPRTVQcAAP//7NxBEQAgDAPBakAB+NdVAThgigU+DOzquMQsCwA4UjOsmbnPiV9TFU8VPK0PMy2+p9oBuFRELAAAAP//Gl25MwpGwSgYBaNgFIwCsgFoYOfdg/vDcmAHBkAHQr++fWvQHww9CkYBLcH/v/+GzfXnP1+/AdMC/PwD7pZRMApGwSigCmBgYAAAAAD//+zdsQkAIAxFwUwk7r+WpY2kyAIiCHo3QepX5Is7AMCWjB35m+aH6FERK2fd4UdzjGfmzyvutNav3wJwREQsAAAA///s2zEKwEAIBEDbdP7/fZc+LwiHgfR3kELCTG3hli7oLQsA2FaFTpUd90+OvRWV9TrHM3lkdl8XPvUWIgA0FBETAAD//+zcsQkAMAwDQe+/sgkEdWnTGXw3xiNkuQMAfDnd68LOK4HHgodNcqKcM2UAhqqqCwAA///s3KENACAQBMHrv0togKAxBIFHkvxMGStW3AEAnp2gM3orG3YugYdK1jRSBvhakg0AAP//7NyxCQAgEAPA7L+vX30hjwtYityNkDKEKHcAgGuz2HEsfEzB8/ORNIyuSq+SBcDLkmwAAAD//+zdoREAIAwDwOy/aNFMwGFRteX+R4iMSJQ7AEDLXqXYedwLeJnwM1s7AAMkOQAAAP//7N0xCgAgDAPA/v+vHQUdBHFwcXFW756QsSTUcQcAOJoNlZIpqM36ovX7TI039dq0dgBuEBEDAAD//+zdsQ0AIAgEQPYfU3sGsDJYW9pI7kaA7kMe4Q7QTr1rBd6pAuW6UOHu9BDNYTq0szItFeAHEbEBAAD//xod3BkFo2AUDBtgZ2sP9sqnG7dHI3UUjAIqAtDZMqMrU/CDX1+/Mnx5/WowO3EUjAKSAOh2LNAtWaNgFIyCUTAKhgBgYGAAAAAA///s3LENADAMAjD+PzVrH6hyQNU5kX0CIxIodwCAp55idXHB36mSFWv42gEYJMkFAAD//+zasQ0AMAgEsd9/T/qMgOhpUiLZY5xO3AEAVnPruFH+vCqXE+e5dgCOSdIAAAD//+zdMQ6DMAwF0N+YIHdhLpegvf89GHoDVro0IiRUmIWhC6ISovpvsZTJkePFspSCNSMiIqJvXl3HQcVGKQ42EKtu9anypuPMPTaGYL+uTTkhvgNyXvouDdHe1Jr4ElJ6O3FO4K+KyxxVUajCiey+y79v7fTt0+K9eRyeCxHRTwD4AAAA///s3bEKgCAUheE7GXWHru//kIVLjXGcxIYoGoL+b1YRwcGDVwl3AADAiR5R3taFhXlApWxj5HrYBnraW3spNcxRGV8f3lxR+7aPfrJrKdxRyDO4W5rckvut8f90a2eO+MAsAOAFZnYAAAD//+zcIQ7AIBBE0XGtAdMLlPsfrGhqkM2QoBANOJL/jrDyZzPEHQAAMPB+DNaV/Oi6ExdE45DjWFrLOx1zZvkTyNGo7z859jjynDHqCOH3s4etHQDYkKQPAAD//+zcoQoAIAyE4UUN+v5vqcksFxYEMSiGwf+9wWAGj2OEOwAAYEFr550+1mpUpFKjj4JL/o5G698DnROFPdpFb/hoJxX05E1rhVs7ABCUmU0AAAD//+zcMQrAIAxG4UhwcvT+52vH4NBBEEpaOoirg8X3HePxJ8QdAADQYbUzRznO7eKOB41Wx5ARVLc5U/Owd5ktG0i/0OPrspTzc0Ko8f3hw2oHAH5KRG4AAAD//+zdMQqAMBSD4WyCojzvf/95fUgAACAASURBVMkuKm6SDtKhDoLLk/+DHqFLTCrhDgAAuPkrP62db7itcZTSbUj8RZ3/7JvOZgb0xHOgYV40Rrx+ByYDT68cmGT5Hb7vuoNcHwc8U6y0dgAgK0kXe3esAiAIQFH0FU4NDU7+/2/VJ2QQUdAWr6GhqUEI4x5wFMTNiyhxBwAA3PY5sxkFbXn6VdxxEDjW9XoQ+PmQ75u5Docejgl9SkV+dvqabys5kNQcRb32ZRgV1KiLUW3giAAAVZF0AgAA///s3UEKgCAQBdCf0CIo3HSDuv/hGiGjgWKEDhAMiPXfCZwRXAzq58lNRJ90SkI/jdxcopfsfxDy8yQitX5TxeqwFLBDNpd4fBsmaN4xL6vL+mqxnlj0vUdParpUoZKg5dmWlAHPECO6EJqui4joNwDcAAAA///s3E0KgCAQBeA5mXT/EwQVBeKqEkFIqE282bUUAhl5H7j3D8GHI09sIuqKc4MOJ48TF5aoEi7wLT9+7RUCAKtQVnYsszYEMn+GGNhvKQSTM4PXOue2ahmW9WAH7v27R68YJXkvTynN+kRERBVE5AUAAP//7N0hDsAgFIPhHgHP/Y8GHrUJWEjJUNNbYPk/iQRU0wc0dwAAwMBbO+/w+JLDgPlo7eocVng874tfnuadCzFusTe6z7Ok9ItQxy6Husf5WG+1quQ8Gjxu8tDiAYCFSeoAAAD//+zdMQrAIAyF4QwFp+65/wVFO1joIhHcJFtrA/93Asn4eImEOwAAYLjrxSBeYjdq7GeiP5uhjjWNvgwuIgU81tSJ3MRaebJ/RLmVMlYLT1U5Utr1TACAR0Q6AAAA//8aHdwZBaNgFIyCUTAKRsHoliwaA9AAxmAe3Bnos2MG+wAPKFw+vXgx7Fa34Vq1gw5Aq3g+PHnCwCsmxsDOy0tvZ1IdfLx2A2ykvp7+kPfLKBgFo2AUgAEDAwMAAAD//xod3BkFo2AUjIJRMApGwZC5vnmoAsjg2eDbmgXaYvTp+YtBMbAHGjhh5eAYdINgoIGddw/ug+NwuIGfr0hbhQS6FQx0Dg+PmNiwCAl+/uFzk90oGAWjYIQDBgYGAAAAAP//7N3BCQAxDAOw7D90ONwN+jlMkSYo5GeaWLgDAAh3ftC0mpWgIitGbXPPm1KP3lIf/3Kwk3astGTdSpvW7p5fPO7wAJSYmQ8AAP//7N1NCgAQFIXRu/91kpEyMqDQYwdKpO8swOhlcHs//MgAAEAlE+6cZl0yt63xojCvX70a6CXv5pWu234OdnprqnF/xMxqx5Yt2zsAgAdIGgAAAP//7N2xCQAgDETRbGDv/guKVSCFnCtYRON/W/g5DMsdAAA+p8drlcs/N8uOKS9deVLgkcwFj/7YqRh2JMY8DjPhvgNP650FDwBkM7MFAAD//+zcsQkAIBBD0dt/zFtA7C0kwm0gBvU/cAELixDDSwwAwOcYUj7HEfBo66dlrnNTiKeAx9V2UrvptfHkoq9Yo++51wp4aPAAgFlETAAAAP//7N1BDoAgDATAJo1rIp/w/29EYpaQyMGbCkh2LnyAC2XbKrkjIiK/xwdzSofFkkCpf9vjTSrFF5jjGmy7hpBPbMEcGG7o7dfipOmEEbH9DeW+tdB7C9ZTTBr5jjxouRUWlGZbd17j6vM3izEs8DDlxASPiIh0YmYnAAAA//8aHdwZBaNgFAwrIC8nD/bOp5u3GIRMDUcjdxgC0MANaDAHhMm9vhukB1kfttUUoA44aNCHhYMDPOgDOuR12IYpEVchjwLqgJ9fvzLwiNI+MEGDOe8fPxryB2XDzr0RUlCkywAPaJUTaEBpuALQ1eegg5SpDUA3aH159WrY3KI1CkbBKBgFQw4wMDAAAAAA///s3TEOgDAIhWESh9ZBeoR6/yu6mGfS3aU04v/dgK2QV2C4AyCV3s+nnGvC4xVrqNlSg6pLQ0o9RCUQxgBp0LCnHm7VPV2yR6knxIhISX1pt84bkQMefQXLvH9KqZ1ZdEVrK8X21laXCQD/Y2Y3AAAA///snTEKwCAQBK8QDgJC8v8PprBNKcgmpEmR7kRlBqwttBr29pA7AAAwHBI6kjnqvBil0PSVPerikOjZ9sM85yUSPYxl9UPiQCfi3zybsM4lu2J6CB5t6Jo96fSHEjs1OKV3lXK/T3IPvQcAAD6YWQMAAP//7N2xCoAwDATQ7C6CXTv1//9JMnVTEHEtV8gqiEViuLfkG3qkOYY7RETkBjYOrm13URl9x4IePNDR5jMt6dfbPGzK+hbCtNF3dxCC4mBy5OPY/auZqqRShodjVhEf1dvq8yeOWmXO2W2D1rlqn7bpS0QUgog0AAAA//8aHdwZBaNgFIyCUTCgANSpAs2Ygw4wHWodU5DbQe4GYU4BQQZeMbERdxjzKCAdgFamUROA0t9wHphABqAyAraCh5oDPN/evR3227HodaPV3z9/wCt4Buv5O3++fQfTo4M7o2AUjIJhBRgYGAAAAAD//xod3BkFo2AUjIJRMCAA1JECdahAHdPh0KkCbYUBYdAAD5eQ8JDZrkXtgYZRQEyYU2cQczhvw8IHwKuUHj9iEFZQpIp5sEHa4Qr+/fpFtavPiQWg83dA21ZZOTmHbbiOglEwCkbBoAIMDAwAAAAA//8aHdwZBaNgFIyCUUBXMNwGddDB51evwH7jl5YGH8A82MHfX8N3G89wBqABjo9PnwyaM6noDWBbI6mxvW3Yr9qh03YsdAC6PUtQXn5A7B4Fo2AUjIIRBxgYGAAAAAD//+zcQQoAEBSE4Xf/O7qBslN2GmWjrAg9/1cO4TUzb5ZhAQAuqX4VQ2gHEM+fqb4NoseeDUZlcbRXm1SqJv162Ol2pW08p3ZOjCjPqJ6V01+pMgC4xswqAAAA//8aXbkzCkbBKBgFo4DmALT1B3TF8HC+iQYbAHXCf93+yiAoK0f1A3RHwcgEX16/Ag+OjgIGhl/fKC9PQAPOw3UAlp6HKOMCoPAFXY0+WA9XHgWjYBSMgmEDGBgYAAAAAP//Gi1pR8EoGAWjYBTQFIBmxd/cvTPiBnZgANRxfPvgPrhTPgpGASXpCLQSbHRgBwFAYULpmVHfhvF5RaCBHXodoowLgOz//vHjgLphFIyCUTAKRgRgYGAAAAAA//8aXbkzCkbBKBhWAHb7xacbt0cjdoDBSF2tgwuAOuV/fv1mEJCWHlTuYuHgGASuGAX4ACgvvX/0cMRvw8IGQGdGkXtDHShch2v59O/HD/CWrMEARlfvjIJRMApGAR0AAwMDAAAA///s3SEOACAMQ9Fp3O5/PgwOiSMVGDRibP+dAENCGrYS7gBI5YQ7UR61VWkcafbOvpmLWo3UlKQxrShtWr+0elWlQEf7dbhL72UOnteIs0fo/N5p7gFOAwBJmdkGAAD//+zdwQkAIAiF4bf/slGnIqFwgKBDhcT/TSDhRUmlhQ4AOMrHj1gkvOYFJcU6dviPB3Llnlrengd/paesYRYqpvbpWwNAGJImAAAA//8aHdwZBaNgFIyCUUAVAOqAfnj6dPRMECIAaDXG+8ePBo17RlfvDD4AGtgBbWscHdjBD5jZ2MjWS40DmQcb+PfrF8Pv9x8GnbtAN2cNlpVSXx9Ayl55udFr2kfBKBgFwwgwMDAAAAAA///s3DEKACAMQ9He/8AKgiARXFwEdQjlv6UXcGmwIdwBADzTAqofBjVxOelvWnQUhjmgd8eL3oWCHZzd9u0oYM0YnDWjc6ydS7jTS5lznXEDQAoRMQAAAP//7N07CgAgDATREPD+5xUsZIu0ogQ/yLwjWFgMMRJ3AAApEXZY9rpOMUy/id3mzuTOSaPzVtghks4piSjZPryv9BxLkzuvqizXB4B9zKwDAAD//xod3BkFo2AUjIJRQDYYHdihHHx68XzAZ7RZOUdX7tATYAtv2FXnowM7xAMWDk6y9YIONh9OAHTGzmDcjoUMQAcrj96eOApGwSgYBTQCDAwMAAAAAP//Gh3cGQWjYBSMglFAFhgd2KEe+DDAN4uNbssaWADLS6Bb5kYB8YCdm5vs0Bpuq0h+vng9CFxBGPz+/n2wO3EUjIJRMAqGJmBgYAAAAAD//+zcMQoAIAiFYSGiyftf0bkTRJurYlTwfxewQZeHRrgDAAgj2Km1twim2bX6rec/pUWcD9OYpbyh+uvTS71+juXR5wBwiIgsAAAA///s3bEJACAQQ9Hsv/GBhUSwtFAPFflvhiskEEO4AwCY5qUnHum5XMe5VVnw3yUsZp3TwzSCnXW7N/tLPejVdayREtHqWQCAZJIqAAAA//8aHdwZBaNgFAwroK+nD/bO29PnRiOWRmAwnBEzXAEobAcKjG7Noh8ADUyMDuxQBjgFBIey86kGBvPtWLgAaIBnFIyCUTAKRgGVAQMDAwAAAP//Gh3cGQWjYBQMK8DPLzAaoTQE3z98GBS3Ow1XAOrog8J4IAAl55eMAuLB6MAOdQCnwGhZP5S2YyGDP0PQzaNgFIyCUTDoAQMDAwAAAP//7NuxCkAhCIVht6bb+z+jtN3FKcKtMYiS8P9eQHRTPBx3AABLfBGN/CzJ4lcN6bR8NeO4r/NIFoedPf61kz1G2M2eimPNomNZpi20PgAcISIDAAD//xod3BkFo2AUjIJRQBT4+PTJgN7oNFIA6HDlgVi9M3ruDn0A6Eas0YEdygDXCF+1Axoc+TkEt2PBwEDfmPXzNSTs7OwcBtQdo2AUjIJRQFXAwMAAAAAA///s27EJACAMRNGr3H9ORbQQGwOKE9hpwP8WSNo7EsodAMBRS5FAelGv5clcrnfg3S4hw+cvhCMXTTMHmwAA3JC0AAAA///s3T0KACAIhmHHIGip+1+yn8WE6AKNJfQ+J1DcPlAJdwAARzvUebUq9Kt9sNpUr3cfEq+l4VvM5esJWR8ya3NQCQDAFRFZAAAA//8aHdwZBaNgFIyCUYAXjJ6zMzDgx6dPdLeXg5dvdGvWKBi0AHReEbUOUmYdgrfDgVbr/Ho99A+0H+htWaNgFIyCUTAsAQMDAwAAAP//Gh3cGQWjYBSMglGAE4DOfhm99nxgwPcB2po1egvRKBisgFdMjGouYxyCg5g/X7we8MOIR8EoGAWjYBQMUsDAwAAAAAD//+zdwQkAIAwDwO6/q/j3JR3An1gLd2OEhAh3ADgyx6qTc7iKaVY+EcFvbrZ2omFzZ43Z8vYcgEciYgMAAP//Gh3cGQWjYBQMO6CvZwD20rvT50cjlwIAWrUDurlpFAwcGIhVU6MH1o6CwQgEpKWp6irQYNFQAeBzdj7Sf5smrQAzC8uw8csoGAWjYBQMGsDAwAAAAAD//xod3BkFo2AUDDvAP7qthCpgdNXOwIPfPwbmbAqu0dU7o2AQAdBgI7UHHIfKyp3hcs4OMmBiZR08jhkFo2AUjILhAhgYGAAAAAD//+zdoQ0AMAhE0ZsA3e6/I6qiQdeSUMh/G5wlBzDcAQA8aO38oer9fKy/dGo2YDZbOz1fl3Yad3byHfdpkQBAknQBAAD//xod3BkFo2AUjIJRgAG+DdBhvqMAFQzkYdbUPLx2FIwCcgG3sDDNVtkM9gGe4XrOzkBvy/r64BGYtrO1H1B3jIJRMApGAVUBAwMDAAAA///s3bENACAIBEA6G1v3n1Rj6HQAozF3E1B/gBfuALDJJ74ast4xer8yi+0dbsta/trOhYzl4XDntz87K2dZAAdExAQAAP//7NwxDgAQDIXhDsKEA7j/7RhtBmFilBAi/3eEdntpH+EOAGCSU2QgDymXXrPkQIktsMKH0AOeU4x1T+6jXev81rMzUprQGAC2E5EKAAD//+zcMQoAIAiFYYfA7n/MoKWWaArb2loEkf87gYiT6GO5AwB4rDFpCC6PIFvgh81ddV6+2LtXtOs0y9fZrafO2SmqAaoAgGRE5AAAAP//7N0xCgAgCIVhc2op2uv+x5RwqBNESfzfEcRJ9MlwBwCweYAvQcqxmL05y1paHyHrgn/5ts6tvsu1hKqjb+z8mLOzJFVRXqEDwHkiMgEAAP//Gi1dR8EoGAWjYBTAwehZO4MPgLdlQVcwgOIHdCYSrgE4Ni7IKhtqrrZhZmUFH648ejX+KKAXAJ2zw0ync1m4hUUYvr4dHFugfr//CD5rZzgDVk7OYe2/UTAKRsEoGDDAwMAAAAAA///s3TsKgDAQBNABP6T2IAYL7y+pxVukFEMsEkgj6w20UBPnXWGrHdhZhjtEVBzdaxgzYZ0XdOPAAV8Q9zILPHOWQoSzFuHiBzM5N6na5iyNrZU6g5+7/SWybEfvX3vNTv8hp1jyIespEiJJGPp2sC2hTtpc8XP+cok1EVHWABwAAAD//xod3BkFo2AUDDvAzy8wGqlkgtGVO4MPkDvgBlrdA8LIcQo6YwR2jg6pgz380jIM7x7cH7Dbu0bB8Aeg9Mg/AId484qKMbz9en/Awne4H6CMDEbP8BoFo2AUjAIaAQYGBgAAAAD//+zdMQqAMAyF4YydgqPe/2oKQhfXbuUpGcWpFOL/QS+QbmnzQnMHAHDjV0Z+umOdGEOJ0Nri/jkGo8aQr5tdx/73MmKQ0dux3kTDc0ZzW8HJ7aypA5SDaqzMnZlafbZBLjwCAcjGzDoAAAD//+zdTQqAIBCG4dm6s4tU9z9QP9tAKFCMkdZGUCr0PuBatzPMN9LcAYDGaPEdQ0hRmpKFDouU/0eLWT3bMqfmjbFdttFjrJXDuccRMeCORrG+/h0rp9b0zjGtEr0vfm8NLUSy9mtCqh/G6m8BgFeJyAkAAP//7N0xCsAgEETR7ayE9N7/bFqniYVFGMGQkDaimP8OIeww7hLuAMAk9P1mj+kRsmhviq65aOjW8N1Tobnza7XVk+IV9GjRrPP+FTBuIVjJB00vfKa1wkYa0d5Z/TLWnRo7ek8AAJ2Y2QkAAP//Gr0KfRSMglEwCgYBAG2Tef/oEcbqGRAfJPfm7h2Gtw/u07Tj8efX79GkMArAADRwA9p+9fLGdfBhzujpTkhBkeaDjaNgZADQ4KGgnPyg8Cs9B5j+fPzE8OfzF7rZN9AAtOpvFIyCUTAKRgENAQMDAwAAAP//7N0xCsAgDEbhrE7e/2oeodALdCrP4lZwsop9H7g7uOQniYY7kjQZxTPdEj0U2AQ8nBFdE45l6Q0jWLy5o5QaNLJQuRXkM/ajaC/s2fnq2/Oep2Nt/E9dhDrX+a/RxpTzAreQpI1FxA0AAP//7N07CoAwEEXRqQWbFNn/unQJLiGN3JDSRsEM6D19ujTzmI/hjiQloUimI+fu/hJCHt4RCHm5SLMQ/vHnjn3rgWSMDh4DHj211pq6Z+cKZ/8Zh30LY1jtZ8HOUkr6ImVJ+ryIOAEAAP//7N0xCoAwEETRPULufzMDKW3E3lZ+wFqMaIL+d4YlsMOQ9aWV9FnbfN6G6YXmzVrKrQYOLQoW7dZT2VILAkUCySVPNexhGTbg0VWEOszOaJjl9NA5doKd+oHyDy5jHQh1bO1I0gsiYgcAAP//Gh3cGQWjYBQMO2Bn5wD20ufb9xj+fPs26LwHGox59+A+VbZBgTraoLN6QCspRlfxjAJ6A9hNW6NgFJACQNuf+Gk0gEINADpYmdrbs0bSlefIYHTVzigYBaNgFNAJMDAwAAAAAP//7N3hCQAgCIRRfwTtP3AUFzhAJSH1vRkiRA6P3xbA05Te6S3PMO2Hk6MXMUpSnCaBgF0sFrFC7X9q58v8bnRcOepo+FzsfFR57kqtpHYA4BYzGwAAAP//Gr0KfRSMglEwrMG/378Zvj97zsAlO7CzxKBOzKcXL0g+X4cUAFoJBDqLB9QpocehoKNgFIyCUUAOwLXaC7QligVpQIWdmxtMMzIxwwda2KBi9ACgM6VAW18pHYT69fL1iLnyHAZAq3V4REUHh2OQwKdrN8AcfT39QeKiUTAKRsEooBJgYGAAAAAA///s3TELgCAUBOCLoMAGqf//DyMbHKIiiCMIiaYoMrtvcxFcHnj4fAp3RCR5s/cYXY+yqV85Ki8G7qEJV2d4cWK7DNse9BeKiHwFa2U4dv84gj/EsCfLt9CHda4w1b6+C/dlwMP6fTXgmdoOy/C/F5Vsx+LLnVhZq9HsIpIYACsAAAD//+zdQQqAIBSE4QdmiCAdoO5/q6B9XaAgiDHatSlCAv9v5QlEh6dDuAOgCuu8WBOjuVD2sHk2Yo3Fa8b1r88+bdb1w6eXHQD4gyssvwuA1HblWp8nf/La+9cTP9o/FfBoKvIpBTuqPa9NSInnWABQmpkdAAAA//8aHdwZBaNgFIwI8B90w8+z5wzc8nIMjMz0O27s+4cPdB/YgQFQ5wc04ywoK0dUxwbUEcI3Uz4KRsEoGAVDAYDKXBBGL8+QB31A279AfGIGv0FqBKRlGD48fUK070fqwA5otQ63iMggcMkoGAWjYBSMMMDAwAAAAAD//+zdMQqAMAxA0SyCmepq7n8vXTu4ZxEkhW4qTi3Y/27QpdBPaIg7AIZxuovnLGprsyP3XlMek0PHvpWHiS7vY+jxrwUA/NVT9In4HQFnmrVEn7vgU+/PL4Enos6oYSeZsR0LAHoQkQsAAP//7N0xCsAgEETRASGglfc/ZVJYJJWMYhlbi/2v8Qx+dpW4AyCU736UStFVY42M+0Lytqa6+X6Y9S0AETn2/AWfeeax2uXA4/ize4PHUcdTO9GsB5QJOwBwiKQOAAD//+zdMQqAMBBE0QEt0+r9r2dCCkHBUgaihWKrkvx3hk0zbHYIdwBU52jBmEsrxtU2RXVeyX/5/s7X3NTl72lPh5Z7wh00zG/CLXNrzlS74wx8PA8q8+GjzQ57wjBqSfE2Jy0HO97Y+fMBZQConqQdAAD//+zdQQ4AEAxE0cbWkvufVUbYCLGj4b8zNBYTnRLuAHjO7grGrf4dD3rRsgpCx4AntEszp656AR5o5mPK9VeGOrIIdjCjudD7uVq1/TXYYRULAJwwswIAAP//Gh3cGQWjYBSMSECv83cG4yHF8IOW5eTBWw2QAWhWenRwZxQMdwDbbgMa1EHOA59fvRqN+1FAMhipAzusnJwMfBISQ2pg58uDR2BaXl5hwN0yCkbBKBgFVAUMDAwAAAAA//8aHdwZBaNgFIxYADp/h4mDg4FdSJBmQTBYtzqBBnBAV/uCVvAgn7UD6vDCtiGMglEwkACULhmZmRn+/PhB8WoakFksHJzgwVY28PXYrBhqBvJmu1EwdMFIHdgBXXU+FG/F+vv1O5geHdwZBaNgFAw7wMDAAAAAAP//Gh3cGQWjYBSMaPDjxUsGFi4ump2/AzqjYbACUIcZtIIHeYCHg5cPvD1rdGvKKBhoABqABKVHUVU1sEtAgzwgsf//IGnzJ5YVcaCrrVnYIAM3oIFVJiZm8GAOMeDbh/ejcT4KSAIjcWAHtEqHV0yM6Hw1CkbBKBgFo4BOgIGBAQAAAP//Gh3cGQWjYBSMePD14SMGXhVlmpy/M9jPscE2wMPOywc+fHkUjIKBBqDzTX7d/go+BBw00IPcoeQRpZ7j/v7+Pei2T46CwQ1G4sAOKP+BBnZGz9cZBaNgFIyCQQgYGBgAAAAA//8aLZ1HwSgYBSMegA5Y/vbkCc2CgVOAdtu+qAFAAzygLVqgbSkgALoxaBSMgsGUPt8/egTGtFpR9vXtG5qYOwqGJxhpAzvMLCzgQ5OH2vk6o2AUjIJRMKIAAwMDAAAA//8aLaFHwSgYBaMA1Fj/+o3hxwvaHKbKwcc3JIL4w9Mn4AEe2GGzo2AUDCYAWsXz+vYtnLcVUQJ+fPo8GtejgCgwkgZ2QAM5oHN1BOXlwYcnj4JRMApGwSgYxICBgQEAAAD//+zdsQ0AIQxD0TQscAuw/2C06BoKupMR6SkQAu6/MSzHIdwBcCUfSyz9M8aImnMbWZ5N4606KTmBBzy0d9YImw5u78pbPG9K01o8OplkSBkj/hLsqKmjUOeJsQ0nAwAOYGYfAAAA///s3TEOgCAMBdCubnL/s3EADcStggElTXRx0oQm2vx3Auj4Uz4IdwDApCvcKby+ul6aZqopdx/J4MbfjFkCnqPuCB6UyXzvv5XBM9IJFbzv0mWVFTaBwJ4tLuaDHdnOkU4dd4Y6Fp9gFeYPnAIAQAERNQAAAP//7N0hDoAwFATRCpKqhgPAGej9j4VHkBE0FRgCTaDMM1hqNz+7hjuSVKF/h4Jlwo0ncbnDks9XEPAwHa02KNoep7l8dR3XNnRF3Z3uP1vdkmqEOtvaZwg4xFiudOjViSm94K/aOa5585L7fKCk/woh7AAAAP//Gh3cGQWjYBSMAjRAqwGeobbVafTGLNoBQVk5+IodEA2aLR8F5IFPL55TdNjy6C1ZowAfAA/sfP4ybMIItBoHdKYabEBHQEYGvEqHiWVkXaDLzz90VtOOglEwCkYBUYCBgQEAAAD//+zduwqAMAwF0AxSKDh0UfDx/9/lWrsqlkKrpKs4WBXR3rNkzxhuErxCB4Bf83NaBNtbS1Zrkm1zW3ukUjSZ8bGPP/ANqut3B6vLqo4JEgwa0vCRZT+4mII6s+aGfsORNQRy2pBfrq/+vYXXrHiYw+mcQohYcxviAABkg4g2AAAA///s3bEKgCAUheE7