// /**
//  * @license Licensed under the Apache License, Version 2.0 (the "License"):
//  *          http://www.apache.org/licenses/LICENSE-2.0
//  *
//  * @fileoverview XML toolbox embedded into a JavaScript text string.
//  */
// 'use strict';

// /** Create a namespace for the application. */
// var Ardublockly = Ardublockly || {};

// // let workspaceTopBlocks = blockpy.components.editor.blockly && 
// //     blockpy.components.editor.blockly.getTopBlocks();
// // let touchMatch = '<block type="touchMatch';
// // console.log(workspaceTopBlocks);
// // if (workspaceTopBlocks) {
// //     for (var i = 0; i < workspaceTopBlocks.length; i++) {
// //         if (workspaceTopBlocks[i].getTouchMatchInstance && 
// //             workspaceTopBlocks[i].getTouchMatchInstance()) {
// //             touchMatch += ' disabled="true"';
// //         }
// //     }
// // }
// // touchMatch += '></block>';

// Ardublockly.TOOLBOX_XML =
//     '<xml>' +
//     '  <sep></sep>' +
//     // '<category id="catBasic" name="Basic">'+
//     '  <category id="catLogic" name="Logic">' +
//     '    <block type="controls_if"></block>' +
//     '    <block type="logic_compare"></block>' +
//     '    <block type="logic_operation"></block>' +
//     '    <block type="logic_negate"></block>' +
//     '    <block type="logic_boolean"></block>' +
//     '    <block type="logic_null"></block>' +
//     '    <block type="logic_ternary"></block>' +
//     '    <block type="switch_statement"></block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     '  <category id="catLoops" name="Loops">' +
//     '    <block type="controls_repeat_ext">' +
//     '      <value name="TIMES">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">10</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="controls_whileUntil"></block>' +
//     '    <block type="controls_for">' +
//     '      <value name="FROM">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">1</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="TO">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">10</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="BY">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">1</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="controls_flow_statements"></block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     '  <category id="catMath" name="Math">' +
//     '    <block type="math_number"></block>' +
//     '    <block type="math_arithmetic"></block>' +
//     '    <block type="math_single"></block>' +
//     '    <block type="math_trig"></block>' +
//     '    <block type="math_constant"></block>' +
//     '    <block type="math_number_property"></block>' +
//     '    <block type="math_change">' +
//     '      <value name="DELTA">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">1</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="math_round"></block>' +
//     '    <block type="math_modulo"></block>' +
//     '    <block type="math_constrain">' +
//     '      <value name="LOW">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">1</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="HIGH">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">100</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="math_random_int">' +
//     '      <value name="FROM">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">1</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="TO">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">100</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="math_random_float"></block>' +
//     '    <block type="base_map"></block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     '  <category id="catVariables" name="Variables">' +
//     '    <block type="variables_get"></block>' +
//     '    <block type="variables_set"></block>' +
//     '    <block type="variables_set_type"></block>' +
//     '    <block type="variables_set">' +
//     '      <value name="VALUE">' +
//     '        <block type="variables_set_type"></block>' +
//     '      </value>' +
//     '    </block>' +

//     '  </category>' +
//     '  <sep></sep>' +
//     '  <category id="catText" name="Text">' +
//     '    <block type="text"></block>' +
//     '    <block type="text_join"></block>' +
//     '    <block type="text_append">' +
//     '      <value name="TEXT">' +
//     '        <block type="text"></block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="text_length"></block>' +
//     '    <block type="text_isEmpty"></block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     //---------------- list blocks  ---------------//

//     '  <category id="catLists" name="Lists">' +
//     '    <block type="lists_variable_set">' +
//     '      <value name="VALUE">' +
//     '        <block type="lists_create_with">' +
//     '          <value name="ADD0">' +
//     '             <block type="math_number">' +
//     '                <field name="NUM">0</field>' +
//     '             </block>' +
//     '          </value>' +
//     '          <value name="ADD1">' +
//     '             <block type="math_number">' +
//     '                <field name="NUM">0</field>' +
//     '             </block>' +
//     '          </value>' +
//     '          <value name="ADD2">' +
//     '             <block type="math_number">' +
//     '                <field name="NUM">0</field>' +
//     '             </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="lists_create_with">' +
//     '      <value name="ADD0">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="ADD1">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="ADD2">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="lists_create_with2">' +
//     '      <value name="ADD0">' +
//     '        <block type="text">' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="ADD1">' +
//     '        <block type="text">' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +

