<snapdata remixID="14128780"><project name="性能测试系统" app="Snap! 10.7.1, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAABBlJREFUeF7t3UFL0wEYx/Fnw5EdPJtEi8RLBy8SdIgg6+IORQguNmJqWIgkdOoNeIh6LULXDh5ah3wXwY7DvHgZNugfehFBXfz4jcc/fL2253n+++xLIy9ViqIogh8EkgQqBJgkz9lTAQIkhFQBAkzl5zgB0kCqAAGm8nOcAGkgVYAAU/k5ToA0kCpAgKn8HCdAGkgVIMBUfo4TIA2kChBgKj/HCZAGUgUIMJWf4wRIA6kCBJjKz3ECpIFUAQJM5ec4AdJAqgABpvJznABpIFWAAFP5OU6ANJAqQICp/BwnQBpIFSDAVH6OEyANpAoQYCo/xwmQBlIFCDCVn+MESAOpAgSYys9xAqSBVAECTOXnOAHSQKoAAabyc5wAaSBVgABT+TlOgDSQKkCAqfwcJ0AaSBUgwFR+jhMgDaQKEGAqP8cJsEQN9Pv96O7/iObLlRI99dWPSoAl+yiXP67E1+q3eHzjYTxbWIzl2RcxPz9fsndx9rgEWMKP7snnpej++Xn25P2/0XnQitm4G5uNtzE9PV2ad0WApfmozh70+343FveeX/jk9/q3493Cm/jQ3o7Jyclr/+4I8Np/ROcfsNfrxf0vCzG4NTz9g5u/arH9aivu/J6J96+3SvZu+A+rS/eBPfr0NOZm5mK2Uo/NpXJ93V6Ezd+AJUqwKIqoVColeuLRj0qAo414xRgFCHCMuKweLUCAo414xRgFCHCMuKweLUCAlxjt7u7G4eFhNBqNqNfroyV5hSRAgJewHR0dxcbGRgyHwzg4OIhWqxUTExOxurpail/wSjUkDBHgFejdbjd2dnZiamrq3KsGg0Gsra3Fya9FTsLkRxcgQCHA4+Pj6HQ6Ua1Wo9ls6vpMBgH+51dwu90+/QpeX1+PWq1GOiYBAuQfIaaUtDUEqLkxZRIgQBMkazQBAtTcmDIJEKAJkjWaAAFqbkyZBAjQBMkaTYAANTemTAIEaIJkjSZAgJobUyYBAjRBskYTIEDNjSmTAAGaIFmjCRCg5saUSYAATZCs0QQIUHNjyiRAgCZI1mgCBKi5MWUSIEATJGs0AQLU3JgyCRCgCZI1mgABam5MmQQI0ATJGk2AADU3pkwCBGiCZI0mQICaG1MmAQI0QbJGEyBAzY0pkwABmiBZowkQoObGlEmAAE2QrNEECFBzY8okQIAmSNZoAgSouTFlEiBAEyRrNAEC1NyYMgkQoAmSNZoAAWpuTJkECNAEyRpNgAA1N6ZMAgRogmSNJkCAmhtTJgECNEGyRhMgQM2NKZMAAZogWaMJEKDmxpRJgABNkKzRBAhQc2PKJECAJkjWaAIEqLkxZRIgQBMkazQBAtTcmDIJEKAJkjWaAAFqbkyZBAjQBMkaTYAANTemTAIEaIJkjSZAgJobUyaBf0OVQbdQjDmQAAAAAElFTkSuQmCC</thumbnail><scenes select="1"><scene name="性能测试系统"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="store key: %&apos;key&apos; value: %&apos;value&apos; in browser" type="command" category="other" space="true"><header></header><code></code><translations>ca:desa clau: _ amb valor: _ al navegador&#xD;pl:przechowaj klucz: _ wartość: _ w przeglądarce&#xD;</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>db_store(key, val)</l><list><block var="key"/><block var="value"/></list></block></script></block-definition><block-definition s="stored data in browser" type="reporter" category="other"><header></header><code></code><translations>ca:dades desades al navegador&#xD;pl:dane w przeglądarce&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>db_getall</l><list></list></block></block></script></block-definition><block-definition s="remove key: %&apos;key&apos; in browser" type="command" category="other"><header></header><code></code><translations>ca:esborra clau: _ del navegador&#xD;pl:usuń klucz: _ w przeglądarce&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>db_remove(key)</l><list><block var="key"/></list></block></script></block-definition><block-definition s="clear data in browser" type="command" category="other"><header></header><code></code><translations>ca:esborra dades del navegador&#xD;pl:wyczyść dane w przeglądarce&#xD;</translations><inputs></inputs><script><block s="doWarp"><script><block s="doForEach"><l>item</l><custom-block s="stored data in browser"></custom-block><script><custom-block s="remove key: %s in browser"><block s="reportListItem"><l>1</l><block var="item"/></block></custom-block></script></block></script></block></script></block-definition><block-definition s="get value from key: %&apos;key&apos; in browser" type="reporter" category="other"><comment x="0" y="0" w="199.33333333333334" collapsed="false">Reports the value previously stored under&#xD;the input key in the browser&apos;s local storage.&#xD;Reports False if the key is not found.</comment><header></header><code></code><translations>ca:obté valor de clau: _ al navegador&#xD;pl:pobierz wartość z klucza: _ w przeglądarce&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>db_get(key)</l><list><block var="key"/></list></block></block></script></block-definition><block-definition s="The runtime of blocks %&apos;代码&apos;" type="reporter" category="control"><header></header><code></code><translations>zh_CN:程序 _ 的运行时间&#xD;</translations><inputs><input type="%mult%cs" initial="1"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><script><block s="doDeclareVariables"><list><l>value</l><l>time</l></list></block><block s="doSetVar"><l>value</l><block s="evaluate"><block s="reifyReporter"><script><block s="doSetVar"><l>time</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doTellTo"><l>角色</l><block var="Code"/><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><list></list></block></block><block s="doReport"><block s="reportQuotient"><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="time"/></block><l>1000</l></block></block></script><list><l>Code</l></list></block><block var="代码"/></block></block></script></block-definition><block-definition s="encode blocks %&apos;程序&apos; to text %&apos;T/F&apos; pretty" type="reporter" category="operators"><header></header><code></code><translations>zh_CN:将积木/程序 _ 编码为代码 _ (是否换行?)&#xD;</translations><inputs><input type="%cs" initial="1"></input><input type="%b" initial="1">true</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportListAttribute"><l></l><block s="reportTextSplit"><block var="Program"/><l><option>blocks</option></l></block></block></autolambda><list></list></block><list><block s="reportIfElse"><block var="T/F"/><l>lines</l><l>text</l></block></list></block></block></script></block-definition><block-definition s="parse code %&apos;code&apos; to blocks" type="reporter" category="operators"><header></header><code></code><translations>zh_CN:将代码 _ 解码为积木/程序&#xD;</translations><inputs><input type="%mult%txt" initial="1">(move 10)</input></inputs><script><block s="doReport"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><block s="reportTextSplit"><l></l><l><option>blocks</option></l></block></block></autolambda><list></list></block><block var="code"/></block></block></script></block-definition><block-definition s="Testing program %&apos;Data&apos; to JSON" type="reporter" category="control"><header></header><code></code><translations>zh_CN:将测试程序 _ 转化为JSON&#xD;</translations><inputs><input type="%group%n%cs" expand="times:&#xD;program:" initial="2"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>json</option></l><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><block s="reportReshape"><custom-block s="encode blocks %cs to text %b pretty"><block var="program"/><l><bool>false</bool></l></custom-block><list><l>1</l><block var="times"/></list></block></block></autolambda><list><l>times</l><l>program</l></list></block><block var="value"/></block></autolambda><list><l>value</l></list></block><block var="Data"/></block></block></block></script></block-definition><block-definition s="create %&apos;_scope&apos; var %&apos;_names&apos;" type="command" category="variables"><comment x="0" y="0" w="146" collapsed="false">This block creates  new variables on the selected scope: global (for all sprites), sprite (for this sprite only) or script (only for that blocks stack) with the names given (in &apos;names&apos; list).&#xD;&#xD;If there is already a variable with that name in that scope, it does nothing: no errors and no overwrites.</comment><header></header><code></code><translations>pt:cria as variáveis _ _&#xD;ca:crea les _ variables _&#xD;es:crear las _ variables _&#xD;de:erstellen _ var _&#xD;pl:utwórz zmienną _ _&#xD;</translations><inputs><input type="%s" readonly="true">global<options>global&#xD;sprite&#xD;script</options></input><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>_item</l><block var="_names"/><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><block var="_scope"/><block var="_item"/></list></block></script></block></script></block></script></block-definition><block-definition s="delete var %&apos;_names&apos;" type="command" category="variables"><comment x="0" y="0" w="217" collapsed="false">This block deletes all the variables with the names given (inside input list).&#xD;&#xD;Each name will make only one variable deletion, and this will be the variable found following the scope order: &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos;.&#xD;&#xD;If we have a &quot;testing&quot; sprite variable and also a &quot;testing&quot; global one, deleting &quot;testing&quot; will delete only the sprite one (Yes! we can also do &quot;delete var (testing, testing)&quot; to delete both.&#xD;&#xD;If one variable does not exists (in any scope) an error happens, stopping block action in that point. You can check it before with the &quot;does var (name) exists?&quot;block. </comment><header></header><code></code><translations>pt:remove as variáveis _&#xD;ca:esborra les variables _&#xD;es:borrar variables _&#xD;de:löschen var _&#xD;pl:usuń zmienną _&#xD;</translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>_item</l><block var="_names"/><script><block s="doApplyExtension"><l>err_ignore</l><list><l></l></list></block><block s="doApplyExtension"><l>var_delete(name)</l><list><block var="_item"/></list></block></script></block></script></block></script></block-definition><block-definition s="set var %&apos;_name&apos; to %&apos;_value&apos;" type="command" category="variables"><comment x="0" y="0" w="240.4931640625" collapsed="false">This block sets the given value (last input) to the variable named with the name givent (var input).&#xD;&#xD;It looks for that variable following the scope order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos; (the first match it finds).&#xD;&#xD;If that variable does not exist (in any scope) an error happens, stopping their script. You can check it before using the &quot;does var (name) exists?&quot; block. </comment><header></header><code></code><translations>ca:assigna a _ el valor _&#xD;es:asignar a _ el valor _&#xD;pt:altera _ para _&#xD;de:setze var _ auf _&#xD;pl:ustaw zmienną _ na _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="_name"/><block var="_value"/></list></block></script></block-definition><block-definition s="show var %&apos;_name&apos;" type="command" category="variables"><comment x="0" y="0" w="181" collapsed="false">This block turns on (show) the watcher view on stage (if it was not already activated) of the variable with the given name (slot input).&#xD;&#xD;It can only access to the closest variable scope (if there different variables with the same name in different scopes) following the order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos;.&#xD;&#xD;No errors if that variable does not exist.</comment><header></header><code></code><translations>ca:mostra la variable _&#xD;es:mostrar variable _&#xD;pt:mostra a variável _&#xD;de:zeige var _&#xD;pl:pokaż zmienną _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><block s="doApplyExtension"><l>var_show(name)</l><list><block var="_name"/></list></block></script></block-definition><block-definition s="# %&apos;note&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs></block-definition></blocks><primitives></primitives><stage name="舞台" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="241"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="242"></list></costumes><sounds><list struct="atomic" id="243"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="2"><sprite name="角色" idx="1" x="-2.2737367544323206e-13" y="2.842170943040401e-14" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="248"><costumes><list struct="atomic" id="249"></list></costumes><sounds><list struct="atomic" id="250"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="10"><block s="receiveMessage"><l>Surprisation</l><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="get value from key: %s in browser"><l>Test</l></custom-block><l>False</l></list></block><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block></script><script x="20" y="128.75000000000006"><block s="receiveCondition"><block s="reportVariadicEquals"><list><custom-block s="get value from key: %s in browser"><l>Test</l></custom-block><l>True</l></list></block></block><block s="doBroadcastAndWait"><l>Surprisation</l><list></list></block><block s="doIf"><block s="reportListContainsItem"><block s="reportTextSplit"><custom-block s="get value from key: %s in browser"><l>Versions</l></custom-block><l><option>json</option></l></block><block var="Version_self"/></block><script><block s="doSetVar"><l>Program</l><block s="reportIfElse"><custom-block s="get value from key: %s in browser"><l>Program</l></custom-block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="parse code %mult%txt to blocks"><block var="Code(s)"/></custom-block></autolambda><list><l>Code(s)</l></list></block><block s="reportTextSplit"><custom-block s="get value from key: %s in browser"><l>Program</l></custom-block><l><option>json</option></l></block></block><l></l></block></block><custom-block s="store key: %s value: %s in browser"><block var="Version_self"/><block s="reportListAttribute"><l><option>json</option></l><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="The runtime of blocks %mult%cs"><block var="Code(s)"/></custom-block></autolambda><list><l>Code(s)</l></list></block><block var="Program"/></block></block></custom-block><block s="doIf"><l><bool>true</bool></l><script><block s="doWaitUntil"><block s="reportNot"><block s="reportListContainsItem"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><custom-block s="get value from key: %s in browser"><l></l></custom-block></autolambda><list></list></block><block var="Version_list"/></block><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></block><custom-block s="store key: %s value: %s in browser"><l>Test</l><l>False</l></custom-block><custom-block s="create %s var %mult%txt"><l>global</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l>Result_</l><l></l></list></block></autolambda><list></list></block><block var="Version_list"/></block></custom-block><block s="doForEach"><l>item</l><block var="Version_list"/><script><custom-block s="set var %s to %s"><block s="reportJoinWords"><list><l>Result_</l><block var="item"/></list></block><block s="reportTextSplit"><custom-block s="get value from key: %s in browser"><block var="item"/></custom-block><l><option>json</option></l></block></custom-block><custom-block s="show var %s"><block s="reportJoinWords"><list><l>Result_</l><block var="item"/></list></block></custom-block></script></block></script><list></list><comment w="149" collapsed="false">The boolean on &quot;if&quot; blocks will decide which the results will show on computer when the test over.</comment></block></script><list></list></block></script></scripts></sprite><sprite name="角色(2)" idx="2" x="113.00000000000091" y="31.999999999999886" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="0,130.05,13.004999999999953,1" pen="tip" id="414"><costumes><list struct="atomic" id="415"></list></costumes><sounds><list struct="atomic" id="416"></list></sounds><blocks></blocks><variables></variables><scripts><script x="11" y="10"><custom-block s="store key: %s value: %s in browser"><l>Test</l><l>True</l></custom-block></script><script x="10" y="57.00000000000006"><custom-block s="store key: %s value: %s in browser"><l>Test</l><l>False</l></custom-block></script><script x="500.00000000000034" y="45.750000000000284"><block s="doSetVar"><l>Program</l><l></l></block><custom-block s="delete var %mult%txt"><block s="reportAtomicKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><l></l><l>Result</l></block></block><l>2</l></list></block></autolambda><list></list></block><block s="reportAttributeOf"><l><option>variables</option></l><l>角色(2)</l></block></block></custom-block><custom-block s="# %s"><l>This two veriables decide the versions of testing.</l></custom-block><block s="doSetVar"><l>Version_list</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>Version_self</l><l></l></block><custom-block s="clear data in browser"></custom-block><custom-block s="store key: %s value: %s in browser"><l>Test</l><l>False</l></custom-block><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><block var="Version_list"/></block></block><script><custom-block s="store key: %s value: %s in browser"><l>Versions</l><block s="reportListAttribute"><l><option>json</option></l><block var="Version_list"/></block></custom-block></script><list></list></block><custom-block s="store key: %s value: %s in browser"><l>Program</l><custom-block s="Testing program %group%n%cs to JSON"><list><l>10</l><script><block s="doDeclareVariables"><list><l>i</l></list></block><block s="doSetVar"><l>i</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>j</l><l>1</l><l>100</l><script><block s="doAddToList"><block var="j"/><block var="i"/></block></script></block></script><l>10</l><script><block s="doFor"><l>i</l><l>1</l><l>100</l><script><block s="bubble"><block var="i"/></block></script></block></script></list><comment w="128" collapsed="false">Here are the typical example of Testing program.</comment></custom-block></custom-block></script><script x="240.53125000000023" y="277.7499999999998"><custom-block s="parse code %mult%txt to blocks"><list><l>(move 10)</l></list></custom-block></script></scripts></sprite><watcher var="Version_list" style="normal" x="3.9999999999997726" y="20.99999999999997" color="243,118,29" hidden="true"/><watcher var="Version_self" style="normal" x="3.9999999999997726" y="129.00000000000003" color="243,118,29" hidden="true"/><watcher var="Program" style="normal" x="8.999999999999773" y="99.00000000000011" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="Version_list"><list struct="atomic" id="532"></list></variable><variable name="Version_self"><l></l></variable><variable name="Program"><l></l></variable></variables></scene></scenes></project><media name="性能测试系统" app="Snap! 10.7.1, https://snap.berkeley.edu" version="2"></media></snapdata>