This repository has been archived by the owner on Aug 31, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.blocks
1 lines (1 loc) · 23.6 KB
/
main.blocks
1
<xml xmlns="https://developers.google.com/blockly/xml"><variables><variable id="3N_yrA}KGD-I3d}0{j]L">letter</variable><variable id="=%FDq.s+w3~d2#l$F16M">command</variable><variable id="p_7*6Clakc):yISWx~}x">num</variable><variable id="N.[N9lt55~JV!*:6`e]T">getdata</variable><variable id="]VmI$W/PrEQ_8P:ea:R7">gotdata</variable><variable id="90:hfzfj[g0ju`t2t-(P">receivedString2</variable><variable id="r]TvX^FsNv5/8.B{zBQh">name2</variable><variable id="n^B{[email protected]$Fh[m">value2</variable><variable id="df8ZYi/W.;xRf4Jz,LpO">receivedNumber2</variable><variable id="+[ac(M#Gec%B1LZ;k}fx">list</variable><variable id="GYnW3*$-@+rEtqpg*d9o">radiogroup</variable></variables><block type="pxt-on-start" id="~G3Wk,RkWL[93g6g`:3}" x="0" y="0"><statement name="HANDLER"><block type="typescript_statement" id="XWkKH6kKLT0^gH9(]@U7" editable="false"><mutation xmlns="http://www.w3.org/1999/xhtml" line0="let gotdata = false" numlines="1" declaredvars="gotdata"></mutation><next><block type="typescript_statement" id="h5LSS=GA:,LX4v{kY*ph" editable="false"><mutation xmlns="http://www.w3.org/1999/xhtml" line0="let getdata = false" numlines="1" declaredvars="getdata"></mutation><next><block type="typescript_statement" id="/xzmBAEu%k=G@BlU!Hm:" editable="false"><mutation xmlns="http://www.w3.org/1999/xhtml" line0="let receivedNumber2 = 0" numlines="1" declaredvars="receivedNumber2"></mutation><next><block type="typescript_statement" id="Y6fxnSs~DGu65i9$GB{j" editable="false"><mutation xmlns="http://www.w3.org/1999/xhtml" line0="let radiogroup = 0" numlines="1" declaredvars="radiogroup"></mutation><next><block type="typescript_statement" id="c+?zy43/WZFY_6EtwSIc" editable="false"><mutation xmlns="http://www.w3.org/1999/xhtml" line0="let value2 = 0" numlines="1" declaredvars="value2"></mutation><next><block type="typescript_statement" id="kmN8h[u7^mBB5}krK^L?" editable="false"><mutation xmlns="http://www.w3.org/1999/xhtml" line0="let name2 = """ numlines="1" declaredvars="name2"></mutation><next><block type="typescript_statement" id="C62X@EXCIl/MSiJ}rb|1" editable="false"><mutation xmlns="http://www.w3.org/1999/xhtml" line0="let receivedString2 = """ numlines="1" declaredvars="receivedString2"></mutation><next><block type="typescript_statement" id="+)@u/i67cP,J+V6^Z|xp" editable="false"><mutation xmlns="http://www.w3.org/1999/xhtml" line0="let command = """ numlines="1" declaredvars="command"></mutation><next><block type="variables_set" id="hown(83{WBDZ+m[Ba?zd"><field name="VAR" id="+[ac(M#Gec%B1LZ;k}fx">list</field><value name="VALUE"><shadow type="math_number"><field name="NUM">0</field></shadow><block type="lists_create_with" id="G=tO.?8f:vbrklH,%yW7"><mutation items="1"/><value name="ADD0"><shadow type="math_number" id="xNC}CX@]pQzh;Z09E:?H"><field name="NUM">1</field></shadow></value></block></value><next><block type="radio_set_group" id="=S/]7YpRt|[bfGi-]/1-"><value name="ID"><shadow type="math_number_minmax"><mutation min="0" max="255"/><field name="SLIDER">0</field></shadow><block type="variables_get" id="$IJ4*bGTPWR=6slKFA0Y"><field name="VAR" id="GYnW3*$-@+rEtqpg*d9o">radiogroup</field></block></value><next><block type="serial_redirect_to_usb" id="NN-GqAP($pRwkqY1D-_W"><next><block type="serial_setbaudrate" id="sv7(6cn=9{TMsrQ=ti$e"><field name="rate">BaudRate.BaudRate115200</field><next><block type="function_call" id="T06tl5Bl~].pv]:Zmo+M"><mutation name="new_command" functionid="K`S7,8ChRs:#f($y~+n7"/></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block><block type="radio_on_string_drag" id="$v@C6+8rOy6VMoyp`*fa" x="480" y="0"><value name="HANDLER_DRAG_PARAM_receivedString"><shadow type="argument_reporter_string" id="y0HXDXbl`3}C4}!ZR*j6"><field name="VALUE">receivedString</field></shadow></value><statement name="HANDLER"><block type="controls_if" id="1_%Y5|.7Qa*U+/sOGUoF"><mutation else="1"/><value name="IF0"><shadow type="logic_boolean"><field name="BOOL">TRUE</field></shadow><block type="variables_get" id="_7N-2`DutePT5JXCV;Aq"><field name="VAR" id="N.[N9lt55~JV!*:6`e]T">getdata</field></block></value><statement name="DO0"><block type="variables_set" id="v#bFQ%]=|J/T+J-?n)VT"><field name="VAR" id="]VmI$W/PrEQ_8P:ea:R7">gotdata</field><value name="VALUE"><shadow type="math_number"><field name="NUM">0</field></shadow><block type="logic_boolean" id="CF.1PdCG3*-4g$M-mK+y"><field name="BOOL">TRUE</field></block></value><next><block type="variables_set" id="?T;5%tR5x66a$M6?0m=r"><field name="VAR" id="90:hfzfj[g0ju`t2t-(P">receivedString2</field><value name="VALUE"><shadow type="math_number"><field name="NUM">0</field></shadow><block type="argument_reporter_string" id="w7/KFjrd2[Mg?uH]{Q(w"><field name="VALUE">receivedString</field></block></value></block></next></block></statement></block></statement></block><block type="radio_on_value_drag" id="+)$v[|a-WfLynCq%:bsd" x="1066" y="0"><value name="HANDLER_DRAG_PARAM_name"><shadow type="argument_reporter_string" id=",RLqQGp1s=;isyVF^ZwV"><field name="VALUE">name</field></shadow></value><value name="HANDLER_DRAG_PARAM_value"><shadow type="argument_reporter_number" id="xQVoGb+OFErx=pRcMb#5"><field name="VALUE">value</field></shadow></value><statement name="HANDLER"><block type="controls_if" id="zdhF_~3]|jIvF7YtbqzH"><mutation else="1"/><value name="IF0"><shadow type="logic_boolean"><field name="BOOL">TRUE</field></shadow><block type="variables_get" id="k,JdboCmkl3u+n%U@//l"><field name="VAR" id="N.[N9lt55~JV!*:6`e]T">getdata</field></block></value><statement name="DO0"><block type="variables_set" id="=n7eCmw[1_kc;+mn($Vg"><field name="VAR" id="]VmI$W/PrEQ_8P:ea:R7">gotdata</field><value name="VALUE"><shadow type="math_number"><field name="NUM">0</field></shadow><block type="logic_boolean" id="nAugJZTfFxt6xlZu`uLL"><field name="BOOL">TRUE</field></block></value><next><block type="variables_set" id="F;DnDrJ{(GB+cpY/vJYb"><field name="VAR" id="r]TvX^FsNv5/8.B{zBQh">name2</field><value name="VALUE"><shadow type="math_number"><field name="NUM">0</field></shadow><block type="argument_reporter_string" id="7-j~n3/`EyK9]37?)!Za"><field name="VALUE">name</field></block></value><next><block type="variables_set" id="I|U4azh:j9u[cI+P!rMI"><field name="VAR" id="n^B{[email protected]$Fh[m">value2</field><value name="VALUE"><shadow type="math_number"><field name="NUM">0</field></shadow><block type="argument_reporter_number" id="cjm3f$O/jkxnjpqwCDk1"><field name="VALUE">value</field></block></value></block></next></block></next></block></statement></block></statement></block><block type="radio_on_number_drag" id="3s^xZnN~JO[5dslQY2Nm" x="1545" y="0"><value name="HANDLER_DRAG_PARAM_receivedNumber"><shadow type="argument_reporter_number" id="gF8E62OY:+,C0fTse?,J"><field name="VALUE">receivedNumber</field></shadow></value><statement name="HANDLER"><block type="controls_if" id="D0aNx?pL_c6b*s;Bt$F%"><mutation else="1"/><value name="IF0"><shadow type="logic_boolean"><field name="BOOL">TRUE</field></shadow><block type="variables_get" id="$DmSpS4AR/d5r2M!Rx@z"><field name="VAR" id="N.[N9lt55~JV!*:6`e]T">getdata</field></block></value><statement name="DO0"><block type="variables_set" id="YoWEj`L~L*(pQTi54`[o"><field name="VAR" id="]VmI$W/PrEQ_8P:ea:R7">gotdata</field><value name="VALUE"><shadow type="math_number"><field name="NUM">0</field></shadow><block type="logic_boolean" id="p`XqS9o6j{.A+n;33Wib"><field name="BOOL">TRUE</field></block></value><next><block type="variables_set" id="_+P4na9`eIBH88O:bSg4"><field name="VAR" id="df8ZYi/W.;xRf4Jz,LpO">receivedNumber2</field><value name="VALUE"><shadow type="math_number"><field name="NUM">0</field></shadow><block type="argument_reporter_number" id="rYexR2-B7Br}07uqViM("><field name="VALUE">receivedNumber</field></block></value></block></next></block></statement></block></statement></block><block type="serial_on_data_received" id="I025La8giJ-0[1|CTYo_" x="2131" y="0"><value name="delimiters"><shadow type="serial_delimiter_conv" id="s/y28R;!Mrki%hyYN-q0"><field name="del">Delimiters.SemiColon</field></shadow></value><statement name="HANDLER"><block type="typescript_statement" id="dqv16Y{Gn.sBF/+M*IsL" editable="false"><mutation xmlns="http://www.w3.org/1999/xhtml" line0="pause(100)" numlines="1"></mutation><next><block type="variables_set" id="n7JEe97|F.%v%f,e[ON."><field name="VAR" id="p_7*6Clakc):yISWx~}x">num</field><value name="VALUE"><shadow type="math_number"><field name="NUM">0</field></shadow><block type="logic_boolean" id="H+w@|Zv)1A-j=Zx)XWbL"><field name="BOOL">TRUE</field></block></value><next><block type="typescript_statement" id="^tL^!ewkJs{KkYJ8?4.E" editable="false"><mutation xmlns="http://www.w3.org/1999/xhtml" line0="command = command.toLowerCase()" numlines="1"></mutation><next><block type="typescript_statement" id="iAVIN-A~(~#IfMh@n~Bl" editable="false"><mutation xmlns="http://www.w3.org/1999/xhtml" line0="switch (command) {" line1=" case "help":" line2=" serial.writeString("\r\n" + " line3=" "\r\nList of commands:" + " line4=" "\r\nhelp - shows a list of commands" + " line5=" "\r\ninfo - shows info about this device" + " line6=" "\r\nreset - restarts the device" + " line7=" "\r\npin-read - [pinNumber] - shows the Analog and Digital values the pin has on the device - ex: 'pin-read 12;'" +" line8=" "\r\nscan-groups - checks which radio groups send data (currently)" +" line9=" "\r\nset-group - [groupNumber] - sets the radio group number - ex: 'set-group 5;'")" line10=" break" line11=" case "info":" line12=" serial.writeString("\r\n" + " line13=" "\r\nShell Version: v1.0.0-alpha.4" + " line14=" "\r\nRadio Group: " + radiogroup +" line15=" "\r\nDevice Name: " + control.deviceName() + " line16=" "\r\nDevice Serial Number: " + control.deviceSerialNumber() + " line17=" "\r\nTime Elapsed Since Boot: " + control.millis() / 1000 + " s" + " line18=" "\r\nDevice Temperature: " + input.temperature() + "C, " + (input.temperature() * 1.8 + 32) + "F")" line19=" break" line20=" case "reset":" line21=" serial.writeString("" + ("\r\n\r\nTHE MICRO:BIT WILL RESET DON'T TOUCH ANYTHING\r\n\r\n"))" line22=" control.reset()" line23=" break" line24=" case "scan-groups":" line25=" serial.writeLine("\r\n\nStarting radio group checking...")" line26=" pause(3000)" line27=" serial.writeString("This test will go through groups 0 - 255")" line28=" serial.writeLine("\r\nThis test will take 10-15 minutes (some types of data could be empty)")" line29=" pause(2000)" line30=" for (let i: number = 0; i <= 255; i++) {" line31=" radio.setGroup(i)" line32=" getdata = true" line33=" pause(3000)" line34=" if (gotdata) {" line35=" getdata = false" line36=" gotdata = false" line37=" list.push(i)" line38=" serial.writeLine("Got Data On Group: " + i + " line39=" " Data in packets: String=" + receivedString2 + " line40=" " Number=" + receivedNumber2 + " Variable.Name=" + name2 + " Variable.Value=" + value2)" line41=" } else {" line42=" serial.writeLine("Tested Group: " + i + " No Data")" line43=" }" line44=" receivedString2 = """ line45=" receivedNumber2 = 0" line46=" name2 = """ line47=" value2 = 0" line48=" }" line49=" serial.writeString("\r\nAll groups that sent data: ")" line50=" for (let j: number = 1; j < list.length + 1; j++) {" line51=" serial.writeString(list.get(j).toString() + ", ")" line52=" }" line53=" radio.setGroup(0)" line54=" break" line55=" default:" line56=" if (command.includes("pin-read ")) {" line57=" let pin: string = command.replace("pin-read ", "")" line58=" serial.writeString("\r\n")" line59=" switch (pin) {" line60=" case "0":" line61=" serial.writeString("\r\nAnalog / Digital Value on PIN0: " + pins.analogReadPin(AnalogPin.P0) + " / " + pins.digitalReadPin(DigitalPin.P0))" line62=" break" line63=" case "1":" line64=" serial.writeString("\r\nAnalog / Digital Value on PIN1: " + pins.analogReadPin(AnalogPin.P1) + " / " + pins.digitalReadPin(DigitalPin.P1))" line65=" break" line66=" case "2":" line67=" serial.writeString("\r\nAnalog / Digital Value on PIN2: " + pins.analogReadPin(AnalogPin.P2) + " / " + pins.digitalReadPin(DigitalPin.P2))" line68=" break" line69=" case "3":" line70=" serial.writeString("\r\nAnalog / Digital Value on PIN3: " + pins.analogReadPin(AnalogPin.P3) + " / " + pins.digitalReadPin(DigitalPin.P3))" line71=" break" line72=" case "4":" line73=" serial.writeString("\r\nAnalog / Digital Value on PIN4: " + pins.analogReadPin(AnalogPin.P4) + " / " + pins.digitalReadPin(DigitalPin.P4))" line74=" break" line75=" case "5":" line76=" serial.writeString("\r\nAnalog / Digital Value on PIN5: " + pins.analogReadPin(AnalogPin.P5) + " / " + pins.digitalReadPin(DigitalPin.P5))" line77=" break" line78=" case "6":" line79=" serial.writeString("\r\nAnalog / Digital Value on PIN6: " + pins.analogReadPin(AnalogPin.P6) + " / " + pins.digitalReadPin(DigitalPin.P6))" line80=" break" line81=" case "7":" line82=" serial.writeString("\r\nAnalog / Digital Value on PIN7: " + pins.analogReadPin(AnalogPin.P7) + " / " + pins.digitalReadPin(DigitalPin.P7))" line83=" break" line84=" case "8":" line85=" serial.writeString("\r\nAnalog / Digital Value on PIN8: " + pins.analogReadPin(AnalogPin.P8) + " / " + pins.digitalReadPin(DigitalPin.P8))" line86=" break" line87=" case "9":" line88=" serial.writeString("\r\nAnalog / Digital Value on PIN9: " + pins.analogReadPin(AnalogPin.P9) + " / " + pins.digitalReadPin(DigitalPin.P9))" line89=" break" line90=" case "10":" line91=" serial.writeString("\r\nAnalog / Digital Value on PIN10: " + pins.analogReadPin(AnalogPin.P10) + " / " + pins.digitalReadPin(DigitalPin.P10))" line92=" break" line93=" case "11":" line94=" serial.writeString("\r\nAnalog / Digital Value on PIN11: " + pins.analogReadPin(AnalogPin.P11) + " / " + pins.digitalReadPin(DigitalPin.P11))" line95=" break" line96=" case "12":" line97=" serial.writeString("\r\nAnalog / Digital Value on PIN12: " + pins.analogReadPin(AnalogPin.P12) + " / " + pins.digitalReadPin(DigitalPin.P12))" line98=" break" line99=" case "13":" line100=" serial.writeString("\r\nAnalog / Digital Value on PIN13: " + pins.analogReadPin(AnalogPin.P13) + " / " + pins.digitalReadPin(DigitalPin.P13))" line101=" break" line102=" case "14":" line103=" serial.writeString("\r\nAnalog / Digital Value on PIN14: " + pins.analogReadPin(AnalogPin.P14) + " / " + pins.digitalReadPin(DigitalPin.P14))" line104=" break" line105=" case "15":" line106=" serial.writeString("\r\nAnalog / Digital Value on PIN15: " + pins.analogReadPin(AnalogPin.P15) + " / " + pins.digitalReadPin(DigitalPin.P15))" line107=" break" line108=" case "16":" line109=" serial.writeString("\r\nAnalog / Digital Value on PIN16: " + pins.analogReadPin(AnalogPin.P16) + " / " + pins.digitalReadPin(DigitalPin.P16))" line110=" break" line111=" case "17":" line112=" serial.writeString("\r\nPIN17 is a 3V supply")" line113=" break" line114=" case "18":" line115=" serial.writeString("\r\nPIN18 is a 3V supply")" line116=" break" line117=" case "19":" line118=" serial.writeString("\r\nAnalog / Digital Value on PIN19: " + pins.analogReadPin(AnalogPin.P19) + " / " + pins.digitalReadPin(DigitalPin.P19))" line119=" break" line120=" case "20":" line121=" serial.writeString("\r\nAnalog / Digital Value on PIN20: " + pins.analogReadPin(AnalogPin.P20) + " / " + pins.digitalReadPin(DigitalPin.P20))" line122=" break" line123=" default:" line124=" serial.writeString("\r\nError: wrong pin number/index!")" line125=" break" line126=" }" line127=" } else if (command.includes("set-group ")) {" line128=" let gnumber: string = command.replace("set-group ", "")" line129=" radiogroup = gnumber.charAt(0).charCodeAt(0)" line130=" radio.setGroup(radiogroup)" line131=" serial.writeString("\r\n\r\nThe radio group number was set to " + gnumber)" line132=" } else {" line133=" serial.writeString("" + "\r\n\r\nError: command '" + command + "' not found!")" line134=" }" line135=" break" line136=" }" numlines="137"></mutation><next><block type="variables_set" id="ItQMi7A[hV=u1b)pGZ~2"><field name="VAR" id="=%FDq.s+w3~d2#l$F16M">command</field><value name="VALUE"><shadow type="math_number"><field name="NUM">0</field></shadow><block type="text" id="{u:5zg]r_wG%AzYa{a5O"><field name="TEXT"/></block></value><next><block type="function_call" id="*Hb/z]lIgqb;NMSc2d+o"><mutation name="new_command" functionid="K`S7,8ChRs:#f($y~+n7"/></block></next></block></next></block></next></block></next></block></next></block></statement></block><block type="function_definition" id="vL,x9,xzhy=7{{E$3?`I" x="3711" y="0"><mutation name="new_command" functionid="K`S7,8ChRs:#f($y~+n7"/><field name="function_name">new_command</field><statement name="STACK"><block type="controls_if" id="^=kiqB]qS;fIdePvP!~Z"><mutation else="1"/><value name="IF0"><shadow type="logic_boolean"><field name="BOOL">TRUE</field></shadow><block type="variables_get" id="$s~vuj7=F^/6K}F`QXIE"><field name="VAR" id="p_7*6Clakc):yISWx~}x">num</field></block></value><statement name="DO0"><block type="serial_writestring" id="8;vk~Lde5BLoTB8OQx6q"><value name="text"><block type="text_join" id="R%#mU8#ix:+dBH~b-Z/X"><mutation items="3"/><value name="ADD0"><shadow type="text"><field name="TEXT"/></shadow><block type="typescript_expression" id="odeFVIin^*g{,r]UE5#J" editable="false"><field name="EXPRESSION">"\r\n\r\n"</field></block></value><value name="ADD1"><shadow type="text"><field name="TEXT"/></shadow><block type="control_device_name" id="ncR*`cNvdLlLOC7bGnTg"/></value><value name="ADD2"><shadow type="text" id="$/dJL-8C0MT%}Eeu9_@2"><field name="TEXT"> ~ % </field></shadow></value></block></value></block></statement><statement name="ELSE"><block type="serial_writestring" id="$rViDhZ[OnAz8ZJ!x+b~"><value name="text"><block type="text_join" id="D{tonli2+r*@V?}`F{w%"><mutation items="2"/><value name="ADD0"><shadow type="text"><field name="TEXT"/></shadow><block type="control_device_name" id="ql0e8JLI!0?(n7pHG?.Q"/></value><value name="ADD1"><shadow type="text" id="@=h2CU{WZEQLOP(4,LrN"><field name="TEXT"> ~ % </field></shadow></value></block></value></block></statement></block></statement></block><block type="device_forever" id="E`P6bPv2h7q$Y((3fMDc" x="4507" y="0"><statement name="HANDLER"><block type="variables_set" id="Rsvydh(D)jVTX6KH,M[a"><field name="VAR" id="3N_yrA}KGD-I3d}0{j]L">letter</field><value name="VALUE"><shadow type="math_number"><field name="NUM">0</field></shadow><block type="serial_read_buffer" id="*n%#F^=N%Q[A71EqQa$D"/></value><next><block type="serial_writestring" id="Oy0ZJ*!x(4;cH%o?p8y$"><value name="text"><block type="variables_get" id="F6hWAfu/CI]S{2gYA@9q"><field name="VAR" id="3N_yrA}KGD-I3d}0{j]L">letter</field></block></value><next><block type="controls_if" id="+XB4)=Y!##8-6Ku)N;hZ"><mutation else="1"/><value name="IF0"><shadow type="logic_boolean"><field name="BOOL">TRUE</field></shadow><block type="logic_compare" id="U79-*WbE-$/TS3y6?heP"><field name="OP">EQ</field><value name="A"><shadow type="math_number"><field name="NUM">0</field></shadow><block type="variables_get" id="VYkQ]1,:Pyfp(y9S1sjX"><field name="VAR" id="3N_yrA}KGD-I3d}0{j]L">letter</field></block></value><value name="B"><shadow type="math_number"><field name="NUM">0</field></shadow><block type="text" id="97VXU1Oq$HT,7|5,0Quy"><field name="TEXT">;</field></block></value></block></value><statement name="DO0"><block type="variables_set" id="^{m8_4[ZN$TzwxSsS_5H"><field name="VAR" id="3N_yrA}KGD-I3d}0{j]L">letter</field><value name="VALUE"><shadow type="math_number"><field name="NUM">0</field></shadow><block type="text" id="Ki3~dSJ_0Uw{Ki9n/M*X"><field name="TEXT"/></block></value></block></statement><statement name="ELSE"><block type="variables_set" id="CTe+/TpMPUT%[|Dj+XT5"><field name="VAR" id="=%FDq.s+w3~d2#l$F16M">command</field><value name="VALUE"><shadow type="math_number"><field name="NUM">0</field></shadow><block type="text_join" id=")B?5xF:bw6*:YIt-2U%("><mutation items="2"/><value name="ADD0"><shadow type="text"><field name="TEXT"/></shadow><block type="variables_get" id="t`_[6*:W15%84@ir!`^r"><field name="VAR" id="=%FDq.s+w3~d2#l$F16M">command</field></block></value><value name="ADD1"><shadow type="text"><field name="TEXT"/></shadow><block type="variables_get" id="eQw3cQp{f.lzbjd/R_i["><field name="VAR" id="3N_yrA}KGD-I3d}0{j]L">letter</field></block></value></block></value><next><block type="variables_set" id="-6wQ~j;AI^rY_=~$Enz$"><field name="VAR" id="3N_yrA}KGD-I3d}0{j]L">letter</field><value name="VALUE"><shadow type="math_number"><field name="NUM">0</field></shadow><block type="text" id="JD}-A0(VIK;8.f4qZjj`"><field name="TEXT"/></block></value></block></next></block></statement></block></next></block></next></block></statement></block></xml>