//     '    <block type="lists_length">' +
//     '      <value name="VAR">' +
//     '        <block type="variables_get">' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="lists_getIndex">' +
//     '      <value name="VAR">' +
//     '        <block type="variables_get">' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="AT">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +

//     '    <block type="lists_setIndex">' +
//     '      <value name="VAR">' +
//     '        <block type="variables_get">' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="AT">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="TO">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +

//     '    <block type="lists_setIndex">' +
//     '      <value name="VAR">' +
//     '        <block type="variables_get">' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="AT">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="TO">' +
//     '        <block type="text">' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '  </category>' +

//     '  <sep></sep>' +

//     '  <category id="catFunctions" name="Functions" custom="PROCEDURE"></category>' +
//     '  <sep></sep>' +
//     //--------------Input & Output blocks----------------// 
//     '  <category id="catInputOutput" name="Input/Output">' +
//     '    <block type="io_digitalwrite">' +
//     '      <value name="PIN">' +
//     '        <block type="io_dropdown_digital">' +
//     //'          <field name="SELECTPIN">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="STATE">' +
//     '        <block type="io_highlow"></block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="io_digitalread">' +
//     '      <value name="PIN">' +
//     '        <block type="io_dropdown_digital">' +
//     //'          <field name="SELECTPIN">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="io_builtin_led">' +
//     '      <value name="STATE">' +
//     '        <block type="io_highlow"></block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="io_pwmwrite">' +
//     '      <value name="PIN">' +
//     '        <block type="io_dropdown_pwm">' +
//     //'          <field name="SELECTPIN">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="PWMVALUE">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="io_analogread">' +
//     '      <value name="PIN">' +
//     '        <block type="io_dropdown_analog">' +
//     //'          <field name="SELECTPIN">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="io_highlow"></block>' +
//     '    <block type="io_pulsein">' +
//     '      <value name="PULSETYPE">' +
//     '        <block type="io_highlow"></block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="io_pulsetimeout">' +
//     '      <value name="PULSETYPE">' +
//     '        <block type="io_highlow"></block>' +
//     '      </value>' +
//     '      <value name="TIMEOUT">' +
//     '        <block type="math_number"></block>' +
//     '      </value>' +
//     '    </block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     '  <category id="catTime" name="Time">' +
//     '    <block type="time_delay">' +
//     '      <value name="DELAY_TIME_MILI">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">1000</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="time_delaymicros">' +
//     '      <value name="DELAY_TIME_MICRO">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">100</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="time_millis"></block>' +
//     '    <block type="time_micros"></block>' +
//     '    <block type="infinite_loop"></block>' +
//     '    <block type="time_everySecond">' +
//     '      <value name="TIME">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">5</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="time_everyMilliSecond">' +
//     '      <value name="TIME">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">500</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="time_chrono_setup"></block>' +
//     '    <block type="time_chrono_reset"></block>' +
//     '    <block type="time_chrono_elapsed"></block>' +
//     '    <block type="time_chrono_timeCheck">' +
//     '      <value name="TIME">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">1000</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     '  <category id="catComms" name="Comms">' +
//     '    <block type="serial_setup"></block>' +
//     '    <block type="serial_print"></block>' +
//     '    <block type="serial1_write"></block>' +
//  //   '    <block type="serial1_read"></block>' +
//  //   '    <block type="serial1_available"></block>' +

//     // '    <block type="spi_setup"></block>' +
//     // '    <block type="spi_transfer"></block>' +
//     // '    <block type="spi_transfer_return"></block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     /*   
//      * coco mod here
//      */
//     '<category id="catCocoMod" name="Modules">' +
//     // -------------- Sensor 101 blocks --------------- //
//     '  <category id="catBasic" name="Sensor 101">' +
//     '	<sep></sep>' +
//     '	 <category class="examples" name="Marquee" id="basicMarquee"></category>' +
//     '	<sep></sep>' +
//     '	 <category name="8 Bit Music" id="basic8Bit"></category>' +
//     '	<sep></sep>' +
//     '	 <category name="Knob To Notes" id="baxicKnobSound"></category>' +
//     '    <block type="read_button">' +
//     '      <value name="PINSNUM">' +
//     '        <block type="basic101_dropdown_button">' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="read_knob">' +
//     '      <value name="PINSNUM">' +
//     '        <block type="basic101_dropdown_knob">' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="digital_light">' +
//     '      <value name="PINSNUM">' +
//     '        <block type="basic101_dropdown_digital_light">' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="analog_light">' +
//     '      <value name="PINSNUM">' +
//     '        <block type="basic101_dropdown_analog_light">' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="BRIGHTNESS">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">220</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="nolight">' +
//     '      <value name="PINSNUM">' +
//     '        <block type="basic101_dropdown_nolight">' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="tone">' +
//     '      <value name="PINSNUM">' +
//     '        <block type="basic101_dropdown_tone">' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="FREQUENCY">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">220</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="notone">' +
//     '      <value name="PINSNUM">' +
//     '        <block type="basic101_dropdown_notone">' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '        <block type="basic101_dropdown_tone">' +
//     '        </block>' +
//     '    <block type="counter_button_setup">' +
//     '      <value name="PINSNUM">' +
//     '        <block type="basic101_counter_dropdown_button">' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="read_counter">' +
//     '      <value name="PINSNUM">' +
//     '        <block type="basic101_counter_dropdown_button">' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     // -------------- LEDLight blocks -------------- //
//     '  <category id="catFASTLED" name="Light">' +
//     '	<sep></sep>' +
//     '	 <category name="Heart" id="ledHeart"></category>' +
//     '	 <block type="led_neopixel_setup"></block>' +
//     '	 <block type="led_set_width_height">' +
//     '      <value name="WIDTH">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="HEIGHT">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '	 <block type="led_set_position">' +
//     '      <value name="POSX">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="POSY">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="led_setrotation"></block>' +
//     '	 <block type="led_setbright">' +
//     '      <value name="BRIGHTNESS">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">220</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="led_set_color"></block>' +
//     '    <block type="led_set_colorRGB">' +
//     '      <value name="RED_VAL">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="GREEN_VAL">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="BLUE_VAL">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="led_drawpixel">' +
//     '      <value name="COLOR">' +
//     '        <block type="led_set_color"></block>' +
//     '      </value>' +
//     '      <value name="POS">' +
//     '        <block type="led_set_position">' +
//     '          <value name="POSX">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">0</field>' +
//     '            </block>' +
//     '          </value>' +
//     '          <value name="POSY">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">0</field>' +
//     '            </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="led_draw_strip">' +
//     '      <value name="COLOR">' +
//     '        <block type="led_set_color"></block>' +
//     '      </value>' +
//     '      <value name="LOC">' +
//     '        <block type="math_number">' +
//     '           <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="led_drawline">' +
//     '      <value name="COLOR">' +
//     '        <block type="led_set_color"></block>' +
//     '      </value>' +
//     '      <value name="POSA">' +
//     '        <block type="led_set_position">' +
//     '          <value name="POSX">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">0</field>' +
//     '            </block>' +
//     '          </value>' +
//     '          <value name="POSY">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">0</field>' +
//     '            </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="POSB">' +
//     '        <block type="led_set_position">' +
//     '          <value name="POSX">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">4</field>' +
//     '            </block>' +
//     '          </value>' +
//     '          <value name="POSY">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">4</field>' +
//     '            </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="led_drawrect">' +
//     '      <value name="COLOR">' +
//     '        <block type="led_set_color">' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="SIZE">' +
//     '        <block type="led_set_width_height">' +
//     '          <value name="WIDTH">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">5</field>' +
//     '            </block>' +
//     '          </value>' +
//     '          <value name="HEIGHT">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">5</field>' +
//     '            </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="POS">' +
//     '        <block type="led_set_position">' +
//     '          <value name="POSX">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">0</field>' +
//     '            </block>' +
//     '          </value>' +
//     '          <value name="POSY">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">0</field>' +
//     '            </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     // '    <block type="led_drawWord_5x5">' +
//     // '      <value name="WORD">' +
//     // '        <block type="text"></block>' +
//     // '      </value>' +
//     // '      <value name="COLOR">' +
//     // '        <block type="set_color"></block>' +
//     // '      </value>' +
//     // '    </block>' +
//     '    <block type="led_text_input">' +
//     '      <value name="TEXT">' +
//     '        <block type="text"></block>' +
//     '      </value>' +
//     '      <value name="COLOR">' +
//     '        <block type="led_set_color"></block>' +
//     '      </value>' +
//     '      <value name="POS">' +
//     '        <block type="led_set_position">' +
//     '          <value name="POSX">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">0</field>' +
//     '            </block>' +
//     '          </value>' +
//     '          <value name="POSY">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">0</field>' +
//     '            </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     // '    <block type="led_text_input"></block>'+
//     // '    <block type="led_text">' +
//     // '      <value name="text_color">' +
//     // '        <block type="set_color">'+
//     // '        </block>' +
//     // '      </value>' +
//     // '      <value name="back_color">' +
//     // '        <block type="set_color">'+
//     // '        </block>' +
//     // '      </value>' +
//     // '    </block>'+
//     // '    <block type="led_scrolling_text">' +
//     // '      <value name="led_scrolling_color">' +
//     // '        <block type="set_color">'+
//     // '        </block>' +
//     // '      </value>' +
//     // '    </block>'+
//     '    <block type="led_draw_emotion">' +
//     '      <value name="COLOR">' +
//     '        <block type="led_set_color"></block>' +
//     '      </value>' +
//     '      <value name="POS">' +
//     '        <block type="led_set_position">' +
//     '          <value name="POSX">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">1</field>' +
//     '            </block>' +
//     '          </value>' +
//     '          <value name="POSY">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">1</field>' +
//     '            </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="led_pattern_5x5"></block>' +
//     '    <block type="led_showall"></block>' +
//     '    <block type="led_clear"></block>' +

//     '  </category>' +
//     '  <sep></sep>' +
//     // -------------- Motor blocks -------------- //
//     '  <category id="catMOTOR" name="Motor">' +
//     '	 <category name="Movement" id="motorMovement"></category>' +
//     '	 <sep></sep>' +
//     '	 <category name="Obstacle Voiding" id="motorObstacleVoiding"></category>' +
//     // '	<sep></sep>' +
//     // '	 <category name="Line Tracking" id="motorTrackLine"></category>' +
//     // '	<sep></sep>' +
//     '    <block type="motor_setup"></block>' +
//     '    <block type="motor_speed"></block>' +
//     '    <block type="motorA_move_clockwise">' +
//     '      <value name="SPEED">' +
//     '        <block type="motor_speed">' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     // '    <block type="motorA_move_anticlockwise">' +
//     // '      <value name="SPEED">' +
//     // '        <block type="motor_speed">' +
//     // '        </block>' +
//     // '      </value>' +
//     // '    </block>' +
//     '    <block type="motorB_move_clockwise">' +
//     '      <value name="SPEED">' +
//     '        <block type="motor_speed">' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     // '    <block type="motorB_move_anticlockwise">' +
//     // '      <value name="SPEED">' +
//     // '        <block type="motor_speed">' +
//     // '        </block>' +
//     // '      </value>' +
//     // '    </block>' +
//     '    <block type="motor_stop"></block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     // -------------- Servo blocks -------------- //
//     '  <category id="catServo" name="Servo">' +
//     '	 <category name="Full Rotation" id="fullRotate"></category>' +
//     '    <block type="servo_setup"></block>' +
//     '    <block type="servo_write">' +
//     '      <value name="SERVO_ANGLE">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">90</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="servo_read"></block>' +
//     '    <block type="robot_setup"></block>' +
//     '    <block type="robot_set_movement">' +
//     '      <value name="MOVEMENT">' +
//     '        <block type="robot_movement">' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="TEMPO">' +
//     '        <block type="robot_tempo">' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="robot_movement"></block>' +
//     '    <block type="robot_tempo"></block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     // -------------- Music blocks -------------- //
//     '  <category id="catMusic" name="Music">' +
//     // '    <category id="paper_piano_cocoblockly" name="Music Keyboard"></category>'+
//     // '	 <sep></sep>' +
//     '    <category id="music_play_melody" name="Play Melody"></category>' +
//     '	<sep></sep>' +
//     '    <category id="music_play_mp3" name="Play MP3"></category>' +
//     '	 <block type="MusicMidiSetup"></block>' +
//     '    <block type="MusicSetVolume"></block>' +
//     '    <block type="MusicSetInstrument"></block>' +
//     '    <block type="MusicNote"></block>' +
//     '    <block type="MusicBeat"></block>' +
//     '    <block type="MusicPlayTone">' +
//     '      <value name="NOTE">' +
//     '        <block type="MusicNote">' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="DURATION">' +
//     '        <block type="MusicBeat">' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="MusicRest">' +
//     '      <value name="BEAT">' +
//     '        <block type="MusicBeat">' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="Music_mp3_setup">' +
//     '    </block>' +
//     '    <block type="Music_mp3_playOneWithName">' +
//     '    </block>' +
//     '    <block type="Music_mp3_playSetting">' +
//     '    </block>' +
//     '    <block type="Music_mp3_getCurrentVolume">' +
//     '    </block>' +
//     '    <block type="Music_mp3_setCurrentVolume">' +
//     '    </block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     // -------------- Touch Sensor blocks -------------- //
//     '  <category id="catTouch" name="Touch" custom="TOUCH" colour="30">' +
//     // '    <category id="paper_piano_cocoblockly" name="Music Keyboard"></category>'+
//     // '	 <sep></sep>' +
//     '    <category id="touch_light" name="Touch Light"></category>' +
//     '  </category>' +

//     // '  <category id="catTouch" name="Touch">' +
//     // // '    <category id="paper_piano_cocoblockly" name="Music Keyboard"></category>'+
//     // // '	 <sep></sep>' +
//     // '    <category id="touch_light" name="Touch Light"></category>' +
//     // '    <block type="touch_setup_1"></block>' +
//     // '    <block type="touch_each"></block>' +
//     // '  </category>' +

//     '  <sep></sep>' +

//     // -------------- HCI blocks -------------- //
//     '  <category id="catHCI" name="HCI">' +
//     '    <category id="hci_basic" name="HCI mouse"></category>' +
//     '    <block type="HID_setup"></block>' +
//     '    <block type="HID_mouse_move"></block>' +
//     '    <block type="HID_mouse_click"></block>' +
//     '    <block type="HID_mouse_press"></block>' +
//     '    <block type="HID_mouse_release"></block>' +
//     '    <block type="HID_keyboard_press"></block>' +
//     '    <block type="HID_keyboard_release"></block>' +
//     '    <block type="HID_keyboard_releaseAll"></block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     // -------------- screen blocks -------------- //
//     '  <category id="catScreen" name="Screen">' +
//     '	 <category name="Showreel" id="screenShowreel"></category>' +
//     '	 <sep></sep>' +
//     '	 <category name="ENV SHOW SCREEN" id="EnvShowScreen"></category>' +
//     '    <block type="lcd_setup"></block>' +
//     '	 <block type="lcd_set_width_height">' +
//     '      <value name="WIDTH">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="HEIGHT">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '	 <block type="lcd_set_position">' +
//     '      <value name="POSX">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="POSY">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="lcd_drawline">' +
//     '      <value name="COLOR">' +
//     '        <block type="lcd_set_color">' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="POSA">' +
//     '        <block type="lcd_set_position">' +
//     '          <value name="POSX">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">0</field>' +
//     '            </block>' +
//     '          </value>' +
//     '          <value name="POSY">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">0</field>' +
//     '            </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="POSB">' +
//     '        <block type="lcd_set_position">' +
//     '          <value name="POSX">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">50</field>' +
//     '            </block>' +
//     '          </value>' +
//     '          <value name="POSY">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">50</field>' +
//     '            </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="lcd_drawrect">' +
//     '      <value name="COLOR">' +
//     '        <block type="lcd_set_color">' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="SIZE">' +
//     '        <block type="lcd_set_width_height">' +
//     '          <value name="WIDTH">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">50</field>' +
//     '            </block>' +
//     '          </value>' +
//     '          <value name="HEIGHT">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">50</field>' +
//     '            </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="POS">' +
//     '        <block type="lcd_set_position">' +
//     '          <value name="POSX">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">0</field>' +
//     '            </block>' +
//     '          </value>' +
//     '          <value name="POSY">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">0</field>' +
//     '            </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="lcd_drawcircle">' +
//     '      <value name="COLOR">' +
//     '        <block type="lcd_set_color">' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="POS">' +
//     '        <block type="lcd_set_position">' +
//     '          <value name="POSX">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">0</field>' +
//     '            </block>' +
//     '          </value>' +
//     '          <value name="POSY">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">0</field>' +
//     '            </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="RADIUS">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">30</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="lcd_drawtriangle">' +
//     '      <value name="COLOR">' +
//     '        <block type="lcd_set_color">' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="POSA">' +
//     '        <block type="lcd_set_position">' +
//     '          <value name="POSX">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">20</field>' +
//     '            </block>' +
//     '          </value>' +
//     '          <value name="POSY">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">40</field>' +
//     '            </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="POSB">' +
//     '        <block type="lcd_set_position">' +
//     '          <value name="POSX">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">40</field>' +
//     '            </block>' +
//     '          </value>' +
//     '          <value name="POSY">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">20</field>' +
//     '            </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="POSC">' +
//     '        <block type="lcd_set_position">' +
//     '          <value name="POSX">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">20</field>' +
//     '            </block>' +
//     '          </value>' +
//     '          <value name="POSY">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">20</field>' +
//     '            </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="lcd_text">' +
//     '      <value name="INPUT">' +
//     '        <block type="text"></block>' +
//     '      </value>' +
//     '      <value name="COLOR">' +
//     '        <block type="lcd_set_color">' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="POS">' +
//     '        <block type="lcd_set_position">' +
//     '          <value name="POSX">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">10</field>' +
//     '            </block>' +
//     '          </value>' +
//     '          <value name="POSY">' +
//     '            <block type="math_number">' +
//     '              <field name="NUM">10</field>' +
//     '            </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="SIZE">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">1</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="lcd_rotation"></block>' +
//     '    <block type="lcd_clear"></block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     // -------------- env sensor blocks -------------- //
//     '  <category id="catENV" name="Env Sensor">' +
//     '	 <category name="ENV SHOW SCREEN" id="EnvShowScreen"></category>' +
//     '	 <sep></sep>' +
//     '	 <category name="ENV Light Color" id="EnvLigtColor"></category>' +
//     '    <block type="env_init"></block>' +
//     //'    <block type="iot_read_val"></block>' +
//     '    <block type="iot_read_mic">' +
//     '       <field name="env_sensor_mic">A2</field>' +
//     '    </block>' +
//     '    <block type="iot_read_light">' +
//     '       <field name="env_sensor_light">A1</field>' +
//     '    </block>' +
//     '    <block type="iot_read_humid">' +
//     '       <field name="env_sensor_humid">4</field>' +
//     '    </block>' +
//     '    <block type="iot_read_temp">' +
//     '       <field name="env_sensor_temp">4</field>' +
//     '    </block>' +
//     '    <block type="iot_set_rgb">' +
//     '       <field name="env_sensor_rgbPin_r">9</field>' +
//     '       <field name="env_sensor_rgbPin_g">10</field>' +
//     '       <field name="env_sensor_rgbPin_b">11</field>' +
//     '      <value name="RED_VAL">' +

//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="GREEN_VAL">' +

//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '      <value name="BLUE_VAL">' +
//     //'       <field name="env_sensor_rgbPin_b">11</field>' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="iot_buzzer">' +
//     '      <value name="FREQUENCY">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">220</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="iot_nobuzzer"></block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     // -------------- third-party sensor blocks -------------- //
//     '  <category id="catTD" name="Sensors">' +
//     '	 <category name="GPS SHOW" id="GPSShowScreen"></category>' +
//     '  <sep></sep>' +
//     '    <block type="sonar_setup"></block>' +
//     '    <block type="sonar_read_dist"></block>' +
//     '    <block type="infraredRay_setup"></block>' +
//     '    <block type="infraredRay_receive_val"></block>' +
//     '    <block type="infraredRay_send_val"></block>' +
//     '    <block type="controls_if">' +
//     '      <value name="IF0">' +
//     '        <block type="logic_compare">' +
//     '          <value name="A">' +
//     '            <block type="infraredRay_receive_val">' +
//     '            </block>' +
//     '          </value>' +
//     '          <value name="B">' +
//     '            <block type="infraredRay_send_val">' +
//     '            </block>' +
//     '          </value>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     // /* Water Temperature */
//     '    <block type="water_temp_sensor_setup"></block>' +
//     '    <block type="water_temp_sensor_get_value"></block>' +
//     // /* CO2 Sensor */
//     '    <block type="thirdparty_co2_sensor_setup"></block>' +
//     '    <block type="thirdparty_co2_sensor_get_co2"></block>' +
//     '    <block type="thirdparty_co2_sensor_get_tvoc"></block>' +
//     // /* RTC */
//     '    <block type="RTC_setup"></block>' +
//     '    <block type="RTC_setDateTime"></block>' +
//     '    <block type="RTC_getDate"></block>' +
//     '    <block type="RTC_getTime"></block>' +
//     '    <block type="RTC_getWeek"></block>' +
//     /* PulseSensor */
//     '    <block type="PulseSensor_setup"></block>' +
//     '    <block type="PulseSensor_getBPM"></block>' +
//     '    <block type="PulseSensor_Heart_Beats"></block>' +
//     '    <block type="PulseSensor_Heart_noBeats"></block>' +
//     '    <block type="PulseSensor_print"></block>' +
//     /* Encoder */
//     '    <block type="Encoder_Setup"></block>' +
//     '    <block type="Encoder_getRotationSpeed"></block>' +
//     /*RFID*/
//     '    <block type="RFID_Setup"></block>' +
//     '    <block type="RFID_ReadID"></block>' +
    
//     // /*GPS*/
//     '    <block type="GPS_setup"></block>' +
//     '    <block type="GPS_getLatitude"></block>' +
//     '    <block type="GPS_getLongitude"></block>' +
//     // /* NRF */
//     '    <block type="thirdparty_nrf24l01_setup"></block>' +
//     '    <block type="thirdparty_nrf24l01_send_data"></block>' +
//     '    <block type="thirdparty_nrf24l01_receive_data"></block>' +
//     '    <block type="thirdparty_nrf24l01_data_received"></block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     // -------------- colour blocks -------------- //
//     '  <category id="catColour" name="Colour">' +
//     '    <block type="color_analyzer_setup"></block>' +
//     // '    <block type="set_color"></block>' +
//     '    <block type="read_r"></block>' +
//     '    <block type="read_g"></block>' +
//     '    <block type="read_b"></block>' +
//     // '    <block type="set_colorRGB">' +
//     // '      <value name="RED_VAL">' +
//     // '        <block type="math_number">' +
//     // '          <field name="NUM">0</field>' +
//     // '        </block>' +
//     // '      </value>' +
//     // '      <value name="GREEN_VAL">' +
//     // '        <block type="math_number">' +
//     // '          <field name="NUM">0</field>' +
//     // '        </block>' +
//     // '      </value>' +
//     // '      <value name="BLUE_VAL">' +
//     // '        <block type="math_number">' +
//     // '          <field name="NUM">0</field>' +
//     // '        </block>' +
//     // '      </value>' +
//     // '    </block>' +
//     // '    <block type="isColorRGB">' +
//     // '    </block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     // -------------- bluetooth blocks -------------- //
//     '  <category id="catBluetooth" name="Bluetooth">' +
//     '	 <category name="Robot Car Remote Control" id="robotRemoteControl"></category>' +
//     '    <sep></sep>' +
//     '	 <category name="Robot Arm Remote Control" id="robotArmRemoteControl"></category>' +
//     '    <block type="bluetooth_setup"></block>' +
//     '    <block type="bluetooth_text_getCommand"></block>' +
//     '    <block type="bluetooth_number_getCommand"></block>' +
//     '    <block type="bluetooth_list_getCommand"></block>' +
//     '    <block type="bluetooth_intercomms_send_old">'+
//     '      <value name="ADD0">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="bluetooth_intercomms_receive_old"></block>' +
//     '    <block type="bluetooth_intercomms_receive_getData_old"></block>' +
// /*    '    <block type="bluetooth_intercomms_send">'+
//     '      <value name="ADD0">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="bluetooth_intercomms_receive"></block>' +
//     '    <block type="bluetooth_intercomms_receive_getData"></block>' +*/
//     '    <block type="bluetooth_at_slave"></block>' +
//     '    <block type="bluetooth_at_master"></block>' +    
//     '    <block type="bluetooth_at_interaction"></block>' +   
//     '  </category>' +
//     '  <sep></sep>' +
//     //---------------- motion blocks-----------------//
//     '  <category id="catMOTION" name="Motion">' +
//     '	 <category name="Motion Show Led" id="MotionShowLed"></category>' +
//     '    <block type="motion_setup"></block>' +
//     '    <block type="motion_onshake"></block>' +
//     '    <block type="motion_onDirection"></block>' +
//     '    <block type="motion_getRotation_ypr"></block>' +
//     '    <block type="motion_getAcceleration"></block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     //---------------- mainwifi blocks-----------------//
//     '  <category id="catMainWifi" name="WiFi">' +
//     '	 <category name="Main env data transfer" id="MainEnvDataTransfer"></category>' +
//     '    <block type="MainEasymode_transfer2_send">' +
//     '      <value name="ADD0">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="MainEasymode_transfer2_receive">' +
//     '    </block>' +
//     '    <block type="MainEasymode_transfer2_receive_getValue">' +
//     '    </block>' +
// /*    '    <block type="MainEasymode_transfer2_send_old">' +
//     '      <value name="ADD0">' +
//     '        <block type="math_number">' +
//     '          <field name="NUM">0</field>' +
//     '        </block>' +
//     '      </value>' +
//     '    </block>' +
//     '    <block type="MainEasymode_transfer2_receive_old">' +
//     '    </block>' +
//     '    <block type="MainEasymode_transfer2_receive_getValue_old">' +
//     '    </block>' + */
//     '  </category>' +
//     '  <sep></sep>' +
//     //---------------- NBIoT blocks-----------------//
//     //'  <category id="catNBIoT" name="NBIoT">' +
//     '    <block type="NBIoT_setup"></block>' +
//     '    <block type="NBIoT_enable"></block>' +
//     '    <block type="controls_if">' +
//     '      <value name="IF0">' +
//     '        <block type="NBIoT_powered_on"></block>' +
//     '      </value>' +
//     '    </block>'+
//     '    <block type="controls_if">' +
//     '      <value name="IF0">' +
//     '        <block type="NBIoT_network_connected"></block>' +
//     '      </value>' +
//     '    </block>'+
//     '    <block type="NBIoT_network_connected"></block>' +
//     '    <block type="NBIoT_powered_on"></block>' +
//     '    <block type="NBIoT_network_IP"></block>' +
//     '    <block type="NBIoT_http">'+
//     '      <value name="ADD0">' +
//     '          <block type="math_number">' +
//     '              <field name="NUM">0</field>' +
//     '          </block>' +
//     '       </value>' +
//     '    </block>' +
//     '    <block type="NBIoT_http_IFTTT">'+
//     '      <value name="ADD0">' +
//     '          <block type="math_number">' +
//     '              <field name="NUM">0</field>' +
//     '          </block>' +
//     '       </value>' +
//     '    </block>' +
//     // '    <block type="NBIoT_http_thingspeak"></block>' +
//     // '    <block type="NBIoT_http_cococloud_get"></block>' +
//     '  </category>' +
//     '  <sep></sep>' +
//     '</category>' +
//     '<sep></sep>' +
//     '</xml>';