<snapdata remixID="12156935"><project name="maze-magic_starterKit_best" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAACCtJREFUeF7tnX9olHUcxz93W1Mbc9KmTIkt8xYNUcH1Y1uuWZqjEHR/OKOolBoyCHUmgv0jUjYIdCXBkAsEk/JHeg3DmH+5UE9DIcu50U7TI+Zkd41Tp8O8XTyHlbnd9vl+7vPcc7r3/evn83zu+3peez/zuXu+c8VisRjhBQIOEXBBQIfIY2ycAASECI4SgICO4sdwCAgHHCUAAR3Fj+EQEA44SgACOoofw5MScN7rz9HA8qCtFAdDbqo8N5fmVz1h65xQ6CZta/LbOuOfg68bLKD8WKats466rlH0lWcpJyfH1jmdnZ3k8/nEM5IScMHWUhr4oEs8nNu4/uDbVLO0hFsuriuZ+YW416Sx484sk3JRrc/VR7MON5PH4xH1c5s2btxIjY2N3PIhdRDwHiQQ0NwjCGjOLGEHBDSHCQHNmUFARWYQUBEmEtAcJgQ0Z4YEVGQGARVhIgHNYUJAc2ZIQEVmEFARJhLQHOYDJ2Dsdozi38F2EbmzXKwV40Y00Z3YYJxVpsvNYoYb0QkwXTsWpd8bBqhoyziatIj3cZREwJOnLtOevb3UsMZDRUWTWCctnRPw4z/Px9fw4WMl5LZ+ekd5QcAEgAYCg3RxzQAVNY6j7NkZo3GM/7tEwIsXw/TtwT7asJ7/UVQ6C/jN9SDdjEXp3YnTWcwgYAJMN05H6U44RhkTXZRTbp+ArLN0X1G6Cmj9xnK4/wo94nLT/AmTKYtxGYaAEgMS9EgSUDI+XQWUrAUCSqhBQDVqEFANpex3QMl4JKA5tQfuNoz5EiGghBkSUEINl2A1ahBQDSUSUIISAkqoIQHVqEFANZRIQAlKCCihhgRUowYB1VAiASUoIaCEGhJQjdqYEHDhunK6ta1dDdpwB3J1j6d3vl9Mde+V2jonGIzQa4u/pmg0auucjIwMOnzbQ4WxLFvneN29lPtRPU2dOtXWObt27SKv1yuekdRzwWVlZRSJRMTDOY1ut5sWLpyekp0Rmj47SXZvGOtyuahhbTnl50/gLF9cc7TtEo0fP5Nyc3PFx+A0+v1+OnToEKd02JqkBKysrKRQKCQezm38ZMuCh2tnhPb3uUsX1/m+66BZs9c+3DsjQECZHx0Q8F9wSMB7HErZlxEgIAQcLrsgoHmiO/ptGFyCzU+Y1YFL8H/ccAnGJVj2U3S3CwmYFL7/N+MSbA4TApozS9gBAc1hQkBzZhBQkRkETAAzEOilyLVHKT/vr/R7MF1wGyYQ6KcrPbeocl4+Sx/ciGZh4hVJPgmxPtvd2vQzfd5UxRtCROl8Cd6z9zeyPsZbXlvMWg8EZGHiFUkEvHr1OrWfj9HLL03kDUlzAc+136CsrCx6qpj3JQYIyD7toxdKBBz9qEMr0jkBTdcDAU2JjVAPAc1hQkBzZgk7IKA5TAhozgwCKjKDgIowkYDmMCGgOTMkoCIzCKgIEwloDhMCmjNDAioyg4CKMJGA5jAhoDkzJKAiMwioCBMJaA4TApozQwIqMhsTAlZUVFBfX58ituEPta6hPCU7I1S/+pXta7EGtP7wFhUW2vvAuPfLMzQYe56mTJli65oOHDhAu3fvFs9I6pmQFStW0JIlS8TDOY3hcJhigydsF/ByMEJHjgRsn+P1nqFF1R4qSoGALncF5eXlcTCLaxwVMNlvw3JWHQwG6czpT1OyM4J12apZWsJ5W+KaVMyw3pw1p/SZDVRYWCh+r5zGZB1IKgGTHc5ZIATkUBpaAwFl3IZ0QUAZSAgo4wYBlbhBQCWQSEAZSAgo44YEVOIGAZVAIgFlICGgjBsSUIkbBFQCiQSUgYSAMm5qCSjZGUFyk/jUT0HKzMyk0rnTWCuWzLAOLNkZATeiWadk5CJpAkp2RpDIcelSHx0/0UdvvvEka7WSGdaBJTsjQEDWKbFHQMnOCBI5fvm1l0KhcewdGCQzLEKSnREgoIMCSkZL5TCZlYoZ1vvB74AmZ2WEWuklWDI+FXKkYgYElJz9BD0QUAYTCSjjpva/YMn4VKRTKmYgASVnHwmoSA2/A6rBxCVYhhKXYBk3XIKVuEFAJZBIQBlICCjjhgRU4gYBlUAiAWUgIaCMGxJQiRsEVAKJBJSBHBMCLlu2jKqq+H+HQ4IyEolQb+9JqnqxSNLO7gmHb1FHZ5jmvfA4u0dSeOz4H1TydB7l5U2QtLN72n68TJMnl1Furr07MLS1tdH+/fvZ7+v+wqSeC169ejXV19eLh3Mae3p6qKWlhVatWsUpF9f4/X6yZtXU1IiPwWn0+XxUUFBA5eXlnHJxzY4dO+K7Vliz7Hw1NzfT9u3bxSOSEjBVD6bv3LmTNm3aJF4kp7G1tZWsy31dXR2nXFzj9XrjuxVUV1eLj8Fp3Lx5M61cuRI7I3BgjVRjSQEBzSlCQHNmw3ZAQBlICCjjNqQLAspAQkAZNwioxA0CKoFEAspAQkAZNySgEjcIqAQSCSgDCQFl3JCAStwgoBJIJKAMJASUcUMCKnGDgEogkYAykBBQxg0JqMQNAiqBRALKQEJAGTckoBI3CKgEEgkoAwkBZdyQgErcIKASSCSgDCQElHFDAipxg4BKIJGAMpAQUMYNCajEDQIqgUQCykBCQBk3JKASNwioBBIJKAM5JgSsra2lGTNmyAgxu/r7+ykQCNCcOXOYHbKy7u5usmYVFxfLDsDs6urqouzsbJo2jfeHbZiHHVJ29uxZ8ng88Vl2vi5cuED79u0Tj0jqwXTxVDSCwF0CEBAqOEoAAjqKH8MhIBxwlAAEdBQ/hkNAOOAoAQjoKH4Mh4BwwFECfwNmPBovGsrO2QAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="maze-magic_starterKit_best"><notes></notes><palette><category name="1. SciSnap! globals" color="0,170,170,1"/><category name="5. PlotPad for data plots" color="150,175,80,1"/><category name="4. SQL tools" color="255,150,0,1"/><category name="7. GraphPad for graph operations" color="210,160,0,1"/><category name="8. NNPad for neural networks" color="200,100,0,1"/><category name="3. Data tools" color="220,50,0,1"/><category name="0. My own blocks" color="179,120,0,1"/><category name="2. Math tools" color="0,180,50,1"/><category name="6. ImagePad for image operations" color="200,170,50,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="generate random maze %&apos;w&apos; x %&apos;h&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>maze</l></list></block><block s="doSetVar"><l>maze</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>height</l><l>1</l><block var="h"/><script><block s="doAddToList"><block s="reportNewList"><list></list></block><block var="maze"/></block><block s="doFor"><l>width</l><l>1</l><block var="w"/><script><block s="doAddToList"><block s="reportRandom"><l>0</l><l>1</l></block><block s="reportListItem"><block var="height"/><block var="maze"/></block></block></script></block></script></block><block s="doReport"><block var="maze"/></block></script></block-definition><block-definition s="ask %&apos;question&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">what&apos;s your name?</input></inputs><script><block s="doAsk"><block var="question"/></block><block s="doReport"><block s="getLastAnswer"></block></block></script></block-definition><block-definition s="notify %&apos;message&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">Alert!</input></inputs><script><block s="doTellTo"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyScript"><script><block s="doAsk"><block s="reportNewList"><list><block s="reportApplyExtension"><l>ide_translate(text)</l><list><block var="message"/></list></block><block s="reportNewList"><list><block s="reportApplyExtension"><l>ide_translate(text)</l><list><l>Ok</l></list></block></list></block></list></block></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="prompt %&apos;title&apos; options %&apos;options&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">choose!</input><input type="%mult%s"></input></inputs><script><block s="doReport"><custom-block s="ask %s"><block s="reportIfElse"><block s="reportEquals"><block var="title"/><l></l></block><block var="options"/><block s="reportNewList"><list><block s="reportApplyExtension"><l>ide_translate(text)</l><list><block var="title"/></list></block><block var="options"/></list></block></block></custom-block></block></script></block-definition><block-definition s="submenu %&apos;title&apos; items %&apos;items&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">title</input><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportIfElse"><block s="reportEquals"><block var="title"/><l></l></block><l>menu</l><block s="reportApplyExtension"><l>ide_translate(text)</l><list><block var="title"/></list></block></block><block var="items"/></list></block></block></script></block-definition><block-definition s="divider" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block-definition><block-definition s="menu item icon %&apos;icon&apos; label %&apos;text&apos; value %&apos;value&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input><input type="%s">option</input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="icon"/><l></l></block><block s="reportIfElse"><block s="reportEquals"><block var="text"/><l></l></block><block var="value"/><block s="reportIfElse"><block s="reportEquals"><block var="value"/><l></l></block><block var="text"/><block s="reportNewList"><list><block var="text"/><block var="value"/></list></block></block></block><block s="reportNewList"><list><block s="reportIfElse"><block s="reportEquals"><block var="text"/><l></l></block><block s="reportIfElse"><block s="reportIsA"><block var="icon"/><l><option>text</option></l></block><block s="reportObject"><block var="icon"/></block><block var="icon"/></block><block s="reportNewList"><list><block s="reportIfElse"><block s="reportIsA"><block var="icon"/><l><option>text</option></l></block><block s="reportObject"><block var="icon"/></block><block var="icon"/></block><block var="text"/></list></block></block><block var="value"/></list></block></block></block></script></block-definition><block-definition s="menu item speech ballon %&apos;orientation&apos; message %&apos;message&apos; value %&apos;value&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">left<options>left&#xD;right</options></input><input type="%s">hey!</input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="value"/><l></l></block><block s="reportIfElse"><block s="reportEquals"><block var="orientation"/><l>right</l></block><block s="reportNewList"><list><l></l><block var="message"/></list></block><block s="reportNewList"><list><block var="message"/></list></block></block><block s="reportNewList"><list><block s="reportIfElse"><block s="reportEquals"><block var="orientation"/><l>right</l></block><block s="reportNewList"><list><l></l><block var="message"/></list></block><block s="reportNewList"><list><block var="message"/></list></block></block><block var="value"/></list></block></block></block></script></block-definition><block-definition s="menu examples" type="command" category="sensing"><comment x="0" y="0" w="212.00000000000003" collapsed="false">open my definition to look at examples how to use the menu blocks</comment><header></header><code></code><translations></translations><inputs></inputs><scripts><script x="10" y="79.00000000000001"><block s="doAsk"><l>what&apos;s your name?</l></block></script><script x="10" y="118.00000000000001"><custom-block s="ask %s"><l>what&apos;s your name?</l></custom-block></script><script x="10" y="151"><custom-block s="notify %s"><l>Alert!</l></custom-block></script><script x="10" y="190"><custom-block s="prompt %s options %mult%s"><l>choose!</l><list><l>foo</l><l>bar</l><l>baz</l></list></custom-block></script><script x="10" y="223"><custom-block s="prompt %s options %mult%s"><l>choose!</l><block s="reportGet"><l><option>costumes</option></l></block></custom-block></script><script x="10" y="261"><custom-block s="submenu %s items %mult%s"><l>more</l><list><l>frob</l><l>quux</l><l>garply</l></list></custom-block></script><script x="10" y="294"><custom-block s="prompt %s options %mult%s"><l>choose!</l><list><l>foo</l><l>bar</l><custom-block s="divider"></custom-block><custom-block s="submenu %s items %mult%s"><l>more</l><list><l>frob</l><custom-block s="submenu %s items %mult%s"><l></l><list><l>fred</l><l>test</l></list></custom-block><custom-block s="divider"></custom-block><l>quux</l><l>garply</l></list></custom-block><l>baz</l></list></custom-block></script><script x="10" y="377.8333333333334"><custom-block s="menu item icon %s label %s value %s"><l></l><l>option</l><l></l></custom-block></script><script x="10" y="411.8333333333334"><custom-block s="prompt %s options %mult%s"><l>choose!</l><list><custom-block s="menu item icon %s label %s value %s"><l>monkey</l><l>monkey</l><block s="reportObject"><l>monkey</l></block></custom-block><custom-block s="menu item icon %s label %s value %s"><l>Octo</l><l></l><l>42</l></custom-block><custom-block s="menu item icon %s label %s value %s"><l></l><l>choice</l><l>yay!</l></custom-block><custom-block s="divider"></custom-block><custom-block s="submenu %s items %mult%s"><l>more</l><list><custom-block s="menu item icon %s label %s value %s"><l>Alonzo</l><l>Alonzo</l><block s="reportObject"><l>Alonzo</l></block></custom-block><custom-block s="menu item icon %s label %s value %s"><l></l><l>foo</l><l>bar</l></custom-block></list></custom-block></list></custom-block></script><script x="10" y="565.8333333333335"><custom-block s="menu item speech ballon %s message %s value %s"><l>left</l><l>hey!</l><l></l></custom-block></script><script x="10" y="599.8333333333335"><custom-block s="prompt %s options %mult%s"><l>choose!</l><list><custom-block s="menu item speech ballon %s message %s value %s"><l>left</l><l>hey!</l><l></l></custom-block><custom-block s="menu item speech ballon %s message %s value %s"><l>right</l><l>wassup?</l><l></l></custom-block><custom-block s="menu item speech ballon %s message %s value %s"><l>left</l><block s="reportObject"><l>Alonzo</l></block><l></l></custom-block><custom-block s="menu item speech ballon %s message %s value %s"><l>right</l><l>so?</l><block s="reportGet"><l><option>costumes</option></l></block></custom-block></list></custom-block></script></scripts></block-definition><block-definition s="all of %&apos;preds&apos;" type="predicate" category="operators"><comment x="0" y="0" w="248" collapsed="false">Takes any number of Boolean (true/false) inputs (use the left and right arrowheads to adjust the number of input slots) and reports TRUE only if all of the inputs are TRUE, otherwise FALSE.  Like AND but for multiple inputs.</comment><header></header><code></code><translations>pt:todas as afirmações _ são verdadeiras&#xD;ca:tots _ ?&#xD;</translations><inputs><input type="%mult%boolUE"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="preds"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><block s="reportAnd"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="preds"/></block><list></list></block><custom-block s="all of %mult%boolUE"><block s="reportCDR"><block var="preds"/></block></custom-block></block></block></script></block-definition><block-definition s="any of %&apos;preds&apos;" type="predicate" category="operators"><comment x="0" y="0" w="240" collapsed="false">Takes any number of Boolean (true/false) inputs (use the left and right arrowheads to adjust the number of input slots) and reports TRUE if at least one input is TRUE, otherwise FALSE.</comment><header></header><code></code><translations>pt:alguma das afirmações _ é verdadeira&#xD;ca:qualsevol _ ?&#xD;</translations><inputs><input type="%mult%boolUE"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="preds"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doReport"><block s="reportOr"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="preds"/></block><list></list></block><custom-block s="any of %mult%boolUE"><block s="reportCDR"><block var="preds"/></block></custom-block></block></block></script></block-definition><block-definition s="$brush set pen %&apos;dimension&apos; to %&apos;value&apos; %&apos;more value&apos;" type="command" category="pen"><comment x="0" y="0" w="265.3333333333333" collapsed="false">This block allows you to set the pen&apos;s color, transparency (on a scale from 0=opaque to 100=invisible), or size (in pixels).  The color can be set in many ways, including RGB values, HSV values, HSL values, fair HSV or HSL (based on a modified spectrum that gives each spectral color equal space and promotes brown to a color), color number, crayon, or X11/W3C color name.&#xD;&#xD;See Appendix A in the Snap! Reference Manual for details.</comment><header></header><code></code><translations>ca:$brush fixa el _ del llapis a _ _&#xD;</translations><inputs><input type="%s" readonly="true"><options>color&#xD;color number&#xD;crayon&#xD;fair hue&#xD;&#126;1&#xD;size&#xD;transparency&#xD;X11/W3C name&#xD;&#126;2&#xD;(3D color spaces)={&#xD;fair HSL={&#xD;fair hue&#xD;fair saturation (HSL)&#xD;fair lightness&#xD;fair HSL vector&#xD;}&#xD;fair HSV={&#xD;fair hue&#xD;fair saturation (HSV)&#xD;fair value (brightness)&#xD;fair HSV vector&#xD;}&#xD;HSL={&#xD;hue&#xD;saturation (HSL)&#xD;lightness&#xD;HSL vector&#xD;}&#xD;HSV={&#xD;hue&#xD;saturation (HSV)&#xD;value (brightness)&#xD;HSV vector&#xD;}&#xD;RGB (0-255)={&#xD;red&#xD;green&#xD;blue&#xD;RGB(A) vector&#xD;RGB(A) hex&#xD;}&#xD;}</options></input><input type="%s"><options>§_ext_clr_numbers</options></input><input type="%mult%s"></input></inputs><script><custom-block s="✐ initialize variables"></custom-block><block s="doRun"><block s="reportAttributeOf"><block s="reportListItem"><block s="reportListIndex"><block var="dimension"/><block var="✐ dimension names"/></block><block var="✐ dimension dispatch"/></block><block s="reportGet"><l><option>self</option></l></block></block><list><block var="value"/><block var="more value"/></list></block></script><scripts><comment x="460.0888671875" y="4175.599999999967" w="251.33333333333334" collapsed="false">Note to myself:  When the user sets a fair dimension, say fair HSL, variable HSL contains the corresponding &quot;unfair&quot; values, and &quot;raw HSL&quot; contains the numbers the user actually gave.  It has to be this way because in the case of HSV, there is no &quot;HSV&quot; variable; rather, we use the pen&apos;s actual remembered-by-Javascript color&apos;s HSV coordinates.  So our HSL variable has to be analogous to that.  In both cases &quot;raw&quot; means the numbers the user gave us.</comment></scripts></block-definition><block-definition s="mmap %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block s="reportListItem"><l>1</l><block var="lists"/></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="lists"/></block></block><custom-block s="mmap %repRing over %mult%l"><block var="function"/><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><block var="lists"/></block></custom-block></block></block></script></block-definition><block-definition s="✐ update HSL" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>L</l></list></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block var="✐ last set as"/><l>HSL</l></block></block><script><block s="doSetVar"><l>✐ HSL</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l>100</l></list></block></autolambda><list></list></block><block s="evaluate"><block s="reifyReporter"><script><block s="doSetVar"><l>L</l><block s="reportDifference"><block var="V"/><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="V"/><block var="S"/></list></block><l>2</l></block></block></block><block s="doReport"><block s="reportNewList"><list><block var="H"/><block s="reportIfElse"><block s="reportOr"><block s="reportEquals"><block var="L"/><l>0</l></block><block s="reportEquals"><block var="L"/><l>1</l></block></block><l>0</l><block s="reportQuotient"><block s="reportDifference"><block var="V"/><block var="L"/></block><block s="reportVariadicMin"><list><block var="L"/><block s="reportDifference"><l>1</l><block var="L"/></block></list></block></block></block><block var="L"/></list></block></block></script><list><l>H</l><l>S</l><l>V</l></list></block><custom-block s="HSV color"></custom-block></block></block></block><block s="doSetVar"><l>✐ raw HSL</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l>100</l></list></block></autolambda><list></list></block><block s="evaluate"><block s="reifyReporter"><script><block s="doSetVar"><l>L</l><block s="reportDifference"><block var="V"/><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="V"/><block var="S"/></list></block><l>2</l></block></block></block><block s="doReport"><block s="reportNewList"><list><block var="H"/><block s="reportIfElse"><block s="reportOr"><block s="reportEquals"><block var="L"/><l>0</l></block><block s="reportEquals"><block var="L"/><l>1</l></block></block><l>0</l><block s="reportQuotient"><block s="reportDifference"><block var="V"/><block var="L"/></block><block s="reportVariadicMin"><list><block var="L"/><block s="reportDifference"><l>1</l><block var="L"/></block></list></block></block></block><block var="L"/></list></block></block></script><list><l>H</l><l>S</l><l>V</l></list></block><block s="reportIfElse"><block var="✐ fair?"/><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l></l><l>100</l></block></autolambda><list></list></block><block var="✐ raw HSV"/></block><custom-block s="HSV color"></custom-block></block></block></block></block></script></block></script></block-definition><block-definition s="✐ update HSV" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>V</l><l>L</l><l>HSL 0-1</l><l>raw HSL 0-1</l></list></block><block s="doSetVar"><l>HSL 0-1</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l></l><l>100</l></block></autolambda><list></list></block><block var="✐ HSL"/></block></block><block s="doSetVar"><l>L</l><block s="reportListItem"><l>3</l><block var="HSL 0-1"/></block></block><block s="doSetVar"><l>V</l><block s="reportVariadicSum"><list><block var="L"/><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="HSL 0-1"/></block><block s="reportVariadicMin"><list><block var="L"/><block s="reportDifference"><l>1</l><block var="L"/></block></list></block></list></block></list></block></block><custom-block s="set pen color to h: %n s: %n v: %n"><block s="reportListItem"><l>1</l><block var="HSL 0-1"/></block><block s="reportIfElse"><block s="reportEquals"><block var="V"/><l>0</l></block><l>0</l><block s="reportDifference"><l>2</l><block s="reportVariadicProduct"><list><l>2</l><block s="reportQuotient"><block var="L"/><block var="V"/></block></list></block></block></block><block var="V"/></custom-block><block s="doIfElse"><block var="✐ fair?"/><script><block s="doSetVar"><l>raw HSL 0-1</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l></l><l>100</l></block></autolambda><list></list></block><block var="✐ raw HSL"/></block></block><block s="doSetVar"><l>L</l><block s="reportListItem"><l>3</l><block var="raw HSL 0-1"/></block></block><block s="doSetVar"><l>V</l><block s="reportVariadicSum"><list><block var="L"/><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="raw HSL 0-1"/></block><block s="reportVariadicMin"><list><block var="L"/><block s="reportDifference"><l>1</l><block var="L"/></block></list></block></list></block></list></block></block><block s="doSetVar"><l>✐ raw HSV</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l>100</l></list></block></autolambda><list></list></block><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="raw HSL 0-1"/></block><block s="reportIfElse"><block s="reportEquals"><block var="V"/><l>0</l></block><l>0</l><block s="reportDifference"><l>2</l><block s="reportVariadicProduct"><list><l>2</l><block s="reportQuotient"><block var="L"/><block var="V"/></block></list></block></block></block><block var="V"/></list></block></block></block></script><script><block s="doSetVar"><l>✐ raw HSV</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l>100</l></list></block></autolambda><list></list></block><custom-block s="HSV color"></custom-block></block></block></script></block></script></block-definition><block-definition s="$brush pen %&apos;dimension&apos;" type="reporter" category="pen"><comment x="0" y="0" w="380.6666666666667" collapsed="false">This block reports the pen size, color, or transparency, in all the same ways that the SET PEN block allows you to set those pen properties. (It will also report the current crayon number, if the pen color was most recently set with SET PEN TO CRAYON.)&#xD;&#xD;See Appendix A of the Snap! Reference Manual for details. </comment><header></header><code></code><translations>ca:$brush _ del llapis&#xD;</translations><inputs><input type="%s" readonly="true"><options>color&#xD;color number&#xD;crayon&#xD;fair hue&#xD;&#126;1&#xD;size&#xD;transparency&#xD;X11/W3C name&#xD;&#126;2&#xD;(3D color spaces)={&#xD;fair HSL={&#xD;fair hue&#xD;fair saturation (HSL)&#xD;fair lightness&#xD;fair HSL vector&#xD;}&#xD;fair HSV={&#xD;fair hue&#xD;fair saturation (HSV)&#xD;fair value (brightness)&#xD;fair HSV vector&#xD;}&#xD;HSL={&#xD;hue&#xD;saturation (HSL)&#xD;lightness&#xD;HSL vector&#xD;}&#xD;HSV={&#xD;hue&#xD;saturation (HSV)&#xD;value (brightness)&#xD;HSV vector&#xD;}&#xD;RGB (0-255)={&#xD;red&#xD;green&#xD;blue&#xD;RGB vector&#xD;RGBA vector&#xD;RGB(A) hex&#xD;}&#xD;}</options></input></inputs><script><custom-block s="✐ initialize variables"></custom-block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>size</l></block><script><block s="doReport"><block s="getPenAttribute"><l><option>size</option></l></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>hue</l></block><script><block s="doReport"><block s="getPenAttribute"><l><option>hue</option></l></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>saturation (HSV)</l></block><script><block s="doReport"><block s="getPenAttribute"><l><option>saturation</option></l></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>value (brightness)</l></block><script><block s="doReport"><block s="getPenAttribute"><l><option>brightness</option></l></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>transparency</l></block><script><block s="doReport"><block s="getPenAttribute"><l><option>transparency</option></l></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>RGB vector</l></block><script><block s="doReport"><custom-block s="RGB color"></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>RGBA vector</l></block><script><block s="doReport"><block s="reportConcatenatedLists"><list><custom-block s="RGB color"></custom-block><block s="reportNewList"><list><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportDifference"><l>100</l><block s="getPenAttribute"><l><option>transparency</option></l></block></block><l>255</l></list></block><l>100</l></block></list></block></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>red</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><custom-block s="RGB color"></custom-block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>green</l></block><script><block s="doReport"><block s="reportListItem"><l>2</l><custom-block s="RGB color"></custom-block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>blue</l></block><script><block s="doReport"><block s="reportListItem"><l>3</l><custom-block s="RGB color"></custom-block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>RGB(A) hex</l></block><script><block s="doDeclareVariables"><list><l>rgb</l></list></block><block s="doSetVar"><l>rgb</l><custom-block s="RGB color"></custom-block></block><block s="doIf"><block s="reportGreaterThan"><block s="getPenAttribute"><l><option>transparency</option></l></block><l>0</l></block><script><block s="doAddToList"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportDifference"><l>100</l><block s="getPenAttribute"><l><option>transparency</option></l></block></block><l>255</l></list></block><l>100</l></block><block var="rgb"/></block></script></block><block s="doReport"><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><custom-block s="✐ hexchar %s"><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><l></l><l>16</l></block></block></custom-block><custom-block s="✐ hexchar %s"><block s="reportModulus"><l></l><l>16</l></block></custom-block></list></block></autolambda><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportRound"><l></l></block></autolambda><list></list></block><block var="rgb"/></block></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>HSV vector</l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l>100</l><l></l></list></block></autolambda><list></list></block><custom-block s="HSV color"></custom-block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>HSL vector</l></block><script><custom-block s="✐ update HSL"></custom-block><block s="doReport"><block var="✐ HSL"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>saturation (HSL)</l></block><script><custom-block s="✐ update HSL"></custom-block><block s="doReport"><block s="reportListItem"><l>2</l><block var="✐ HSL"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>lightness</l></block><script><custom-block s="✐ update HSL"></custom-block><block s="doReport"><block s="reportListItem"><l>3</l><block var="✐ HSL"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>color number</l></block><script><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="✐ last set as"/><l>color</l></block><block var="✐ color scale"/><l>not set</l></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>color</l></block><script><block s="doReport"><custom-block s="✐ current pen color"></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>fair hue</l></block><script><block s="doIf"><block var="✐ fair?"/><script><block s="doIfElse"><block s="reportEquals"><block var="✐ last set as"/><l>HSL</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="✐ raw HSL"/></block></block></script><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="✐ raw HSV"/></block></block></script></block></script></block><block s="doReport"><l>not set</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>fair saturation (HSL)</l></block><script><block s="doIf"><block var="✐ fair?"/><script><custom-block s="✐ update HSL"></custom-block><block s="doReport"><block s="reportListItem"><l>2</l><block var="✐ raw HSL"/></block></block></script></block><block s="doReport"><l>not set</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>fair lightness</l></block><script><block s="doIf"><block var="✐ fair?"/><script><custom-block s="✐ update HSL"></custom-block><block s="doReport"><block s="reportListItem"><l>3</l><block var="✐ raw HSL"/></block></block></script></block><block s="doReport"><l>not set</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>fair HSL vector</l></block><script><block s="doIf"><block var="✐ fair?"/><script><custom-block s="✐ update HSL"></custom-block><block s="doReport"><block var="✐ raw HSL"/></block></script></block><block s="doReport"><l>not set</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>fair saturation (HSV)</l></block><script><block s="doIf"><block var="✐ fair?"/><script><block s="doIf"><block s="reportEquals"><block var="✐ last set as"/><l>HSL</l></block><script><custom-block s="✐ update HSV"></custom-block></script></block><block s="doReport"><block s="reportListItem"><l>2</l><block var="✐ raw HSV"/></block></block></script></block><block s="doReport"><l>not set</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>fair value (brightness)</l></block><script><block s="doIf"><block var="✐ fair?"/><script><block s="doIf"><block s="reportEquals"><block var="✐ last set as"/><l>HSL</l></block><script><custom-block s="✐ update HSV"></custom-block></script></block><block s="doReport"><block s="reportListItem"><l>3</l><block var="✐ raw HSV"/></block></block></script></block><block s="doReport"><l>not set</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>fair HSV vector</l></block><script><block s="doIf"><block var="✐ fair?"/><script><block s="doIf"><block s="reportEquals"><block var="✐ last set as"/><l>HSL</l></block><script><custom-block s="✐ update HSV"></custom-block></script></block><block s="doReport"><block var="✐ raw HSV"/></block></script></block><block s="doReport"><l>not set</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>crayon</l></block><script><block s="doReport"><custom-block s="✐ crayon number of color %s"><custom-block s="✐ current pen color"></custom-block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>X11/W3C name</l></block><script><block s="doReport"><custom-block s="✐ X11 name of color %s"><custom-block s="✐ current pen color"></custom-block></custom-block></block></script></block></script></block-definition><block-definition s="$brush change pen %&apos;dimension&apos; by %&apos;amount&apos;" type="command" category="pen"><comment x="0" y="0" w="334" collapsed="false">Changes any pen property by the specified amount.  Some color scales can&apos;t be adjusted this way unless the color was first SET using that scale.&#xD;Vectors (e.g., RGB color as a list of three numbers) can be incremented&#xD;by a vector as the amount. X11/W3C names can&apos;t be incremented.</comment><header></header><code></code><translations>ca:$brush augmenta _ del llapis en _&#xD;</translations><inputs><input type="%s" readonly="true"><options>color number&#xD;crayon&#xD;fair hue&#xD;&#126;1&#xD;size&#xD;transparency&#xD;&#126;2&#xD;(3D color spaces)={&#xD;fair HSL={&#xD;fair hue&#xD;fair saturation (HSL)&#xD;fair lightness&#xD;fair HSL vector&#xD;}&#xD;fair HSV={&#xD;fair hue&#xD;fair saturation (HSV)&#xD;fair value (brightness)&#xD;fair HSV vector&#xD;}&#xD;HSL={&#xD;hue&#xD;saturation (HSL)&#xD;lightness&#xD;HSL vector&#xD;}&#xD;HSV={&#xD;hue&#xD;saturation (HSV)&#xD;value (brightness)&#xD;HSV vector&#xD;}&#xD;RGB (0-255)={&#xD;red&#xD;green&#xD;blue&#xD;RGB vector&#xD;RGBA vector&#xD;}&#xD;}</options></input><input type="%n"></input></inputs><script><custom-block s="✐ initialize variables"></custom-block><block s="doDeclareVariables"><list><l>old</l></list></block><block s="doSetVar"><l>old</l><custom-block s="$brush pen %s"><block var="dimension"/></custom-block></block><block s="doIf"><block s="reportEquals"><block var="old"/><l>not set</l></block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Dimension </l><block var="dimension"/><l> not set.</l></list></block></custom-block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>crayon</l></block><script><custom-block s="✐ set pen to crayon %s %l"><block s="reportVariadicSum"><list><block var="old"/><block var="amount"/></list></block><l/></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>RGB hex</l></block><script><custom-block s="error %txt"><l>Sorry, I don&apos;t know how to add in hexadecimal.</l></custom-block></script></block><block s="doIf"><block s="reportIsA"><block var="amount"/><l><option>number</option></l></block><script><custom-block s="$brush set pen %s to %s %mult%s"><block var="dimension"/><block s="reportVariadicSum"><list><block var="old"/><block var="amount"/></list></block><list><l></l></list></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIf"><block s="reportIsA"><block var="amount"/><l><option>list</option></l></block><script><custom-block s="$brush set pen %s to %s %mult%s"><block var="dimension"/><custom-block s="mmap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block><list><block var="old"/><block var="amount"/></list></custom-block><list><l></l></list></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><custom-block s="error %txt"><block s="reportJoinWords"><list><l>I don&apos;t know how to handle </l><block var="dimension"/></list></block></custom-block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><header></header><code></code><translations>pt:lança o erro _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="✐ make integer RGB" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reifyScript"><script><custom-block s="set pen color to r: %n g: %n b: %n"><l></l><l></l><l></l></custom-block></script><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportRound"><l></l></block></autolambda><list></list></block><custom-block s="RGB color"></custom-block></block></block></script></block-definition><block-definition s="✐ no spaces %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportTextSplit"><block var="text"/><l> </l></block></block></block></script></block-definition><block-definition s="$brush color %&apos;newcolor&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%clr"></input></inputs><script><block s="doReport"><block s="reportNewCostume"><block s="reportNewList"><list><block s="reportVariadicProduct"><list><block s="reportTextSplit"><custom-block s="substring of %txt before %txt"><custom-block s="substring of %txt after %txt"><block s="reportJoinWords"><list><block var="newcolor"/></list></block><l>(</l></custom-block><l>)</l></custom-block><l><option>csv</option></l></block><block s="reportNewList"><list><l>1</l><l>1</l><l>1</l><l>255</l></list></block></list></block></list></block><l>1</l><l>1</l></block></block></script></block-definition><block-definition s="$brush mix colors %&apos;weighted colors&apos; using %&apos;flavor&apos; rules" type="reporter" category="pen"><comment x="0" y="0" w="304" collapsed="false">combines any number of colors, reporting the result of mixing them, either additively (like colored light beams) or subtractively (like paints).  If the result is too bright (additive) or too dark (subtractive), try the &quot;averaged&quot; versions, which will make the brightness more like the brightnesses of the input colors.</comment><header></header><code></code><translations>ca:$brush barreja colors _ amb criteri _&#xD;</translations><inputs><input type="%mult%obj"></input><input type="%s" readonly="true"><options>additive (light)&#xD;additive (averaged)&#xD;subtractive (ideal)&#xD;subtractive (averaged)&#xD;simulated paint&#xD;paint (sRGB corrected)</options></input></inputs><script><custom-block s="✐ initialize variables"></custom-block><block s="doDeclareVariables"><list><l>new</l><l>max</l><l>colors</l><l>weights</l></list></block><block s="doSetVar"><l>colors</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><block s="reportListItem"><l>1</l><l/></block><l></l></block></autolambda><list></list></block><block var="weighted colors"/></block></block><block s="doSetVar"><l>weights</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><block s="reportListItem"><l>2</l><l/></block><l>1</l></block></autolambda><list></list></block><block var="weighted colors"/></block></block><block s="doIf"><custom-block s="text %txt contains %txt"><block var="flavor"/><l>paint</l></custom-block><script><block s="doDeclareVariables"><list><l>rho-r</l><l>rho-g</l><l>rho-b</l><l>waveforms</l></list><comment w="152.66666666666666" collapsed="true">convert RGB to waveform</comment></block><block s="doSetVar"><l>rho-r</l><block s="reportTextSplit"><l>0.021592459, 0.020293111, 0.021807906, 0.023803297, 0.025208132, 0.025414957, 0.024621282, 0.020973705, 0.015752802, 0.01116804, 0.008578277, 0.006581877, 0.005171723, 0.004545205, 0.00414512, 0.004343112, 0.005238155, 0.007251939, 0.012543656, 0.028067132, 0.091342277, 0.484081092, 0.870378324, 0.939513128, 0.960926994, 0.968623763, 0.971263883, 0.972285819, 0.971898742, 0.972691859, 0.971734812, 0.97234454, 0.97150339, 0.970857997, 0.970553866, 0.969671404</l><l>, </l></block></block><block s="doSetVar"><l>rho-g</l><block s="reportTextSplit"><l>0.010542406, 0.010878976, 0.011063512, 0.010736566, 0.011681813, 0.012434719, 0.014986907, 0.020100392, 0.030356263, 0.063388962, 0.173423837, 0.568321142, 0.827791998, 0.916560468, 0.952002841, 0.964096452, 0.970590861, 0.972502542, 0.969148203, 0.955344651, 0.892637233, 0.5003641, 0.116236717, 0.047951391, 0.027873526, 0.020057963, 0.017382174, 0.015429109, 0.01543808, 0.014546826, 0.015197773, 0.014285896, 0.015069123, 0.015506263, 0.015545797, 0.016302839</l><l>, </l></block></block><block s="doSetVar"><l>rho-b</l><block s="reportTextSplit"><l>0.967865135, 0.968827912, 0.967128582, 0.965460137, 0.963110055, 0.962150324, 0.960391811, 0.958925903, 0.953890935, 0.925442998, 0.817997886, 0.42509696, 0.167036273, 0.078894327, 0.043852038, 0.031560435, 0.024170984, 0.020245519, 0.01830814, 0.016588218, 0.01602049, 0.015554808, 0.013384959, 0.012535491, 0.011199484, 0.011318274, 0.011353953, 0.012285073, 0.012663188, 0.012761325, 0.013067426, 0.013369566, 0.013427487, 0.01363574, 0.013893597, 0.014025757</l><l>, </l></block></block><block s="doSetVar"><l>waveforms</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportQuotient"><custom-block s="✐ RGB from color %s"><l></l></custom-block><l>255</l></block></autolambda><list></list></block><block var="colors"/></block></block><block s="doIf"><custom-block s="text %txt contains %txt"><block var="flavor"/><l>sRGB</l></custom-block><script><block s="doSetVar"><l>waveforms</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportLessThan"><l></l><l>0.04045</l></block><block s="reportQuotient"><l></l><l>12.92</l></block><block s="reportPower"><block s="reportQuotient"><block s="reportVariadicSum"><list><l></l><l>0.055</l></list></block><l>1.055</l></block><l>2.4</l></block></block></autolambda><list></list></block><l/></block></autolambda><list></list></block><block var="waveforms"/></block></block></script></block><block s="doSetVar"><l>waveforms</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportCombine"><custom-block s="mmap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block><list><l/><block s="reportNewList"><list><block var="rho-r"/><block var="rho-g"/><block var="rho-b"/></list></block></list></custom-block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></autolambda><list></list></block><block var="waveforms"/></block></block><block s="doDeclareVariables"><list><l>sum of weights</l><l>combined waveform</l></list><comment w="214" collapsed="true">weighted geometric mean of waveforms</comment></block><block s="doSetVar"><l>sum of weights</l><block s="reportCombine"><block var="weights"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doSetVar"><l>combined waveform</l><block s="reportCombine"><custom-block s="mmap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportPower"><l></l><block s="reportQuotient"><l></l><block var="sum of weights"/></block></block></autolambda><list></list></block><list><block var="waveforms"/><block var="weights"/></list></custom-block><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doDeclareVariables"><list><l>T</l></list><comment w="90" collapsed="true">back to RGB</comment></block><block s="doSetVar"><l>T</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportTextSplit"><l></l><l><option>word</option></l></block></autolambda><list></list></block><block s="reportNewList"><list><l>5.47813E-05	0.000184722	0.000935514	0.003096265	0.009507714	0.017351596	0.022073595	0.016353161	0.002002407	-0.016177731	-0.033929391	-0.046158952	-0.06381706	-0.083911194	-0.091832385	-0.08258148	-0.052950086	-0.012727224	0.037413037	0.091701812	0.147964686	0.181542886	0.210684154	0.210058081	0.181312094	0.132064724	0.093723787	0.057159281	0.033469657	0.018235464	0.009298756	0.004023687	0.002068643	0.00109484	0.000454231	0.000255925</l><l>-4.65552E-05	-0.000157894	-0.000806935	-0.002707449	-0.008477628	-0.016058258	-0.02200529	-0.020027434	-0.011137726	0.003784809	0.022138944	0.038965605	0.063361718	0.095981626	0.126280277	0.148575844	0.149044804	0.14239936	0.122084916	0.09544734	0.067421931	0.035691251	0.01313278	-0.002384996	-0.009409573	-0.009888983	-0.008379513	-0.005606153	-0.003444663	-0.001921041	-0.000995333	-0.000435322	-0.000224537	-0.000118838	-4.93038E-05	-2.77789E-05</l><l>0.00032594	0.001107914	0.005677477	0.01918448	0.060978641	0.121348231	0.184875618	0.208804428	0.197318551	0.147233899	0.091819086	0.046485543	0.022982618	0.00665036	-0.005816014	-0.012450334	-0.015524259	-0.016712927	-0.01570093	-0.013647887	-0.011317812	-0.008077223	-0.005863171	-0.003943485	-0.002490472	-0.001440876	-0.000852895	-0.000458929	-0.000248389	-0.000129773	-6.41985E-05	-2.71982E-05	-1.38913E-05	-7.35203E-06	-3.05024E-06	-1.71858E-06</l></list></block></block></block><block s="doSetVar"><l>new</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportCombine"><block s="reportVariadicProduct"><list><block var="combined waveform"/><l></l></list></block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></autolambda><list></list></block><block var="T"/></block></block><block s="doIf"><custom-block s="text %txt contains %txt"><block var="flavor"/><l>sRGB</l></custom-block><script><block s="doSetVar"><l>new</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportLessThan"><l></l><l>0.0031308</l></block><block s="reportVariadicProduct"><list><l>12.92</l><l></l></list></block><block s="reportDifference"><block s="reportVariadicProduct"><list><l>1.055</l><block s="reportPower"><l></l><block s="reportQuotient"><l>1</l><l>2.4</l></block></block></list></block><l>0.055</l></block></block></autolambda><list></list></block><block var="new"/></block></block></script></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block s="reportVariadicProduct"><list><l>255</l><block var="new"/></list></block><list><l></l></list></custom-block></block></script></block><block s="doIfElse"><custom-block s="text %txt contains %txt"><block var="flavor"/><l>add</l></custom-block><script><block s="doSetVar"><l>new</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportCombine"><l/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></autolambda><list></list></block><block s="reportListAttribute"><l><option>columns</option></l><custom-block s="mmap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><custom-block s="✐ RGB from color %s"><l></l></custom-block><l></l></list></block></autolambda><list></list></block><list><block var="colors"/><block var="weights"/></list></custom-block></block></block></block><block s="doIf"><custom-block s="text %txt contains %txt"><block var="flavor"/><l>aver</l></custom-block><script><block s="doSetVar"><l>new</l><block s="reportQuotient"><block var="new"/><block s="reportCombine"><block var="weights"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></block></script></block><block s="doSetVar"><l>max</l><block s="reportCombine"><block var="new"/><block s="reifyReporter"><autolambda><block s="reportVariadicMax"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doIf"><block s="reportGreaterThan"><block var="max"/><l>255</l></block><script><block s="doSetVar"><l>new</l><block s="reportVariadicProduct"><list><block var="new"/><block s="reportQuotient"><l>255</l><block var="max"/></block></list></block></block></script></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block var="new"/><list><l></l></list></custom-block></block></script><script><block s="doSetVar"><l>new</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportCombine"><l/><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block></block></autolambda><list></list></block><block s="reportListAttribute"><l><option>columns</option></l><custom-block s="mmap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><custom-block s="✐ RGB from color %s"><l></l></custom-block><block s="reportQuotient"><l></l><l>255</l></block></list></block></autolambda><list></list></block><list><block var="colors"/><block var="weights"/></list></custom-block></block></block></block><block s="doIfElse"><custom-block s="text %txt contains %txt"><block var="flavor"/><l>aver</l></custom-block><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block s="reportVariadicProduct"><list><block s="reportPower"><block var="new"/><block s="reportQuotient"><l>1</l><block s="reportCombine"><block var="weights"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></block><l>255</l></list></block><list><l></l></list></custom-block></block></script><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block s="reportVariadicProduct"><list><block var="new"/><l>255</l></list></block><list><l></l></list></custom-block></block></script></block></script></block></script><scripts><script x="512" y="1525.7777777777785"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block s="reportQuotient"><custom-block s="✐ RGB from color %s"><l></l></custom-block><l>255</l></block><block s="reportQuotient"><block s="reportDifference"><l>100</l><custom-block s="$brush %s from color %obj"><l>transparency</l><l/></custom-block></block><l>100</l></block></list></block></autolambda><list></list></block><block var="colors"/></block></script></scripts></block-definition><block-definition s="$brush color from %&apos;kind&apos; %&apos;value&apos; %&apos;more value&apos;" type="reporter" category="pen"><comment x="0" y="0" w="265.3333333333333" collapsed="false">This block reports a color.  The color can be set in many ways, including RGB values, HSV values, HSL values, fair HSV or HSL (based on a modified spectrum that gives each spectral color equal space and promotes brown to a color), color number, crayon, or X11/W3C color name.&#xD;&#xD;See Appendix A in the Snap! Reference Manual for details.</comment><header></header><code></code><translations>ca:$brush color amb _ _ _&#xD;</translations><inputs><input type="%s" readonly="true"><options>color&#xD;color number&#xD;crayon&#xD;fair hue&#xD;X11/W3C name&#xD;&#126;&#xD;fair HSL=fair HSL vector&#xD;fair HSV=fair HSV vector&#xD;HSL=HSL vector&#xD;HSV=HSV vector&#xD;RGB (0-255)=RGB vector&#xD;RGB hex</options></input><input type="%s"><options>§_ext_clr_numbers</options></input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>color</l><l>index</l><l>scale</l><l>transparency</l></list></block><custom-block s="✐ initialize variables"></custom-block><block s="doSetVar"><l>value</l><block s="reportCONS"><block var="value"/><block var="more value"/></block></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair hue</l></block><script><block s="doSetVar"><l>value</l><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="value"/></block><l>100</l><l>50</l><block s="reportListItem"><l>2</l><block var="value"/></block></list></block></block><block s="doSetVar"><l>kind</l><l>fair HSL vector</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>color number</l></block><script><block s="doSetVar"><l>color</l><block s="reportModulus"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="value"/></block><l>3</l></list></block><l>300</l></block></block><block s="doIfElse"><block s="reportLessThanOrEquals"><block var="color"/><l>42</l><comment w="77.33333333333333" collapsed="true">grayscale</comment></block><script><block s="doSetVar"><l>color</l><block s="reportModulus"><block s="reportVariadicProduct"><list><block var="color"/><block s="reportQuotient"><l>15</l><l>14</l></block></list></block><l>300</l></block></block><block s="doSetVar"><l>index</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="color"/><l>15</l></block></block></block><block s="doSetVar"><l>scale</l><block s="reportDifference"><block var="color"/><block s="reportVariadicProduct"><list><block var="index"/><l>15</l></list></block></block></block></script><script><block s="doIf"><block s="reportLessThan"><block var="color"/><l>60</l><comment w="96.66666666666667" collapsed="true">spread out pink</comment></block><script><block s="doSetVar"><l>color</l><block s="reportVariadicSum"><list><l>45</l><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="color"/><l>42</l></block><block s="reportQuotient"><l>15</l><l>18</l></block></list></block></list></block></block></script></block><block s="doSetVar"><l>color</l><block s="reportModulus"><block var="color"/><l>300</l></block></block><block s="doSetVar"><l>index</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="color"/><l>15</l></block></block></block><block s="doSetVar"><l>scale</l><block s="reportDifference"><block var="color"/><block s="reportVariadicProduct"><list><block var="index"/><l>15</l></list></block></block></block></script></block><block s="doReport"><custom-block s="✐ include transparency %l %s"><custom-block s="mmap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><block s="reportRound"><block s="reportVariadicSum"><list><block var="from"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="to"/><block var="from"/></block><block s="reportQuotient"><block var="scale"/><l>15</l></block></list></block></list></block></block><l>255</l></list></block></autolambda><list><l>from</l><l>to</l></list></block><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="✐ colors"/></block><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>2</l></list></block><block var="✐ colors"/></block></list></custom-block><block s="reportListItem"><l>2</l><block var="value"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>crayon</l></block><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="value"/></block><l><option>text</option></l></block><script><block s="doSetVar"><l>color</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block s="reportListItem"><l>4</l><l/></block><block s="reportListItem"><l>1</l><block var="value"/></block></block></autolambda><list></list></block><block var="✐ crayon colors"/></block></block><block s="doIf"><block s="reportEquals"><block var="color"/><l></l></block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>No such crayon: </l><block s="reportListItem"><l>1</l><block var="value"/></block></list></block></custom-block></script></block></script><script><block s="doSetVar"><l>color</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block s="reportListItem"><l>1</l><block var="value"/></block><l>100</l></block><l>1</l></list></block><block var="✐ crayon colors"/></block></block></script></block><block s="doReport"><custom-block s="✐ include transparency %l %s"><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>3</l></block><block var="color"/></block><block s="reportListItem"><l>2</l><block var="value"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>X11/W3C name</l></block><script><block s="doReport"><custom-block s="✐ color from X11 name %s"><block var="value"/></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>RGB hex</l></block><script><block s="doReport"><custom-block s="✐ color from RGB hex %s"><block var="value"/></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>color</l></block><script><block s="doReplaceInList"><l>1</l><block var="value"/><custom-block s="✐ RGB from color %s"><block s="reportListItem"><l>1</l><block var="value"/></block></custom-block></block><block s="doSetVar"><l>kind</l><l>RGB vector</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>RGB vector</l></block><script><block s="doSetVar"><l>color</l><block s="reportVariadicMin"><list><block s="reportVariadicMax"><list><custom-block s="✐ extract rgba values %l %upvar"><block var="value"/><l>transparency</l></custom-block><l>0</l></list></block><l>255</l></list></block></block><block s="doIf"><block s="reportOr"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="value"/></block><l><option>number</option></l></block><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="value"/></block></block><l>3</l></block></block><script><block s="doIf"><block s="reportIsA"><block var="transparency"/><l><option>number</option></l></block><script><block s="doSetVar"><l>transparency</l><block s="reportDifference"><l>100</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="transparency"/><l>100</l></list></block><l>255</l></block></block></block></script></block></script></block><block s="doReport"><custom-block s="✐ include transparency %l %s"><block var="color"/><block var="transparency"/></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>HSV vector</l></block><script><block s="doSetVar"><l>color</l><custom-block s="✐ RGB from HSV %l"><custom-block s="✐ extract rgba values %l %upvar"><block var="value"/><l>transparency</l></custom-block></custom-block></block><block s="doReport"><custom-block s="✐ include transparency %l %s"><block var="color"/><block var="transparency"/></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>HSL vector</l></block><script><block s="doSetVar"><l>color</l><custom-block s="✐ RGB from HSL %l"><custom-block s="✐ extract rgba values %l %upvar"><block var="value"/><l>transparency</l></custom-block></custom-block></block><block s="doReport"><custom-block s="✐ include transparency %l %s"><block var="color"/><block var="transparency"/></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair HSV vector</l></block><script><block s="doSetVar"><l>color</l><custom-block s="✐ limits %l"><custom-block s="✐ extract rgba values %l %upvar"><block var="value"/><l>transparency</l></custom-block></custom-block></block><block s="doSetVar"><l>value</l><block s="reportListItem"><l>1</l><block var="color"/></block></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block><block var="value"/></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doChangeVar"><l>index</l><l>-1</l></block><block s="doSetVar"><l>scale</l><block s="reportQuotient"><block s="reportDifference"><block var="value"/><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block></block><block s="reportDifference"><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="✐ pivots"/></block><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block></block></block></block><block s="doSetVar"><l>index</l><block s="reportVariadicSum"><list><block s="reportListItem"><block var="index"/><block var="✐ HSV brights"/></block><block s="reportVariadicProduct"><list><block var="scale"/><block s="reportDifference"><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="✐ HSV brights"/></block><block s="reportListItem"><block var="index"/><block var="✐ HSV brights"/></block></block></list></block></list></block></block><block s="doSetVar"><l>color</l><custom-block s="✐ RGB from HSV %l"><block s="reportVariadicProduct"><list><block s="reportCONS"><l>100</l><block s="reportCDR"><block var="color"/></block></block><block var="index"/></list></block></custom-block></block><block s="doReport"><custom-block s="✐ include transparency %l %s"><block var="color"/><block var="transparency"/></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair HSL vector</l></block><script><block s="doSetVar"><l>color</l><custom-block s="✐ limits %l"><custom-block s="✐ extract rgba values %l %upvar"><block var="value"/><l>transparency</l></custom-block></custom-block></block><block s="doSetVar"><l>value</l><block s="reportModulus"><block s="reportListItem"><l>1</l><block var="color"/></block><l>100</l></block></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block><block var="value"/></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doChangeVar"><l>index</l><l>-1</l></block><block s="doSetVar"><l>scale</l><block s="reportQuotient"><block s="reportDifference"><block var="value"/><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block></block><block s="reportDifference"><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="✐ pivots"/></block><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block></block></block></block><block s="doSetVar"><l>index</l><block s="reportVariadicSum"><list><block s="reportListItem"><block var="index"/><block var="✐ HSL brights"/></block><block s="reportVariadicProduct"><list><block var="scale"/><block s="reportDifference"><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="✐ HSL brights"/></block><block s="reportListItem"><block var="index"/><block var="✐ HSL brights"/></block></block></list></block></list></block></block><block s="doSetVar"><l>color</l><custom-block s="✐ RGB from HSL %l"><block s="reportVariadicProduct"><list><block s="reportCONS"><l>1</l><block s="reportQuotient"><block s="reportCDR"><block var="color"/></block><block s="reportNewList"><list><l>100</l><l>50</l></list></block></block></block><block var="index"/></list></block></custom-block></block><block s="doReport"><custom-block s="✐ include transparency %l %s"><block var="color"/><block var="transparency"/></custom-block></block></script></block></script></block-definition><block-definition s="$brush %&apos;kind&apos; from color %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations>ca:$brush _ del color _&#xD;</translations><inputs><input type="%s" readonly="true"><options>nearest color number&#xD;crayon number&#xD;fair hue&#xD;&#126;1&#xD;transparency&#xD;X11/W3C name&#xD;&#126;2&#xD;(3D color spaces)={&#xD;fair HSL={&#xD;fair hue&#xD;fair saturation (HSL)&#xD;fair lightness&#xD;fair HSL vector&#xD;}&#xD;fair HSV={&#xD;fair hue&#xD;fair saturation (HSV)&#xD;fair value (brightness)&#xD;fair HSV vector&#xD;}&#xD;HSL={&#xD;hue&#xD;saturation (HSL)&#xD;lightness&#xD;HSL vector&#xD;}&#xD;HSV={&#xD;hue&#xD;saturation (HSV)&#xD;value (brightness)&#xD;HSV vector&#xD;}&#xD;RGB (0-255)={&#xD;red&#xD;green&#xD;blue&#xD;RGB vector&#xD;RGBA vector&#xD;RGB hex&#xD;}&#xD;}</options></input><input type="%obj"></input></inputs><script><custom-block s="✐ initialize variables"></custom-block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>crayon number</l></block><script><block s="doReport"><custom-block s="✐ crayon number of color %s"><block var="color"/></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>X11/W3C name</l></block><script><block s="doReport"><custom-block s="✐ X11 name of color %s"><block var="color"/></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>nearest color number</l></block><script><block s="doReport"><custom-block s="✐ color number near color %s"><block var="color"/></custom-block></block></script></block><block s="doDeclareVariables"><list><l>rgb</l><l>hsl</l><l>hsv</l></list></block><block s="doSetVar"><l>rgb</l><custom-block s="✐ extract rgba values %l %upvar"><block var="color"/><l>transparency</l></custom-block></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>transparency</l></block><script><block s="doReport"><block s="reportDifference"><l>100</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="transparency"/><l>100</l></list></block><l>255</l></block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>RGB vector</l></block><script><block s="doReport"><block var="rgb"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>RGBA vector</l></block><script><block s="doReport"><block s="reportConcatenatedLists"><list><block var="rgb"/><block s="reportNewList"><list><block var="transparency"/></list></block></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>RGB hex</l></block><script><block s="doReport"><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="✐ byte to hex %n"><l></l></custom-block></autolambda><list></list></block><block var="rgb"/></block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>red</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="rgb"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>green</l></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="rgb"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>blue</l></block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="rgb"/></block></block></script></block><block s="doSetVar"><l>hsv</l><custom-block s="✐ HSL/HSV (hsl? %b ) from RGB %s"><l><bool>false</bool></l><block var="rgb"/></custom-block></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>HSV vector</l></block><script><block s="doReport"><block var="hsv"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>hue</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="hsv"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>saturation (HSV)</l></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="hsv"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>value (brightness)</l></block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="hsv"/></block></block></script></block><block s="doSetVar"><l>hsl</l><custom-block s="✐ HSL/HSV (hsl? %b ) from RGB %s"><l><bool>true</bool></l><block var="rgb"/></custom-block></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>HSL vector</l></block><script><block s="doReport"><block var="hsl"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>saturation (HSL)</l></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="hsl"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>lightness</l></block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="hsl"/></block></block></script></block><block s="doIfElse"><block s="reportOr"><custom-block s="text %txt contains %txt"><block var="kind"/><l>HSL</l></custom-block><custom-block s="text %txt contains %txt"><block var="kind"/><l>lightness</l></custom-block></block><script><block s="doDeclareVariables"><list><l>fair hue</l><l>fair lightness</l><l>fair saturation (HSL)</l></list><comment w="53.333333333333336" collapsed="true">HSL</comment></block><block s="doIfElse"><block s="reportAnd"><block s="reportLessThan"><block s="reportListItem"><l>3</l><block var="hsl"/></block><l>34</l></block><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block s="reportListItem"><l>1</l><block var="hsl"/></block><l>1.96</l></block><block s="reportLessThanOrEquals"><block s="reportListItem"><l>1</l><block var="hsl"/></block><l>8.82353</l></block></block></block><script><block s="doIfElse"><block s="reportLessThan"><block s="reportListItem"><l>1</l><block var="hsl"/></block><l>6.94444445</l></block><script><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><l>12.5</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>5.8</l><l>12.5</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsl"/></block></block><block s="reportDifference"><l>6.94444445</l><l>1.96</l></block></block></list></block></list></block></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair hue</l></block><script><block s="doReport"><block var="fair hue"/></block></script></block><block s="doSetVar"><l>fair lightness</l><block s="reportVariadicMin"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="hsl"/></block><block s="reportQuotient"><l>100</l><block s="reportVariadicSum"><list><l>30.98</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>33.3333333</l><l>30.98</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsl"/></block></block><block s="reportDifference"><l>6.94444445</l><l>1.96</l></block></block></list></block></list></block></block></list></block><l>100</l></list></block></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair lightness</l></block><script><block s="doReport"><block var="fair lightness"/></block></script></block><block s="doSetVar"><l>fair saturation (HSL)</l><block s="reportVariadicMin"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="hsl"/></block><block s="reportQuotient"><l>100</l><block s="reportVariadicSum"><list><l>75.94936</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>100</l><l>75.94936</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsl"/></block></block><block s="reportDifference"><l>6.94444445</l><l>1.96</l></block></block></list></block></list></block></block></list></block><l>100</l></list></block></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair saturation (HSL)</l></block><script><block s="doReport"><block var="fair saturation (HSL)"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair HSL vector</l></block><script><block s="doReport"><block s="reportNewList"><list><block var="fair hue"/><block var="fair saturation (HSL)"/><block var="fair lightness"/></list></block></block></script></block></script><script><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><l>12.5</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>18</l><l>12.5</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsl"/></block></block><block s="reportDifference"><l>6.94444445</l><l>8.823529</l></block></block></list></block></list></block></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair hue</l></block><script><block s="doReport"><block var="fair hue"/></block></script></block><block s="doSetVar"><l>fair lightness</l><block s="reportVariadicMin"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="hsl"/></block><block s="reportQuotient"><l>100</l><block s="reportVariadicSum"><list><l>30.98</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>33.3333333</l><l>30.98</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsl"/></block></block><block s="reportDifference"><l>6.94444445</l><l>8.823529</l></block></block></list></block></list></block></block></list></block><l>100</l></list></block></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair lightness</l></block><script><block s="doReport"><block var="fair lightness"/></block></script></block><block s="doSetVar"><l>fair saturation (HSL)</l><block s="reportVariadicMin"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="hsl"/></block><block s="reportQuotient"><l>100</l><block s="reportVariadicSum"><list><l>75.94936</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>100</l><l>75.94936</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsl"/></block></block><block s="reportDifference"><l>6.94444445</l><l>8.823529</l></block></block></list></block></list></block></block></list></block><l>100</l></list></block></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair saturation (HSL)</l></block><script><block s="doReport"><block var="fair saturation (HSL)"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair HSL vector</l></block><script><block s="doReport"><block s="reportNewList"><list><block var="fair hue"/><block var="fair saturation (HSL)"/><block var="fair lightness"/></list></block></block></script></block></script></block></script><script><block s="doIfElse"><block s="reportLessThan"><block s="reportListItem"><l>1</l><block var="hsl"/></block><l>5.5</l><comment w="53.333333333333336" collapsed="true">reds</comment></block><script><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><l>0</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>5.8</l><l>0</l></block><block s="reportQuotient"><block s="reportDifference"><l>5.5</l><block s="reportListItem"><l>1</l><block var="hsl"/></block></block><block s="reportDifference"><l>5.5</l><l>0</l></block></block></list></block></list></block></block></script><script><block s="doIfElse"><block s="reportLessThan"><block s="reportListItem"><l>1</l><block var="hsl"/></block><l>8.3</l><comment w="90" collapsed="true">early orange</comment></block><script><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><l>18</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>25</l><l>18</l></block><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="hsl"/></block><l>5.5</l></block><block s="reportDifference"><l>8.3</l><l>5.5</l></block></block></list></block></list></block></block></script><script><block s="doDeclareVariables"><list><l>index</l></list><comment w="144.66666666666666" collapsed="true">center orange and up</comment></block><block s="doSetVar"><l>index</l><l>6</l></block><block s="doUntil"><block s="reportLessThanOrEquals"><block s="reportListItem"><l>1</l><block var="hsl"/></block><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="index"/><block var="✐ HSL brights"/></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><block s="reportListItem"><block s="reportDifference"><block var="index"/><l>1</l></block><block var="✐ pivots"/></block><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block><block s="reportListItem"><block s="reportDifference"><block var="index"/><l>1</l></block><block var="✐ pivots"/></block></block><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="hsl"/></block><block s="reportListItem"><l>1</l><block s="reportListItem"><block s="reportDifference"><block var="index"/><l>1</l></block><block var="✐ HSL brights"/></block></block></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="index"/><block var="✐ HSL brights"/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><block s="reportDifference"><block var="index"/><l>1</l></block><block var="✐ HSL brights"/></block></block></block></block></list></block></list></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair hue</l></block><script><block s="doReport"><block var="fair hue"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair saturation (HSL)</l></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="hsl"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair lightness</l></block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="hsl"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair HSL vector</l></block><script><block s="doReport"><block s="reportNewList"><list><block var="fair hue"/><block s="reportListItem"><l>2</l><block var="hsl"/></block><block s="reportListItem"><l>3</l><block var="hsl"/></block></list></block></block></script></block></script><comment w="53.333333333333336" collapsed="true">brown</comment></block></script><script><block s="doDeclareVariables"><list><l>fair hue</l><l>fair saturation (HSV)</l><l>fair value (brightness)</l><l>scaled HSV brights</l></list><comment w="53.333333333333336" collapsed="true">HSV</comment></block><block s="doSetVar"><l>scaled HSV brights</l><block s="reportVariadicProduct"><list><l>100</l><block var="✐ HSV brights"/></list></block></block><block s="doIfElse"><block s="reportAnd"><block s="reportLessThan"><block s="reportListItem"><l>3</l><block var="hsv"/></block><l>67</l></block><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block s="reportListItem"><l>1</l><block var="hsv"/></block><l>1.96</l></block><block s="reportLessThanOrEquals"><block s="reportListItem"><l>1</l><block var="hsv"/></block><l>8.82353</l></block></block></block><script><block s="doIfElse"><block s="reportLessThan"><block s="reportListItem"><l>1</l><block var="hsv"/></block><l>6.94444445</l><comment w="90" collapsed="true">early brown</comment></block><script><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><l>12.5</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>5.8</l><l>12.5</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsv"/></block></block><block s="reportDifference"><l>6.94444445</l><l>1.96</l></block></block></list></block></list></block></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair hue</l></block><script><block s="doReport"><block var="fair hue"/></block></script></block><block s="doSetVar"><l>fair value (brightness)</l><block s="reportVariadicMin"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="hsv"/></block><block s="reportQuotient"><l>100</l><block s="reportVariadicSum"><list><l>54.51</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>66.666666667</l><l>54.51</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsv"/></block></block><block s="reportDifference"><l>6.94444445</l><l>1.96</l></block></block></list></block></list></block></block></list></block><l>100</l></list></block></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair value (brightness)</l></block><script><block s="doReport"><block var="fair value (brightness)"/></block></script></block><block s="doSetVar"><l>fair saturation (HSV)</l><block s="reportVariadicMin"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="hsv"/></block><block s="reportQuotient"><l>100</l><block s="reportVariadicSum"><list><l>86.33</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>100</l><l>86.33</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsv"/></block></block><block s="reportDifference"><l>6.94444445</l><l>1.96</l></block></block></list></block></list></block></block></list></block><l>100</l></list></block></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair saturation (HSV)</l></block><script><block s="doReport"><block var="fair saturation (HSV)"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair HSV vector</l></block><script><block s="doReport"><block s="reportNewList"><list><block var="fair hue"/><block var="fair saturation (HSV)"/><block var="fair value (brightness)"/></list></block></block></script></block></script><script><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><l>12.5</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>18</l><l>12.5</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsv"/></block></block><block s="reportDifference"><l>6.94444445</l><l>8.823529</l></block></block></list></block></list></block></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair hue</l></block><script><block s="doReport"><block var="fair hue"/></block></script></block><block s="doSetVar"><l>fair value (brightness)</l><block s="reportVariadicMin"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="hsv"/></block><block s="reportQuotient"><l>100</l><block s="reportVariadicSum"><list><l>54.51</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>66.666666667</l><l>54.51</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsv"/></block></block><block s="reportDifference"><l>6.94444445</l><l>1.96</l></block></block></list></block></list></block></block></list></block><l>100</l></list></block></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair value (brightness)</l></block><script><block s="doReport"><block var="fair value (brightness)"/></block></script></block><block s="doSetVar"><l>fair saturation (HSV)</l><block s="reportVariadicMin"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="hsv"/></block><block s="reportQuotient"><l>100</l><block s="reportVariadicSum"><list><l>86.33</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>100</l><l>86.33</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsv"/></block></block><block s="reportDifference"><l>6.94444445</l><l>1.96</l></block></block></list></block></list></block></block></list></block><l>100</l></list></block></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair saturation (HSV)</l></block><script><block s="doReport"><block var="fair saturation (HSV)"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair HSV vector</l></block><script><block s="doReport"><block s="reportNewList"><list><block var="fair hue"/><block var="fair saturation (HSV)"/><block var="fair value (brightness)"/></list></block></block></script></block></script></block></script><script><block s="doIfElse"><block s="reportLessThan"><block s="reportListItem"><l>1</l><block var="hsv"/></block><l>5.5</l><comment w="53.333333333333336" collapsed="true">reds</comment></block><script><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><l>0</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>5.8</l><l>0</l></block><block s="reportQuotient"><block s="reportDifference"><l>5.5</l><block s="reportListItem"><l>1</l><block var="hsv"/></block></block><block s="reportDifference"><l>5.5</l><l>0</l></block></block></list></block></list></block></block></script><script><block s="doIfElse"><block s="reportLessThan"><block s="reportListItem"><l>1</l><block var="hsv"/></block><l>8.3</l><comment w="53.333333333333336" collapsed="true">orange</comment></block><script><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><l>18</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>25</l><l>18</l></block><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="hsv"/></block><l>5.5</l></block><block s="reportDifference"><l>8.3</l><l>5.5</l></block></block></list></block></list></block></block></script><script><block s="doDeclareVariables"><list><l>index</l></list><comment w="144.66666666666666" collapsed="true">center orange and up</comment></block><block s="doSetVar"><l>index</l><l>6</l></block><block s="doUntil"><block s="reportLessThanOrEquals"><block s="reportListItem"><l>1</l><block var="hsv"/></block><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="index"/><block var="scaled HSV brights"/></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><block s="reportListItem"><block s="reportDifference"><block var="index"/><l>1</l></block><block var="✐ pivots"/></block><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block><block s="reportListItem"><block s="reportDifference"><block var="index"/><l>1</l></block><block var="✐ pivots"/></block></block><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="hsv"/></block><block s="reportListItem"><l>1</l><block s="reportListItem"><block s="reportDifference"><block var="index"/><l>1</l></block><block var="scaled HSV brights"/></block></block></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="index"/><block var="scaled HSV brights"/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><block s="reportDifference"><block var="index"/><l>1</l></block><block var="scaled HSV brights"/></block></block></block></block></list></block></list></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair hue</l></block><script><block s="doReport"><block var="fair hue"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair saturation (HSV)</l></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="hsv"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair value (brightness)</l></block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="hsv"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="kind"/><l>fair HSV vector</l></block><script><block s="doReport"><block s="reportNewList"><list><block var="fair hue"/><block s="reportListItem"><l>2</l><block var="hsv"/></block><block s="reportListItem"><l>3</l><block var="hsv"/></block></list></block></block></script></block></script><comment w="53.333333333333336" collapsed="true">brown</comment></block></script><comment w="98.66666666666667" collapsed="true">fair something</comment></block><custom-block s="error %txt"><l>Can&apos;t get here -- please post project and screenshot to forum.</l></custom-block></script></block-definition><block-definition s="✐ current pen color" type="reporter" category="pen"><comment x="0" y="0" w="172.66666666666666" collapsed="false">This block reports the pen color&#xD;(as a color, not as a list of numbers).</comment><header></header><code></code><translations>ca:✐ color de llapis actual&#xD;</translations><inputs></inputs><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><custom-block s="RGB color"></custom-block><list><l></l></list></custom-block></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;pt:captura _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reportCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></block></script></block-definition><block-definition s="✐ set pen to crayon %&apos;which&apos; %&apos;more&apos;" type="command" category="pen"><comment x="0" y="0" w="297.3333333333333" collapsed="false">Sets the pen color &#xD;to one of 100 preselected colors, like a box of 100 crayons.&#xD;The colors have names that are meant to be evocative.&#xD;They are organized in families, more or less corresponding&#xD;to spectral (rainbow) colors; the input slot has a two-level menu&#xD;in which you can hover over a family name to see the colors&#xD;of that family, each including a crayon number and an RGB value. &#xD;See Appendix A of the Snap! Reference Manual for more details.</comment><header></header><code></code><translations>ca:✐ fixa el llapis de color _ _&#xD;</translations><inputs><input type="%s"><options>grays={&#xD;0 black #000000=0&#xD;1 gray7 #121212=1&#xD;2 gray14 #242424=2&#xD;3 gray21 #363636=3&#xD;4 gray28 #484848=4&#xD;5 gray36 #5c5c5c=5&#xD;6 gray43 #6d6d6d=6&#xD;7 gray50 #7f7f7f=7&#xD;8 gray57 #919191=8&#xD;9 gray64 #a3a3a3=9&#xD;10 gray71 #b5b5b5=10&#xD;11 gray78 #c8c8c8=11&#xD;12 gray85 #dadada=12&#xD;13 gray92 #ececec=13&#xD;14 white #ffffff=14&#xD;}&#xD;pinks={&#xD;15 deep pink #ff1493=15&#xD;16 hot pink #ff69b4=16&#xD;17 bright pink #ff007f=17&#xD;18 raspberry #e30b5d=18&#xD;19 amaranth #e52b50=19&#xD;}&#xD;reds={&#xD;20 red #ff0000=20&#xD;21 burgundy #900020=21&#xD;22 cherry #990000=22&#xD;23 dark candy apple red #a40000=23&#xD;24 sanguine #c00000=24&#xD;25 maroon #800000=25&#xD;26 crimson #c90016=26&#xD;27 Lists #d94d11=27&#xD;28 candy apple red #ff0800=28&#xD;29 coquelicot #ff3800=29&#xD;}&#xD;browns={&#xD;30 saddle brown #8b4513=30&#xD;31 chocolate #7b3f00=31&#xD;32 kobicha #6b4423=32&#xD;33 sepia #704214=33&#xD;34 chestnut #954535=34&#xD;35 dark brown #654321=35&#xD;36 brown #964b00=36&#xD;37 golden brown #996515=37&#xD;38 cinnamon #b87333=38&#xD;39 copper #d2691e=39&#xD;}&#xD;oranges={&#xD;40 orange #ff7f00=40&#xD;41 Pantone orange #ff5800=41&#xD;42 pumpkin #ff7518=42&#xD;43 Variables #f3761d=43&#xD;44 Spanish orange #e86100=44&#xD;45 burnt orange #cc5500=45&#xD;46 sinopia #cb410b=46&#xD;47 ochre #cc7722=47&#xD;48 carrot #ed9121=48&#xD;49 tangerine #f28500=49&#xD;}&#xD;yellows={&#xD;50 yellow #ffff00=50&#xD;51 Control #e6a822=51&#xD;52 dark goldenrod #b8860b=52&#xD;53 goldenrod #daa520=53&#xD;54 saffron #f4c430=54&#xD;55 sandstorm #ecd540=55&#xD;56 mustard #ffdb58=56&#xD;57 gold #ffd700=57&#xD;58 egg yolk #fee33e=58&#xD;59 rubber duck #fbe108=59&#xD;}&#xD;greens={&#xD;60 lime #00ff00=60&#xD;61 apple green #8db600=61&#xD;62 Operators #62c213=62&#xD;63 forest green #228b22=63&#xD;64 green #008000=64&#xD;65 dark green #006400=65&#xD;66 dark pastel green #03c03c=66&#xD;67 emerald #50c878=67&#xD;68 mint #3eb489=68&#xD;69 Pen #00a178=69&#xD;}&#xD;cyans={&#xD;70 aqua (cyan) #00ffff=70&#xD;71 dark cyan #008b8b=71&#xD;72 cerulean #007ba7=72&#xD;73 iceberg #71a6d2=73&#xD;74 Sensing #0494dc=74&#xD;75 teal #008080=75&#xD;76 light sky blue #87cefa=76&#xD;77 deep sky blue #00bfff=77&#xD;78 dodger blue #1e90ff=78&#xD;79 azure #007fff=79&#xD;}&#xD;blues={&#xD;80 blue #0000ff=80&#xD;81 midnight blue #191970=81&#xD;82 dark powder blue #003399=82&#xD;83 cobalt #0047ab=83&#xD;84 denim #1560bd=84&#xD;85 navy blue #000080=85&#xD;86 steel blue #4682b4=86&#xD;87 Motion #4a6cd4=87&#xD;88 cornflower #6495ed=88&#xD;89 slate blue #6a5acd=89&#xD;}&#xD;purples={&#xD;90 violet #8000ff=90&#xD;91 Looks #8f56e3=91&#xD;92 grape #6f2da8=92&#xD;93 indigo #4b0082=93&#xD;94 x11 purple #a020f0=94&#xD;95 magenta (fuchia) #ff00ff=95&#xD;96 dark orchid #9932cc=96&#xD;97 Sound #cf4ad9=97&#xD;98 purple #7f007f=98&#xD;99 dark magenta #8b008b=99&#xD;}</options></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>color</l></list></block><custom-block s="✐ initialize variables"></custom-block><block s="doIfElse"><block s="reportIsA"><block var="which"/><l><option>text</option></l></block><script><block s="doSetVar"><l>color</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block s="reportListItem"><l>4</l><l/></block><block var="which"/></block></autolambda><list></list></block><block var="✐ crayon colors"/></block></block><block s="doIfElse"><block s="reportNotEquals"><block var="color"/><l></l></block><script><block s="doSetVar"><l>✐ last crayon</l><block s="reportListItem"><l>5</l><block var="color"/></block></block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>No such crayon: </l><block var="which"/></list></block></custom-block></script></block></script><script><block s="doSetVar"><l>color</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block var="which"/><l>100</l></block><l>1</l></list></block><block var="✐ crayon colors"/></block></block><block s="doSetVar"><l>✐ last crayon</l><block var="which"/></block></script></block><block s="doSetVar"><l>✐ last set as</l><l>crayon</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="set pen color to r: %n g: %n b: %n"><block s="reportListItem"><l>1</l><block var="color"/></block><block s="reportListItem"><l>2</l><block var="color"/></block><block s="reportListItem"><l>3</l><block var="color"/></block></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block></script></block-definition><block-definition s="set pen color to r: %&apos;r&apos; g: %&apos;g&apos; b: %&apos;b&apos;" type="command" category="pen"><comment x="0" y="0" w="220.66666666666666" collapsed="false">Takes three inputs for red, green, and blue&#xD;values, each between 0 and 255.  0,0,0 is black; 255,255,255 is white.  255,255,0 is yellow, and so on.&#xD;&#xD;The SET PEN block in this library lets you set individual red, green, or blue without changing the others, lets you provide a list of three RGB color components, and lets you provide a six-digit hexadecimal number, the form in which RGB color values are usually found online.&#xD;&#xD;See Appendix A of the Snap! Reference Manual for details.</comment><header></header><code></code><translations>pt:altera a cor da tua caneta para vermelho _ , verde _ e azul _ (0 a 255)&#xD;ca:fixa el llapis al color r: _ g: _ b: _&#xD;</translations><inputs><input type="%n">255</input><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doApplyExtension"><l>clr_setpen(clr)</l><list><block s="reportApplyExtension"><l>clr_rgba(r, g, b, a)</l><list><block var="r"/><block var="g"/><block var="b"/><block s="reportApplyExtension"><l>clr_channel(clr, rgba)</l><list><block s="reportApplyExtension"><l>clr_pen</l><list></list></block><l>a</l></list></block></list></block></list></block></script></block-definition><block-definition s="set pen color to h: %&apos;h&apos; s: %&apos;s&apos; v: %&apos;v&apos;" type="command" category="pen"><comment x="0" y="0" w="283.3333333333333" collapsed="false">Takes three inputs for hue, saturation, and value (&quot;brightness&quot;)&#xD;values, each between 0 and 1.  0,0,0 is black; 0,0,1 is white.  0.15,1,1 is yellow, and so on.&#xD;&#xD;The SET PEN block in this library lets you set individual hue, saturation, or value without changing the others, lets you provide a list of three HSV color components, and lets you&#xD;use the very much superior HSL (hue, saturation, lightness)&#xD;color space.&#xD;&#xD;See Appendix A of the Snap! Reference Manual for details.</comment><header></header><code></code><translations>pt:altera a cor da caneta para matiz _ , saturação _ e brilho _ (0 a 1)&#xD;ca:fixa el llapis al color h: _ s: _ v: _&#xD;</translations><inputs><input type="%n">0.3</input><input type="%n">0.7</input><input type="%n">0.6</input></inputs><script><block s="doApplyExtension"><l>clr_setpen(clr)</l><list><block s="reportApplyExtension"><l>clr_hsv(h, s, v)</l><list><block var="h"/><block var="s"/><block var="v"/></list></block></list></block></script></block-definition><block-definition s="RGB color" type="reporter" category="pen"><comment x="0" y="0" w="266" collapsed="false">Reports the current pen color as a list of three RGB values in the range 0-255.  The PEN block in this library provides a large set of ways to examine the color.&#xD;&#xD;See Appendix A in the Snap! Reference Manual for details.</comment><header></header><code></code><translations>pt:a cor da caneta em RGB (vermelho, verde e azul; 0 a 255)&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportApplyExtension"><l>clr_channel(clr, rgba)</l><list><block s="reportApplyExtension"><l>clr_pen</l><list></list></block><l></l></list></block></autolambda><list></list></block><block s="reportNewList"><list><l>r</l><l>g</l><l>b</l></list></block></block></block></script></block-definition><block-definition s="HSV color" type="reporter" category="pen"><comment x="0" y="0" w="312" collapsed="false">Reports the current pen color as a list of three HSV values&#xD;in the range 0-1.&#xD;&#xD;See Appendix A in the Snap! Reference Manual for details.</comment><header></header><code></code><translations>pt:a cor da caneta em HSV (matiz, saturação e brilho, 0 a 1)&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>clr_hsv(clr)</l><list><block s="reportApplyExtension"><l>clr_pen</l><list></list></block></list></block></block></script></block-definition><block-definition s="✐ hexchar %&apos;nybble&apos;" type="reporter" category="pen"><comment x="0" y="0" w="245.33333333333334" collapsed="false">Takes a value from 0 to 15 and reports&#xD;the corresponding hexadecimal digit.&#xD;&#xD;For internal use of the color library.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportLessThan"><block var="nybble"/><l>10</l></block><block var="nybble"/><block s="reportUnicodeAsLetter"><block s="reportVariadicSum"><list><block s="reportUnicode"><l>a</l></block><block s="reportDifference"><block var="nybble"/><l>10</l></block></list></block></block></block></block></script></block-definition><block-definition s="✐ subset %&apos;pred&apos; %&apos;data&apos; %&apos;catchtag&apos; %&apos;result&apos; %&apos;set pen?&apos;" type="predicate" category="pen"><comment x="0" y="0" w="228" collapsed="false">Don&apos;t ask.&#xD;Only for internal use by the SET PEN block.</comment><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input><input type="%cmdRing"></input><input type="%upvar"></input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>best match</l></list></block><block s="doSetVar"><l>result</l><block s="reportKeep"><block var="pred"/><block var="data"/></block></block><block s="doIf"><block s="reportListIsEmpty"><block var="result"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doIf"><block s="reportListIsEmpty"><block s="reportCDR"><block var="result"/></block></block><script><block s="doSetVar"><l>best match</l><block s="reportListItem"><l>1</l><block var="result"/></block></block><block s="doIfElse"><block var="set pen?"/><script><custom-block s="$brush set pen %s to %s %mult%s"><l>red</l><block s="reportListItem"><l>1</l><block var="best match"/></block><list><l></l></list></custom-block><custom-block s="$brush set pen %s to %s %mult%s"><l>green</l><block s="reportListItem"><l>2</l><block var="best match"/></block><list><l></l></list></custom-block><custom-block s="$brush set pen %s to %s %mult%s"><l>blue</l><block s="reportListItem"><l>3</l><block var="best match"/></block><list><l></l></list></custom-block><block s="doSetVar"><l>✐ last X11</l><block s="reportListItem"><l>4</l><block var="best match"/></block></block><block s="doSetVar"><l>✐ last set as</l><l>X11</l></block><custom-block s="throw %s"><block var="catchtag"/></custom-block></script><script><block s="doSetVar"><l>✐ X11 catch</l><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>3</l></block><block var="best match"/></block></block><custom-block s="throw %s"><block var="catchtag"/></custom-block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="✐ initialize variables" type="command" category="pen"><comment x="0" y="0" w="180" collapsed="false">Creates a bunch of global variables.&#xD;For internal use by Color library.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><custom-block s="does var %s exist?"><l>✐ dimension names</l></custom-block><script><block s="doStopThis"><l><option>this block</option></l></block></script></block><custom-block s="create %s var %mult%txt"><l>global</l><list><l>✐ last set as</l><l>✐ fair?</l><l>✐ color scale</l><l>✐ HSL</l><l>✐ last crayon</l><l>✐ last X11</l><l>✐ raw HSL</l><l>✐ raw HSV</l><l>✐ X11</l><l>✐ crayon colors</l><l>✐ fair hue table</l><l>✐ colors</l><l>✐ brights</l><l>✐ pivots</l><l>✐ HSV brights</l><l>✐ HSL brights</l><l>✐ HSV colors</l><l>✐ HSL colors</l><l>✐ X11 catch</l><l>✐ dimension names</l><l>✐ dimension dispatch</l></list></custom-block><block s="doSetVar"><l>✐ last set as</l><l>RGB</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>✐ raw HSV</l><block s="reportNewList"><list><l>0</l><l>100</l><l>100</l></list></block></block><block s="doSetVar"><l>✐ HSL</l><block s="reportNewList"><list><l>0</l><l>100</l><l>50</l></list></block></block><block s="doSetVar"><l>✐ raw HSL</l><block s="reportNewList"><list><l>0</l><l>100</l><l>50</l></list></block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ X11"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ X11</l><block s="reportTextSplit"><custom-block s="multiline %mlt"><l>255,250,250,snow&#xD;248,248,255,ghostwhite&#xD;245,245,245,whitesmoke&#xD;220,220,220,gainsboro&#xD;255,250,240,floralwhite&#xD;253,245,230,oldlace&#xD;250,240,230,linen&#xD;250,235,215,antiquewhite&#xD;255,239,213,papayawhip&#xD;255,235,205,blanchedalmond&#xD;255,228,196,bisque&#xD;255,218,185,peachpuff&#xD;255,222,173,navajowhite&#xD;255,228,181,moccasin&#xD;255,248,220,cornsilk&#xD;255,255,240,ivory&#xD;255,250,205,lemonchiffon&#xD;255,245,238,seashell&#xD;240,255,240,honeydew&#xD;245,255,250,mintcream&#xD;240,255,255,azure&#xD;240,248,255,aliceblue&#xD;230,230,250,lavender&#xD;255,240,245,lavenderblush&#xD;255,228,225,mistyrose&#xD;255,255,255,white&#xD;0,0,0,black&#xD;47,79,79,darkslategray&#xD;47,79,79,darkslategrey&#xD;105,105,105,dimgray&#xD;105,105,105,dimgrey&#xD;112,128,144,slategray&#xD;112,128,144,slategrey&#xD;119,136,153,lightslategray&#xD;119,136,153,lightslategrey&#xD;190,190,190,gray(X11)&#xD;190,190,190,grey(X11)&#xD;128,128,128,gray(W3C)&#xD;128,128,128,grey(W3C)&#xD;211,211,211,lightgrey&#xD;211,211,211,lightgray&#xD;25,25,112,midnightblue&#xD;0,0,128,navy&#xD;0,0,128,navyblue&#xD;100,149,237,cornflowerblue&#xD;72,61,139,darkslateblue&#xD;106,90,205,slateblue&#xD;123,104,238,mediumslateblue&#xD;132,112,255,lightslateblue&#xD;0,0,205,mediumblue&#xD;65,105,225,royalblue&#xD;0,0,255,blue&#xD;30,144,255,dodgerblue&#xD;0,191,255,deepskyblue&#xD;135,206,235,skyblue&#xD;135,206,250,lightskyblue&#xD;70,130,180,steelblue&#xD;176,196,222,lightsteelblue&#xD;173,216,230,lightblue&#xD;176,224,230,powderblue&#xD;175,238,238,paleturquoise&#xD;0,206,209,darkturquoise&#xD;72,209,204,mediumturquoise&#xD;64,224,208,turquoise&#xD;0,255,255,cyan&#xD;0,255,255,aqua&#xD;224,255,255,lightcyan&#xD;95,158,160,cadetblue&#xD;102,205,170,mediumaquamarine&#xD;127,255,212,aquamarine&#xD;0,100,0,darkgreen&#xD;85,107,47,darkolivegreen&#xD;143,188,143,darkseagreen&#xD;46,139,87,seagreen&#xD;60,179,113,mediumseagreen&#xD;32,178,170,lightseagreen&#xD;152,251,152,palegreen&#xD;0,255,127,springgreen&#xD;124,252,0,lawngreen&#xD;0,255,0,green(X11)&#xD;0,128,0,green(W3C)&#xD;0,255,0,lime&#xD;127,255,0,chartreuse&#xD;0,250,154,mediumspringgreen&#xD;173,255,47,greenyellow&#xD;50,205,50,limegreen&#xD;154,205,50,yellowgreen&#xD;34,139,34,forestgreen&#xD;107,142,35,olivedrab&#xD;189,183,107,darkkhaki&#xD;240,230,140,khaki&#xD;238,232,170,palegoldenrod&#xD;250,250,210,lightgoldenrodyellow&#xD;255,255,224,lightyellow&#xD;255,255,0,yellow&#xD;255,215,0,gold&#xD;238,221,130,lightgoldenrod&#xD;218,165,32,goldenrod&#xD;184,134,11,darkgoldenrod&#xD;188,143,143,rosybrown&#xD;205,92,92,indianred&#xD;139,69,19,saddlebrown&#xD;160,82,45,sienna&#xD;205,133,63,peru&#xD;222,184,135,burlywood&#xD;245,245,220,beige&#xD;245,222,179,wheat&#xD;244,164,96,sandybrown&#xD;210,180,140,tan&#xD;210,105,30,chocolate&#xD;178,34,34,firebrick&#xD;165,42,42,brown&#xD;233,150,122,darksalmon&#xD;250,128,114,salmon&#xD;255,160,122,lightsalmon&#xD;255,165,0,orange&#xD;255,140,0,darkorange&#xD;255,127,80,coral&#xD;240,128,128,lightcoral&#xD;255,99,71,tomato&#xD;255,69,0,orangered&#xD;255,0,0,red&#xD;255,105,180,hotpink&#xD;255,20,147,deeppink&#xD;255,192,203,pink&#xD;255,182,193,lightpink&#xD;219,112,147,palevioletred&#xD;176,48,96,maroon(X11)&#xD;128,0,0,maroon(W3C)&#xD;199,21,133,mediumvioletred&#xD;208,32,144,violetred&#xD;255,0,255,magenta&#xD;255,0,255,fuchsia&#xD;238,130,238,violet&#xD;221,160,221,plum&#xD;218,112,214,orchid&#xD;186,85,211,mediumorchid&#xD;153,50,204,darkorchid&#xD;148,0,211,darkviolet&#xD;138,43,226,blueviolet&#xD;160,32,240,purple(X11)&#xD;128,0,128,purple(W3C)&#xD;147,112,219,mediumpurple&#xD;216,191,216,thistle&#xD;255,250,250,snow1&#xD;238,233,233,snow2&#xD;205,201,201,snow3&#xD;139,137,137,snow4&#xD;255,245,238,seashell1&#xD;238,229,222,seashell2&#xD;205,197,191,seashell3&#xD;139,134,130,seashell4&#xD;255,239,219,AntiqueWhite1&#xD;238,223,204,AntiqueWhite2&#xD;205,192,176,AntiqueWhite3&#xD;139,131,120,AntiqueWhite4&#xD;255,228,196,bisque1&#xD;238,213,183,bisque2&#xD;205,183,158,bisque3&#xD;139,125,107,bisque4&#xD;255,218,185,PeachPuff1&#xD;238,203,173,PeachPuff2&#xD;205,175,149,PeachPuff3&#xD;139,119,101,PeachPuff4&#xD;255,222,173,NavajoWhite1&#xD;238,207,161,NavajoWhite2&#xD;205,179,139,NavajoWhite3&#xD;139,121,94,NavajoWhite4&#xD;255,250,205,LemonChiffon1&#xD;238,233,191,LemonChiffon2&#xD;205,201,165,LemonChiffon3&#xD;139,137,112,LemonChiffon4&#xD;255,248,220,cornsilk1&#xD;238,232,205,cornsilk2&#xD;205,200,177,cornsilk3&#xD;139,136,120,cornsilk4&#xD;255,255,240,ivory1&#xD;238,238,224,ivory2&#xD;205,205,193,ivory3&#xD;139,139,131,ivory4&#xD;240,255,240,honeydew1&#xD;224,238,224,honeydew2&#xD;193,205,193,honeydew3&#xD;131,139,131,honeydew4&#xD;255,240,245,LavenderBlush1&#xD;238,224,229,LavenderBlush2&#xD;205,193,197,LavenderBlush3&#xD;139,131,134,LavenderBlush4&#xD;255,228,225,MistyRose1&#xD;238,213,210,MistyRose2&#xD;205,183,181,MistyRose3&#xD;139,125,123,MistyRose4&#xD;240,255,255,azure1&#xD;224,238,238,azure2&#xD;193,205,205,azure3&#xD;131,139,139,azure4&#xD;131,111,255,SlateBlue1&#xD;122,103,238,SlateBlue2&#xD;105,89,205,SlateBlue3&#xD;71,60,139,SlateBlue4&#xD;72,118,255,RoyalBlue1&#xD;67,110,238,RoyalBlue2&#xD;58,95,205,RoyalBlue3&#xD;39,64,139,RoyalBlue4&#xD;0,0,255,blue1&#xD;0,0,238,blue2&#xD;0,0,205,blue3&#xD;0,0,139,blue4&#xD;30,144,255,DodgerBlue1&#xD;28,134,238,DodgerBlue2&#xD;24,116,205,DodgerBlue3&#xD;16,78,139,DodgerBlue4&#xD;99,184,255,SteelBlue1&#xD;92,172,238,SteelBlue2&#xD;79,148,205,SteelBlue3&#xD;54,100,139,SteelBlue4&#xD;0,191,255,DeepSkyBlue1&#xD;0,178,238,DeepSkyBlue2&#xD;0,154,205,DeepSkyBlue3&#xD;0,104,139,DeepSkyBlue4&#xD;135,206,255,SkyBlue1&#xD;126,192,238,SkyBlue2&#xD;108,166,205,SkyBlue3&#xD;74,112,139,SkyBlue4&#xD;176,226,255,LightSkyBlue1&#xD;164,211,238,LightSkyBlue2&#xD;141,182,205,LightSkyBlue3&#xD;96,123,139,LightSkyBlue4&#xD;198,226,255,SlateGray1&#xD;185,211,238,SlateGray2&#xD;159,182,205,SlateGray3&#xD;108,123,139,SlateGray4&#xD;202,225,255,LightSteelBlue1&#xD;188,210,238,LightSteelBlue2&#xD;162,181,205,LightSteelBlue3&#xD;110,123,139,LightSteelBlue4&#xD;191,239,255,LightBlue1&#xD;178,223,238,LightBlue2&#xD;154,192,205,LightBlue3&#xD;104,131,139,LightBlue4&#xD;224,255,255,LightCyan1&#xD;209,238,238,LightCyan2&#xD;180,205,205,LightCyan3&#xD;122,139,139,LightCyan4&#xD;187,255,255,PaleTurquoise1&#xD;174,238,238,PaleTurquoise2&#xD;150,205,205,PaleTurquoise3&#xD;102,139,139,PaleTurquoise4&#xD;152,245,255,CadetBlue1&#xD;142,229,238,CadetBlue2&#xD;122,197,205,CadetBlue3&#xD;83,134,139,CadetBlue4&#xD;0,245,255,turquoise1&#xD;0,229,238,turquoise2&#xD;0,197,205,turquoise3&#xD;0,134,139,turquoise4&#xD;0,255,255,cyan1&#xD;0,238,238,cyan2&#xD;0,205,205,cyan3&#xD;0,139,139,cyan4&#xD;151,255,255,DarkSlateGray1&#xD;141,238,238,DarkSlateGray2&#xD;121,205,205,DarkSlateGray3&#xD;82,139,139,DarkSlateGray4&#xD;127,255,212,aquamarine1&#xD;118,238,198,aquamarine2&#xD;102,205,170,aquamarine3&#xD;69,139,116,aquamarine4&#xD;193,255,193,DarkSeaGreen1&#xD;180,238,180,DarkSeaGreen2&#xD;155,205,155,DarkSeaGreen3&#xD;105,139,105,DarkSeaGreen4&#xD;84,255,159,SeaGreen1&#xD;78,238,148,SeaGreen2&#xD;67,205,128,SeaGreen3&#xD;46,139,87,SeaGreen4&#xD;154,255,154,PaleGreen1&#xD;144,238,144,PaleGreen2&#xD;124,205,124,PaleGreen3&#xD;84,139,84,PaleGreen4&#xD;0,255,127,SpringGreen1&#xD;0,238,118,SpringGreen2&#xD;0,205,102,SpringGreen3&#xD;0,139,69,SpringGreen4&#xD;0,255,0,green1&#xD;0,238,0,green2&#xD;0,205,0,green3&#xD;0,139,0,green4&#xD;127,255,0,chartreuse1&#xD;118,238,0,chartreuse2&#xD;102,205,0,chartreuse3&#xD;69,139,0,chartreuse4&#xD;192,255,62,OliveDrab1&#xD;179,238,58,OliveDrab2&#xD;154,205,50,OliveDrab3&#xD;105,139,34,OliveDrab4&#xD;202,255,112,DarkOliveGreen1&#xD;188,238,104,DarkOliveGreen2&#xD;162,205,90,DarkOliveGreen3&#xD;110,139,61,DarkOliveGreen4&#xD;255,246,143,khaki1&#xD;238,230,133,khaki2&#xD;205,198,115,khaki3&#xD;139,134,78,khaki4&#xD;255,236,139,LightGoldenrod1&#xD;238,220,130,LightGoldenrod2&#xD;205,190,112,LightGoldenrod3&#xD;139,129,76,LightGoldenrod4&#xD;255,255,224,LightYellow1&#xD;238,238,209,LightYellow2&#xD;205,205,180,LightYellow3&#xD;139,139,122,LightYellow4&#xD;255,255,0,yellow1&#xD;238,238,0,yellow2&#xD;205,205,0,yellow3&#xD;139,139,0,yellow4&#xD;255,215,0,gold1&#xD;238,201,0,gold2&#xD;205,173,0,gold3&#xD;139,117,0,gold4&#xD;255,193,37,goldenrod1&#xD;238,180,34,goldenrod2&#xD;205,155,29,goldenrod3&#xD;139,105,20,goldenrod4&#xD;255,185,15,DarkGoldenrod1&#xD;238,173,14,DarkGoldenrod2&#xD;205,149,12,DarkGoldenrod3&#xD;139,101,8,DarkGoldenrod4&#xD;255,193,193,RosyBrown1&#xD;238,180,180,RosyBrown2&#xD;205,155,155,RosyBrown3&#xD;139,105,105,RosyBrown4&#xD;255,106,106,IndianRed1&#xD;238,99,99,IndianRed2&#xD;205,85,85,IndianRed3&#xD;139,58,58,IndianRed4&#xD;255,130,71,sienna1&#xD;238,121,66,sienna2&#xD;205,104,57,sienna3&#xD;139,71,38,sienna4&#xD;255,211,155,burlywood1&#xD;238,197,145,burlywood2&#xD;205,170,125,burlywood3&#xD;139,115,85,burlywood4&#xD;255,231,186,wheat1&#xD;238,216,174,wheat2&#xD;205,186,150,wheat3&#xD;139,126,102,wheat4&#xD;255,165,79,tan1&#xD;238,154,73,tan2&#xD;205,133,63,tan3&#xD;139,90,43,tan4&#xD;255,127,36,chocolate1&#xD;238,118,33,chocolate2&#xD;205,102,29,chocolate3&#xD;139,69,19,chocolate4&#xD;255,48,48,firebrick1&#xD;238,44,44,firebrick2&#xD;205,38,38,firebrick3&#xD;139,26,26,firebrick4&#xD;255,64,64,brown1&#xD;238,59,59,brown2&#xD;205,51,51,brown3&#xD;139,35,35,brown4&#xD;255,140,105,salmon1&#xD;238,130,98,salmon2&#xD;205,112,84,salmon3&#xD;139,76,57,salmon4&#xD;255,160,122,LightSalmon1&#xD;238,149,114,LightSalmon2&#xD;205,129,98,LightSalmon3&#xD;139,87,66,LightSalmon4&#xD;255,165,0,orange1&#xD;238,154,0,orange2&#xD;205,133,0,orange3&#xD;139,90,0,orange4&#xD;255,127,0,DarkOrange1&#xD;238,118,0,DarkOrange2&#xD;205,102,0,DarkOrange3&#xD;139,69,0,DarkOrange4&#xD;255,114,86,coral1&#xD;238,106,80,coral2&#xD;205,91,69,coral3&#xD;139,62,47,coral4&#xD;255,99,71,tomato1&#xD;238,92,66,tomato2&#xD;205,79,57,tomato3&#xD;139,54,38,tomato4&#xD;255,69,0,OrangeRed1&#xD;238,64,0,OrangeRed2&#xD;205,55,0,OrangeRed3&#xD;139,37,0,OrangeRed4&#xD;255,0,0,red1&#xD;238,0,0,red2&#xD;205,0,0,red3&#xD;139,0,0,red4&#xD;255,20,147,DeepPink1&#xD;238,18,137,DeepPink2&#xD;205,16,118,DeepPink3&#xD;139,10,80,DeepPink4&#xD;255,110,180,HotPink1&#xD;238,106,167,HotPink2&#xD;205,96,144,HotPink3&#xD;139,58,98,HotPink4&#xD;255,181,197,pink1&#xD;238,169,184,pink2&#xD;205,145,158,pink3&#xD;139,99,108,pink4&#xD;255,174,185,LightPink1&#xD;238,162,173,LightPink2&#xD;205,140,149,LightPink3&#xD;139,95,101,LightPink4&#xD;255,130,171,PaleVioletRed1&#xD;238,121,159,PaleVioletRed2&#xD;205,104,137,PaleVioletRed3&#xD;139,71,93,PaleVioletRed4&#xD;255,52,179,maroon1&#xD;238,48,167,maroon2&#xD;205,41,144,maroon3&#xD;139,28,98,maroon4&#xD;255,62,150,VioletRed1&#xD;238,58,140,VioletRed2&#xD;205,50,120,VioletRed3&#xD;139,34,82,VioletRed4&#xD;255,0,255,magenta1&#xD;238,0,238,magenta2&#xD;205,0,205,magenta3&#xD;139,0,139,magenta4&#xD;255,131,250,orchid1&#xD;238,122,233,orchid2&#xD;205,105,201,orchid3&#xD;139,71,137,orchid4&#xD;255,187,255,plum1&#xD;238,174,238,plum2&#xD;205,150,205,plum3&#xD;139,102,139,plum4&#xD;224,102,255,MediumOrchid1&#xD;209,95,238,MediumOrchid2&#xD;180,82,205,MediumOrchid3&#xD;122,55,139,MediumOrchid4&#xD;191,62,255,DarkOrchid1&#xD;178,58,238,DarkOrchid2&#xD;154,50,205,DarkOrchid3&#xD;104,34,139,DarkOrchid4&#xD;155,48,255,purple1&#xD;145,44,238,purple2&#xD;125,38,205,purple3&#xD;85,26,139,purple4&#xD;171,130,255,MediumPurple1&#xD;159,121,238,MediumPurple2&#xD;137,104,205,MediumPurple3&#xD;93,71,139,MediumPurple4&#xD;255,225,255,thistle1&#xD;238,210,238,thistle2&#xD;205,181,205,thistle3&#xD;139,123,139,thistle4&#xD;0,0,0,gray0&#xD;0,0,0,grey0&#xD;3,3,3,gray1&#xD;3,3,3,grey1&#xD;5,5,5,gray2&#xD;5,5,5,grey2&#xD;8,8,8,gray3&#xD;8,8,8,grey3&#xD;10,10,10,gray4&#xD;10,10,10,grey4&#xD;13,13,13,gray5&#xD;13,13,13,grey5&#xD;15,15,15,gray6&#xD;15,15,15,grey6&#xD;18,18,18,gray7&#xD;18,18,18,grey7&#xD;20,20,20,gray8&#xD;20,20,20,grey8&#xD;23,23,23,gray9&#xD;23,23,23,grey9&#xD;26,26,26,gray10&#xD;26,26,26,grey10&#xD;28,28,28,gray11&#xD;28,28,28,grey11&#xD;31,31,31,gray12&#xD;31,31,31,grey12&#xD;33,33,33,gray13&#xD;33,33,33,grey13&#xD;36,36,36,gray14&#xD;36,36,36,grey14&#xD;38,38,38,gray15&#xD;38,38,38,grey15&#xD;41,41,41,gray16&#xD;41,41,41,grey16&#xD;43,43,43,gray17&#xD;43,43,43,grey17&#xD;46,46,46,gray18&#xD;46,46,46,grey18&#xD;48,48,48,gray19&#xD;48,48,48,grey19&#xD;51,51,51,gray20&#xD;51,51,51,grey20&#xD;54,54,54,gray21&#xD;54,54,54,grey21&#xD;56,56,56,gray22&#xD;56,56,56,grey22&#xD;59,59,59,gray23&#xD;59,59,59,grey23&#xD;61,61,61,gray24&#xD;61,61,61,grey24&#xD;64,64,64,gray25&#xD;64,64,64,grey25&#xD;66,66,66,gray26&#xD;66,66,66,grey26&#xD;69,69,69,gray27&#xD;69,69,69,grey27&#xD;71,71,71,gray28&#xD;71,71,71,grey28&#xD;74,74,74,gray29&#xD;74,74,74,grey29&#xD;77,77,77,gray30&#xD;77,77,77,grey30&#xD;79,79,79,gray31&#xD;79,79,79,grey31&#xD;82,82,82,gray32&#xD;82,82,82,grey32&#xD;84,84,84,gray33&#xD;84,84,84,grey33&#xD;87,87,87,gray34&#xD;87,87,87,grey34&#xD;89,89,89,gray35&#xD;89,89,89,grey35&#xD;92,92,92,gray36&#xD;92,92,92,grey36&#xD;94,94,94,gray37&#xD;94,94,94,grey37&#xD;97,97,97,gray38&#xD;97,97,97,grey38&#xD;99,99,99,gray39&#xD;99,99,99,grey39&#xD;102,102,102,gray40&#xD;102,102,102,grey40&#xD;105,105,105,gray41&#xD;105,105,105,grey41&#xD;107,107,107,gray42&#xD;107,107,107,grey42&#xD;110,110,110,gray43&#xD;110,110,110,grey43&#xD;112,112,112,gray44&#xD;112,112,112,grey44&#xD;115,115,115,gray45&#xD;115,115,115,grey45&#xD;117,117,117,gray46&#xD;117,117,117,grey46&#xD;120,120,120,gray47&#xD;120,120,120,grey47&#xD;122,122,122,gray48&#xD;122,122,122,grey48&#xD;125,125,125,gray49&#xD;125,125,125,grey49&#xD;127,127,127,gray50&#xD;127,127,127,grey50&#xD;130,130,130,gray51&#xD;130,130,130,grey51&#xD;133,133,133,gray52&#xD;133,133,133,grey52&#xD;135,135,135,gray53&#xD;135,135,135,grey53&#xD;138,138,138,gray54&#xD;138,138,138,grey54&#xD;140,140,140,gray55&#xD;140,140,140,grey55&#xD;143,143,143,gray56&#xD;143,143,143,grey56&#xD;145,145,145,gray57&#xD;145,145,145,grey57&#xD;148,148,148,gray58&#xD;148,148,148,grey58&#xD;150,150,150,gray59&#xD;150,150,150,grey59&#xD;153,153,153,gray60&#xD;153,153,153,grey60&#xD;156,156,156,gray61&#xD;156,156,156,grey61&#xD;158,158,158,gray62&#xD;158,158,158,grey62&#xD;161,161,161,gray63&#xD;161,161,161,grey63&#xD;163,163,163,gray64&#xD;163,163,163,grey64&#xD;166,166,166,gray65&#xD;166,166,166,grey65&#xD;168,168,168,gray66&#xD;168,168,168,grey66&#xD;171,171,171,gray67&#xD;171,171,171,grey67&#xD;173,173,173,gray68&#xD;173,173,173,grey68&#xD;176,176,176,gray69&#xD;176,176,176,grey69&#xD;179,179,179,gray70&#xD;179,179,179,grey70&#xD;181,181,181,gray71&#xD;181,181,181,grey71&#xD;184,184,184,gray72&#xD;184,184,184,grey72&#xD;186,186,186,gray73&#xD;186,186,186,grey73&#xD;189,189,189,gray74&#xD;189,189,189,grey74&#xD;191,191,191,gray75&#xD;191,191,191,grey75&#xD;194,194,194,gray76&#xD;194,194,194,grey76&#xD;196,196,196,gray77&#xD;196,196,196,grey77&#xD;199,199,199,gray78&#xD;199,199,199,grey78&#xD;201,201,201,gray79&#xD;201,201,201,grey79&#xD;204,204,204,gray80&#xD;204,204,204,grey80&#xD;207,207,207,gray81&#xD;207,207,207,grey81&#xD;209,209,209,gray82&#xD;209,209,209,grey82&#xD;212,212,212,gray83&#xD;212,212,212,grey83&#xD;214,214,214,gray84&#xD;214,214,214,grey84&#xD;217,217,217,gray85&#xD;217,217,217,grey85&#xD;219,219,219,gray86&#xD;219,219,219,grey86&#xD;222,222,222,gray87&#xD;222,222,222,grey87&#xD;224,224,224,gray88&#xD;224,224,224,grey88&#xD;227,227,227,gray89&#xD;227,227,227,grey89&#xD;229,229,229,gray90&#xD;229,229,229,grey90&#xD;232,232,232,gray91&#xD;232,232,232,grey91&#xD;235,235,235,gray92&#xD;235,235,235,grey92&#xD;237,237,237,gray93&#xD;237,237,237,grey93&#xD;240,240,240,gray94&#xD;240,240,240,grey94&#xD;242,242,242,gray95&#xD;242,242,242,grey95&#xD;245,245,245,gray96&#xD;245,245,245,grey96&#xD;247,247,247,gray97&#xD;247,247,247,grey97&#xD;250,250,250,gray98&#xD;250,250,250,grey98&#xD;252,252,252,gray99&#xD;252,252,252,grey99&#xD;255,255,255,gray100&#xD;255,255,255,grey100&#xD;169,169,169,darkgrey&#xD;169,169,169,darkgray&#xD;0,0,139,darkblue&#xD;0,139,139,darkcyan&#xD;139,0,139,darkmagenta&#xD;139,0,0,darkred&#xD;144,238,144,lightgreen</l></custom-block><l><option>csv</option></l></block></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ crayon colors"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ crayon colors</l><block s="reportTextSplit"><custom-block s="multiline %mlt"><l>0,0,0,black,0&#xD;18,18,18,gray7,1&#xD;36,36,36,gray14,2&#xD;54,54,54,gray21,3&#xD;72,72,72,gray28,4&#xD;92,92,92,gray36,5&#xD;109,109,109,gray43,6&#xD;127,127,127,gray50,7&#xD;145,145,145,gray57,8&#xD;163,163,163,gray64,9&#xD;181,181,181,gray71,10&#xD;200,200,200,gray78,11&#xD;218,218,218,gray85,12&#xD;236,236,236,gray92,13&#xD;255,255,255,white,14&#xD;255,20,147,deep pink,15&#xD;255,105,180,hot pink,16&#xD;255,0,127,bright pink,17&#xD;227,11,93,raspberry,18&#xD;229,43,80,amaranth,19&#xD;255,0,0,red,20&#xD;144,0,32,burgundy,21&#xD;153,0,0,cherry,22&#xD;164,0,0,dark candy apple red,23&#xD;192,0,0,sanguine,24&#xD;128,0,0,maroon,25&#xD;201,0,22,crimson,26&#xD;217,77,17,Lists,27&#xD;255,8,0,candy apple red,28&#xD;255,56,0,coquelicot,29&#xD;139,69,19,saddle brown,30&#xD;123,63,0,chocolate,31&#xD;107,68,35,kobicha,32&#xD;112,66,20,sepia,33&#xD;149,69,53,chestnut,34&#xD;101,67,33,dark brown,35&#xD;150,75,0,brown,36&#xD;153,101,21,golden brown,37&#xD;184,115,51,cinnamon,38&#xD;210,105,30,copper,39&#xD;255,127,0,orange,40&#xD;255,88,0,Pantone orange,41&#xD;255,117,24,pumpkin,42&#xD;243,118,29,Variables,43&#xD;232,97,0,Spanish orange,44&#xD;204,85,0,burnt orange,45&#xD;203,65,11,sinopia,46&#xD;204,119,34,ochre,47&#xD;237,145,33,carrot,48&#xD;242,133,0,tangerine,49&#xD;255,255,0,yellow,50&#xD;230,168,34,Control,51&#xD;184,134,11,dark goldenrod,52&#xD;218,165,32,goldenrod,53&#xD;244,196,48,saffron,54&#xD;236,213,64,sandstorm,55&#xD;255,219,88,mustard,56&#xD;255,215,0,gold,57&#xD;254,227,62,egg yolk,58&#xD;251,225,8,rubber duck,59&#xD;0,255,0,lime,60&#xD;141,182,0,apple green,61&#xD;98,194,19,Operators,62&#xD;34,139,34,forest green,63&#xD;0,128,0,green,64&#xD;0,100,0,dark green,65&#xD;3,192,60,dark pastel green,66&#xD;80,200,120,emerald,67&#xD;62,180,137,mint,68&#xD;0,161,120,Pen,69&#xD;0,255,255,aqua,70&#xD;0,139,139,dark cyan,71&#xD;0,123,167,cerulean,72&#xD;113,166,210,iceberg,73&#xD;4,148,220,Sensing,74&#xD;0,128,128,teal,75&#xD;135,206,250,light sky blue,76&#xD;0,191,255,deep sky blue,77&#xD;30,144,255,dodger blue,78&#xD;0,127,255,azure,79&#xD;0,0,255,blue,80&#xD;25,25,112,midnight blue,81&#xD;0,51,153,dark powder blue,82&#xD;0,71,171,cobalt,83&#xD;21,96,189,denim,84&#xD;0,0,128,navy blue,85&#xD;70,130,180,steel blue,86&#xD;74,108,212,Motion,87&#xD;100,149,237,cornflower,88&#xD;106,90,205,slate blue,89&#xD;128,0,255,violet,90&#xD;143,86,227,Looks,91&#xD;111,45,168,grape,92&#xD;75,0,130,indigo,93&#xD;160,32,240,x11 purple,94&#xD;255,0,255,magenta,95&#xD;153,50,204,dark orchid,96&#xD;207,74,217,Sound,97&#xD;127,0,127,purple,98&#xD;139,0,139,dark magenta,99&#xD;0,255,255,cyan,100&#xD;255,0,255,fuchia,101&#xD;18,18,18,grey7,102&#xD;36,36,36,grey14,103&#xD;54,54,54,grey21,104&#xD;72,72,72,grey28,105&#xD;92,92,92,grey36,106&#xD;109,109,109,grey43,107&#xD;127,127,127,grey50,108&#xD;145,145,145,grey57,109&#xD;163,163,163,grey64,110&#xD;181,181,181,grey71,111&#xD;200,200,200,grey78,112&#xD;218,218,218,grey85,113&#xD;236,236,236,grey92,114</l></custom-block><l><option>csv</option></l></block></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ fair hue table"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ fair hue table</l><block s="reportTextSplit"><custom-block s="multiline %mlt"><l>0,0&#xD;0.1,0.4490048&#xD;0.2,0.7917349397590361&#xD;0.3,1.323783606557377&#xD;0.4,1.5577075630252102&#xD;0.5,1.8819460580912863&#xD;0.6,2.2386749999999993&#xD;0.7,2.7028660714285713&#xD;0.8,3.0121628959276014&#xD;0.9,3.315934497816594&#xD;1,3.6112710280373834&#xD;1.1,3.90595&#xD;1.2,4.127571428571427&#xD;1.3,4.297762318840579&#xD;1.4,4.489283257918553&#xD;1.5,4.7677722772277225&#xD;1.6,5.039333333333333&#xD;1.7,5.304873846153846&#xD;1.8,5.403663157894737&#xD;1.9,5.658512796208531&#xD;2,5.840000000000001&#xD;2.1,6.114844444444445&#xD;2.2,6.204400000000001&#xD;2.3,6.3165000000000004&#xD;2.4,6.566297872340425&#xD;2.5,6.83&#xD;2.6,6.923418181818183&#xD;2.7,7.050461538461539&#xD;2.8,7.275225806451613&#xD;2.9,7.5318&#xD;3,7.621924324324324&#xD;3.1,7.708551724137931&#xD;3.2,7.956799999999999&#xD;3.3,8.1096&#xD;3.4,8.203896774193549&#xD;3.5,8.371&#xD;3.6,8.6184&#xD;3.7,8.717372727272728&#xD;3.8,8.851600000000001&#xD;3.9,9.016399999999999&#xD;4,9.10822857142857&#xD;4.1,9.2424&#xD;4.2,9.4036&#xD;4.3,9.4894&#xD;4.4,9.6224&#xD;4.5,9.725789473684207&#xD;4.6,9.9364&#xD;4.7,10.070061538461541&#xD;4.8,10.1744&#xD;4.9,10.297239999999999&#xD;5,10.379999999999999&#xD;5.1,10.600304&#xD;5.2,10.661408&#xD;5.3,10.7294&#xD;5.4,10.828241860465111&#xD;5.5,11.017183908045975&#xD;5.6,11.075908045977013&#xD;5.7,11.308730635838149&#xD;5.8,11.36599768786127&#xD;5.9,11.4312&#xD;6,11.522086956521738&#xD;6.1,11.70843023255814&#xD;6.2,11.763372093023255&#xD;6.3,11.825&#xD;6.4,11.900000000000002&#xD;6.5,11.99609375&#xD;6.6,12.150512280701754&#xD;6.7,12.204400000000001&#xD;6.8,12.277600000000001&#xD;6.9,12.36096&#xD;7,12.534857142857144&#xD;7.1,12.5976&#xD;7.2,13&#xD;7.3,13.411466666666666&#xD;7.4,13.549833333333334&#xD;7.5,13.69097222222222&#xD;7.6,13.9648&#xD;7.7,14.168931506849315&#xD;7.8,14.458400000000001&#xD;7.9,14.768594594594598&#xD;8,14.865702702702702&#xD;8.1,15.092035443037975&#xD;8.2,15.482090666666668&#xD;8.3,15.939600000000002&#xD;8.4,16.261599999999998&#xD;8.5,16.61513513513513&#xD;8.6,17.015784615384618&#xD;8.7,17.513740506329114&#xD;8.8,17.718825316455696&#xD;8.9,26.517000000000003&#xD;9,26.77&#xD;9.1,27.022999999999996&#xD;9.2,27.276&#xD;9.3,27.528999999999996&#xD;9.4,27.782&#xD;9.5,28.035000000000004&#xD;9.6,28.288&#xD;9.7,28.540999999999997&#xD;9.8,28.794&#xD;9.9,29.046999999999997&#xD;10,29.3&#xD;10.1,29.553000000000004&#xD;10.2,29.906&#xD;10.3,30.058999999999997&#xD;10.4,30.412&#xD;10.5,30.564999999999998&#xD;10.6,30.659000000000002&#xD;10.7,30.770999999999997&#xD;10.8,30.912&#xD;10.9,30.9885&#xD;11,31.130000000000003&#xD;11.1,31.241500000000002&#xD;11.2,31.336000000000002&#xD;11.3,31.444499999999998&#xD;11.4,31.542&#xD;11.5,31.695&#xD;11.6,31.774&#xD;11.7,31.901&#xD;11.8,32.027&#xD;11.9,32.107&#xD;12,32.260000000000005&#xD;12.1,32.3565&#xD;12.2,32.466&#xD;12.3,32.6095&#xD;12.4,32.686&#xD;12.5,32.8125&#xD;12.6,32.888999999999996&#xD;12.7,33.031&#xD;12.8,33.142&#xD;12.9,33.236999999999995&#xD;13,33.39&#xD;13.1,33.4715&#xD;13.2,33.596&#xD;13.3,33.7245&#xD;13.4,33.80200000000001&#xD;13.5,33.927499999999995&#xD;13.6,34.007999999999996&#xD;13.7,34.161&#xD;13.8,34.257&#xD;13.9,34.367&#xD;14,34.510000000000005&#xD;14.1,34.5865&#xD;14.2,34.726&#xD;14.3,34.8395&#xD;14.4,34.931999999999995&#xD;14.5,35.084999999999994&#xD;14.6,35.169&#xD;14.7,35.291&#xD;14.8,35.372&#xD;14.9,35.497&#xD;15,35.625&#xD;15.1,35.703&#xD;15.2,35.856&#xD;15.3,35.9545&#xD;15.4,36.062&#xD;15.5,36.207499999999996&#xD;15.6,36.284&#xD;15.7,36.42100000000001&#xD;15.8,36.537&#xD;15.9,36.626999999999995&#xD;16,36.739999999999995&#xD;16.1,36.833000000000006&#xD;16.2,36.986000000000004&#xD;16.3,37.0695&#xD;16.4,37.192&#xD;16.5,37.322500000000005&#xD;16.6,37.399&#xD;16.7,37.551&#xD;16.8,37.704&#xD;16.9,37.857000000000006&#xD;17,38.010000000000005&#xD;17.1,38.263000000000005&#xD;17.2,38.41600000000001&#xD;17.3,38.569&#xD;17.4,38.722&#xD;17.5,38.875&#xD;17.6,39.028&#xD;17.7,39.181&#xD;17.8,39.334&#xD;17.9,39.486999999999995&#xD;18,39.739999999999995&#xD;18.1,39.892999999999994&#xD;18.2,40.046&#xD;18.3,40.199&#xD;18.4,40.352&#xD;18.5,40.504999999999995&#xD;18.6,40.658&#xD;18.7,40.81099999999999&#xD;18.8,41.064&#xD;18.9,41.217&#xD;19,41.37&#xD;19.1,41.523&#xD;19.2,41.676&#xD;19.3,41.829&#xD;19.4,41.982000000000006&#xD;19.5,42.135&#xD;19.6,42.288&#xD;19.7,42.541&#xD;19.8,42.693999999999996&#xD;19.9,42.847&#xD;20,43&#xD;20.1,43.153&#xD;20.2,43.306&#xD;20.3,43.458999999999996&#xD;20.4,43.611999999999995&#xD;20.5,43.765&#xD;20.6,44.017999999999994&#xD;20.7,44.171&#xD;20.8,44.324&#xD;20.9,44.477&#xD;21,44.54333333333334&#xD;21.1,44.59433333333333&#xD;21.2,44.634&#xD;21.3,44.672250000000005&#xD;21.4,44.714&#xD;21.5,44.765&#xD;21.6,44.812&#xD;21.7,44.85025&#xD;21.8,44.8885&#xD;21.9,44.93566666666667&#xD;22,44.986666666666665&#xD;22.1,45.02825&#xD;22.2,45.066500000000005&#xD;22.3,45.10633333333333&#xD;22.4,45.157333333333334&#xD;22.5,45.20625&#xD;22.6,45.2445&#xD;22.7,45.28275&#xD;22.8,45.327999999999996&#xD;22.9,45.379000000000005&#xD;23,45.4225&#xD;23.1,45.460750000000004&#xD;23.2,45.499&#xD;23.3,45.54966666666667&#xD;23.4,45.60066666666667&#xD;23.5,45.651666666666664&#xD;23.6,45.702000000000005&#xD;23.7,45.74025&#xD;23.8,45.778499999999994&#xD;23.9,45.82233333333333&#xD;24,45.873333333333335&#xD;24.1,45.91825&#xD;24.2,45.9565&#xD;24.3,45.994749999999996&#xD;24.4,46.044&#xD;24.5,46.095&#xD;24.6,46.134499999999996&#xD;24.7,46.17275&#xD;24.8,46.214666666666666&#xD;24.9,46.26566666666666&#xD;25,46.3125&#xD;25.1,46.35075&#xD;25.2,46.388999999999996&#xD;25.3,46.43633333333334&#xD;25.4,46.48733333333333&#xD;25.5,46.52875&#xD;25.6,46.56699999999999&#xD;25.7,46.607&#xD;25.8,46.658&#xD;25.9,46.708999999999996&#xD;26,46.76&#xD;26.1,46.80825&#xD;26.2,46.8465&#xD;26.3,46.88475&#xD;26.4,46.93066666666667&#xD;26.5,46.98166666666667&#xD;26.6,47.0245&#xD;26.7,47.06275&#xD;26.8,47.10133333333333&#xD;26.9,47.15233333333333&#xD;27,47.2025&#xD;27.1,47.24075&#xD;27.2,47.279&#xD;27.3,47.323&#xD;27.4,47.374&#xD;27.5,47.41875&#xD;27.6,47.457&#xD;27.7,47.49525&#xD;27.8,47.544666666666664&#xD;27.9,47.595666666666666&#xD;28,47.635000000000005&#xD;28.1,47.67325&#xD;28.2,47.715333333333334&#xD;28.3,47.766333333333336&#xD;28.4,47.81733333333334&#xD;28.5,47.868333333333325&#xD;28.6,47.9145&#xD;28.7,47.952749999999995&#xD;28.8,47.991&#xD;28.9,48.039&#xD;29,48.089999999999996&#xD;29.1,48.13075&#xD;29.2,48.169&#xD;29.3,48.209666666666664&#xD;29.4,48.260666666666665&#xD;29.5,48.308749999999996&#xD;29.6,48.346999999999994&#xD;29.7,48.38525&#xD;29.8,48.431333333333335&#xD;29.9,48.48233333333333&#xD;30,48.525&#xD;30.1,48.56325&#xD;30.2,48.602000000000004&#xD;30.3,48.653000000000006&#xD;30.4,48.703&#xD;30.5,48.74125&#xD;30.6,48.7795&#xD;30.7,48.82366666666667&#xD;30.8,48.87466666666667&#xD;30.9,48.925666666666665&#xD;31,48.97666666666667&#xD;31.1,49.02075&#xD;31.2,49.059&#xD;31.3,49.097249999999995&#xD;31.4,49.147333333333336&#xD;31.5,49.19833333333334&#xD;31.6,49.237&#xD;31.7,49.27525&#xD;31.8,49.318&#xD;31.9,49.369&#xD;32,49.415&#xD;32.1,49.45325&#xD;32.2,49.4915&#xD;32.3,49.53966666666666&#xD;32.4,49.59066666666667&#xD;32.5,49.63125&#xD;32.6,49.6695&#xD;32.7,49.71033333333334&#xD;32.8,49.76133333333333&#xD;32.9,49.809250000000006&#xD;33,49.847500000000004&#xD;33.1,49.88575&#xD;33.2,49.932&#xD;33.3,49.983000000000004&#xD;33.4,50.051&#xD;33.5,50.127500000000005&#xD;33.6,50.20264239271781&#xD;33.7,50.253178153446036&#xD;33.8,50.305600000000005&#xD;33.9,50.381800000000005&#xD;34,50.458000000000006&#xD;34.1,50.5342&#xD;34.2,50.60693333333333&#xD;34.3,50.65773333333333&#xD;34.4,50.7128&#xD;34.5,50.789&#xD;34.6,50.8652&#xD;34.7,50.939675&#xD;34.8,51.0132&#xD;34.9,51.089099999999995&#xD;35,51.14333333333333&#xD;35.1,51.193933333333334&#xD;35.2,51.2668&#xD;35.3,51.3427&#xD;35.4,51.41859999999999&#xD;35.5,51.4945&#xD;35.6,51.544799999999995&#xD;35.7,51.59310000000001&#xD;35.8,51.6648&#xD;35.9,51.7404&#xD;36,51.81600000000001&#xD;36.1,51.891600000000004&#xD;36.2,51.967200000000005&#xD;36.3,52.028533333333336&#xD;36.4,52.078933333333325&#xD;36.5,52.14008711433756&#xD;36.6,52.20980000000001&#xD;36.7,52.2851&#xD;36.8,52.360400000000006&#xD;36.9,52.42380000000001&#xD;37,52.474000000000004&#xD;37.1,52.536300000000004&#xD;37.2,52.611599999999996&#xD;37.3,52.6869&#xD;37.4,52.755338078291814&#xD;37.5,52.825&#xD;37.6,52.89999999999999&#xD;37.7,52.95&#xD;37.8,53&#xD;37.9,53.075&#xD;38,53.15&#xD;38.1,53.22180385288967&#xD;38.2,53.28721541155867&#xD;38.3,53.340066666666665&#xD;38.4,53.38986666666666&#xD;38.5,53.459500000000006&#xD;38.6,53.5342&#xD;38.7,53.608900000000006&#xD;38.8,53.6836&#xD;38.9,53.7583&#xD;39,53.822&#xD;39.1,53.87179999999999&#xD;39.2,53.927470769230766&#xD;39.3,53.99080615384615&#xD;39.4,54.063599999999994&#xD;39.5,54.138&#xD;39.6,54.20826666666667&#xD;39.7,54.257866666666665&#xD;39.8,54.3112&#xD;39.9,54.3856&#xD;40,54.46&#xD;40.1,54.52851275167785&#xD;40.2,54.590179865771816&#xD;40.3,54.6623&#xD;40.4,54.724266666666665&#xD;40.5,54.77366666666667&#xD;40.6,54.8346&#xD;40.7,54.908699999999996&#xD;40.8,54.9828&#xD;40.9,55.0569&#xD;41,55.117859484777526&#xD;41.1,55.160549414519906&#xD;41.2,55.20559999999999&#xD;41.3,55.279399999999995&#xD;41.4,55.3532&#xD;41.5,55.427&#xD;41.6,55.50079999999999&#xD;41.7,55.5746&#xD;41.8,55.632266666666666&#xD;41.9,55.681466666666665&#xD;42,55.736413570274635&#xD;42.1,55.79483360258481&#xD;42.2,55.867&#xD;42.3,55.9405&#xD;42.4,56.00933333333334&#xD;42.5,56.05833333333334&#xD;42.6,56.111000000000004&#xD;42.7,56.1845&#xD;42.8,56.245070063694264&#xD;42.9,56.302800000000005&#xD;43,56.376&#xD;43.1,56.4492&#xD;43.2,56.51493333333333&#xD;43.3,56.56373333333333&#xD;43.4,56.6188&#xD;43.5,56.69200000000001&#xD;43.6,56.76520000000001&#xD;43.7,56.8384&#xD;43.8,56.906370169491524&#xD;43.9,56.946568135593225&#xD;44,56.98676610169491&#xD;44.1,57.0489&#xD;44.2,57.12179999999999&#xD;44.3,57.1947&#xD;44.4,57.267599999999995&#xD;44.5,57.3405&#xD;44.6,57.40893333333334&#xD;44.7,57.45753333333333&#xD;44.8,57.50681898928025&#xD;44.9,57.56085206738131&#xD;45,57.61999999999999&#xD;45.1,57.692600000000006&#xD;45.2,57.76520000000001&#xD;45.3,57.825199999999995&#xD;45.4,57.873599999999996&#xD;45.5,57.93299999999999&#xD;45.6,58.0056&#xD;45.7,58.0782&#xD;45.8,58.13687590361445&#xD;45.9,58.189576506024096&#xD;46,58.258&#xD;46.1,58.3202&#xD;46.2,58.368399999999994&#xD;46.3,58.4249&#xD;46.4,58.4972&#xD;46.5,58.569500000000005&#xD;46.6,58.6418&#xD;46.7,58.70738864628821&#xD;46.8,58.7452751091703&#xD;46.9,58.78316157205241&#xD;47,58.839999999999996&#xD;47.1,58.912&#xD;47.2,58.983999999999995&#xD;47.3,59.056&#xD;47.4,59.2202&#xD;47.5,59.2925&#xD;47.6,59.4576&#xD;47.7,59.62329999999999&#xD;47.8,59.6962&#xD;47.9,59.769099999999995&#xD;48,59.936&#xD;48.1,60.1035&#xD;48.2,60.177&#xD;48.3,60.345400000000005&#xD;48.4,60.419200000000004&#xD;48.5,60.492999999999995&#xD;48.6,60.66260000000001&#xD;48.7,60.8328&#xD;48.8,61.003600000000006&#xD;48.9,61.0783&#xD;49,61.153&#xD;49.1,61.325&#xD;49.2,61.4&#xD;49.3,61.572900000000004&#xD;49.4,61.746399999999994&#xD;49.5,61.822&#xD;49.6,61.8976&#xD;49.7,62.0723&#xD;49.8,62.2476&#xD;49.9,62.423500000000004&#xD;50,62.5&#xD;50.1,62.576499999999996&#xD;50.2,62.653&#xD;50.3,62.729499999999994&#xD;50.4,62.806000000000004&#xD;50.5,62.88250000000001&#xD;50.6,62.959&#xD;50.7,63.0355&#xD;50.8,63.112&#xD;50.9,63.1885&#xD;51,63.26500000000001&#xD;51.1,63.34150000000001&#xD;51.2,63.41799999999999&#xD;51.3,63.494499999999995&#xD;51.4,63.57099999999999&#xD;51.5,63.647499999999994&#xD;51.6,63.72399999999999&#xD;51.7,63.800499999999985&#xD;51.8,63.87699999999999&#xD;51.9,63.953499999999984&#xD;52,64.03&#xD;52.1,64.11299999999999&#xD;52.2,64.23299999999999&#xD;52.3,64.30949999999999&#xD;52.4,64.386&#xD;52.5,64.4625&#xD;52.6,64.539&#xD;52.7,64.6155&#xD;52.8,64.692&#xD;52.9,64.76849999999999&#xD;53,64.845&#xD;53.1,64.92150000000001&#xD;53.2,64.998&#xD;53.3,65.0745&#xD;53.4,65.151&#xD;53.5,65.22749999999999&#xD;53.6,65.304&#xD;53.7,65.38050000000001&#xD;53.8,65.457&#xD;53.9,65.53349999999999&#xD;54,65.61&#xD;54.1,65.6865&#xD;54.2,65.763&#xD;54.3,65.8395&#xD;54.4,65.916&#xD;54.5,65.99249999999999&#xD;54.6,66.069&#xD;54.7,66.1455&#xD;54.8,66.22200000000001&#xD;54.9,66.2985&#xD;55,66.375&#xD;55.1,66.4515&#xD;55.2,66.528&#xD;55.3,66.6045&#xD;55.4,66.68100000000001&#xD;55.5,66.75750000000001&#xD;55.6,66.834&#xD;55.7,66.9105&#xD;55.8,66.987&#xD;55.9,67.0635&#xD;56,67.14000000000001&#xD;56.1,67.21650000000001&#xD;56.2,67.293&#xD;56.3,67.4195&#xD;56.4,67.496&#xD;56.5,67.5725&#xD;56.6,67.649&#xD;56.7,67.7255&#xD;56.8,67.80199999999999&#xD;56.9,67.8785&#xD;57,67.955&#xD;57.1,68.0315&#xD;57.2,68.10799999999999&#xD;57.3,68.18449999999999&#xD;57.4,68.261&#xD;57.5,68.33749999999999&#xD;57.6,68.41399999999999&#xD;57.7,68.4905&#xD;57.8,68.567&#xD;57.9,68.64349999999999&#xD;58,68.72&#xD;58.1,68.7965&#xD;58.2,68.873&#xD;58.3,68.9495&#xD;58.4,69.026&#xD;58.5,69.10249999999999&#xD;58.6,69.179&#xD;58.7,69.2555&#xD;58.8,69.332&#xD;58.9,69.40566666666666&#xD;59,69.45666666666666&#xD;59.1,69.51149999999998&#xD;59.2,69.588&#xD;59.3,69.6645&#xD;59.4,69.741&#xD;59.5,69.8175&#xD;59.6,69.89399999999999&#xD;59.7,69.9705&#xD;59.8,70.047&#xD;59.9,70.1235&#xD;60,70.2&#xD;60.1,70.251&#xD;60.2,70.303&#xD;60.3,70.37950000000001&#xD;60.4,70.456&#xD;60.5,70.5325&#xD;60.6,70.60900000000001&#xD;60.7,70.6855&#xD;60.8,70.762&#xD;60.9,70.83850000000001&#xD;61,70.915&#xD;61.1,70.9915&#xD;61.2,71.06800000000001&#xD;61.3,71.12966666666667&#xD;61.4,71.18066666666667&#xD;61.5,71.24749999999999&#xD;61.6,71.324&#xD;61.7,71.4005&#xD;61.8,71.477&#xD;61.9,71.5535&#xD;62,71.63&#xD;62.1,71.70649999999999&#xD;62.2,71.783&#xD;62.3,71.8595&#xD;62.4,71.936&#xD;62.5,72.00833333333334&#xD;62.6,72.05933333333334&#xD;62.7,72.1155&#xD;62.8,72.19200000000001&#xD;62.9,72.2685&#xD;63,72.345&#xD;63.1,72.42150000000001&#xD;63.2,72.498&#xD;63.3,72.57450000000001&#xD;63.4,72.65100000000001&#xD;63.5,72.7275&#xD;63.6,72.80266666666667&#xD;63.7,72.85366666666667&#xD;63.8,72.907&#xD;63.9,72.98349999999999&#xD;64,73.05999999999999&#xD;64.1,73.1365&#xD;64.2,73.213&#xD;64.3,73.2895&#xD;64.4,73.366&#xD;64.5,73.44250000000001&#xD;64.6,73.519&#xD;64.7,73.5955&#xD;64.8,73.672&#xD;64.9,73.73233333333334&#xD;65,73.78333333333333&#xD;65.1,73.8515&#xD;65.2,73.928&#xD;65.3,74.0045&#xD;65.4,74.08099999999999&#xD;65.5,74.1575&#xD;65.6,74.23400000000001&#xD;65.7,74.3105&#xD;65.8,74.387&#xD;65.9,74.4635&#xD;66,74.52666666666667&#xD;66.1,74.57766666666666&#xD;66.2,74.643&#xD;66.3,74.71950000000001&#xD;66.4,74.796&#xD;66.5,74.8725&#xD;66.6,74.94900000000001&#xD;66.7,75.05100000000002&#xD;66.8,75.152&#xD;66.9,75.257&#xD;67,75.355&#xD;67.1,75.46300000000001&#xD;67.2,75.608&#xD;67.3,75.68450000000001&#xD;67.4,75.811&#xD;67.5,75.8875&#xD;67.6,76.01400000000001&#xD;67.7,76.0905&#xD;67.8,76.23400000000001&#xD;67.9,76.34350000000002&#xD;68,76.44000000000003&#xD;68.1,76.54650000000001&#xD;68.2,76.64600000000002&#xD;68.3,76.799&#xD;68.4,76.876&#xD;68.5,77.00250000000001&#xD;68.6,77.07900000000001&#xD;68.7,77.21100000000003&#xD;68.8,77.33200000000001&#xD;68.9,77.41699999999999&#xD;69,77.535&#xD;69.1,77.62299999999999&#xD;69.2,77.73799999999999&#xD;69.3,77.82899999999998&#xD;69.4,77.98199999999999&#xD;69.5,78.06749999999998&#xD;69.6,78.18799999999999&#xD;69.7,78.2705&#xD;69.8,78.39399999999999&#xD;69.9,78.5235&#xD;70,78.6&#xD;70.1,78.7265&#xD;70.2,78.806&#xD;70.3,78.95899999999999&#xD;70.4,79.056&#xD;70.5,79.16499999999999&#xD;70.6,79.31799999999998&#xD;70.7,79.47099999999999&#xD;70.8,79.62400000000001&#xD;70.9,79.77700000000002&#xD;71,80.03&#xD;71.1,80.183&#xD;71.2,80.436&#xD;71.3,80.589&#xD;71.4,80.742&#xD;71.5,80.895&#xD;71.6,81.148&#xD;71.7,81.30100000000002&#xD;71.8,81.45400000000001&#xD;71.9,81.70700000000001&#xD;72,81.86&#xD;72.1,82.11300000000001&#xD;72.2,82.266&#xD;72.3,82.41900000000001&#xD;72.4,82.572&#xD;72.5,82.82500000000002&#xD;72.6,82.97800000000001&#xD;72.7,83.131&#xD;72.8,83.38399999999999&#xD;72.9,83.53699999999999&#xD;73,83.68999999999998&#xD;73.1,83.943&#xD;73.2,84.09599999999998&#xD;73.3,84.249&#xD;73.4,84.50199999999998&#xD;73.5,84.655&#xD;73.6,84.80799999999999&#xD;73.7,85.06099999999999&#xD;73.8,85.214&#xD;73.9,85.36699999999999&#xD;74,85.61999999999999&#xD;74.1,85.773&#xD;74.2,85.926&#xD;74.3,86.179&#xD;74.4,86.33199999999998&#xD;74.5,86.48499999999999&#xD;74.6,86.738&#xD;74.7,86.891&#xD;74.8,87.044&#xD;74.9,87.197&#xD;75,87.45&#xD;75.1,87.5515&#xD;75.2,87.628&#xD;75.3,87.7045&#xD;75.4,87.78099999999999&#xD;75.5,87.85749999999999&#xD;75.6,87.934&#xD;75.7,88.01050000000001&#xD;75.8,88.087&#xD;75.9,88.1635&#xD;76,88.24000000000001&#xD;76.1,88.3165&#xD;76.2,88.393&#xD;76.3,88.4695&#xD;76.4,88.54599999999999&#xD;76.5,88.6225&#xD;76.6,88.699&#xD;76.7,88.7755&#xD;76.8,88.852&#xD;76.9,88.9285&#xD;77,89.00333333333334&#xD;77.1,89.05433333333335&#xD;77.2,89.108&#xD;77.3,89.18450000000001&#xD;77.4,89.261&#xD;77.5,89.3375&#xD;77.6,89.414&#xD;77.7,89.4905&#xD;77.8,89.567&#xD;77.9,89.64349999999999&#xD;78,89.72&#xD;78.1,89.79650000000001&#xD;78.2,89.873&#xD;78.3,89.9495&#xD;78.4,90.02600000000001&#xD;78.5,90.1025&#xD;78.6,90.179&#xD;78.7,90.25550000000001&#xD;78.8,90.332&#xD;78.9,90.4085&#xD;79,90.485&#xD;79.1,90.5615&#xD;79.2,90.638&#xD;79.3,90.7145&#xD;79.4,90.79100000000001&#xD;79.5,90.8675&#xD;79.6,90.944&#xD;79.7,91.0205&#xD;79.8,91.09700000000001&#xD;79.9,91.1735&#xD;80,91.25&#xD;80.1,91.32650000000001&#xD;80.2,91.403&#xD;80.3,91.4795&#xD;80.4,91.55600000000001&#xD;80.5,91.63250000000002&#xD;80.6,91.70900000000002&#xD;80.7,91.78550000000001&#xD;80.8,91.86200000000001&#xD;80.9,91.9385&#xD;81,92.015&#xD;81.1,92.09149999999998&#xD;81.2,92.14533333333333&#xD;81.3,92.19633333333333&#xD;81.4,92.27099999999999&#xD;81.5,92.3475&#xD;81.6,92.42399999999999&#xD;81.7,92.50049999999999&#xD;81.8,92.57699999999998&#xD;81.9,92.65349999999998&#xD;82,92.72999999999999&#xD;82.1,92.8065&#xD;82.2,92.883&#xD;82.3,92.95949999999999&#xD;82.4,93.036&#xD;82.5,93.1125&#xD;82.6,93.189&#xD;82.7,93.2655&#xD;82.8,93.342&#xD;82.9,93.4185&#xD;83,93.49499999999999&#xD;83.1,93.5715&#xD;83.2,93.648&#xD;83.3,93.71225&#xD;83.4,93.7505&#xD;83.5,93.78875000000001&#xD;83.6,93.81800000000001&#xD;83.7,93.8435&#xD;83.8,93.869&#xD;83.9,93.8945&#xD;84,93.92&#xD;84.1,93.94550000000001&#xD;84.2,93.971&#xD;84.3,93.9965&#xD;84.4,94.022&#xD;84.5,94.0475&#xD;84.6,94.07300000000001&#xD;84.7,94.0985&#xD;84.8,94.1288&#xD;84.9,94.1594&#xD;85,94.19&#xD;85.1,94.21716666666666&#xD;85.2,94.24266666666666&#xD;85.3,94.26816666666666&#xD;85.4,94.29366666666667&#xD;85.5,94.31916666666666&#xD;85.6,94.34466666666665&#xD;85.7,94.37016666666668&#xD;85.8,94.39566666666667&#xD;85.9,94.42116666666666&#xD;86,94.44666666666667&#xD;86.1,94.47216666666667&#xD;86.2,94.49766666666667&#xD;86.3,94.52316666666667&#xD;86.4,94.54866666666666&#xD;86.5,94.57416666666667&#xD;86.6,94.59966666666666&#xD;86.7,94.62516666666667&#xD;86.8,94.65066666666667&#xD;86.9,94.67616666666666&#xD;87,94.70166666666667&#xD;87.1,94.72716666666666&#xD;87.2,94.75266666666667&#xD;87.3,94.77816666666666&#xD;87.4,94.80366666666666&#xD;87.5,94.82916666666667&#xD;87.6,94.85466666666666&#xD;87.7,94.88016666666667&#xD;87.8,94.9068&#xD;87.9,94.9374&#xD;88,94.968&#xD;88.1,94.9986&#xD;88.2,95.02433333333333&#xD;88.3,95.04983333333334&#xD;88.4,95.07533333333333&#xD;88.5,95.10083333333333&#xD;88.6,95.12633333333333&#xD;88.7,95.15183333333333&#xD;88.8,95.17733333333334&#xD;88.9,95.20283333333333&#xD;89,95.22833333333332&#xD;89.1,95.25383333333333&#xD;89.2,95.27933333333333&#xD;89.3,95.30483333333333&#xD;89.4,95.33033333333333&#xD;89.5,95.35583333333332&#xD;89.6,95.38133333333333&#xD;89.7,95.40683333333332&#xD;89.8,95.43233333333333&#xD;89.9,95.45783333333334&#xD;90,95.48333333333333&#xD;90.1,95.50883333333334&#xD;90.2,95.53433333333334&#xD;90.3,95.55983333333333&#xD;90.4,95.58533333333334&#xD;90.5,95.61083333333333&#xD;90.6,95.63633333333334&#xD;90.7,95.66183333333333&#xD;90.8,95.68733333333333&#xD;90.9,95.7154&#xD;91,95.74600000000001&#xD;91.1,95.7766&#xD;91.2,95.80600000000001&#xD;91.3,95.8315&#xD;91.4,95.857&#xD;91.5,95.88250000000001&#xD;91.6,95.908&#xD;91.7,95.93350000000001&#xD;91.8,95.959&#xD;91.9,95.9845&#xD;92,96.01&#xD;92.1,96.0355&#xD;92.2,96.061&#xD;92.3,96.0865&#xD;92.4,96.112&#xD;92.5,96.1375&#xD;92.6,96.163&#xD;92.7,96.1885&#xD;92.8,96.214&#xD;92.9,96.23949999999999&#xD;93,96.265&#xD;93.1,96.2905&#xD;93.2,96.316&#xD;93.3,96.34150000000001&#xD;93.4,96.367&#xD;93.5,96.39250000000001&#xD;93.6,96.418&#xD;93.7,96.4435&#xD;93.8,96.469&#xD;93.9,96.49449999999999&#xD;94,96.524&#xD;94.1,96.5546&#xD;94.2,96.5852&#xD;94.3,96.61316666666667&#xD;94.4,96.63866666666667&#xD;94.5,96.66416666666666&#xD;94.6,96.68966666666667&#xD;94.7,96.71516666666666&#xD;94.8,96.74066666666667&#xD;94.9,96.76616666666666&#xD;95,96.79166666666666&#xD;95.1,96.81716666666667&#xD;95.2,96.84266666666666&#xD;95.3,96.86816666666667&#xD;95.4,96.89366666666666&#xD;95.5,96.91916666666665&#xD;95.6,96.94466666666666&#xD;95.7,96.97016666666667&#xD;95.8,96.99566666666666&#xD;95.9,97.0635&#xD;96,97.14000000000001&#xD;96.1,97.21650000000001&#xD;96.2,97.293&#xD;96.3,97.34633333333333&#xD;96.4,97.39733333333334&#xD;96.5,97.4725&#xD;96.6,97.54899999999999&#xD;96.7,97.62549999999999&#xD;96.8,97.702&#xD;96.9,97.7785&#xD;97,97.85499999999999&#xD;97.1,97.9315&#xD;97.2,98.008&#xD;97.3,98.0845&#xD;97.4,98.14066666666666&#xD;97.5,98.19166666666666&#xD;97.6,98.264&#xD;97.7,98.3405&#xD;97.8,98.417&#xD;97.9,98.4935&#xD;98,98.57&#xD;98.1,98.64649999999999&#xD;98.2,98.72299999999998&#xD;98.3,98.7995&#xD;98.4,98.85066666666667&#xD;98.5,98.90249999999999&#xD;98.6,98.979&#xD;98.7,99.0555&#xD;98.8,99.13199999999999&#xD;98.9,99.20849999999999&#xD;99,99.285&#xD;99.1,99.3615&#xD;99.2,99.438&#xD;99.3,99.5145&#xD;99.4,99.59100000000001&#xD;99.5,99.64500000000001&#xD;99.6,99.696&#xD;99.7,99.7705&#xD;99.8,99.8235&#xD;99.9,99.86175&#xD;100,100</l></custom-block><l><option>csv</option></l></block></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ colors"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ colors</l><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>128</l><l>128</l><l>128</l></list></block><block s="reportNewList"><list><l>192</l><l>192</l><l>192</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>255</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>85</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>139</l><l>69</l><l>19</l></list></block><block s="reportNewList"><list><l>70</l><l>5</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>127</l><l>0</l></list></block><block s="reportNewList"><list><l>140</l><l>60</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>0</l></list></block><block s="reportNewList"><list><l>114</l><l>93</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>30</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>50</l><l>50</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>64</l></list></block><block s="reportNewList"><list><l>80</l><l>0</l><l>90</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block></list></block></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ brights"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ brights</l><block s="reportNewList"><list><block s="reportNewList"><list><l>255</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>170</l><l>20</l><l>0</l></list></block><block s="reportNewList"><list><l>139</l><l>69</l><l>19</l></list></block><block s="reportNewList"><list><l>170</l><l>90</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>127</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>160</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>0</l></list></block><block s="reportNewList"><list><l>190</l><l>255</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>240</l><l>200</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>127</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>60</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>128</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>64</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>0</l></list></block></list></block></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ pivots"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ pivots</l><block s="reportNewList"><list><l>0</l><l>5.8</l><l>12.5</l><l>18</l><l>25</l><l>30.5</l><l>37.5</l><l>44.5</l><l>50</l><l>59</l><l>62.5</l><l>69</l><l>75</l><l>79.25</l><l>87.5</l><l>93.75</l><l>97</l><l>100</l></list></block></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ HSV brights"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ HSV brights</l><block s="reportTextSplit"><custom-block s="multiline %mlt"><l>0,1,1&#xD;0.0196078431372549,1,0.6666666666666666&#xD;0.06944444444444443,0.8633093525179856,0.5450980392156862&#xD;0.08823529411764708,1,0.6666666666666666&#xD;0.08300653594771241,1,1&#xD;0.10457516339869281,1,1&#xD;0.16666666666666666,1,1&#xD;0.20915032679738563,1,1&#xD;0.3333333333333333,1,1&#xD;0.47222222222222227,1,0.9411764705882353&#xD;0.5,1,1&#xD;0.5836601307189543,1,1&#xD;0.6666666666666666,1,1&#xD;0.7058823529411765,1,1&#xD;0.7503267973856209,1,1&#xD;0.8333333333333334,1,1&#xD;0.9581699346405229,1,1&#xD;1,1,1</l></custom-block><l><option>csv</option></l></block></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ HSL brights"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ HSL brights</l><block s="reportTextSplit"><custom-block s="multiline %mlt"><l>0,100,50&#xD;1.9607843137254901,100,33.33333333333333&#xD;6.944444444444444,75.94936708860757,30.980392156862745&#xD;8.823529411764708,100,33.33333333333333&#xD;8.30065359477124,100,50&#xD;10.457516339869281,100,50&#xD;16.666666666666664,100,50&#xD;20.915032679738562,100,50&#xD;33.33333333333333,100,50&#xD;47.22222222222223,100,50&#xD;50,100,50&#xD;58.36601307189543,100,50&#xD;66.66666666666666,100,50&#xD;70.58823529411765,100,50&#xD;75.0326797385621,100,50&#xD;83.33333333333334,100,50&#xD;95.81699346405229,100,50&#xD;100,100,50</l></custom-block><l><option>csv</option></l></block></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ HSV colors"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ HSV colors</l><block s="reportTextSplit"><custom-block s="multiline %mlt"><l>0,0,0&#xD;0,0,50.19607843137255&#xD;0,0,75.29411764705883&#xD;0,0,100&#xD;0,100,100&#xD;0,100,33.33333333333333&#xD;6.944444444444444,86.33093525179856,54.509803921568626&#xD;1.1904761904761905,100,27.450980392156865&#xD;8.30065359477124,100,100&#xD;7.142857142857142,100,54.90196078431373&#xD;16.666666666666664,100,100&#xD;13.596491228070173,100,44.70588235294118&#xD;33.33333333333333,100,100&#xD;33.33333333333333,100,11.76470588235294&#xD;50,100,100&#xD;50,100,19.607843137254903&#xD;66.66666666666666,100,100&#xD;66.66666666666666,100,25.098039215686274&#xD;81.4814814814815,100,35.294117647058826&#xD;83.33333333333334,100,100&#xD;100,0,0</l></custom-block><l><option>csv</option></l></block></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ HSL colors"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ HSL colors</l><block s="reportTextSplit"><custom-block s="multiline %mlt"><l>0,0,0&#xD;0,0,50.19607843137255&#xD;0,0,75.29411764705883&#xD;0,0,100&#xD;0,100,50&#xD;0,100,16.666666666666664&#xD;6.944444444444444,75.94936708860757,30.980392156862745&#xD;1.1904761904761905,100,13.725490196078432&#xD;8.30065359477124,100,50&#xD;7.142857142857142,100,27.450980392156865&#xD;16.666666666666664,100,50&#xD;13.596491228070173,100,22.35294117647059&#xD;33.33333333333333,100,50&#xD;33.33333333333333,100,5.88235294117647&#xD;50,100,50&#xD;50,100,9.803921568627452&#xD;66.66666666666666,100,50&#xD;66.66666666666666,100,12.549019607843137&#xD;81.4814814814815,100,17.647058823529413&#xD;83.33333333333334,100,50&#xD;0,0,0</l></custom-block><l><option>csv</option></l></block></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ dimension names"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ dimension names</l><block s="reportNewList"><list><l>color</l><l>color number</l><l>crayon</l><l>fair hue</l><l>size</l><l>transparency</l><l>X11/W3C name</l><l>fair saturation (HSL)</l><l>fair lightness</l><l>fair HSL vector</l><l>fair saturation (HSV)</l><l>fair value (brightness)</l><l>fair HSV vector</l><l>hue</l><l>saturation (HSL)</l><l>lightness</l><l>HSL vector</l><l>saturation (HSV)</l><l>value (brightness)</l><l>HSV vector</l><l>red</l><l>green</l><l>blue</l><l>RGB(A) vector</l><l>RGB(A) hex</l></list></block></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ dimension dispatch"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ dimension dispatch</l><block s="reportNewList"><list><block s="reifyScript"><script><custom-block s="✐ set pen to color %obj %l"><l/><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to color number %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to crayon %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to fair hue %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen size to %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen transparency to %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to X11 name %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to fair saturation (HSL) %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to fair lightness %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to fair HSL vector %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to fair saturation (HSV) %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to fair value (brightness) %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to fair HSV vector %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to hue %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to HSL saturation %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to lightness %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to HSL vector %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen saturation (HSV) to %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen value (brightness) to %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to HSV vector %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen red to %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen green to %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen blue to %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to RGB vector %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to RGB hex %s %l"><l></l><l/></custom-block></script><list></list></block></list></block></block></script></block></script><scripts><script x="327.1142578125" y="21806.466666666656"><block s="reportTextSplit"><custom-block s="multiline %mlt"><l></l></custom-block><l><option>csv</option></l></block></script></scripts></block-definition><block-definition s="✐ crayon number of color %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>table entry</l></list></block><block s="doSetVar"><l>table entry</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportOr"><block s="reportAnd"><block s="reportIsA"><block var="color"/><l><option>costume</option></l></block><block s="reportEquals"><custom-block s="✐ RGB from color %s"><block var="color"/></custom-block><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>3</l></block><l/></block></block></block><block s="reportEquals"><block var="color"/><block s="reportListItem"><l>4</l><l/></block></block></block></autolambda><list></list></block><block var="✐ crayon colors"/></block></block><block s="doIf"><block s="reportIsA"><block var="table entry"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportListItem"><l>5</l><block var="table entry"/></block></block></script></block><block s="doReport"><l>not a crayon</l></block></script></block-definition><block-definition s="✐ RGB from color %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="color"/><l><option>list</option></l></block><script><block s="doReport"><block var="color"/></block></script><script><block s="doReport"><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>3</l></block><block s="reportListItem"><l>1</l><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="color"/></block></block></block></block></script></block></script></block-definition><block-definition s="✐ X11 name of color %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>table entry</l></list></block><block s="doSetVar"><l>table entry</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportOr"><block s="reportAnd"><block s="reportIsA"><block var="color"/><l><option>costume</option></l></block><block s="reportEquals"><custom-block s="✐ RGB from color %s"><block var="color"/></custom-block><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>3</l></block><l/></block></block></block><block s="reportEquals"><block var="color"/><block s="reportListItem"><l>4</l><l/></block></block></block></autolambda><list></list></block><block var="✐ X11"/></block></block><block s="doIf"><block s="reportIsA"><block var="table entry"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportListItem"><l>4</l><block var="table entry"/></block></block></script></block><block s="doReport"><l>not an X11 color</l></block></script></block-definition><block-definition s="✐ make fair hue table" type="command" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>hues</l><l>fair hues</l><l>hue table index</l><l>fair hue ceiling</l><l>bottom hue</l></list></block><block s="doSetVar"><l>hues</l><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l></list></block></list></block></block><block s="doFor"><l>fairhue10</l><l>1</l><l>1000</l><script><custom-block s="$brush set pen %s to %s %mult%s"><l>fair hue</l><block s="reportQuotient"><block var="fairhue10"/><l>10</l></block><list><l></l></list></custom-block><block s="doIf"><block s="reportGreaterThanOrEquals"><block s="reportVariadicProduct"><list><l>10</l><block s="getPenAttribute"><l><option>hue</option></l></block></list></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l><option>last</option></l><block var="hues"/></block></block></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportVariadicProduct"><list><l>10</l><block s="getPenAttribute"><l><option>hue</option></l></block></list></block><block var="fairhue10"/></list></block><block var="hues"/></block></script></block></script></block><block s="doReplaceInList"><l>1</l><block s="reportListItem"><l><option>last</option></l><block var="hues"/></block><l>1000</l></block><block s="doSetVar"><l>hues</l><block s="reportListAttribute"><l><option>columns</option></l><block s="reportCONS"><block s="reportNumbers"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="hues"/></block></block><block s="reportListAttribute"><l><option>columns</option></l><block var="hues"/></block></block></block></block><block s="doSetVar"><l>fair hues</l><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l></list></block></list></block></block><block s="doFor"><l>hue10</l><l>1</l><l>1000</l><script><block s="doSetVar"><l>fair hue ceiling</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportGreaterThanOrEquals"><block s="reportListItem"><l>2</l><l/></block><block var="hue10"/></block></autolambda><list></list></block><block var="hues"/></block></block><block s="doSetVar"><l>bottom hue</l><block s="reportListItem"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="fair hue ceiling"/></block><l>1</l></block><block var="hues"/></block></block><block s="doAddToList"><block s="reportNewList"><list><block var="hue10"/><block s="reportVariadicSum"><list><block s="reportListItem"><l>3</l><block var="bottom hue"/></block><block s="reportQuotient"><block s="reportDifference"><block var="hue10"/><block s="reportListItem"><l>2</l><block var="bottom hue"/></block></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="fair hue ceiling"/></block><block s="reportListItem"><l>2</l><block var="bottom hue"/></block></block></block></list></block></list></block><block var="fair hues"/></block></script></block><block s="doReplaceInList"><l>2</l><block s="reportListItem"><l><option>last</option></l><block var="fair hues"/></block><l>1000</l></block><block s="doSetVar"><l>✐ fair hue table</l><block s="reportQuotient"><block var="fair hues"/><l>10</l></block></block></script></block-definition><block-definition s="✐ include transparency %&apos;rgb&apos; %&apos;transparency&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="transparency"/><l><option>number</option></l></block><script><block s="doSetVar"><l>transparency</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportDifference"><l>100</l><block var="transparency"/></block><l>255</l></list></block><l>100</l></block></block></script><script><block s="doSetVar"><l>transparency</l><l>255</l></block></script></block><block s="doReport"><block s="reportNewCostume"><block s="reportNewList"><list><block s="reportConcatenatedLists"><list><block var="rgb"/><block s="reportNewList"><list><block var="transparency"/></list></block></list></block></list></block><l>1</l><l>1</l></block></block></script></block-definition><block-definition s="✐ extract rgba values %&apos;value&apos; %&apos;transparency&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>red</l><l>green</l><l>blue</l></list></block><block s="doIf"><block s="reportIsA"><block var="value"/><l><option>costume</option></l></block><script><block s="doSetVar"><l>value</l><block s="reportListItem"><l>1</l><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="value"/></block></block></block></script></block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="value"/></block><l><option>number</option></l></block><script><block s="doSetVar"><l>red</l><block s="reportListItem"><l>1</l><block var="value"/></block></block><block s="doSetVar"><l>green</l><block s="reportListItem"><l>2</l><block var="value"/></block></block><block s="doSetVar"><l>blue</l><block s="reportListItem"><l>3</l><block var="value"/></block></block><block s="doSetVar"><l>transparency</l><block s="reportListItem"><l>4</l><block var="value"/></block></block></script><script><block s="doSetVar"><l>red</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="value"/></block></block></block><block s="doSetVar"><l>green</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="value"/></block></block></block><block s="doSetVar"><l>blue</l><block s="reportListItem"><l>3</l><block s="reportListItem"><l>1</l><block var="value"/></block></block></block><block s="doIfElse"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="value"/></block></block><l>3</l></block><script><block s="doSetVar"><l>transparency</l><block s="reportListItem"><l>4</l><block s="reportListItem"><l>1</l><block var="value"/></block></block></block></script><script><block s="doSetVar"><l>transparency</l><block s="reportListItem"><l>2</l><block var="value"/></block></block></script></block></script></block><block s="doReport"><block s="reportNewList"><list><block var="red"/><block var="green"/><block var="blue"/></list></block></block></script></block-definition><block-definition s="✐ RGB from HSV %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>hue</l><l>saturation</l><l>value</l><l>chroma</l><l>hue prime</l><l>2nd largest component</l><l>red</l><l>green</l><l>blue</l><l>smallest component</l><l>rgb</l></list></block><block s="doSetVar"><l>hue</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportModulus"><block s="reportListItem"><l>1</l><block var="color"/></block><l>100</l></block><l>360</l></list></block><l>100</l></block></block><block s="doSetVar"><l>saturation</l><block s="reportQuotient"><block s="reportVariadicMin"><list><block s="reportVariadicMax"><list><block s="reportListItem"><l>2</l><block var="color"/></block><l>0</l></list></block><l>100</l></list></block><l>100</l></block></block><block s="doSetVar"><l>value</l><block s="reportQuotient"><block s="reportVariadicMin"><list><block s="reportVariadicMax"><list><block s="reportListItem"><l>3</l><block var="color"/></block><l>0</l></list></block><l>100</l></list></block><l>100</l></block></block><block s="doSetVar"><l>chroma</l><block s="reportVariadicProduct"><list><block var="value"/><block var="saturation"/></list></block></block><block s="doSetVar"><l>hue prime</l><block s="reportQuotient"><block var="hue"/><l>60</l></block></block><block s="doSetVar"><l>2nd largest component</l><block s="reportVariadicProduct"><list><block var="chroma"/><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block s="reportModulus"><block var="hue prime"/><l>2</l></block><l>1</l></block></block></block></list></block></block><block s="doIfElse"><block s="reportLessThanOrEquals"><block var="hue prime"/><l>1</l></block><script><block s="doSetVar"><l>red</l><block var="chroma"/></block><block s="doSetVar"><l>green</l><block var="2nd largest component"/></block><block s="doSetVar"><l>blue</l><l>0</l></block></script><script><block s="doIfElse"><block s="reportLessThanOrEquals"><block var="hue prime"/><l>2</l></block><script><block s="doSetVar"><l>red</l><block var="2nd largest component"/></block><block s="doSetVar"><l>green</l><block var="chroma"/></block><block s="doSetVar"><l>blue</l><l>0</l></block></script><script><block s="doIfElse"><block s="reportLessThanOrEquals"><block var="hue prime"/><l>3</l></block><script><block s="doSetVar"><l>red</l><l>0</l></block><block s="doSetVar"><l>green</l><block var="chroma"/></block><block s="doSetVar"><l>blue</l><block var="2nd largest component"/></block></script><script><block s="doIfElse"><block s="reportLessThanOrEquals"><block var="hue prime"/><l>4</l></block><script><block s="doSetVar"><l>red</l><l>0</l></block><block s="doSetVar"><l>green</l><block var="2nd largest component"/></block><block s="doSetVar"><l>blue</l><block var="chroma"/></block></script><script><block s="doIfElse"><block s="reportLessThanOrEquals"><block var="hue prime"/><l>5</l></block><script><block s="doSetVar"><l>red</l><block var="2nd largest component"/></block><block s="doSetVar"><l>green</l><l>0</l></block><block s="doSetVar"><l>blue</l><block var="chroma"/></block></script><script><block s="doSetVar"><l>red</l><block var="chroma"/></block><block s="doSetVar"><l>green</l><l>0</l></block><block s="doSetVar"><l>blue</l><block var="2nd largest component"/></block></script></block></script></block></script></block></script></block></script></block><block s="doSetVar"><l>smallest component</l><block s="reportDifference"><block var="value"/><block var="chroma"/></block></block><block s="doSetVar"><l>rgb</l><block s="reportVariadicSum"><list><block s="reportNewList"><list><block var="red"/><block var="green"/><block var="blue"/></list></block><block var="smallest component"/></list></block></block><block s="doReport"><block s="reportVariadicProduct"><list><block var="rgb"/><l>255</l></list></block></block></script></block-definition><block-definition s="✐ RGB from HSL %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>hue</l><l>saturation</l><l>lightness</l><l>chroma</l><l>hue prime</l><l>2nd largest component</l><l>red</l><l>green</l><l>blue</l><l>smallest component</l><l>rgb</l></list></block><block s="doSetVar"><l>hue</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportModulus"><block s="reportListItem"><l>1</l><block var="color"/></block><l>100</l></block><l>360</l></list></block><l>100</l></block></block><block s="doSetVar"><l>saturation</l><block s="reportQuotient"><block s="reportVariadicMin"><list><block s="reportVariadicMax"><list><block s="reportListItem"><l>2</l><block var="color"/></block><l>0</l></list></block><l>100</l></list></block><l>100</l></block></block><block s="doSetVar"><l>lightness</l><block s="reportQuotient"><block s="reportVariadicMin"><list><block s="reportVariadicMax"><list><block s="reportListItem"><l>3</l><block var="color"/></block><l>0</l></list></block><l>100</l></list></block><l>100</l></block></block><block s="doSetVar"><l>chroma</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block s="reportVariadicProduct"><list><l>2</l><block var="lightness"/></list></block><l>1</l></block></block></block><block var="saturation"/></list></block></block><block s="doSetVar"><l>hue prime</l><block s="reportQuotient"><block var="hue"/><l>60</l></block></block><block s="doSetVar"><l>2nd largest component</l><block s="reportVariadicProduct"><list><block var="chroma"/><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block s="reportModulus"><block var="hue prime"/><l>2</l></block><l>1</l></block></block></block></list></block></block><block s="doIfElse"><block s="reportLessThanOrEquals"><block var="hue prime"/><l>1</l></block><script><block s="doSetVar"><l>red</l><block var="chroma"/></block><block s="doSetVar"><l>green</l><block var="2nd largest component"/></block><block s="doSetVar"><l>blue</l><l>0</l></block></script><script><block s="doIfElse"><block s="reportLessThanOrEquals"><block var="hue prime"/><l>2</l></block><script><block s="doSetVar"><l>red</l><block var="2nd largest component"/></block><block s="doSetVar"><l>green</l><block var="chroma"/></block><block s="doSetVar"><l>blue</l><l>0</l></block></script><script><block s="doIfElse"><block s="reportLessThanOrEquals"><block var="hue prime"/><l>3</l></block><script><block s="doSetVar"><l>red</l><l>0</l></block><block s="doSetVar"><l>green</l><block var="chroma"/></block><block s="doSetVar"><l>blue</l><block var="2nd largest component"/></block></script><script><block s="doIfElse"><block s="reportLessThanOrEquals"><block var="hue prime"/><l>4</l></block><script><block s="doSetVar"><l>red</l><l>0</l></block><block s="doSetVar"><l>green</l><block var="2nd largest component"/></block><block s="doSetVar"><l>blue</l><block var="chroma"/></block></script><script><block s="doIfElse"><block s="reportLessThanOrEquals"><block var="hue prime"/><l>5</l></block><script><block s="doSetVar"><l>red</l><block var="2nd largest component"/></block><block s="doSetVar"><l>green</l><l>0</l></block><block s="doSetVar"><l>blue</l><block var="chroma"/></block></script><script><block s="doSetVar"><l>red</l><block var="chroma"/></block><block s="doSetVar"><l>green</l><l>0</l></block><block s="doSetVar"><l>blue</l><block var="2nd largest component"/></block></script></block></script></block></script></block></script></block></script></block><block s="doSetVar"><l>smallest component</l><block s="reportDifference"><block var="lightness"/><block s="reportQuotient"><block var="chroma"/><l>2</l></block></block></block><block s="doSetVar"><l>rgb</l><block s="reportVariadicSum"><list><block s="reportNewList"><list><block var="red"/><block var="green"/><block var="blue"/></list></block><block var="smallest component"/></list></block></block><block s="doReport"><block s="reportVariadicProduct"><list><block var="rgb"/><l>255</l></list></block></block></script></block-definition><block-definition s="✐ color number near color %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>hue</l><l>saturation</l><l>lightness</l><l>hsl</l></list></block><block s="doSetVar"><l>color</l><custom-block s="✐ extract rgba values %l %upvar"><block var="color"/><l>transparency</l></custom-block></block><block s="doSetVar"><l>hsl</l><custom-block s="✐ HSL/HSV (hsl? %b ) from RGB %s"><l><bool>true</bool></l><block var="color"/></custom-block></block><block s="doSetVar"><l>hue</l><block s="reportListItem"><l>1</l><block var="hsl"/></block></block><block s="doSetVar"><l>saturation</l><block s="reportListItem"><l>2</l><block var="hsl"/></block></block><block s="doSetVar"><l>lightness</l><block s="reportListItem"><l>3</l><block var="hsl"/></block></block><block s="doIf"><block s="reportLessThan"><block var="saturation"/><l>25</l><comment w="107.33333333333333" collapsed="true">Nearly grayscale.</comment></block><script><block s="doIfElse"><block s="reportLessThanOrEquals"><block var="lightness"/><l>50</l></block><script><block s="doReport"><block s="reportQuotient"><block var="lightness"/><l>10</l></block></block></script><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportVariadicSum"><list><l>5</l><block s="reportQuotient"><block s="reportDifference"><block var="lightness"/><l>50</l></block><l>5</l></block></list></block><block s="reportQuotient"><l>14</l><l>15</l></block></list></block></block></script></block></script></block><block s="doIf"><block s="reportLessThan"><block var="hue"/><l>2</l><comment w="70.66666666666667" collapsed="true">Red family</comment></block><script><block s="doIfElse"><block s="reportGreaterThanOrEquals"><block var="lightness"/><l>50</l></block><script><block s="doReport"><block s="reportVariadicSum"><list><l>14</l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportDifference"><l>100</l><block var="lightness"/></block><block s="reportDifference"><l>100</l><l>50</l></block></block><l>6</l></list></block></list></block></block></script><script><block s="doIfElse"><block s="reportGreaterThanOrEquals"><block var="lightness"/><l>16.6</l></block><script><block s="doReport"><block s="reportVariadicSum"><list><l>20</l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportDifference"><l>50</l><block var="lightness"/></block><block s="reportDifference"><l>50</l><l>16.6</l></block></block><l>5</l></list></block></list></block></block></script><script><block s="doReport"><l>25</l></block></script></block></script></block></script></block><block s="doIf"><block s="reportLessThan"><block var="hue"/><l>8.7</l><comment w="137.33333333333334" collapsed="true">Brown/orange family</comment></block><script><block s="doIfElse"><block s="reportLessThan"><block s="reportDifference"><block var="lightness"/><block s="reportDifference"><l>100</l><block var="saturation"/></block></block><l>15</l><comment w="62" collapsed="true">brown</comment></block><script><block s="doIfElse"><block s="reportLessThan"><block var="hue"/><l>0.9</l></block><script><block s="doReport"><block s="reportVariadicSum"><list><l>25</l><block s="reportQuotient"><block s="reportDifference"><l>100</l><block var="saturation"/></block><l>5.75</l></block></list></block></block></script><script><block s="doReport"><block s="reportDifference"><l>35</l><block s="reportQuotient"><block s="reportDifference"><l>100</l><block var="saturation"/></block><l>5.75</l></block></block></block></script></block></script><script><block s="doReport"><custom-block s="✐ color number in %n family, from H: %n S: %n L: %n %br rising hue: %n %br rising min lightness: %n falling min lightness: %n"><l>40</l><block var="hue"/><block var="saturation"/><block var="lightness"/><l>7</l><l>14</l><l>28</l></custom-block></block></script></block></script></block><block s="doIf"><block s="reportLessThan"><block var="hue"/><l>17</l><comment w="75.33333333333333" collapsed="true">yellow</comment></block><script><block s="doIf"><block s="reportLessThan"><block s="reportCombine"><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="color"/><block s="reportNewList"><list><l>114</l><l>93</l><l>0</l></list></block></block></block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block><l>45</l></block><script><block s="doReport"><l>54.7</l></block></script></block><block s="doReport"><custom-block s="✐ color number in %n family, from H: %n S: %n L: %n %br rising hue: %n %br rising min lightness: %n falling min lightness: %n"><l>50</l><block var="hue"/><block var="saturation"/><block var="lightness"/><l>14</l><l>27.75</l><l>22.3</l></custom-block></block></script></block><block s="doIf"><block s="reportLessThan"><block var="hue"/><l>34</l><comment w="75.33333333333333" collapsed="true">green</comment></block><script><block s="doReport"><custom-block s="✐ color number in %n family, from H: %n S: %n L: %n %br rising hue: %n %br rising min lightness: %n falling min lightness: %n"><l>60</l><block var="hue"/><block var="saturation"/><block var="lightness"/><l>32</l><l>20</l><l>6</l></custom-block></block></script></block><block s="doIf"><block s="reportLessThan"><block var="hue"/><l>52</l></block><script><block s="doReport"><custom-block s="✐ color number in %n family, from H: %n S: %n L: %n %br rising hue: %n %br rising min lightness: %n falling min lightness: %n"><l>70</l><block var="hue"/><block var="saturation"/><block var="lightness"/><l>49</l><l>6</l><l>10</l></custom-block></block></script><comment w="75.33333333333333" collapsed="true">cyan</comment></block><block s="doIf"><block s="reportLessThan"><block var="hue"/><l>67</l><comment w="74" collapsed="true">blue</comment></block><script><block s="doReport"><custom-block s="✐ color number in %n family, from H: %n S: %n L: %n %br rising hue: %n %br rising min lightness: %n falling min lightness: %n"><l>80</l><block var="hue"/><block var="saturation"/><block var="lightness"/><l>64</l><l>10</l><l>13</l></custom-block></block></script></block><block s="doIf"><block s="reportLessThan"><block var="hue"/><l>83.33333333</l><comment w="74" collapsed="true">purple</comment></block><script><block s="doIfElse"><block s="reportLessThan"><block var="hue"/><l>81.5</l></block><script><block s="doIfElse"><block s="reportLessThan"><block var="hue"/><l>82</l></block><script><block s="doReport"><block s="reportVariadicSum"><list><l>85</l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportDifference"><block var="hue"/><l>66.666</l></block><block s="reportDifference"><l>81.48</l><l>66.666</l></block></block><l>5</l></list></block></list></block></block></script><script><block s="doReport"><l>90</l></block></script></block></script><script><block s="doReport"><block s="reportDifference"><l>95</l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportDifference"><l>50</l><block var="lightness"/></block><block s="reportDifference"><l>50</l><l>17.6</l></block></block><l>5</l></list></block></block></block></script></block></script></block><block s="doReport"><block s="reportVariadicSum"><list><l>95</l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportDifference"><l>50</l><block var="lightness"/></block><l>50</l></block><l>5</l></list></block></list><comment w="90" collapsed="true">left of black</comment></block></block></script></block-definition><block-definition s="✐ HSL/HSV (hsl? %&apos;HSL?&apos; ) from RGB %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%b">false</input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>red</l><l>green</l><l>blue</l><l>max</l><l>min</l><l>chroma</l><l>hue</l><l>value</l><l>lightness</l><l>saturation</l></list></block><block s="doSetVar"><l>red</l><block s="reportQuotient"><block s="reportListItem"><l>1</l><block var="color"/></block><l>255</l></block></block><block s="doSetVar"><l>green</l><block s="reportQuotient"><block s="reportListItem"><l>2</l><block var="color"/></block><l>255</l></block></block><block s="doSetVar"><l>blue</l><block s="reportQuotient"><block s="reportListItem"><l>3</l><block var="color"/></block><l>255</l></block></block><block s="doSetVar"><l>color</l><block s="reportNewList"><list><block var="red"/><block var="green"/><block var="blue"/></list></block></block><block s="doSetVar"><l>max</l><block s="reportCombine"><block var="color"/><block s="reifyReporter"><autolambda><block s="reportVariadicMax"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doSetVar"><l>min</l><block s="reportCombine"><block var="color"/><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doSetVar"><l>chroma</l><block s="reportDifference"><block var="max"/><block var="min"/></block></block><block s="doIfElse"><block s="reportEquals"><block var="chroma"/><l>0</l></block><script><block s="doSetVar"><l>hue</l><l>0</l></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="max"/><block var="red"/></block><script><block s="doSetVar"><l>hue</l><block s="reportModulus"><block s="reportQuotient"><block s="reportDifference"><block var="green"/><block var="blue"/></block><block var="chroma"/></block><l>6</l></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="max"/><block var="green"/></block><script><block s="doSetVar"><l>hue</l><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportDifference"><block var="blue"/><block var="red"/></block><block var="chroma"/></block><l>2</l></list></block></block></script><script><block s="doSetVar"><l>hue</l><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportDifference"><block var="red"/><block var="green"/></block><block var="chroma"/></block><l>4</l></list></block></block></script></block></script></block></script></block><block s="doSetVar"><l>hue</l><block s="reportVariadicProduct"><list><l>60</l><block var="hue"/></list></block></block><block s="doIfElse"><block var="HSL?"/><script><block s="doSetVar"><l>lightness</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="max"/><block var="min"/></list></block><l>2</l></block></block><block s="doIfElse"><block s="reportOr"><block s="reportEquals"><block var="lightness"/><l>0</l></block><block s="reportEquals"><block var="lightness"/><l>1</l></block></block><script><block s="doSetVar"><l>saturation</l><l>0</l></block></script><script><block s="doSetVar"><l>saturation</l><block s="reportQuotient"><block var="chroma"/><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block s="reportVariadicProduct"><list><l>2</l><block var="lightness"/></list></block><l>1</l></block></block></block></block></block></script></block><block s="doReport"><block s="reportNewList"><list><block s="reportQuotient"><block var="hue"/><l>3.6</l></block><block s="reportVariadicProduct"><list><l>100</l><block var="saturation"/></list></block><block s="reportVariadicProduct"><list><l>100</l><block var="lightness"/></list></block></list></block></block></script><script><block s="doSetVar"><l>value</l><block var="max"/></block><block s="doIfElse"><block s="reportEquals"><block var="value"/><l>0</l></block><script><block s="doSetVar"><l>saturation</l><l>0</l></block></script><script><block s="doSetVar"><l>saturation</l><block s="reportQuotient"><block var="chroma"/><block var="value"/></block></block></script></block><block s="doReport"><block s="reportNewList"><list><block s="reportQuotient"><block var="hue"/><l>3.6</l></block><block s="reportVariadicProduct"><list><l>100</l><block var="saturation"/></list></block><block s="reportVariadicProduct"><list><l>100</l><block var="value"/></list></block></list></block></block></script></block></script></block-definition><block-definition s="✐ color number in %&apos;family&apos; family, from H: %&apos;hue&apos; S: %&apos;saturation&apos; L: %&apos;lightness&apos; $nl rising hue: %&apos;max hue&apos; $nl rising min lightness: %&apos;rise&apos; falling min lightness: %&apos;fall&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIfElse"><block s="reportLessThan"><block var="hue"/><block var="max hue"/></block><script><block s="doIfElse"><block s="reportLessThan"><block var="lightness"/><block var="rise"/></block><script><block s="doReport"><block s="reportDifference"><block var="family"/><l>5</l></block></block></script><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportDifference"><block var="family"/><l>5</l></block><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportDifference"><block var="lightness"/><block var="rise"/></block><block s="reportDifference"><l>50</l><block var="rise"/></block></block><l>5</l></list></block></list></block></block></script></block></script><script><block s="doIfElse"><block s="reportLessThan"><block var="lightness"/><block var="fall"/></block><script><block s="doReport"><block s="reportVariadicSum"><list><block var="family"/><l>5</l></list></block></block></script><script><block s="doReport"><block s="reportDifference"><block s="reportVariadicSum"><list><block var="family"/><l>5</l></list></block><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportDifference"><block var="lightness"/><block var="fall"/></block><block s="reportDifference"><l>50</l><block var="fall"/></block></block><l>5</l></list></block></block></block></script></block></script></block></script></block-definition><block-definition s="✐ byte to hex %&apos;byte&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><custom-block s="✐ nybble to hex %n"><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="byte"/><l>16</l></block></block></custom-block><custom-block s="✐ nybble to hex %n"><block s="reportModulus"><block var="byte"/><l>16</l></block></custom-block></list></block></block></script></block-definition><block-definition s="✐ nybble to hex %&apos;nybble&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doIfElse"><block s="reportLessThan"><block var="nybble"/><l>10</l></block><script><block s="doReport"><block var="nybble"/></block></script><script><block s="doReport"><block s="reportUnicodeAsLetter"><block s="reportVariadicSum"><list><block s="reportDifference"><block var="nybble"/><l>10</l></block><block s="reportUnicode"><l>a</l></block></list></block></block></block></script></block></script></block-definition><block-definition s="✐ limits %&apos;color&apos;" type="reporter" category="pen"><comment x="0" y="0" w="90" collapsed="false">hue mod 100, other components cut off at [0, 100]</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportCONS"><block s="reportModulus"><block s="reportListItem"><l>1</l><block var="color"/></block><l>100</l></block><block s="reportVariadicMin"><list><block s="reportVariadicMax"><list><block s="reportCDR"><block var="color"/></block><l>0</l></list></block><l>100</l></list></block></block></block></script></block-definition><block-definition s="✐ set pen to fair hue %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>color</l><l>old value temp</l><l>index</l><l>scale</l><l>oldHSV</l><l>newHSV</l><l>trans</l></list></block><block s="doSetVar"><l>oldHSV</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l>100</l><l></l></list></block></autolambda><list></list></block><custom-block s="HSV color"></custom-block></block></block><block s="doSetVar"><l>trans</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><block s="reportListItem"><l>1</l><block var="more"/></block><block s="getPenAttribute"><l><option>transparency</option></l></block></block></block><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportNewList"><list><l>HSL</l><l>HSV</l></list></block><block var="✐ last set as"/></block></block><script><block s="doSetVar"><l>✐ raw HSV</l><block s="reportNewList"><list><l>0</l><l>100</l><l>100</l></list></block></block><block s="doSetVar"><l>oldHSV</l><block s="reportNewList"><list><l>0</l><l>100</l><l>100</l></list></block></block></script></block><block s="doSetVar"><l>value</l><block s="reportModulus"><block var="value"/><l>100</l></block></block><block s="doSetVar"><l>color</l><block s="reportVariadicProduct"><list><block var="value"/><l>3.6</l></list></block></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block><block var="value"/></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doChangeVar"><l>index</l><l>-1</l></block><block s="doSetVar"><l>scale</l><block s="reportQuotient"><block s="reportDifference"><block var="value"/><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block></block><block s="reportDifference"><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="✐ pivots"/></block><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block></block></block></block><block s="doRun"><block s="reifyScript"><script><custom-block s="set pen color to r: %n g: %n b: %n"><l></l><l></l><l></l></custom-block></script><list></list></block><custom-block s="mmap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><block s="reportRound"><block s="reportVariadicSum"><list><block var="from"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="to"/><block var="from"/></block><block var="scale"/></list></block></list></block></block><l>255</l></list></block></autolambda><list><l>from</l><l>to</l></list></block><list><block s="reportListItem"><block var="index"/><block var="✐ brights"/></block><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="✐ brights"/></block></list></custom-block></block><block s="doSetVar"><l>newHSV</l><custom-block s="HSV color"></custom-block></block><block s="doIfElse"><block var="✐ fair?"/><script><custom-block s="set pen color to h: %n s: %n v: %n"><block s="reportListItem"><l>1</l><block var="newHSV"/></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="newHSV"/></block><block s="reportListItem"><l>2</l><block var="✐ raw HSV"/></block></list></block><l>100</l></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="newHSV"/></block><block s="reportListItem"><l>3</l><block var="✐ raw HSV"/></block></list></block><l>100</l></block></custom-block><block s="doSetVar"><l>✐ raw HSV</l><block s="reportNewList"><list><block var="value"/><block s="reportListItem"><l>2</l><block var="✐ raw HSV"/></block><block s="reportListItem"><l>3</l><block var="✐ raw HSV"/></block></list></block></block></script><script><custom-block s="set pen color to h: %n s: %n v: %n"><block s="reportListItem"><l>1</l><block var="newHSV"/></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="newHSV"/></block><block s="reportListItem"><l>2</l><block var="oldHSV"/></block></list></block><l>100</l></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="newHSV"/></block><block s="reportListItem"><l>3</l><block var="oldHSV"/></block></list></block><l>100</l></block></custom-block><block s="doSetVar"><l>✐ raw HSV</l><block s="reportNewList"><list><block var="value"/><block s="reportListItem"><l>2</l><block var="oldHSV"/></block><block s="reportListItem"><l>3</l><block var="oldHSV"/></block></list></block></block></script></block><block s="doIfElse"><block s="reportEquals"><block var="✐ last set as"/><l>HSL</l></block><script><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><custom-block s="✐ update HSL"></custom-block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block></script><script><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block></script></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="setPenColorDimension"><l><option>transparency</option></l><block var="trans"/></block><custom-block s="✐ make integer RGB"></custom-block></script></block-definition><block-definition s="✐ set pen to color number %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>colors</l><l>brights</l><l>index</l><l>scale</l><l>oldHSV</l><l>newHSV</l><l>color</l><l>pivots</l><l>old value temp</l></list></block><block s="doSetVar"><l>✐ color scale</l><block s="reportModulus"><block var="value"/><l>100</l></block></block><block s="doSetVar"><l>color</l><block s="reportVariadicProduct"><list><block var="value"/><l>3</l></list></block></block><block s="doIfElse"><block s="reportNot"><block s="reportGreaterThan"><block var="color"/><l>42</l></block></block><script><block s="doSetVar"><l>color</l><block s="reportModulus"><block s="reportVariadicProduct"><list><block var="color"/><block s="reportQuotient"><l>15</l><l>14</l></block></list></block><l>300</l></block></block><block s="doSetVar"><l>index</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="color"/><l>15</l></block></block></block><block s="doSetVar"><l>scale</l><block s="reportDifference"><block var="color"/><block s="reportVariadicProduct"><list><block var="index"/><l>15</l></list></block></block></block></script><script><block s="doIf"><block s="reportLessThan"><block var="color"/><l>60</l><comment w="96.66666666666667" collapsed="true">spread out pink</comment></block><script><block s="doSetVar"><l>color</l><block s="reportVariadicSum"><list><l>45</l><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="color"/><l>42</l></block><block s="reportQuotient"><l>15</l><l>18</l></block></list></block></list></block></block></script></block><block s="doSetVar"><l>color</l><block s="reportModulus"><block var="color"/><l>300</l></block></block><block s="doSetVar"><l>index</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="color"/><l>15</l></block></block></block><block s="doSetVar"><l>scale</l><block s="reportDifference"><block var="color"/><block s="reportVariadicProduct"><list><block var="index"/><l>15</l></list></block></block></block></script><comment w="77.33333333333333" collapsed="true">grayscale</comment></block><block s="doRun"><block s="reifyScript"><script><custom-block s="set pen color to r: %n g: %n b: %n"><l></l><l></l><l></l></custom-block></script><list></list></block><custom-block s="mmap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><block s="reportRound"><block s="reportVariadicSum"><list><block var="from"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="to"/><block var="from"/></block><block s="reportQuotient"><block var="scale"/><l>15</l></block></list></block></list></block></block><l>255</l></list></block></autolambda><list><l>from</l><l>to</l></list></block><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="✐ colors"/></block><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>2</l></list></block><block var="✐ colors"/></block></list></custom-block></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block><block s="doSetVar"><l>✐ last set as</l><l>color number</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>✐ raw HSL</l><block s="reportNewList"><list><block s="getPenAttribute"><l><option>hue</option></l></block><l>100</l><l>50</l></list></block></block><block s="doSetVar"><l>✐ raw HSV</l><block s="reportNewList"><list><block s="getPenAttribute"><l><option>hue</option></l></block><l>100</l><l>100</l></list></block></block></script></block-definition><block-definition s="✐ set pen to RGB hex %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doSetVar"><l>value</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>number</option></l></block><l></l><block s="reportVariadicSum"><list><l>10</l><block s="reportDifference"><block s="reportUnicode"><l></l></block><block s="reportIfElse"><block s="reportLessThan"><l></l><l>a</l></block><block s="reportUnicode"><l>A</l></block><block s="reportUnicode"><l>a</l></block></block></block></list></block></block></autolambda><list></list></block><block s="reportTextSplit"><block var="value"/><l><option>letter</option></l></block></block></block><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>3</l></block><script><block s="doSetVar"><l>value</l><block s="reportConcatenatedLists"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><l></l><l></l></list></block></autolambda><list></list></block><block var="value"/></block></block></block></script></block><block s="doIf"><block s="reportIsA"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportOr"><block s="reportLessThan"><l></l><l>0</l></block><block s="reportGreaterThan"><l></l><l>15</l></block></block></autolambda><list></list></block><block var="value"/></block><l><option>number</option></l></block><script><custom-block s="error %txt"><l>Badly formed hex color.</l></custom-block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>8</l></block><script><custom-block s="error %txt"><l>More than eight hex digits.</l></custom-block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>6</l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportDifference"><l>100</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>7</l><block var="value"/></block></list></block><block s="reportListItem"><l>8</l><block var="value"/></block></list></block><l>100</l></list></block><l>255</l></block></block></block><block s="doSetVar"><l>value</l><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>6</l></block><block var="value"/></block></block></script></block><block s="doRepeat"><block s="reportDifference"><l>6</l><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block></block><script><block s="doSetVar"><l>value</l><block s="reportCONS"><l>0</l><block var="value"/></block></block></script></block><custom-block s="set pen color to r: %n g: %n b: %n"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>1</l><block var="value"/></block></list></block><block s="reportListItem"><l>2</l><block var="value"/></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>3</l><block var="value"/></block></list></block><block s="reportListItem"><l>4</l><block var="value"/></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>5</l><block var="value"/></block></list></block><block s="reportListItem"><l>6</l><block var="value"/></block></list></block></custom-block><block s="doSetVar"><l>✐ last set as</l><l>RGB</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block></script></block-definition><block-definition s="✐ set pen to X11 name %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doSetVar"><l>value</l><custom-block s="✐ no spaces %s"><block var="value"/></custom-block></block><custom-block s="use case-independent comparisons %b"><l><bool>true</bool></l></custom-block><custom-block s="catch %upvar %cs"><l>x11w3c</l><script><block s="doIf"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block var="value"/><block s="reportListItem"><l>4</l><l/></block></block></autolambda><list></list></block><block var="✐ X11"/><block var="x11w3c"/><l>exact matches</l><l><bool>true</bool></l></custom-block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>?? multiple exact matches for </l><block var="value"/></list></block></custom-block></script></block><block s="doIf"><block s="reportNot"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>4</l><l/></block><custom-block s="substring of %txt before %txt"><block s="reportListItem"><l>4</l><l/></block><block var="value"/></custom-block></block></block></autolambda><list></list></block><block var="✐ X11"/><block var="x11w3c"/><l>partial matches</l><l><bool>true</bool></l></custom-block></block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Color name </l><block var="value"/><l> not found.</l></list></block></custom-block></script></block><block s="doIfElse"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportEquals"><custom-block s="substring of %txt before %txt"><block s="reportListItem"><l>4</l><block var="match"/></block><block var="value"/></custom-block><l></l></block></autolambda><list><l>match</l></list></block><block var="partial matches"/><block var="x11w3c"/><l>head matches</l><l><bool>true</bool></l></custom-block><script><block s="doIfElse"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportIsA"><block s="reportLetter"><l><option>last</option></l><block s="reportListItem"><l>4</l><l/></block></block><l><option>number</option></l></block></block></autolambda><list></list></block><block var="head matches"/><block var="x11w3c"/><l>non-numbered matches</l><l><bool>true</bool></l></custom-block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="value"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="non-numbered matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="value"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="head matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script></block></script><script><block s="doIfElse"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportIsA"><block s="reportLetter"><l><option>last</option></l><block s="reportListItem"><l>4</l><l/></block></block><l><option>number</option></l></block></block></autolambda><list></list></block><block var="partial matches"/><block var="x11w3c"/><l>non-numbered matches</l><l><bool>true</bool></l></custom-block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="value"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="non-numbered matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="value"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="partial matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script></block></script></block></script><comment w="294.6666666666667" collapsed="true">SUBSET throws here if it handles a unique match</comment></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block></script></block-definition><block-definition s="✐ color from X11 name %&apos;value&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>color</l><l>index</l><l>scale</l><l>transparency</l></list></block><block s="doSetVar"><l>color</l><custom-block s="✐ no spaces %s"><block s="reportListItem"><l>1</l><block var="value"/></block></custom-block></block><custom-block s="use case-independent comparisons %b"><l><bool>true</bool></l></custom-block><custom-block s="catch %upvar %cs"><l>x11w3c</l><script><block s="doIf"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block var="color"/><block s="reportListItem"><l>4</l><l/></block></block></autolambda><list></list></block><block var="✐ X11"/><block var="x11w3c"/><l>exact matches</l><l><bool>false</bool></l></custom-block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>?? multiple exact matches for </l><block var="color"/></list></block></custom-block></script></block><block s="doIf"><block s="reportNot"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>4</l><l/></block><custom-block s="substring of %txt before %txt"><block s="reportListItem"><l>4</l><l/></block><block var="color"/></custom-block></block></block></autolambda><list></list></block><block var="✐ X11"/><block var="x11w3c"/><l>partial matches</l><l><bool>false</bool></l></custom-block></block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Color name </l><block var="color"/><l> not found.</l></list></block></custom-block></script></block><block s="doIfElse"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportEquals"><custom-block s="substring of %txt before %txt"><block s="reportListItem"><l>4</l><block var="match"/></block><block var="color"/></custom-block><l></l></block></autolambda><list><l>match</l></list></block><block var="partial matches"/><block var="x11w3c"/><l>head matches</l><l><bool>false</bool></l></custom-block><script><block s="doIfElse"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportIsA"><block s="reportLetter"><l><option>last</option></l><block s="reportListItem"><l>4</l><l/></block></block><l><option>number</option></l></block></block></autolambda><list></list></block><block var="head matches"/><block var="x11w3c"/><l>non-numbered matches</l><l><bool>false</bool></l></custom-block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="color"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="non-numbered matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="color"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="head matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script></block></script><script><block s="doIfElse"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportIsA"><block s="reportLetter"><l><option>last</option></l><block s="reportListItem"><l>4</l><l/></block></block><l><option>number</option></l></block></block></autolambda><list></list></block><block var="partial matches"/><block var="x11w3c"/><l>non-numbered matches</l><l><bool>false</bool></l></custom-block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="color"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="non-numbered matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="color"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="partial matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script></block></script></block></script><comment w="294.6666666666667" collapsed="true">SUBSET throws here if it handles a unique match</comment></custom-block><block s="doReport"><custom-block s="✐ include transparency %l %s"><block var="✐ X11 catch"/><block s="reportListItem"><l>2</l><block var="value"/></block></custom-block></block></script></block-definition><block-definition s="✐ color from RGB hex %&apos;value&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>color</l><l>index</l><l>scale</l><l>transparency</l></list></block><block s="doSetVar"><l>transparency</l><block s="reportListItem"><l>2</l><block var="value"/></block></block><block s="doSetVar"><l>value</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>number</option></l></block><l></l><block s="reportVariadicSum"><list><l>10</l><block s="reportDifference"><block s="reportUnicode"><l></l></block><block s="reportIfElse"><block s="reportLessThan"><l></l><l>a</l></block><block s="reportUnicode"><l>A</l></block><block s="reportUnicode"><l>a</l></block></block></block></list></block></block></autolambda><list></list></block><block s="reportTextSplit"><block s="reportListItem"><l>1</l><block var="value"/></block><l><option>letter</option></l></block></block></block><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>3</l></block><script><block s="doSetVar"><l>value</l><block s="reportConcatenatedLists"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><l></l><l></l></list></block></autolambda><list></list></block><block var="value"/></block></block></block></script></block><block s="doIf"><block s="reportIsA"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportOr"><block s="reportLessThan"><l></l><l>0</l></block><block s="reportGreaterThan"><l></l><l>15</l></block></block></autolambda><list></list></block><block var="value"/></block><l><option>number</option></l></block><script><custom-block s="error %txt"><l>Badly formed hex color.</l></custom-block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>8</l></block><script><custom-block s="error %txt"><l>More than eight hex digits.</l></custom-block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>6</l></block><script><block s="doSetVar"><l>transparency</l><block s="reportDifference"><l>100</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>7</l><block var="value"/></block></list></block><block s="reportListItem"><l>8</l><block var="value"/></block></list></block><l>100</l></list></block><l>255</l></block></block></block><block s="doSetVar"><l>value</l><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>6</l></block><block var="value"/></block></block></script></block><block s="doRepeat"><block s="reportDifference"><l>6</l><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block></block><script><block s="doSetVar"><l>value</l><block s="reportCONS"><l>0</l><block var="value"/></block></block></script></block><block s="doReport"><custom-block s="✐ include transparency %l %s"><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>1</l><block var="value"/></block></list></block><block s="reportListItem"><l>2</l><block var="value"/></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>3</l><block var="value"/></block></list></block><block s="reportListItem"><l>4</l><block var="value"/></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>5</l><block var="value"/></block></list></block><block s="reportListItem"><l>6</l><block var="value"/></block></list></block></list></block><block var="transparency"/></custom-block></block></script></block-definition><block-definition s="✐ CMYK from RGB %&apos;rgb&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>cmy</l><l>k</l></list></block><block s="doSetVar"><l>rgb</l><block s="reportQuotient"><block var="rgb"/><l>255</l></block></block><block s="doSetVar"><l>k</l><block s="reportCombine"><block var="rgb"/><block s="reifyReporter"><autolambda><block s="reportVariadicMax"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doSetVar"><l>cmy</l><block s="reportQuotient"><block s="reportDifference"><block var="k"/><block var="rgb"/></block><block var="k"/></block></block><block s="doReport"><block s="reportConcatenatedLists"><list><block var="cmy"/><block s="reportNewList"><list><block s="reportDifference"><l>1</l><block var="k"/></block></list></block></list></block></block></script></block-definition><block-definition s="✐ RGB from CMYK %&apos;cmyk&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>cmyk</l><block s="reportDifference"><l>1</l><block var="cmyk"/></block></block><block s="doReport"><block s="reportVariadicProduct"><list><l>255</l><block s="reportVariadicProduct"><list><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>3</l></block><block var="cmyk"/></block><block s="reportListItem"><l>4</l><block var="cmyk"/></block></list></block></list></block></block></script></block-definition><block-definition s="lighten %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block s="reportVariadicSum"><list><l>50</l><custom-block s="$brush %s from color %obj"><l>RGB vector</l><block var="color"/></custom-block></list></block><list><l></l></list></custom-block></block></script></block-definition><block-definition s="darken %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block s="reportDifference"><custom-block s="$brush %s from color %obj"><l>RGB vector</l><block var="color"/></custom-block><l>100</l></block><list><l></l></list></custom-block></block></script><scripts><script x="191.00000000000003" y="20.28888888888893"><block s="reportCombine"><l/><block s="reifyReporter"><script></script><list></list></block></block></script><script x="101.9951171875" y="193.40000000000006"><block s="reportNewList"><list><l>-75</l><l>-75</l><l>-100</l></list></block></script><script x="39.66666666666666" y="116.77777777777779"><block s="reportCombine"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><l></l><l>0</l></block></autolambda><list></list></block><custom-block s="$brush %s from color %obj"><l>RGB vector</l><block var="color"/></custom-block></block><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><l></l><l></l></list></block></autolambda><list></list></block></block></script></scripts></block-definition><block-definition s="$brush color %&apos;color&apos; at weight %&apos;weight&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%obj"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="color"/><block var="weight"/></list></block></block></script></block-definition><block-definition s="plot %&apos;waveform&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="up"></block><block s="gotoXY"><l>-72</l><block s="reportDifference"><block s="reportVariadicProduct"><list><l>100</l><block s="reportListItem"><l>1</l><block var="waveform"/></block></list></block><l>50</l></block></block><block s="down"></block><block s="doFor"><l>i</l><l>1</l><l>36</l><script><block s="gotoXY"><block s="reportVariadicSum"><list><l>-72</l><block s="reportVariadicProduct"><list><l>4</l><block var="i"/></list></block></list></block><block s="reportDifference"><block s="reportVariadicProduct"><list><l>200</l><block s="reportListItem"><block var="i"/><block var="waveform"/></block></list></block><l>50</l></block></block></script></block></script><scripts><script x="426" y="41.55555555555558"><block s="clear"></block><block s="up"></block><block s="gotoXY"><l>-72</l><l>-50</l></block><block s="down"></block><block s="gotoXY"><l>72</l><l>-50</l></block><block s="up"></block><block s="gotoXY"><l>-72</l><l>-50</l></block><block s="down"></block><block s="gotoXY"><l>-72</l><l>150</l></block></script></scripts></block-definition><block-definition s="$brush color from %&apos;color&apos; and %&apos;dimension&apos; %&apos;value&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%obj"></input><input type="%s" readonly="true"><options>fair hue&#xD;transparency&#xD;&#126;2&#xD;(3D color spaces)={&#xD;fair HSL={&#xD;fair hue&#xD;fair saturation (HSL)&#xD;fair lightness&#xD;}&#xD;fair HSV={&#xD;fair hue&#xD;fair saturation (HSV)&#xD;fair value (brightness)&#xD;}&#xD;HSL={&#xD;hue&#xD;saturation (HSL)&#xD;lightness&#xD;}&#xD;HSV={&#xD;hue&#xD;saturation (HSV)&#xD;value (brightness)&#xD;}&#xD;RGB (0-255)={&#xD;red&#xD;green&#xD;blue&#xD;}&#xD;}</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>old</l><l>transp</l></list></block><block s="doSetVar"><l>transp</l><custom-block s="$brush %s from color %obj"><l>transparency</l><block var="color"/></custom-block></block><block s="doIfElse"><block s="reportListContainsItem"><block s="reportNewList"><list><l>color number</l><l>hue</l><l>fair hue</l></list></block><block var="dimension"/></block><script><block s="doSetVar"><l>value</l><block s="reportModulus"><block var="value"/><l>100</l></block></block></script><script><block s="doIfElse"><block s="reportListContainsItem"><block s="reportNewList"><list><l>red</l><l>green</l><l>blue</l></list></block><block var="dimension"/></block><script><block s="doIf"><block s="reportLessThan"><block var="value"/><l>0</l></block><script><block s="doSetVar"><l>value</l><l>0</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="value"/><l>255</l></block><script><block s="doSetVar"><l>value</l><l>255</l></block></script></block></script><script><block s="doIf"><block s="reportListContainsItem"><block s="reportNewList"><list><l>saturation (HSV)</l><l>saturation (HSL)</l><l>value (brightness)</l><l>lightness</l><l>fair saturation (HSV)</l><l>fair saturation (HSL)</l><l>fair value (brightness)</l><l>fair lightness</l><l>transparency</l></list></block><block var="dimension"/></block><script><block s="doIf"><block s="reportLessThan"><block var="value"/><l>0</l></block><script><block s="doSetVar"><l>value</l><l>0</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="value"/><l>100</l></block><script><block s="doSetVar"><l>value</l><l>100</l></block></script></block></script><comment w="164.66666666666666" collapsed="false">We have to do this last test to rule out the vector options, which aren&apos;t numbers; their code makes three recursive calls and we catch range issues then.</comment></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>hue</l></block><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>HSV vector</l><block s="reportCONS"><block var="value"/><block s="reportCDR"><custom-block s="$brush %s from color %obj"><l>HSV vector</l><block var="color"/></custom-block></block></block><list><l></l></list></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>saturation (HSV)</l></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>HSV vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>HSV vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><l></l></list></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>value (brightness)</l></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>HSV vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>HSV vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><l></l></list></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>saturation (HSL)</l></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>HSL vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>HSL vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><l></l></list></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>lightness</l></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>HSL vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>HSL vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><l></l></list></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>transparency</l></block><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>color</l><block var="color"/><list><l></l></list></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>red</l></block><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block s="reportCONS"><block var="value"/><block s="reportCDR"><custom-block s="$brush %s from color %obj"><l>RGBA vector</l><block var="color"/></custom-block></block></block><list><l></l></list></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>green</l></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>RGBA vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><l></l></list></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>blue</l></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>RGBA vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><l></l></list></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>fair hue</l></block><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>fair HSV vector</l><block s="reportCONS"><block var="value"/><block s="reportCDR"><custom-block s="$brush %s from color %obj"><l>fair HSV vector</l><block var="color"/></custom-block></block></block><list><l></l></list></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>fair saturation (HSV)</l></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>fair HSV vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>fair HSV vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><l></l></list></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>fair value (brightness)</l></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>fair HSV vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>fair HSV vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><l></l></list></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>fair saturation (HSL)</l></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>fair HSL vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>fair HSL vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><l></l></list></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="dimension"/><l>fair lightness</l></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>fair HSL vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>fair HSL vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><l></l></list></custom-block></block></script></block></script></block-definition><block-definition s="✐ set pen to lightness %&apos;value&apos; %&apos;more value&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doSetVar"><l>value</l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>100</l></custom-block></block><custom-block s="✐ update HSL"></custom-block><block s="doIf"><block var="✐ fair?"/><script><block s="doSetVar"><l>✐ HSL</l><block var="✐ raw HSL"/></block></script></block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block><block s="doReplaceInList"><l>3</l><block var="✐ HSL"/><block var="value"/></block><block s="doReplaceInList"><l>3</l><block var="✐ raw HSL"/><block var="value"/></block><custom-block s="✐ update HSV"></custom-block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more value"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more value"/></block></block></script></block></script></block-definition><block-definition s="✐ set pen to color %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%obj"></input><input type="%l"></input></inputs><script><block s="doApplyExtension"><l>clr_setpen(clr)</l><list><block s="reportApplyExtension"><l>clr_rgba(r, g, b, a)</l><block s="reportQuotient"><block s="reportListItem"><l>1</l><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="value"/></block></block><block s="reportNewList"><list><l>1</l><l>1</l><l>1</l><l>255</l></list></block></block></block></list></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block><block s="doSetVar"><l>✐ last set as</l><l>RGB</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="✐ set pen size to %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="setSize"><block var="value"/></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block></script></block-definition><block-definition s="✐ set pen transparency to %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="setPenColorDimension"><l><option>transparency</option></l><block var="value"/></block></script></block-definition><block-definition s="✐ set pen red to %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>old rgb</l></list></block><block s="doSetVar"><l>old rgb</l><custom-block s="RGB color"></custom-block></block><custom-block s="set pen color to r: %n g: %n b: %n"><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>255</l></custom-block><block s="reportListItem"><l>2</l><block var="old rgb"/></block><block s="reportListItem"><l>3</l><block var="old rgb"/></block></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block><block s="doSetVar"><l>✐ last set as</l><l>RGB</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="✐ set pen green to %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>old rgb</l></list></block><block s="doSetVar"><l>old rgb</l><custom-block s="RGB color"></custom-block></block><block s="doSetVar"><l>value</l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>255</l></custom-block></block><custom-block s="set pen color to r: %n g: %n b: %n"><block s="reportListItem"><l>1</l><block var="old rgb"/></block><block var="value"/><block s="reportListItem"><l>3</l><block var="old rgb"/></block></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block><block s="doSetVar"><l>✐ last set as</l><l>RGB</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="✐ set pen blue to %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>old rgb</l></list></block><block s="doSetVar"><l>old rgb</l><custom-block s="RGB color"></custom-block></block><block s="doSetVar"><l>value</l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>255</l></custom-block></block><custom-block s="set pen color to r: %n g: %n b: %n"><block s="reportListItem"><l>1</l><block var="old rgb"/></block><block s="reportListItem"><l>2</l><block var="old rgb"/></block><block var="value"/></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block><block s="doSetVar"><l>✐ last set as</l><l>RGB</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="✐ constrain %&apos;value&apos; %&apos;low&apos; %&apos;high&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIf"><block s="reportLessThan"><block var="value"/><block var="low"/></block><script><block s="doReport"><block var="low"/></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="value"/><block var="high"/></block><script><block s="doReport"><block var="high"/></block></script></block><block s="doReport"><block s="reportVariadicSum"><list><block var="value"/><l>0</l></list></block></block></script></block-definition><block-definition s="✐ set pen to RGB vector %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="value"/><l><option>number</option></l></block><script><block s="doSetVar"><l>value</l><block s="reportCONS"><block var="value"/><block var="more"/></block></block><block s="doSetVar"><l>more</l><block s="reportNewList"><list></list></block></block></script></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>4</l><block var="value"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportDifference"><l>100</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>4</l><block var="value"/></block><l>100</l></list></block><l>255</l></block></block></block></script></block><block s="doSetVar"><l>value</l><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="✐ constrain %s %s %s"><l></l><l>0</l><l>255</l></custom-block></autolambda><list></list></block><block var="value"/></block></block><block s="doRun"><block s="reifyScript"><script><custom-block s="set pen color to r: %n g: %n b: %n"><l></l><l></l><l></l></custom-block></script><list></list></block><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>3</l></block><block var="value"/></block></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block><block s="doSetVar"><l>✐ last set as</l><l>RGB</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="✐ set pen to HSL saturation %&apos;value&apos; %&apos;more value&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doSetVar"><l>value</l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>100</l></custom-block></block><custom-block s="✐ update HSL"></custom-block><block s="doIf"><block var="✐ fair?"/><script><block s="doSetVar"><l>✐ HSL</l><block var="✐ raw HSL"/></block></script></block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block><block s="doReplaceInList"><l>2</l><block var="✐ HSL"/><block var="value"/></block><block s="doReplaceInList"><l>2</l><block var="✐ raw HSL"/><block var="value"/></block><custom-block s="✐ update HSV"></custom-block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more value"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more value"/></block></block></script></block></script></block-definition><block-definition s="✐ set pen to HSL vector %&apos;value&apos; %&apos;more value&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="value"/><l><option>number</option></l></block><script><block s="doSetVar"><l>value</l><block s="reportNewList"><list><block var="value"/><block s="reportListItem"><l>1</l><block var="more value"/></block><block s="reportListItem"><l>2</l><block var="more value"/></block></list></block></block><block s="doSetVar"><l>more value</l><block s="reportNewList"><list><block s="reportListItem"><l>3</l><block var="more value"/></block></list></block></block></script></block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block><block s="doSetVar"><l>✐ HSL</l><block s="reportCONS"><block s="reportModulus"><block s="reportListItem"><l>1</l><block var="value"/></block><l>100</l></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="✐ constrain %s %s %s"><l></l><l>0</l><l>100</l></custom-block></autolambda><list></list></block><block s="reportCDR"><block var="value"/></block></block></block></block><block s="doSetVar"><l>✐ raw HSL</l><block var="✐ HSL"/></block><custom-block s="✐ update HSV"></custom-block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more value"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more value"/></block></block></script></block></script></block-definition><block-definition s="✐ set pen saturation (HSV) to %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="setPenColorDimension"><l><option>saturation</option></l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>100</l></custom-block></block><block s="doReplaceInList"><l>2</l><block var="✐ raw HSV"/><block s="getPenAttribute"><l><option>saturation</option></l></block></block><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block></script></block-definition><block-definition s="✐ set pen value (brightness) to %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="setPenColorDimension"><l><option>brightness</option></l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>100</l></custom-block></block><block s="doReplaceInList"><l>3</l><block var="✐ raw HSV"/><block s="getPenAttribute"><l><option>brightness</option></l></block></block><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block></script></block-definition><block-definition s="✐ set pen to HSV vector %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="value"/><l><option>number</option></l></block><script><block s="doSetVar"><l>value</l><block s="reportNewList"><list><block var="value"/><block s="reportListItem"><l>1</l><block var="more"/></block><block s="reportListItem"><l>2</l><block var="more"/></block></list></block></block><block s="doSetVar"><l>more value</l><block s="reportNewList"><list><block s="reportListItem"><l>3</l><block var="more"/></block></list></block></block></script></block><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>✐ raw HSV</l><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>3</l></block><block var="value"/></block></block><block s="doRun"><block s="reifyScript"><script><custom-block s="set pen color to h: %n s: %n v: %n"><l></l><l></l><l></l></custom-block></script><list></list></block><block s="reportQuotient"><block var="✐ raw HSV"/><l>100</l></block></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>3</l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>4</l><block var="value"/></block></block></script></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block></script></block-definition><block-definition s="✐ set pen to hue %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportNewList"><list><l>HSL</l><l>HSV</l></list></block><block var="✐ last set as"/></block></block><script><block s="doSetVar"><l>✐ raw HSV</l><block s="reportNewList"><list><l>0</l><l>100</l><l>100</l></list></block></block></script></block><block s="setPenColorDimension"><l><option>hue</option></l><block s="reportModulus"><block var="value"/><l>100</l></block></block><block s="doIf"><block var="✐ fair?"><comment w="118" collapsed="true">if USED TO BE fair</comment></block><script><custom-block s="set pen color to h: %n s: %n v: %n"><block s="reportQuotient"><block s="reportModulus"><block var="value"/><l>100</l></block><l>100</l></block><block s="reportQuotient"><block s="reportListItem"><l>2</l><block var="✐ raw HSV"/></block><l>100</l></block><block s="reportQuotient"><block s="reportListItem"><l>3</l><block var="✐ raw HSV"/></block><l>100</l></block></custom-block></script></block><block s="doIfElse"><block s="reportEquals"><block var="✐ last set as"/><l>HSL</l></block><script><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><custom-block s="✐ update HSL"></custom-block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block></script><script><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block></script></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block><custom-block s="✐ make integer RGB"></custom-block></script></block-definition><block-definition s="✐ set pen to fair saturation (HSL) %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>color</l><l>newHSV</l><l>index</l><l>scale</l><l>oldHSV</l></list></block><block s="doSetVar"><l>value</l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>100</l></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block var="✐ last set as"/><l>HSL</l></block></block><script><custom-block s="✐ update HSL"></custom-block></script></block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block><block s="doReplaceInList"><l>2</l><block var="✐ HSL"/><block s="reportIfElse"><block var="✐ fair?"/><block s="reportVariadicProduct"><list><block var="value"/><block s="reportQuotient"><block s="reportListItem"><l>2</l><block var="✐ HSL"/></block><block s="reportListItem"><l>2</l><block var="✐ raw HSL"/></block></block></list></block><block var="value"/></block></block><block s="doReplaceInList"><l>2</l><block var="✐ raw HSL"/><block var="value"/></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="✐ update HSV"></custom-block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block></script></block-definition><block-definition s="✐ set pen to fair lightness %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>color</l><l>newHSV</l><l>index</l><l>scale</l><l>oldHSV</l></list></block><block s="doSetVar"><l>value</l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>100</l></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block var="✐ last set as"/><l>HSL</l></block></block><script><custom-block s="✐ update HSL"></custom-block></script></block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block><block s="doReplaceInList"><l>3</l><block var="✐ HSL"/><block s="reportIfElse"><block var="✐ fair?"/><block s="reportVariadicProduct"><list><block var="value"/><block s="reportQuotient"><block s="reportListItem"><l>3</l><block var="✐ HSL"/></block><block s="reportListItem"><l>3</l><block var="✐ raw HSL"/></block></block></list></block><block var="value"/></block></block><block s="doReplaceInList"><l>3</l><block var="✐ raw HSL"/><block var="value"/></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="✐ update HSV"></custom-block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block></script></block-definition><block-definition s="✐ set pen to fair HSL vector %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="value"/><l><option>number</option></l></block><script><block s="doSetVar"><l>value</l><block s="reportNewList"><list><block var="value"/><block s="reportListItem"><l>1</l><block var="more"/></block><block s="reportListItem"><l>2</l><block var="more"/></block></list></block></block><block s="doSetVar"><l>more</l><block s="reportNewList"><list><block s="reportListItem"><l>3</l><block var="more"/></block></list></block></block></script></block><custom-block s="✐ set pen to fair saturation (HSL) %s %l"><block s="reportListItem"><l>2</l><block var="value"/></block><block s="reportNewList"><list></list></block></custom-block><custom-block s="✐ set pen to fair lightness %s %l"><block s="reportListItem"><l>3</l><block var="value"/></block><block s="reportNewList"><list></list></block></custom-block><custom-block s="✐ set pen to fair hue %s %l"><block s="reportListItem"><l>1</l><block var="value"/></block><block s="reportNewList"><list></list></block></custom-block><block s="doIfElse"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>3</l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>4</l><block var="value"/></block></block></script><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block></script></block></script></block-definition><block-definition s="✐ set pen to fair saturation (HSV) %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doSetVar"><l>value</l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>100</l></custom-block></block><block s="doIf"><block s="reportEquals"><block var="✐ last set as"/><l>HSL</l></block><script><custom-block s="✐ update HSV"></custom-block></script></block><block s="setPenColorDimension"><l><option>saturation</option></l><block s="reportIfElse"><block var="✐ fair?"/><block s="reportVariadicProduct"><list><block var="value"/><block s="reportQuotient"><block s="getPenAttribute"><l><option>saturation</option></l></block><block s="reportListItem"><l>2</l><block var="✐ raw HSV"/></block></block></list></block><block var="value"/></block></block><block s="doReplaceInList"><l>2</l><block var="✐ raw HSV"/><block var="value"/></block><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block></script></block-definition><block-definition s="✐ set pen to fair value (brightness) %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doSetVar"><l>value</l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>100</l></custom-block></block><block s="doIf"><block s="reportEquals"><block var="✐ last set as"/><l>HSL</l></block><script><custom-block s="✐ update HSV"></custom-block></script></block><block s="setPenColorDimension"><l><option>brightness</option></l><block s="reportIfElse"><block var="✐ fair?"/><block s="reportVariadicProduct"><list><block var="value"/><block s="reportQuotient"><block s="getPenAttribute"><l><option>brightness</option></l></block><block s="reportListItem"><l>3</l><block var="✐ raw HSV"/></block></block></list></block><block var="value"/></block></block><block s="doReplaceInList"><l>3</l><block var="✐ raw HSV"/><block var="value"/></block><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block></script></block-definition><block-definition s="✐ set pen to fair HSV vector %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="value"/><l><option>number</option></l></block><script><block s="doSetVar"><l>value</l><block s="reportNewList"><list><block var="value"/><block s="reportListItem"><l>1</l><block var="more"/></block><block s="reportListItem"><l>2</l><block var="more"/></block></list></block></block><block s="doSetVar"><l>more</l><block s="reportNewList"><list><block s="reportListItem"><l>3</l><block var="more"/></block></list></block></block></script></block><custom-block s="✐ set pen to fair saturation (HSV) %s %l"><block s="reportListItem"><l>2</l><block var="value"/></block><block s="reportNewList"><list></list></block></custom-block><custom-block s="✐ set pen to fair value (brightness) %s %l"><block s="reportListItem"><l>3</l><block var="value"/></block><block s="reportNewList"><list></list></block></custom-block><custom-block s="✐ set pen to fair hue %s %l"><block s="reportListItem"><l>1</l><block var="value"/></block><block s="reportNewList"><list></list></block></custom-block><block s="doIf"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>3</l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>4</l><block var="value"/></block></block></script></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script></block></script></block-definition><block-definition s="multiline %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:o texto multilinha _&#xD;</translations><inputs><input type="%mlt"></input></inputs><script><block s="doReport"><block var="text"/></block></script></block-definition><block-definition s="substring of %&apos;string&apos; before %&apos;marker&apos;" type="reporter" category="operators"><comment x="0" y="0" w="175.33333333333334" collapsed="false">Reports the part of the first string up to the first instance of the second string inside it.  If the second string isn&apos;t found, reports the entire first string.</comment><header></header><code></code><translations>pt:o texto de _ antes de _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><custom-block s="position of %s in %txt"><block var="marker"/><block var="string"/></custom-block></block><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="index"/><l>0</l></block><block var="string"/><custom-block s="substring of %txt from position %n to position %n inclusive"><block var="string"/><l>1</l><block s="reportDifference"><block var="index"/><l>1</l></block></custom-block></block></block></script></block-definition><block-definition s="substring of %&apos;string&apos; after %&apos;marker&apos;" type="reporter" category="operators"><comment x="0" y="0" w="203.33333333333334" collapsed="false">Reports the portion of the first input string starting after the first occurrence of the second string.  If the second string isn&apos;t found in the first string, reports an empty string.</comment><header></header><code></code><translations>pt:o texto de _ depois de _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><custom-block s="position of %s in %txt"><block var="marker"/><block var="string"/></custom-block></block><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="index"/><l>0</l></block><l></l><custom-block s="substring of %txt from position %n to position %n inclusive"><block var="string"/><block s="reportVariadicSum"><list><block var="index"/><block s="reportStringSize"><block var="marker"/></block></list></block><l></l></custom-block></block></block></script></block-definition><block-definition s="position of %&apos;small&apos; in %&apos;large&apos;" type="reporter" category="operators"><comment x="0" y="0" w="294" collapsed="false">Reports the character position (starting from 1) of the beginning of the first input string inside the second input string.&#xD;If it&apos;s not found, reports 0.</comment><header></header><code></code><translations>pt:a posição de _ em _&#xD;</translations><inputs><input type="%s"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="use case-independent comparison"></custom-block><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><custom-block s="to lower case %txt"><block var="small"/></custom-block><custom-block s="to lower case %txt"><block var="large"/></custom-block></list></block><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><block var="small"/><block var="large"/></list></block></block></block></script></block-definition><block-definition s="use case-independent comparisons %&apos;tf&apos;" type="command" category="operators"><comment x="0" y="0" w="225.33333333333334" collapsed="false">If input is TRUE, comparisons made by functions in the string library will be case-independent (so &quot;FOO&quot; = &quot;foo&quot;).  This is the default.&#xD;If input is FALSE, comparisons will be exact.</comment><header></header><code></code><translations>pt:altera comparações ignorando distinção minúsculas/maiúsculas para _&#xD;</translations><inputs><input type="%b"></input></inputs><script><block s="doIfElse"><block s="reportNot"><block var="tf"/></block><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>global</l><l>_case indepent</l></list></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><l>_case indepent</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></script><script><block s="doApplyExtension"><l>var_delete(name)</l><list><l>_case indepent</l></list></block></script></block></script></block-definition><block-definition s="substring of %&apos;str&apos; from position %&apos;start&apos; to position %&apos;end&apos; inclusive" type="reporter" category="operators"><comment x="0" y="0" w="297.3333333333333" collapsed="false">Reports the portion of the first input (string) starting at the position given by the second input (counting from 1, like LETTER n OF) and ending at the position given by the third input (also counting from 1).  If the third input is empty, reports the portion from the first position to the end of the string.&#xD;If a position number is negative, counts from the end backward, so -1 is the last character, -2 is the next to last, etc.</comment><header></header><code></code><translations>pt:o texto de _ entre as posições _ e _ , inclusive&#xD;</translations><inputs><input type="%txt"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportLetter"><block s="reportNumbers"><block var="start"/><block s="reportIfElse"><block s="reportEquals"><block var="end"/><l>0</l></block><block s="reportStringSize"><block var="str"/></block><block var="end"/></block></block><block var="str"/></block></block></block></script></block-definition><block-definition s="text %&apos;string&apos; contains %&apos;marker&apos;" type="predicate" category="operators"><comment x="0" y="0" w="218" collapsed="false">Reports True if the first input string contains the second input string, otherwise false.&#xD;&#xD;Comparison is case-independent by default; use USE CASE-INDEPENDENT COMPARISONS to change that.</comment><header></header><code></code><translations>pt:o texto de _ antes de _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportGreaterThan"><custom-block s="position of %s in %txt"><block var="marker"/><block var="string"/></custom-block><l>0</l></block></block></script></block-definition><block-definition s="to lower case %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="275.33333333333326" collapsed="false">Reports the input text with lower case letters instead of capital letters in the input.  Uses the user&apos;s locale&apos;s rules for case conversion.</comment><header></header><code></code><translations>pt:em minúsculas _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>txt_lowercase(txt)</l><list><block var="text"/></list></block></block></script></block-definition><block-definition s="use case-independent comparison" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block s="reportApplyExtension"><l>var_get(name)</l><list><l>_case indepent</l></list></block></block></script><list></list></block><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><l></l></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block><block s="doReport"><block var="result"/></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;</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="does var %&apos;_name&apos; exist?" type="predicate" category="variables"><comment x="0" y="0" w="146" collapsed="false">This block reports &quot;true&quot; if there is a variable with this given name (input slot) in that context.&#xD;&#xD;It can be a global, sprite or script variable.&#xD;&#xD;Otherwise it reports &quot;false&quot;.</comment><header></header><code></code><translations>pt:a variável _ existe&#xD;ca:existeix la variable _ ?&#xD;es:existe la variable _ ?&#xD;de:existiert var _ ?&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doApplyExtension"><l>err_ignore</l><list><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="_name"/></list></block></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="reifyScript"><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><l></l></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script></block-definition><block-definition s="drawMaze %&apos;maze&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>widthOfMaze</l><l>heightOfMaze</l></list></block><block s="doSetVar"><l>widthOfMaze</l><block s="reportListItem"><l>2</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="maze"/></block></block></block><block s="doSetVar"><l>heightOfMaze</l><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="maze"/></block></block></block><block s="doDeclareVariables"><list><l>widthOfBox</l><l>heightOfBox</l></list></block><block s="doSetVar"><l>widthOfBox</l><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><l>50</l></block><block var="widthOfMaze"/></block></block><block s="doSetVar"><l>heightOfBox</l><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><l>50</l></block><block var="heightOfMaze"/></block></block><block s="doSetVar"><l>widthOfBox</l><block s="reportVariadicMin"><list><block var="widthOfBox"/><block var="heightOfBox"/></list></block></block><block s="doSetVar"><l>heightOfBox</l><block var="widthOfBox"/></block><block s="gotoXY"><block s="reportDifference"><l>0</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="widthOfMaze"/><block var="widthOfBox"/></list></block><l>2</l></block></block><block s="reportDifference"><l>0</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="heightOfBox"/><block var="heightOfMaze"/></list></block><l>2</l></block></block></block><block s="setHeading"><l>90</l></block><block s="doForEach"><l>row</l><block var="maze"/><script><block s="doForEach"><l>col</l><block var="row"/><script><custom-block s="drawBox w: %s , h: %s"><block var="widthOfBox"/><block var="heightOfBox"/></custom-block><block s="doIf"><block var="col"/><script><block s="changeXPosition"><l>3</l></block><block s="changeYPosition"><l>3</l></block><block s="floodFill"></block><block s="changeXPosition"><l>-3</l></block><block s="changeYPosition"><l>-3</l></block></script></block><block s="forward"><block var="widthOfBox"/></block></script></block><block s="changeXPosition"><block s="reportDifference"><l>0</l><block s="reportVariadicProduct"><list><block var="widthOfMaze"/><block var="widthOfBox"/></list></block></block></block><block s="changeYPosition"><block var="heightOfBox"/></block></script></block></script><scripts><script x="473.583984375" y="251.33333333333334"><block s="reportVariadicMin"><list><l></l><block var="heightOfBox"/></list></block></script><script x="346" y="407.5000000000003"><block s="reportQuotient"><l></l><l>2</l></block></script></scripts></block-definition><block-definition s="drawBox w: %&apos;w&apos; , h: %&apos;h&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="setHeading"><l>90</l></block><block s="down"></block><block s="doRepeat"><l>2</l><script><block s="forward"><block var="w"/></block><block s="turnLeft"><l>90</l></block><block s="forward"><block var="h"/></block><block s="turnLeft"><l>90</l></block></script></block><block s="up"></block></script></block-definition><block-definition s="edges from/to node: %&apos;node_id&apos; in graph: %&apos;graph&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><l/><block var="node_id"/></block></autolambda><list></list></block><custom-block s="edges of graph %l"><block var="graph"/></custom-block></block></block></script></block-definition><block-definition s="edge from %&apos;node1&apos; to %&apos;node2&apos; with weight %&apos;w&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="node1"/><block var="node2"/><block var="w"/></list></block></block></script></block-definition><block-definition s="graph %&apos;nodeList&apos; , %&apos;edgeList&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="nodeList"/><block var="edgeList"/></list></block></block></script></block-definition><block-definition s="generate graph from maze: %&apos;maze&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>nodes</l><l>edges</l></list></block><block s="doSetVar"><l>nodes</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>edges</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>row</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="maze"/></block><script><block s="doFor"><l>col</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="maze"/></block></block><script><block s="doIf"><block s="reportNot"><block s="reportListItem"><block var="col"/><block s="reportListItem"><block var="row"/><block var="maze"/></block></block></block><script><block s="doDeclareVariables"><list><l>thisNode</l></list></block><block s="doSetVar"><l>thisNode</l><block s="reportNewList"><list><block var="row"/><block var="col"/></list></block></block><block s="doAddToList"><block var="thisNode"/><block var="nodes"/></block><block s="doForEach"><l>neighbor</l><custom-block s="connected neighbors of %l in maze: %l"><block var="thisNode"/><block var="maze"/></custom-block><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block var="edges"/><custom-block s="edge from %l to %l with weight %n"><block var="neighbor"/><block var="thisNode"/><l>1</l></custom-block></block></block><script><block s="doAddToList"><custom-block s="edge from %l to %l with weight %n"><block var="thisNode"/><block var="neighbor"/><l>1</l></custom-block><block var="edges"/></block></script></block></script></block></script></block></script></block></script></block><block s="doReport"><custom-block s="graph %l , %l"><block var="nodes"/><block var="edges"/></custom-block></block></script><scripts><script x="533.6640625" y="221.3333333333332"><block var="currentNodeID"/></script></scripts></block-definition><block-definition s="connected neighbors of %&apos;square&apos; in maze: %&apos;maze&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>connected neighbors</l><l>row</l><l>col</l></list></block><block s="doSetVar"><l>connected neighbors</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>row</l><block s="reportListItem"><l>1</l><block var="square"/></block></block><block s="doSetVar"><l>col</l><block s="reportListItem"><l>2</l><block var="square"/></block></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThan"><block var="row"/><l>1</l></block><block s="reportNot"><block s="reportListItem"><block var="col"/><block s="reportListItem"><block s="reportDifference"><block var="row"/><l>1</l></block><block var="maze"/></block></block></block></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportDifference"><block var="row"/><l>1</l></block><block var="col"/></list></block><block var="connected neighbors"/></block></script><comment w="90" collapsed="true">check below</comment></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThan"><block var="col"/><l>1</l></block><block s="reportNot"><block s="reportListItem"><block s="reportDifference"><block var="col"/><l>1</l></block><block s="reportListItem"><block var="row"/><block var="maze"/></block></block></block></block><script><block s="doAddToList"><block s="reportNewList"><list><block var="row"/><block s="reportDifference"><block var="col"/><l>1</l></block></list></block><block var="connected neighbors"/></block></script><comment w="90" collapsed="true">check left</comment></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThan"><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="maze"/></block></block><block var="row"/></block><block s="reportNot"><block s="reportListItem"><block var="col"/><block s="reportListItem"><block s="reportVariadicSum"><list><block var="row"/><l>1</l></list></block><block var="maze"/></block></block></block></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportVariadicSum"><list><block var="row"/><l>1</l></list></block><block var="col"/></list></block><block var="connected neighbors"/></block></script><comment w="90" collapsed="true">check above</comment></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThan"><block s="reportListItem"><l>2</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="maze"/></block></block><block var="col"/></block><block s="reportNot"><block s="reportListItem"><block s="reportVariadicSum"><list><block var="col"/><l>1</l></list></block><block s="reportListItem"><block var="row"/><block var="maze"/></block></block></block></block><script><block s="doAddToList"><block s="reportNewList"><list><block var="row"/><block s="reportVariadicSum"><list><block var="col"/><l>1</l></list></block></list></block><block var="connected neighbors"/></block></script><comment w="90" collapsed="true">check right</comment></block><block s="doReport"><block var="connected neighbors"/></block></script><scripts><script x="465.1220703125" y="375.66666666666646"><block var="col"/></script><script x="456.8330078125" y="417.3333333333331"><block s="reportDifference"><l></l><l>1</l></block></script></scripts></block-definition><block-definition s="generate connected maze %&apos;w&apos; x %&apos;h&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>maze</l><l>graph</l></list></block><block s="doSetVar"><l>maze</l><custom-block s="generate random maze %n x %n"><block var="w"/><block var="h"/></custom-block></block><block s="doSetVar"><l>graph</l><custom-block s="generate graph from maze: %l"><block var="maze"/></custom-block></block><block s="doUntil"><block s="reportListIsEmpty"><custom-block s="first isolated node in %l"><block var="graph"/></custom-block></block><script><block s="doSetVar"><l>maze</l><custom-block s="%s with %s changed to %n"><block var="maze"/><custom-block s="first isolated node in %l"><block var="graph"/></custom-block><l>1</l></custom-block></block><block s="doSetVar"><l>graph</l><custom-block s="generate graph from maze: %l"><block var="maze"/></custom-block></block></script><comment w="90" collapsed="true">Gets rid of isolates.</comment></block><block s="doDeclareVariables"><list><l>disjoint subgraphs</l><l>iterations</l></list></block><block s="doSetVar"><l>iterations</l><l>1</l></block><block s="bubble"><block var="iterations"/></block><block s="doSetVar"><l>disjoint subgraphs</l><custom-block s="disjoint subgraphs of %s"><block var="graph"/></custom-block></block><block s="doUntil"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="disjoint subgraphs"/></block><l>1</l></block><script><block s="doSetVar"><l>maze</l><custom-block s="%s with %s changed to %n"><block var="maze"/><custom-block s="random wall of maze %s"><block var="practice maze"/></custom-block><l>0</l></custom-block></block><block s="doSetVar"><l>graph</l><custom-block s="generate graph from maze: %l"><block var="maze"/></custom-block></block><block s="doSetVar"><l>disjoint subgraphs</l><custom-block s="disjoint subgraphs of %s"><block var="graph"/></custom-block></block><block s="doChangeVar"><l>iterations</l><l>1</l></block><block s="bubble"><block var="iterations"/></block></script></block><block s="doReport"><block var="maze"/></block></script><scripts><script x="396.4306640625" y="100.33333333333337"><block var="maze"/></script><script x="591.119140625" y="43.333333333333215"><block s="reportNot"><l/></block></script></scripts></block-definition><block-definition s="first isolated node in %&apos;graph&apos;" type="reporter" category="lists"><comment x="0" y="0" w="90" collapsed="false">Finds the first isolated node in a graph.  If none, returns an empty list.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doForEach"><l>node</l><custom-block s="nodes from graph %l"><block var="graph"/></custom-block><script><block s="doIf"><block s="reportListIsEmpty"><custom-block s="edges from/to node: %l in graph: %l"><block var="node"/><block var="graph"/></custom-block></block><script><block s="doReport"><block var="node"/></block></script></block></script></block><block s="doReport"><block s="reportNewList"><list></list></block></block></script><scripts><script x="388.3730468750002" y="166.93333333333337"><block var="graph"/></script></scripts></block-definition><block-definition s="nodes from graph %&apos;graph&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="graph"/></block></block></script></block-definition><block-definition s="edges of graph %&apos;graph&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="graph"/></block></block></script></block-definition><block-definition s="%&apos;maze&apos; with %&apos;position&apos; changed to %&apos;num&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>newMaze</l><l>replacement row</l></list></block><block s="doSetVar"><l>newMaze</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>row</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="maze"/></block><script><block s="doIfElse"><block s="reportEquals"><block var="row"/><block s="reportListItem"><l>1</l><block var="position"/></block></block><script><block s="doSetVar"><l>replacement row</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>col</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="maze"/></block></block><script><block s="doIfElse"><block s="reportEquals"><block var="col"/><block s="reportListItem"><l>2</l><block var="position"/></block></block><script><block s="doAddToList"><block var="num"/><block var="replacement row"/></block></script><script><block s="doAddToList"><block s="reportListItem"><block var="col"/><block s="reportListItem"><block var="row"/><block var="maze"/></block></block><block var="replacement row"/></block></script></block></script></block><block s="doAddToList"><block var="replacement row"/><block var="newMaze"/></block></script><script><block s="doAddToList"><block s="reportListItem"><block var="row"/><block var="maze"/></block><block var="newMaze"/></block></script></block></script></block><block s="doReport"><block var="newMaze"/></block></script></block-definition><block-definition s="disjoint subgraphs of %&apos;graph&apos;" type="reporter" category="lists"><comment x="0" y="0" w="90" collapsed="false">This takes a graph and returns all disjoint subgraphs as a a list.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>currentNode</l><l>visited</l><l>unVisited</l><l>subgraphs</l></list></block><block s="doSetVar"><l>visited</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>unVisited</l><custom-block s="nodes from graph %l"><block var="graph"/></custom-block></block><block s="doSetVar"><l>subgraphs</l><block s="reportNewList"><list></list></block></block><block s="doUntil"><block s="reportListIsEmpty"><block var="unVisited"/></block><script><block s="doSetVar"><l>currentNode</l><block s="reportListItem"><l>1</l><block var="unVisited"/></block></block><block s="doSetVar"><l>unVisited</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><l></l><block var="currentNode"/></block></block></autolambda><list></list></block><block var="unVisited"/></block></block><block s="doSetVar"><l>visited</l><block s="reportCONS"><block var="currentNode"/><block var="visited"/></block></block><block s="doDeclareVariables"><list><l>connectedList</l><l>exploredList</l></list></block><block s="doSetVar"><l>connectedList</l><block s="reportCONS"><block var="currentNode"/><custom-block s="neighbors of %l in %l"><block var="currentNode"/><block var="graph"/></custom-block></block></block><block s="doSetVar"><l>exploredList</l><block s="reportNewList"><list><block var="currentNode"/></list></block></block><block s="doUntil"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="exploredList"/><l></l></block></block></autolambda><list></list></block><block var="connectedList"/><comment w="90" collapsed="true">Keep items from connected list that haven&apos;t been explored.</comment></block></block><script><block s="doSetVar"><l>currentNode</l><block s="reportListItem"><l>1</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="exploredList"/><l></l></block></block></autolambda><list></list></block><block var="connectedList"/><comment w="90" collapsed="true">Keep items from connected list that haven&apos;t been explored.</comment></block></block></block><block s="doSetVar"><l>connectedList</l><block s="reportConcatenatedLists"><list><block var="connectedList"/><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="connectedList"/><l></l></block></block></autolambda><list></list></block><custom-block s="neighbors of %l in %l"><block var="currentNode"/><block var="graph"/></custom-block><comment w="90" collapsed="false">neighbors of current node not already in connected list.</comment></block></list></block></block><block s="doAddToList"><block var="currentNode"/><block var="exploredList"/></block></script></block><block s="doAddToList"><block var="connectedList"/><block var="subgraphs"/></block><block s="doSetVar"><l>visited</l><block s="reportConcatenatedLists"><list><block var="visited"/><block var="connectedList"/></list><comment w="90" collapsed="false">reset visited &amp; unvisited lists</comment></block></block><block s="doSetVar"><l>unVisited</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="connectedList"/><l></l></block></block></autolambda><list></list></block><block var="unVisited"/></block></block></script></block><block s="doReport"><block var="subgraphs"/></block></script></block-definition><block-definition s="neighbors of %&apos;thisNode&apos; in %&apos;graph&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>neighbors</l></list></block><block s="doSetVar"><l>neighbors</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>edge</l><custom-block s="edges from/to node: %l in graph: %l"><block var="thisNode"/><block var="graph"/></custom-block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="edge"/></block><block var="thisNode"/></block><script><block s="doAddToList"><block s="reportListItem"><l>2</l><block var="edge"/></block><block var="neighbors"/></block></script><script><block s="doAddToList"><block s="reportListItem"><l>1</l><block var="edge"/></block><block var="neighbors"/></block></script></block></script></block><block s="doReport"><block var="neighbors"/></block></script><scripts><script x="192" y="280.7999999999999"><block s="doForEach"><l>node</l><custom-block s="nodes from graph %l"><block var="graph"/><comment w="90" collapsed="false">Iterates over all nodes in graph.. slow.</comment></custom-block><script><block s="doIf"><custom-block s="%s adjacent to %s on %s ?"><block var="thisNode"/><block var="node"/><block var="graph"/></custom-block><script><block s="doAddToList"><block var="node"/><block var="neighbors"/></block></script></block></script></block></script></scripts></block-definition><block-definition s="%&apos;node1&apos; adjacent to %&apos;node2&apos; on %&apos;graph&apos; ?" type="predicate" category="operators"><comment x="0" y="0" w="90" collapsed="false">Reports true if there is an edge connecting [node1] to [node2] in [graph].&#xD;&#xD;Current version assumes graph is undirected.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNot"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><l/><block var="node2"/></block></autolambda><list></list></block><custom-block s="edges from/to node: %l in graph: %l"><block var="node1"/><block var="graph"/></custom-block></block></block></block></block></script></block-definition><block-definition s="$flash remove duplicates from %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="209" collapsed="false">Reports a new list whose items are the same as in the input list, except that if two or more equal items appear in the input list, only the last one is kept in the result.</comment><header></header><code></code><translations>ca:elimina els duplicats de _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>columns</option></l><block s="reportApplyExtension"><l>dta_analyze(list)</l><list><block var="data"/></list></block></block></block></block></script></block-definition><block-definition s="$flash sort %&apos;data&apos; ordering with %&apos;function&apos;" type="reporter" category="lists"><comment x="0" y="0" w="161.14285714285708" collapsed="false">Reports a sorted version of the list in its first input slot, using the comparison function in the second input slot.  For a list of numbers, using &lt; as the comparison function will sort from low to high; using &gt; will sort from high to low.</comment><header></header><code></code><translations>ca:ordena _ segons criteri _&#xD;</translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>lst_sort(list, fn)</l><list><block var="data"/><block var="function"/></list></block></block></script></block-definition><block-definition s="$flash assoc %&apos;key&apos; %&apos;a-list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="289.3333333333333" collapsed="false">The second input is an &quot;association list,&quot; a list of two-item lists.  Each of those smaller lists has a &quot;key&quot; as its first item and a &quot;value&quot; as its second.  ASSOC reports the first key-value pair in the association list whose key matches the first input.</comment><header></header><code></code><translations>ca:associació _ _&#xD;</translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block var="key"/><block s="reportListItem"><l>1</l><l/></block></block></autolambda><list></list></block><block var="a-list"/></block></block></script></block-definition><block-definition s="%&apos;#&apos; for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><comment x="0" y="0" w="228.57142857142858" collapsed="false">This block carries out the given script for each item of the given list, like the primitive FOR EACH.&#xD;&#xD;What&apos;s different is that it provides the # variable, which will contain the item number in the list of each item in turn, 1 while processing item 1, and so on.</comment><header></header><code></code><translations>ca:_ per cada _ de _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%ca"></input></inputs><script><block s="doForEach"><l>inner item</l><block var="data"/><script><block s="doSetVar"><l>item</l><block var="inner item"/></block><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="☠︎ linked? %&apos;data&apos;" type="predicate" category="lists" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>lst_linked(list)</l><list><block var="data"/></list></block></block></script></block-definition><block-definition s="☠︎ link %&apos;data&apos;" type="reporter" category="lists" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><block var="data"/></block></script></block><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><block s="reportCDR"><block var="data"/></block></block></block></script></block-definition><block-definition s="printable %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="188.66666666666666" collapsed="false">Takes a (possibly deep) list as input,&#xD;and reports a human-readable text form &#xD;of the list (namely, Lisp notation).&#xD;&#xD;Will not work on circular lists.</comment><header></header><code></code><translations>ca:notació textual de _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><block s="doReport"><block var="data"/></block></script></block><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><l>()</l></block></script></block><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block s="reportAtomicCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="printable %l"><l/></custom-block></autolambda><list></list></block><block var="data"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> </l><l></l></list></block></autolambda><list></list></block></block><l>)</l></list></block></block></script></block-definition><block-definition s="sentence %&apos;phrase&apos;" type="reporter" category="lists"><comment x="0" y="0" w="302.6666666666667" collapsed="false">SENTENCE is the main constructor for sentences, represented&#xD;as lists of words.  It takes zero or more inputs, each of which can&#xD;be either a list or a text string.  If a list, the input is assumed to be&#xD;a list of words.  If a text string, it is converted to a list of words using&#xD;SENTENCE→LIST.  Then all the lists of words are appended to form a new list of words.&#xD;&#xD;If the inputs are lists of lists rather than lists of words, SENTENCE,&#xD;like APPEND, does only one level of flattening, reporting a list of&#xD;all the items of all the input lists.</comment><header></header><code></code><translations>ca:frase _&#xD;</translations><inputs><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportConcatenatedLists"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><l></l><custom-block s="sentence $arrowRight list %txt"><l></l></custom-block></block></autolambda><list></list></block><block var="phrase"/></block></block></block></script></block-definition><block-definition s="$flash zip %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="192" collapsed="false">ZIP takes any number of lists as inputs.  The lists should all be the same length.  ZIP reports a list of lists in which the first item is a list of all the first items, the second item is a list of all the second items, etc.&#xD;Viewing the inputs as the rows of a matrix, ZIP reports its transpose.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>columns</option></l><block var="lists"/></block></block></script></block-definition><block-definition s="%&apos;x&apos;" type="reporter" category="lists"><comment x="0" y="0" w="105.33333333333333" collapsed="false">The identity function reports its input.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="x"/></block></script></block-definition><block-definition s="multimap %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="267.3333333333333" collapsed="false">Takes as input a function of N inputs and N lists.&#xD;The function is called with item 1 of all the lists as its inputs, with item 2 of all the lists as its inputs, and so on.  (The lists should all be the same length.)</comment><header></header><code></code><translations>ca:multi-mapeja _ sobre _&#xD;</translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="function"/><custom-block s="%s"><l></l></custom-block></block></autolambda><list></list></block><custom-block s="$flash zip %mult%l"><block var="lists"/></custom-block></block></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="196" collapsed="false">Takes a sentence in text string form and reports the sentence as a list of its words.</comment><header></header><code></code><translations>de:Satz $arrowRight Liste _&#xD;ca:frase $arrowRight llista _&#xD;es:frase $arrowRight lista _&#xD;fr:phrase $arrowRight liste _&#xD;pt:uma lista com as palavras da frase _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportAtomicKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block s="reportStringSize"><l></l></block><l>0</l></block></block></autolambda><list></list></block><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></block></script></block-definition><block-definition s="random wall of maze %&apos;maze&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>row</l><l>col</l></list></block><block s="doSetVar"><l>row</l><block s="reportRandom"><l>1</l><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="maze"/></block></block></block></block><block s="doSetVar"><l>col</l><block s="reportRandom"><l>1</l><block s="reportListItem"><l>2</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="maze"/></block></block></block></block><block s="doUntil"><block s="reportListItem"><block var="col"/><block s="reportListItem"><block var="row"/><block var="maze"/></block></block><script><block s="doSetVar"><l>row</l><block s="reportRandom"><l>1</l><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="maze"/></block></block></block></block><block s="doSetVar"><l>col</l><block s="reportRandom"><l>1</l><block s="reportListItem"><l>2</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="maze"/></block></block></block></block></script></block><block s="doReport"><block s="reportNewList"><list><block var="row"/><block var="col"/></list></block></block></script></block-definition><block-definition s="%&apos;maze&apos; with color flipped at %&apos;mouseX&apos; , %&apos;mouseY&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>widthOfMaze</l><l>heightOfMaze</l></list></block><block s="doSetVar"><l>widthOfMaze</l><block s="reportListItem"><l>2</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="maze"/></block></block></block><block s="doSetVar"><l>heightOfMaze</l><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="maze"/></block></block></block><block s="doDeclareVariables"><list><l>widthOfBox</l><l>heightOfBox</l></list></block><block s="doSetVar"><l>widthOfBox</l><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><l>50</l></block><block var="widthOfMaze"/></block></block><block s="doSetVar"><l>heightOfBox</l><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><l>50</l></block><block var="heightOfMaze"/></block></block><block s="doSetVar"><l>widthOfBox</l><block s="reportVariadicMin"><list><block var="widthOfBox"/><block var="heightOfBox"/></list></block></block><block s="doSetVar"><l>heightOfBox</l><block var="widthOfBox"/></block><block s="doDeclareVariables"><list><l>row</l><l>col</l></list></block><block s="doSetVar"><l>row</l><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportDifference"><block var="mouseY"/><block s="reportDifference"><l>0</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="heightOfBox"/><block var="heightOfMaze"/></list></block><l>2</l></block></block></block><block var="heightOfBox"/></block></block></block><block s="doSetVar"><l>col</l><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportDifference"><block var="mouseX"/><block s="reportDifference"><l>0</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="widthOfMaze"/><block var="widthOfBox"/></list></block><l>2</l></block></block></block><block var="widthOfBox"/></block></block></block><block s="doReport"><custom-block s="%s with %s changed to %n"><block var="maze"/><block s="reportNewList"><list><block var="row"/><block var="col"/></list></block><block s="reportVariadicProduct"><list><block s="reportNot"><block s="reportListItem"><block var="col"/><block s="reportListItem"><block var="row"/><block var="maze"/></block></block></block><l>1</l></list></block></custom-block></block></script><scripts><script x="992.0000000000001" y="180.69999999999996"><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><block s="doForEach"><l>row</l><block var="maze"/><script><block s="doForEach"><l>col</l><block var="row"/><script><custom-block s="drawBox w: %s , h: %s"><block var="widthOfBox"/><block var="heightOfBox"/></custom-block><block s="doIf"><block var="col"/><script><block s="changeXPosition"><l>3</l></block><block s="changeYPosition"><l>3</l></block><block s="floodFill"></block><block s="changeXPosition"><l>-3</l></block><block s="changeYPosition"><l>-3</l></block></script></block><block s="forward"><block var="widthOfBox"/></block></script></block><block s="changeXPosition"><block s="reportDifference"><l>0</l><block s="reportVariadicProduct"><list><block var="widthOfMaze"/><block var="widthOfBox"/></list></block></block></block><block s="changeYPosition"><block var="heightOfBox"/></block></script></block></script><script x="573.1810546874999" y="453.8333333333333"><block s="doTellTo"><l>Sprite</l><block s="reifyScript"><script><block s="bubble"><block s="reportNewList"><list><block var="row"/><block var="col"/></list></block></block></script><list></list></block><list></list></block></script></scripts></block-definition><block-definition s="dijkstra graph: %&apos;graph&apos; , source node: %&apos;source&apos; destination node: %&apos;destination&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="show"></block><block s="doDeclareVariables"><list><l>node-distance map</l><l>node-previous_node map</l><l>subgraph</l><l>unvisited</l></list></block><block s="doSetVar"><l>subgraph</l><custom-block s="subgraph of %s containing %s"><block var="graph"/><block var="source"/><comment w="90" collapsed="true">Finds the connected subgraph containing our source.  Eliminates all irrelevant nodes from consideration.</comment></custom-block></block><block s="doSetVar"><l>unvisited</l><custom-block s="nodes from graph %l"><block var="subgraph"/><comment w="90" collapsed="true">all nodes are unvisited at first.</comment></custom-block></block><block s="doSetVar"><l>node-previous_node map</l><block s="reportNewList"><list></list></block><comment w="90" collapsed="true">This will be a node to node map that shows the previous node for each node we put on our final path.  It is useful in displaying the final path to the user.</comment></block><block s="doSetVar"><l>node-distance map</l><custom-block s="$flash zip %mult%l"><list><custom-block s="nodes from graph %l"><block var="subgraph"/></custom-block><custom-block s="list with %n copies of %s"><block s="reportListAttribute"><l><option>length</option></l><custom-block s="nodes from graph %l"><block var="subgraph"/></custom-block></block><l>10000</l></custom-block></list></custom-block><comment w="90" collapsed="true">node-distance map - associates each node with a distance from the source.  We set each one to an absurdly high value (10,000 in this case</comment></block><block s="doSetVar"><l>node-distance map</l><block s="reportCONS"><block s="reportNewList"><list><block var="source"/><l>0</l></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>1</l><l/></block><block var="source"/></block></block></autolambda><list></list></block><block var="node-distance map"/></block></block><comment w="90" collapsed="false">bring source to the front of associative list, and set it&apos;s distance to 0.</comment></block><block s="doDeclareVariables"><list><l>currentNode</l><l>tempDistance</l></list></block><block s="doSetVar"><l>currentNode</l><block var="source"/></block><block s="doShowVar"><l>node-distance map</l><comment w="90" collapsed="true">Shows variables (convenient for watching the process)</comment></block><block s="doShowVar"><l>currentNode</l></block><block s="doUntil"><block s="reportOr"><block s="reportListIsEmpty"><block var="unvisited"/></block><block s="reportEquals"><block var="currentNode"/><block var="destination"/></block></block><script><block s="doGotoObject"><custom-block s="stage coords of square: %s"><block var="currentNode"/></custom-block></block><block s="doForEach"><l>neighbor</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="unvisited"/><l></l></block></autolambda><list></list></block><custom-block s="neighbors of %l in %l"><block var="currentNode"/><block var="subgraph"/></custom-block></block><script><block s="doSetVar"><l>tempDistance</l><block s="reportVariadicSum"><list><custom-block s="weight from edge: %l"><custom-block s="edge between %s and %s in %s"><block var="currentNode"/><block var="neighbor"/><block var="subgraph"/><comment w="339" collapsed="true">distance to neighbor (may be more than one if graph has weights)</comment></custom-block></custom-block><block s="reportListItem"><l>2</l><custom-block s="$flash assoc %s %l"><block var="currentNode"/><block var="node-distance map"/></custom-block><comment w="212.0000000000001" collapsed="false">currentNode&apos;s distance to source.</comment></block></list></block></block><block s="doIf"><block s="reportLessThan"><block var="tempDistance"/><block s="reportListItem"><l>2</l><custom-block s="$flash assoc %s %l"><block var="neighbor"/><block var="node-distance map"/></custom-block><comment w="90" collapsed="true">neighbor&apos;s distance to source (so far)</comment></block></block><script><block s="doSetVar"><l>node-distance map</l><block s="reportCONS"><block s="reportNewList"><list><block var="neighbor"/><block var="tempDistance"/></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>1</l><l/></block><block var="neighbor"/></block></block></autolambda><list></list></block><block var="node-distance map"/></block></block><comment w="90" collapsed="false">update neighbor&apos;s distance.</comment></block><block s="doSetVar"><l>node-previous_node map</l><block s="reportCONS"><block s="reportNewList"><list><block var="neighbor"/><block var="currentNode"/></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>1</l><l/></block><block var="neighbor"/></block></block></autolambda><list></list></block><block var="node-previous_node map"/></block></block></block></script></block></script></block><block s="doSetVar"><l>unvisited</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><l></l><block var="currentNode"/></block></block></autolambda><list></list></block><block var="unvisited"/></block><comment w="90" collapsed="false">remove current node from &quot;unvisited&quot; list</comment></block><block s="doSetVar"><l>node-distance map</l><custom-block s="$flash sort %l ordering with %predRing"><block var="node-distance map"/><block s="reifyPredicate"><autolambda><block s="reportLessThan"><block s="reportListItem"><l>2</l><l/></block><block s="reportListItem"><l>2</l><l/></block></block></autolambda><list></list></block></custom-block><comment w="90" collapsed="false">sort so shortest distances are at the top.</comment></block><block s="doSetVar"><l>currentNode</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="unvisited"/><block s="reportListItem"><l>1</l><l/></block></block></autolambda><list></list></block><block var="node-distance map"/></block></block></block><comment w="90" collapsed="false">keep anything from our node-distance map that hasn&apos;t been visited yet.</comment></block></script><comment w="90" collapsed="false">Keep going until we&apos;ve visited every node, OR we found the destination.</comment></block><block s="doHideVar"><l>node-distance map</l></block><block s="doHideVar"><l>currentNode</l></block><block s="hide"></block><block s="doIfElse"><block s="reportNot"><block s="reportEquals"><block var="currentNode"/><block var="destination"/></block><comment w="90" collapsed="true">We didn&apos;t find the destination.  Instead we searched every connected node and it wasn&apos;t in there.</comment></block><script><block s="show"></block><block s="doSayFor"><l>failure</l><l>2</l></block><block s="doReport"><block s="reportNewList"><list><block var="node-distance map"/><block var="node-previous_node map"/></list></block><comment w="90" collapsed="true">report our results anyway... why not?</comment></block></script><script><block s="doReport"><block s="reportNewList"><list><block var="node-distance map"/><block var="node-previous_node map"/></list></block><comment w="90" collapsed="false">Report 2 lists:&#xD;node-distance map, and node-previous node map (so we can trace the path back to the start)</comment></block></script></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;pt:captura _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations>de:wirf _&#xD;ca:llança _&#xD;es:lanzar _&#xD;fr:lance _&#xD;pt:lança _&#xD;</translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;pt:captura _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations>de:wirf _ _&#xD;ca:llança _ _&#xD;es:lanzar _ _&#xD;fr:lance _ _&#xD;pt:lança _ _&#xD;</translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><comment x="0" y="0" w="263.3333333333333" collapsed="false">This is a breakpoint block, to be used in debugging.&#xD;The Boolean input specifies the condition under which&#xD;the program should pause.  (Use True for an unconditional breakpoint.)  The intent is that the script should have&#xD;SHOW VARIABLE blocks for the process&apos;s local variables.&#xD;After the pause, this block automatically hides all temporary variables.</comment><header></header><code></code><translations>de:falls _ dann _ und pause $pause-1-255-220-0&#xD;ca:si _ fes _ i atura-ho tot $pause-1-255-220-0&#xD;es:si _ haz _ y páralo todo $pause-1-255-220-0&#xD;fr:si _ faire _ et mettre tout en pause $pause-1-255-220-0&#xD;pt:se _ , então _ e faz pausa em tudo $pause-1-255-220-0&#xD;</translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><comment x="0" y="0" w="206.66666666666666" collapsed="false">This block does nothing.&#xD;Use it when you are calling a reporter&#xD;for its side effect and don&apos;t care about&#xD;its return value.</comment><header></header><code></code><translations>de:ignoriere _&#xD;ca:ignora _&#xD;es:ignorar _&#xD;fr:ignore _&#xD;pt:ignora _&#xD;</translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="cascade %&apos;num&apos; times %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="138" collapsed="false">Call f(f(f(...(f(x))))) n times where the three input slots are n, f, and x from left to right.  The # variable can be used inside f to represent how many times f has been called.</comment><header></header><code></code><translations>pt:o resultado de _ invocações em cascata de _ com argumento inicial _ _&#xD;ca:en cascada _ vegades _ _ _&#xD;</translations><inputs><input type="%n"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="cascade until %&apos;pred&apos; %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="210.47493489583334" collapsed="false">Call f(f(f(...(f(x))))) until condition is true, where the three input slots are condition, f, and x from left to right.  The # variable can be used inside f or condition to indicate how many times f has been called.</comment><header></header><code></code><translations>pt:o resultado da invocação em cascata até que _ de _ com argumento inicial _ _&#xD;ca:en cascada fins _ _ _ _&#xD;</translations><inputs><input type="%predRing"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list><block var="result"/></list></block><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="compose %&apos;f&apos; %&apos;g&apos;" type="reporter" category="control"><comment x="0" y="0" w="151.33333333333334" collapsed="false">Returns the function x↦f(g(x)) where f and g are the two inputs.</comment><header></header><code></code><translations>pt:a composição de _ com _&#xD;ca:composa _ _&#xD;</translations><inputs><input type="%repRing"></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="f"/><list><block s="evaluate"><block var="g"/><list><l></l></list></block></list></block></autolambda><list></list></block></block></script></block-definition><block-definition s="repeat %&apos;action&apos; until %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="202.66666666666666" collapsed="false">Like the built-in REPEAT UNTIL block, except that the ending condition is not tested until the script has been run the first time.  So the script is run at least once.</comment><header></header><code></code><translations>pt:repete _ até que _ $loop-0.7&#xD;ca:repeteix _ fins _&#xD;</translations><inputs><input type="%cs"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat %&apos;action&apos; while %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="287.3333333333333" collapsed="false">Run the script repeatedly, as long as the given condition is true.  Runs the script at least once before testing the condition.</comment><header></header><code></code><translations>pt:repete _ enquanto _ $loop-0.7&#xD;ca:repeteix _ mentre _&#xD;</translations><inputs><input type="%cs"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat while %&apos;pred&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="264" collapsed="false">Runs the script repeatedly, as long as the condition is true. Tests the condition before the first time the script is run.  Like the built in REPEAT UNTIL except that in this block the condition must be true, not false.</comment><header></header><code></code><translations>pt:enquanto _ , repete _ $loop-0.7&#xD;</translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat %&apos;num&apos; %&apos;#&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="171" collapsed="false">Runs the script the specified number of times, like the built-in REPEAT block, but this one provides the # variable that can be used inside the script.  Try&#xD;REPEAT (200)&#xD;                MOVE (#) STEPS&#xD;   RIGHT 92&#xD;with the pen down.</comment><header></header><code></code><translations>pt:repete _ vezes _ _ $loop-0.7&#xD;ca:repeteix _ _ _&#xD;</translations><inputs><input type="%n"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>#</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; step %&apos;step&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="247.33333333333334" collapsed="false">The primitive FOR block uses an implicit step of ±1 depending on which of the starting and ending values is larger.  This version allows you to provide an explicit step value.  If the sign of the step input is incompatible with the ordering of the starting and ending values, the script will not be run at all.</comment><header></header><code></code><translations>pt:para _ de _ com passo _ a _ _ $loop-0.7&#xD;ca:per _ = _ incrementant _ fins _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>test</l></list></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doIfElse"><block s="reportLessThan"><block var="step"/><l>0</l></block><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doUntil"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="let %&apos;a&apos; be %&apos;val&apos; in %&apos;loop&apos; %&apos;body&apos;" type="command" category="control"><comment x="0" y="0" w="238.66666666666666" collapsed="false">Provides LOOP as a function of one input that runs&#xD;the body of the LET with A set to the function input,&#xD;so the body can run itself recursively.&#xD;See COPY block in Variables for an example of use.</comment><header></header><code></code><translations>pt:tendo _ o valor inicial _ , executa _ definido como _&#xD;ca:fes que _ sigui _ al _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%s"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>a</l><block var="val"/></block><block s="doSetVar"><l>loop</l><block s="reifyScript"><script><block s="doSetVar"><l>a</l><block var="new value"/></block><block s="doRun"><block var="body"/><list><block var="a"/></list></block></script><list><l>new value</l></list></block></block><block s="doRun"><block var="loop"/><list><block var="a"/></list></block></script></block-definition><block-definition s="pipe %&apos;value&apos; $arrowRight %&apos;pipe&apos;" type="reporter" category="control"><comment x="0" y="0" w="339.3333333333333" collapsed="false">The inputs are a starting value and one or more monadic functions.&#xD;The first function is called with the starting value as its input.&#xD;The second function is called with the value reported by the first function as its input, and so on.  PIPE reports the value reported by the last function.  PIPE provides an alternative notation for function composition instead of the usual nesting.&#xD;&#xD;nested acronym:                                                                 &#xD;report (combine (keep items (capital-letter? ( )) from&#xD;                  (map (letter (1) of ( )) over&#xD;                                                 (sentence→list (phrase)))) using (join ( ) ( )))&#xD;&#xD;piped acronym:                                             &#xD;report (pipe (phrase) → &#xD;            (sentence→list ( ))&#xD;                              (map (letter (1) of ( )) over ( ))&#xD;                                              (keep items (capital-letter? ( )) from ( ))&#xD;                                (combine ( ) using (join ( ) ( )))&#xD;&#xD;Some people find PIPE easier to read because the functions are called in the same order in which you read them, whereas in nested composition the innermost function is called first. </comment><header></header><code></code><translations>pt:a aplicação a _ de _&#xD;ca:canalitza _ $arrowRight _&#xD;</translations><inputs><input type="%s"></input><input type="%mult%repRing"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="pipe"/></block><script><block s="doReport"><block var="value"/></block></script></block><block s="doReport"><custom-block s="pipe %s $arrowRight %mult%repRing"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="pipe"/></block><list><block var="value"/></list></block><block s="reportCDR"><block var="pipe"/></block></custom-block></block></script></block-definition><block-definition s="subgraph of %&apos;graph&apos; containing %&apos;thisNode&apos;" type="reporter" category="other"><comment x="0" y="0" w="355.701171875" collapsed="false">Finds the connected subgraph of [graph] which contains [thisNode].  Works by traversing the graph entirely and reporting back what it finds.  Runs slowly.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>connectedList</l><l>exploredList</l><l>currentNode</l><l>edgesToKeep</l></list></block><block s="doSetVar"><l>edgesToKeep</l><custom-block s="edges from/to node: %l in graph: %l"><block var="thisNode"/><block var="graph"/></custom-block></block><block s="doSetVar"><l>connectedList</l><block s="reportCONS"><block var="thisNode"/><custom-block s="neighbors of %l in %l"><block var="thisNode"/><block var="graph"/></custom-block></block></block><block s="doSetVar"><l>exploredList</l><block s="reportNewList"><list><block var="thisNode"/></list></block></block><block s="doShowVar"><l>connectedList</l></block><block s="doShowVar"><l>exploredList</l></block><block s="doUntil"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="connectedList"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="exploredList"/></block><comment w="275" collapsed="true">When these two lists are the same size (because of how we construct them) they contain the same nodes.  (note necessarily in the same order)</comment></block><script><block s="doSetVar"><l>currentNode</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="exploredList"/><l></l></block></block></autolambda><list></list></block><block var="connectedList"/></block><comment w="220" collapsed="false">Set [current node] to the first thing in the [connectedList] that isn&apos;t in the [exploredList]</comment></block><block s="doSetVar"><l>connectedList</l><block s="reportConcatenatedLists"><list><block var="connectedList"/><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="connectedList"/><l></l></block></block></autolambda><list></list></block><custom-block s="neighbors of %l in %l"><block var="currentNode"/><block var="graph"/></custom-block></block></list><comment w="90" collapsed="true">Add all neighbors of [currentNode] not already in the [connectedList] to the [connectedList]</comment></block></block><block s="doSetVar"><l>exploredList</l><block s="reportCONS"><block var="currentNode"/><block var="exploredList"/><comment w="205" collapsed="true">Add [currentNode] to [exploredList]</comment></block></block><block s="doSetVar"><l>edgesToKeep</l><block s="reportConcatenatedLists"><list><block var="edgesToKeep"/><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="edgesToKeep"/><l></l></block></block></autolambda><list></list></block><custom-block s="edges from/to node: %l in graph: %l"><block var="currentNode"/><block var="graph"/></custom-block></block></list><comment w="90" collapsed="false">Add any edges connected to [currentNode] which aren&apos;t already included.</comment></block></block></script></block><block s="doHideVar"><l>exploredList</l></block><block s="doHideVar"><l>connectedList</l></block><block s="doReport"><custom-block s="graph %l , %l"><block var="connectedList"/><block var="edgesToKeep"/></custom-block></block></script><scripts><script x="10" y="627.5000000000002"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="exploredList"/><l></l></block></block></autolambda><list></list></block><block var="connectedList"/></block></block></script><script x="10" y="701.0000000000002"><block s="reportListItem"><l>1</l><l/></block></script><script x="10" y="734.0000000000002"><block s="reportKeep"><block s="reifyPredicate"><script></script><list></list></block><l/></block></script><script x="616" y="571.7000000000003"><custom-block s="$flash remove duplicates from %l"><l/></custom-block></script></scripts></block-definition><block-definition s="list with %&apos;n&apos; copies of %&apos;item&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>output</l></list></block><block s="doSetVar"><l>output</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><block var="n"/><script><block s="doAddToList"><block var="item"/><block var="output"/></block></script></block><block s="doReport"><block var="output"/></block></script></block-definition><block-definition s="stage coords of square: %&apos;square&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>widthOfMaze</l><l>heightOfMaze</l></list></block><block s="doSetVar"><l>widthOfMaze</l><block s="reportListItem"><l>2</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="practice maze"/></block></block></block><block s="doSetVar"><l>heightOfMaze</l><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="practice maze"/></block></block></block><block s="doDeclareVariables"><list><l>widthOfBox</l><l>heightOfBox</l></list></block><block s="doSetVar"><l>widthOfBox</l><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><l>50</l></block><block var="widthOfMaze"/></block></block><block s="doSetVar"><l>heightOfBox</l><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><l>50</l></block><block var="heightOfMaze"/></block></block><block s="doSetVar"><l>widthOfBox</l><block s="reportVariadicMin"><list><block var="widthOfBox"/><block var="heightOfBox"/></list></block></block><block s="doSetVar"><l>heightOfBox</l><block var="widthOfBox"/></block><block s="doDeclareVariables"><list><l>y</l><l>x</l></list></block><block s="doSetVar"><l>y</l><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="square"/></block><block var="heightOfBox"/></list></block><block s="reportDifference"><l>0</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="heightOfBox"/><block var="heightOfMaze"/></list></block><l>2</l></block></block></list></block><block s="reportVariadicProduct"><list><block var="heightOfBox"/><l>-.5</l></list></block></list></block></block><block s="doSetVar"><l>x</l><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="square"/></block><block var="widthOfBox"/></list></block><block s="reportDifference"><l>0</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="widthOfMaze"/><block var="widthOfBox"/></list></block><l>2</l></block></block></list></block><block s="reportVariadicProduct"><list><block var="widthOfBox"/><l>-.5</l></list></block></list></block></block><block s="doReport"><block s="reportNewList"><list><block var="x"/><block var="y"/></list></block></block></script><scripts><script x="541.845703125" y="172.16666666666612"><block var="startPoint-pixels"/></script></scripts></block-definition><block-definition s="save graph %&apos;graph&apos; for edgy" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>saved_graph</l></list></block><block s="doSetVar"><l>saved_graph</l><l>{"directed":false,"multigraph":false,"layoutAlgorithm":"cola","nodeDisplayAttribute":"id","edgeDisplayAttribute":"label","graph":[["__costumes__",{}]],"nodes":[</l></block><block s="doForEach"><l>node</l><custom-block s="nodes from graph %l"><block var="graph"/></custom-block><script><block s="doSetVar"><l>saved_graph</l><block s="reportJoinWords"><list><block var="saved_graph"/><l>{"id":"</l><block s="reportListItem"><l>1</l><block var="node"/></block><l>,</l><block s="reportListItem"><l>2</l><block var="node"/></block><l>"},</l></list></block></block></script></block><block s="doSetVar"><l>saved_graph</l><custom-block s="substring of %txt from position %n to position %n inclusive"><block var="saved_graph"/><l>1</l><block s="reportDifference"><block s="reportStringSize"><block var="saved_graph"/></block><l>1</l></block><comment w="90" collapsed="false">delete last character (extra comma)&#xD;</comment></custom-block></block><block s="doSetVar"><l>saved_graph</l><block s="reportJoinWords"><list><block var="saved_graph"/><l>],"links":[</l></list></block></block><block s="doForEach"><l>edge</l><custom-block s="edges of graph %l"><block var="graph"/></custom-block><script><block s="doSetVar"><l>saved_graph</l><block s="reportJoinWords"><list><block var="saved_graph"/><l>{"source":</l><block s="reportDifference"><block s="reportListIndex"><block s="reportListItem"><l>1</l><block var="edge"/></block><custom-block s="nodes from graph %l"><block var="graph"/></custom-block></block><l>1</l></block><l>,"target":</l><block s="reportDifference"><block s="reportListIndex"><block s="reportListItem"><l>2</l><block var="edge"/></block><custom-block s="nodes from graph %l"><block var="graph"/></custom-block></block><l>1</l></block><l>},</l></list></block></block></script></block><block s="doSetVar"><l>saved_graph</l><custom-block s="substring of %txt from position %n to position %n inclusive"><block var="saved_graph"/><l>1</l><block s="reportDifference"><block s="reportStringSize"><block var="saved_graph"/></block><l>1</l></block><comment w="90" collapsed="false">delete last character (extra comma)&#xD;</comment></custom-block></block><block s="doSetVar"><l>saved_graph</l><block s="reportJoinWords"><list><block var="saved_graph"/><l>]}</l></list></block></block><block s="doReport"><block var="saved_graph"/></block></script><scripts><script x="524" y="227.20000000000013"><custom-block s="key: %s value: %s"><l>5</l><l>88</l></custom-block></script><script x="635" y="268.5333333333334"><block s="reportTextSplit"><l></l><l><option>json</option></l></block></script></scripts></block-definition><block-definition s="listify %&apos;jsonString&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:os dados JSON _ em formato de lista&#xD;</translations><inputs><input type="%mlt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="jsonString"/><l><option>json</option></l></block></block></script></block-definition><block-definition s="value at key %&apos;key&apos; of %&apos;lst&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:o valor com chave _ em _&#xD;</translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>each item</l><block var="lst"/><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="each item"/></block><block var="key"/></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="each item"/></block></block></script></block></script></block></script></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="%&apos;method&apos; url: %&apos;url&apos; send: %&apos;payload&apos; headers: %&apos;headers&apos;" type="reporter" category="sensing"><header></header><code></code><translations>pt:a resposta a _ de _ enviando _ e cabeçalhos _&#xD;</translations><inputs><input type="%s" readonly="true">GET<options>GET&#xD;POST&#xD;PUT&#xD;DELETE</options></input><input type="%s">https://snap.berkeley.edu</input><input type="%s"></input><input type="%mult%l" readonly="true"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>xhr_request(mth, url, dta, hdrs)</l><list><block var="method"/><block var="url"/><block var="payload"/><block var="headers"/></list></block></block></script></block-definition><block-definition s="key: %&apos;key&apos; value: %&apos;value&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:um par (chave: _ , valor: _ )&#xD;</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="key"/><block var="value"/></list></block></block></script></block-definition><block-definition s="current location" type="reporter" category="sensing"><comment x="0" y="0" w="200" collapsed="false">Reports a three-item list containing the latitude and longitude of the user, and the precision of the measurements.  Works only if the user allows snap.berkeley.edu access to location data.  Some browsers also require an HTTPS connection to Snap!.</comment><header></header><code></code><translations>pt:a localização actual do dispositivo&#xD;</translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>callback</l></list></block><block s="doSetVar"><l>callback</l><block s="reportApplyExtension"><l>geo_location(acc?)</l><list><block s="reportBoolean"><l><bool>true</bool></l></block></list></block></block><block s="doWaitUntil"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="evaluate"><block var="callback"/><list></list></block></block><l>3</l></block></block><block s="doReport"><block s="evaluate"><block var="callback"/><list></list></block></block></script></block-definition><block-definition s="row from pixel %&apos;startPoint&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>widthOfMaze</l><l>heightOfMaze</l></list></block><block s="doSetVar"><l>widthOfMaze</l><block s="reportListItem"><l>2</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="practice maze"/></block></block></block><block s="doSetVar"><l>heightOfMaze</l><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="practice maze"/></block></block></block><block s="doDeclareVariables"><list><l>widthOfBox</l><l>heightOfBox</l></list></block><block s="doSetVar"><l>widthOfBox</l><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><l>50</l></block><block var="widthOfMaze"/></block></block><block s="doSetVar"><l>heightOfBox</l><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><l>50</l></block><block var="heightOfMaze"/></block></block><block s="doSetVar"><l>widthOfBox</l><block s="reportVariadicMin"><list><block var="widthOfBox"/><block var="heightOfBox"/></list></block></block><block s="doSetVar"><l>heightOfBox</l><block var="widthOfBox"/></block><block s="doReport"><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="startPoint"/></block><block s="reportDifference"><l>0</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="heightOfBox"/><block var="heightOfMaze"/></list></block><l>2</l></block></block></block><block var="heightOfBox"/></block></block></block></script></block-definition><block-definition s="col from pixel %&apos;startPoint&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>widthOfMaze</l><l>heightOfMaze</l></list></block><block s="doSetVar"><l>widthOfMaze</l><block s="reportListItem"><l>2</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="practice maze"/></block></block></block><block s="doSetVar"><l>heightOfMaze</l><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="practice maze"/></block></block></block><block s="doDeclareVariables"><list><l>widthOfBox</l><l>heightOfBox</l></list></block><block s="doSetVar"><l>widthOfBox</l><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><l>50</l></block><block var="widthOfMaze"/></block></block><block s="doSetVar"><l>heightOfBox</l><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><l>50</l></block><block var="heightOfMaze"/></block></block><block s="doSetVar"><l>widthOfBox</l><block s="reportVariadicMin"><list><block var="widthOfBox"/><block var="heightOfBox"/></list></block></block><block s="doSetVar"><l>heightOfBox</l><block var="widthOfBox"/></block><block s="doReport"><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="startPoint"/></block><block s="reportDifference"><l>0</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="widthOfMaze"/><block var="widthOfBox"/></list></block><l>2</l></block></block></block><block var="widthOfBox"/></block></block></block></script></block-definition><block-definition s="initialize variables cols: %&apos;w&apos; rows: %&apos;h&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="hide"></block><block s="doWarp"><script><block s="doSetVar"><l>results</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>startNode</l><block s="reportNewList"><list><l>0</l><l>0</l></list></block></block><block s="doSetVar"><l>endNode</l><block s="reportNewList"><list><l>0</l><l>0</l></list></block></block><block s="doSetVar"><l>modes</l><block s="reportNewList"><list><l>Build a maze</l><l>Identify Starting Point</l><l>Identify End Point</l><l>Run Algorithm</l></list></block></block><block s="doSetVar"><l>current mode</l><l>1</l></block><block s="doSetVar"><l>practice maze</l><custom-block s="generate random maze %n x %n"><block var="w"/><block var="h"/></custom-block></block></script></block></script></block-definition><block-definition s="Draw Path from %&apos;startNode&apos; to %&apos;endNode&apos; based on %&apos;node-previousNode map&apos;" type="command" category="looks"><comment w="180" collapsed="false">Draws a yellow path between [endNode] and [startNode]</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>currentNode</l><l>previousNode</l><l>pathLength</l></list></block><block s="doSetVar"><l>pathLength</l><l>0</l></block><block s="doSetVar"><l>currentNode</l><block var="endNode"/></block><block s="doSetVar"><l>previousNode</l><block s="reportListItem"><l>2</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block s="reportListItem"><l>1</l><l/></block><block var="currentNode"/></block></autolambda><list></list></block><block var="node-previousNode map"/></block><comment w="239" collapsed="false">Item 1 is the second in the pair of connected nodes. &#xD;&#xD;Item 2 is the previous node.</comment></block></block><block s="doUntil"><block s="reportEquals"><block var="previousNode"/><block var="startNode"/></block><script><block s="doChangeVar"><l>pathLength</l><l>1</l></block><block s="doGotoObject"><block s="reportDifference"><custom-block s="stage coords of square: %s"><block var="previousNode"/></custom-block><l>5</l></block></block><block s="setColor"><color>255,253,148,1</color></block><block s="floodFill"></block><block s="doSetVar"><l>currentNode</l><block var="previousNode"/></block><block s="doSetVar"><l>previousNode</l><block s="reportListItem"><l>2</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block s="reportListItem"><l>1</l><l/></block><block var="currentNode"/></block></autolambda><list></list></block><block var="node-previousNode map"/></block></block></block></script><comment w="90" collapsed="false">Color  path yellow.</comment></block><block s="doChangeVar"><l>pathLength</l><l>1</l></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="show"></block><block s="doThinkFor"><block s="reportJoinWords"><list><l>We made it in </l><block var="pathLength"/><l> hops</l></list></block><l>4</l></block><block s="hide"></block></script></block-definition><block-definition s="Write node visitOrder based on %&apos;node-number map&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="setColor"><color>0,53,26,1</color></block><block s="doForEach"><l>node-number pair</l><block var="node-number map"/><script><block s="doGotoObject"><custom-block s="stage coords of square: %s"><block s="reportListItem"><l>1</l><block var="node-number pair"/></block></custom-block><comment w="145" collapsed="true">goes to center of box</comment></block><block s="doIfElse"><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="node-number pair"/></block><l>10000</l></block></block><script><block s="changeXPosition"><block s="reportVariadicProduct"><list><block s="reportStringSize"><block s="reportListItem"><l>2</l><block var="node-number pair"/></block></block><l>-3</l></list></block><comment w="90" collapsed="true">centering text</comment></block><block s="changeYPosition"><l>-3</l></block><block s="write"><block s="reportListItem"><l>2</l><block var="node-number pair"/></block><l>12</l><comment w="90" collapsed="false">Write number associated with node.</comment></block></script><script><block s="write"><l>*</l><l>12</l><comment w="90" collapsed="false">If the number is 10,000 don&apos;t write it.  That&apos;s used as a special number in this program. In some search algorithms, 10,000 will indicate that this box was never searched</comment></block></script></block></script></block></script></block-definition><block-definition s="announce mode" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="gotoXY"><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><l>-1.9</l></block><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><l>1.9</l></block></block><block s="show"></block><block s="doSayFor"><block s="reportListItem"><block var="current mode"/><block var="modes"/></block><l>2</l></block><block s="hide"></block></script></block-definition><block-definition s="depth-first search of graph: %&apos;graph&apos; , source node: %&apos;source&apos; , destination node: %&apos;destination&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>node-previous_node map</l><l>subgraph</l><l>unvisited</l><l>stack</l><l>node-orderVisited map</l><l>count</l></list></block><block s="doSetVar"><l>count</l><l>0</l></block><block s="doSetVar"><l>node-orderVisited map</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>subgraph</l><custom-block s="subgraph of %s containing %s"><block var="graph"/><block var="source"/><comment w="90" collapsed="true">Finds the connected subgraph containing our source.  Eliminates all irrelevant nodes from consideration.</comment></custom-block></block><block s="doSetVar"><l>unvisited</l><custom-block s="nodes from graph %l"><block var="subgraph"/><comment w="90" collapsed="true">all nodes are unvisited at first.</comment></custom-block></block><block s="doSetVar"><l>node-previous_node map</l><block s="reportNewList"><list></list></block><comment w="90" collapsed="true">This will be a node to node map that shows the previous node for each node we put on our final path.  It is useful in displaying the final path to the user.</comment></block><block s="doSetVar"><l>stack</l><block s="reportNewList"><list><block var="source"/></list></block></block><block s="doShowVar"><l>stack</l></block><block s="doDeclareVariables"><list><l>currentNode</l><l>previousNode</l></list></block><block s="doSetVar"><l>previousNode</l><block var="source"/></block><block s="doUntil"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="stack"/></block><l>0</l></block><script><block s="doSetVar"><l>currentNode</l><block s="reportListItem"><l>1</l><block var="stack"/></block><comment w="90" collapsed="false">POP from stack.</comment></block><block s="doSetVar"><l>stack</l><block s="reportCDR"><block var="stack"/></block></block><block s="doAddToList"><block s="reportNewList"><list><block var="currentNode"/><block var="count"/></list></block><block var="node-orderVisited map"/></block><block s="show"></block><block s="doGotoObject"><custom-block s="stage coords of square: %s"><block var="currentNode"/></custom-block></block><block s="doChangeVar"><l>count</l><l>1</l></block><block s="doIfElse"><block s="reportNot"><block s="reportEquals"><block var="currentNode"/><block var="destination"/></block></block><script><block s="doIf"><block s="reportListContainsItem"><block var="unvisited"/><block var="currentNode"/></block><script><block s="doDeclareVariables"><list><l>unvisited neighbors</l></list></block><block s="doSetVar"><l>unvisited neighbors</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="unvisited"/><l></l></block></autolambda><list></list></block><custom-block s="neighbors of %l in %l"><block var="currentNode"/><block var="subgraph"/></custom-block></block></block><block s="doSetVar"><l>unvisited</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block var="currentNode"/><l></l></block></block></autolambda><list></list></block><block var="unvisited"/></block><comment w="171" collapsed="true">Take currentNode off unvisited list</comment></block><block s="doIfElse"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="unvisited neighbors"/></block><l>0</l></block><script><block s="doSetVar"><l>stack</l><block s="reportConcatenatedLists"><list><block var="unvisited neighbors"/><block var="stack"/></list></block><comment w="258.6796875" collapsed="false">Put neighbors IN FRONT OF rest of the stack.  This is what makes it a STACK (not a queue)</comment></block><block s="doSetVar"><l>stack</l><custom-block s="$flash remove duplicates from %l"><block var="stack"/></custom-block></block><block s="doAddToList"><block s="reportNewList"><list><block var="currentNode"/><block var="previousNode"/></list></block><block var="node-previous_node map"/><comment w="90" collapsed="true">build our path</comment></block><block s="doSetVar"><l>previousNode</l><block var="currentNode"/></block></script><script><block s="doDeclareVariables"><list><l>backtrackNode</l></list></block><block s="doSetVar"><l>backtrackNode</l><block var="previousNode"/></block><block s="doUntil"><block s="reportNot"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="unvisited"/><l></l></block></autolambda><list></list></block><custom-block s="neighbors of %l in %l"><block var="backtrackNode"/><block var="subgraph"/></custom-block></block></block><comment w="90" collapsed="false">repeat until backtrackNode has another viable path extending from it.</comment></block><script><block s="doGotoObject"><custom-block s="stage coords of square: %s"><block var="backtrackNode"/></custom-block></block><block s="doSetVar"><l>previousNode</l><block var="backtrackNode"/></block><block s="doSetVar"><l>backtrackNode</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l><option>last</option></l><block var="node-previous_node map"/></block></block></block><block s="doDeleteFromList"><l><option>last</option></l><block var="node-previous_node map"/></block></script></block><block s="doSetVar"><l>previousNode</l><block var="backtrackNode"><comment w="362.451171875" collapsed="false">Once we&apos;ve backtracked far enough, set previousNode to the last one we found with a viable path (otherwise we end up with a disjoint path when we use previousNode in the next loop).</comment></block></block><block s="doGotoObject"><custom-block s="stage coords of square: %s"><block var="previousNode"/></custom-block></block></script></block></script></block></script><script><block s="doAddToList"><block s="reportNewList"><list><block var="currentNode"/><block var="previousNode"/></list></block><block var="node-previous_node map"/><comment w="90" collapsed="false">We found the destination!</comment></block><block s="doSetVar"><l>stack</l><block s="reportNewList"><list></list></block><comment w="90" collapsed="false">Empty the stack! (stop loop)</comment></block></script></block></script></block><block s="doHideVar"><l>stack</l></block><block s="hide"></block><block s="doReport"><block s="reportNewList"><list><block var="node-orderVisited map"/><block var="node-previous_node map"/></list></block><comment w="90" collapsed="false">Report node-orderVisited, along with  node-previous node map (so we can trace the path back to the start)</comment></block></script><scripts><script x="576.3578124999999" y="428.93333333333334"><block s="reportEquals"><l></l><l></l></block></script></scripts></block-definition><block-definition s="all but last of %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>newList</l></list></block><block s="doSetVar"><l>newList</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><l>1</l></block><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="list"/></block><block var="newList"/></block></script></block><block s="doReport"><block var="newList"/></block></script></block-definition><block-definition s="breadth-first search of graph: %&apos;graph&apos; , source node: %&apos;source&apos; , destination node: %&apos;destination&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>node-previous_node map</l><l>subgraph</l><l>unvisited</l><l>queue</l><l>node-orderVisited map</l><l>count</l></list></block><block s="doSetVar"><l>count</l><l>0</l></block><block s="doSetVar"><l>node-orderVisited map</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>subgraph</l><custom-block s="subgraph of %s containing %s"><block var="graph"/><block var="source"/><comment w="90" collapsed="true">Finds the connected subgraph containing our source.  Eliminates all irrelevant nodes from consideration.</comment></custom-block></block><block s="doSetVar"><l>unvisited</l><custom-block s="nodes from graph %l"><block var="subgraph"/><comment w="90" collapsed="true">all nodes are unvisited at first.</comment></custom-block></block><block s="doSetVar"><l>node-previous_node map</l><block s="reportNewList"><list></list></block><comment w="90" collapsed="true">This will be a node to node map that shows the previous node for each node we put on our final path.  It is useful in displaying the final path to the user.</comment></block><block s="doSetVar"><l>queue</l><block s="reportNewList"><list><block var="source"/></list></block></block><block s="doShowVar"><l>queue</l></block><block s="doDeclareVariables"><list><l>currentNode</l><l>previousNode</l></list></block><block s="doSetVar"><l>previousNode</l><block var="source"/></block><block s="doUntil"><block s="reportListIsEmpty"><block var="queue"/></block><script><block s="doDeclareVariables"><list><l>unvisited neighbors</l><l>visited neighbors</l></list></block><block s="doSetVar"><l>currentNode</l><block s="reportListItem"><l>1</l><block var="queue"/></block><comment w="90" collapsed="false">DEQUEUE</comment></block><block s="doSetVar"><l>queue</l><block s="reportCDR"><block var="queue"/></block></block><block s="doSetVar"><l>unvisited neighbors</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="unvisited"/><l></l></block></autolambda><list></list></block><custom-block s="neighbors of %l in %l"><block var="currentNode"/><block var="subgraph"/></custom-block></block></block><block s="doSetVar"><l>visited neighbors</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="unvisited"/><l></l></block></block></autolambda><list></list></block><custom-block s="neighbors of %l in %l"><block var="currentNode"/><block var="subgraph"/></custom-block></block></block><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><block var="visited neighbors"/></block></block><script><block s="doSetVar"><l>previousNode</l><block s="reportListItem"><l>1</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="visited neighbors"/><block s="reportListItem"><l>1</l><l/></block></block></autolambda><list></list></block><block var="node-orderVisited map"/></block></block><comment w="204.359375" collapsed="false">previous node is node in neighbors with lowest value in order visited.  Because we construct the map in order, the first one of the visited neighbors in this map is always the previous node for this one.</comment></block></script></block><block s="show"></block><block s="doGotoObject"><custom-block s="stage coords of square: %s"><block var="currentNode"/></custom-block></block><block s="setColor"><color>46,46,46,1</color></block><block s="write"><l>X</l><l>12</l></block><block s="doChangeVar"><l>count</l><l>1</l></block><block s="doAddToList"><block s="reportNewList"><list><block var="currentNode"/><block var="count"/></list></block><block var="node-orderVisited map"/><comment w="90" collapsed="false">We found the destination!</comment></block><block s="doAddToList"><block s="reportNewList"><list><block var="currentNode"/><block var="previousNode"/></list></block><block var="node-previous_node map"/></block><block s="doIfElse"><block s="reportNot"><block s="reportEquals"><block var="currentNode"/><block var="destination"/></block></block><script><block s="doSetVar"><l>unvisited</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block var="currentNode"/><l></l></block></block></autolambda><list></list></block><block var="unvisited"/></block><comment w="171" collapsed="true">Take currentNode off unvisited list</comment></block><block s="doSetVar"><l>queue</l><block s="reportConcatenatedLists"><list><block var="queue"/><block var="unvisited neighbors"/></list></block><comment w="258.6796875" collapsed="false">Put neighbors BEHIND rest of the queue.  This is what makes it a QUEUE (not a stack)</comment></block></script><script><block s="doSetVar"><l>queue</l><block s="reportNewList"><list></list></block></block></script></block></script></block><block s="doSayFor"><block s="reportJoinWords"><list><l>We searched </l><block var="count"/><l> nodes.</l></list></block><l>2</l></block><block s="hide"></block><block s="doHideVar"><l>queue</l></block><block s="doReport"><block var="node-previous_node map"/><comment w="90" collapsed="false">Report node-previous node map (so we can trace the path back to the start)</comment></block></script><scripts><script x="61.9951171875" y="1312.6666666666665"><block s="reportNewList"><list><l></l><l></l></list></block></script></scripts></block-definition><block-definition s="weight from edge: %&apos;edge&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="edge"/></block></block></script></block-definition><block-definition s="simplify %&apos;graph&apos;" type="reporter" category="operators"><comment x="0" y="0" w="264" collapsed="false">Takes a graph and removes intermediate nodes where no choices exist. Weights of edges get added up to preserve graph information, while simplifying structure.&#xD;&#xD;DOES NOT WORK - fails when there are cycles in the graph.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="show"></block><block s="doDeclareVariables"><list><l>new_edges</l><l>new_nodes</l><l>old_graph</l></list></block><block s="doSetVar"><l>old_graph</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportBoolean"><l><bool>true</bool></l></block></autolambda><list></list></block><block var="graph"/></block></block><block s="doSetVar"><l>new_edges</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>new_nodes</l><block s="reportNewList"><list></list></block></block><block s="doUntil"><block s="reportListIsEmpty"><custom-block s="nodes from graph %l"><block var="old_graph"/></custom-block></block><script><block s="doDeclareVariables"><list><l>edgesFromThisNode</l><l>thisNode</l><l>created_edge</l></list></block><block s="doSetVar"><l>created_edge</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>thisNode</l><block s="reportListItem"><l>1</l><custom-block s="nodes from graph %l"><block var="old_graph"/></custom-block></block></block><block s="doGotoObject"><custom-block s="stage coords of square: %s"><block var="thisNode"/></custom-block></block><block s="doSetVar"><l>edgesFromThisNode</l><custom-block s="edges from/to node: %l in graph: %l"><block var="thisNode"/><block var="old_graph"/></custom-block></block><block s="doIfElse"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="edgesFromThisNode"/></block><l>2</l></block><script><block s="doAddToList"><block var="thisNode"/><block var="new_nodes"/></block><block s="doForEach"><l>edge</l><block var="edgesFromThisNode"/><script><block s="doAddToList"><block var="edge"/><block var="new_edges"/></block></script></block></script><script><block s="doIfElse"><block s="reportLessThanOrEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="edgesFromThisNode"/></block><l>1</l><comment w="172" collapsed="false">leaf node or isolate, no edges with it.</comment></block><script><block s="doAddToList"><block var="thisNode"/><block var="new_nodes"/></block></script><script><block s="doDeclareVariables"><list><l>start-end nodes</l></list></block><block s="doSetVar"><l>start-end nodes</l><custom-block s="remove pairs from %l"><block s="reportConcatenatedLists"><list><custom-block s="both nodes attached by %s"><block s="reportListItem"><l>1</l><block var="edgesFromThisNode"/></block></custom-block><custom-block s="both nodes attached by %s"><block s="reportListItem"><l>2</l><block var="edgesFromThisNode"/></block></custom-block></list></block></custom-block></block><block s="doSetVar"><l>created_edge</l><custom-block s="edge from %l to %l with weight %n"><block s="reportListItem"><l>1</l><block var="start-end nodes"/></block><block s="reportListItem"><l>2</l><block var="start-end nodes"/></block><block s="reportVariadicSum"><list><custom-block s="weight from edge: %l"><block s="reportListItem"><l>1</l><block var="edgesFromThisNode"/></block></custom-block><custom-block s="weight from edge: %l"><block s="reportListItem"><l>2</l><block var="edgesFromThisNode"/></block></custom-block></list></block></custom-block></block><block s="doSetVar"><l>new_edges</l><block s="reportCONS"><block var="created_edge"/><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><custom-block s="edges from/to node: %l in graph: %l"><block var="thisNode"/><block var="old_graph"/></custom-block><l></l></block></block></autolambda><list></list></block><block var="new_edges"/></block></block><comment w="149.833984375" collapsed="false">replace the two old edges with created edge in new_edges</comment></block><block s="doSetVar"><l>old_graph</l><custom-block s="graph %l , %l"><custom-block s="nodes from graph %l"><block var="old_graph"/></custom-block><block s="reportCONS"><block var="created_edge"/><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="edgesFromThisNode"/><l></l></block></block></autolambda><list></list></block><custom-block s="edges of graph %l"><block var="old_graph"/></custom-block></block></block><comment w="231" collapsed="false">remove the two edges from the old_graph (so they don&apos;t get added again later).  Replace them with created edge.</comment></custom-block></block></script></block></script></block><block s="doSetVar"><l>old_graph</l><custom-block s="graph %l , %l"><block s="reportCDR"><custom-block s="nodes from graph %l"><block var="old_graph"/></custom-block></block><custom-block s="edges of graph %l"><block var="old_graph"/></custom-block></custom-block><comment w="223.81191406250002" collapsed="false">Remove current node (the first one) from the old_graph.  </comment></block></script></block><block s="doReport"><custom-block s="graph %l , %l"><block var="new_nodes"/><custom-block s="$flash remove duplicates from %l"><block var="new_edges"/></custom-block></custom-block></block></script></block-definition><block-definition s="startNode from %&apos;edge&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="edge"/></block></block></script></block-definition><block-definition s="endNode from %&apos;edge&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="edge"/></block></block></script></block-definition><block-definition s="both nodes attached by %&apos;edge&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><custom-block s="startNode from %s"><block var="edge"/></custom-block><custom-block s="endNode from %s"><block var="edge"/></custom-block></list></block></block></script></block-definition><block-definition s="remove pairs from %&apos;anyList&apos;" type="reporter" category="lists"><comment x="0" y="0" w="90" collapsed="false">Takes a list and reports the list absent any items which occur multiple times.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>newList</l></list></block><block s="doSetVar"><l>newList</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="anyList"/><script><block s="doIf"><block s="reportNot"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block var="item"/><l></l></block></autolambda><list></list></block><block var="anyList"/></block></block><l>1</l></block></block><script><block s="doAddToList"><block var="item"/><block var="newList"/></block></script></block></script></block><block s="doReport"><block var="newList"/></block></script></block-definition><block-definition s="edge between %&apos;node1&apos; and %&apos;node2&apos; in %&apos;graph&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportAnd"><block s="reportListContainsItem"><l/><block var="node1"/></block><block s="reportListContainsItem"><l/><block var="node2"/></block></block></autolambda><list></list></block><custom-block s="edges of graph %l"><block var="graph"/></custom-block></block></block></script></block-definition><block-definition s="A* graph: %&apos;graph&apos; , source node: %&apos;source&apos; destination node: %&apos;destination&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="show"></block><block s="doDeclareVariables"><list><l>node-distance map</l><l>node-previous_node map</l><l>subgraph</l><l>unvisited</l><l>node-estimated_to_destination map</l><l>node-F_Score map</l></list></block><block s="doSetVar"><l>subgraph</l><custom-block s="subgraph of %s containing %s"><block var="graph"/><block var="source"/><comment w="90" collapsed="true">Finds the connected subgraph containing our source.  Eliminates all irrelevant nodes from consideration.</comment></custom-block></block><block s="doSetVar"><l>unvisited</l><custom-block s="nodes from graph %l"><block var="subgraph"/><comment w="90" collapsed="true">all nodes are unvisited at first.</comment></custom-block></block><block s="doSetVar"><l>node-previous_node map</l><block s="reportNewList"><list></list></block><comment w="90" collapsed="true">This will be a node to node map that shows the previous node for each node we put on our final path.  It is useful in displaying the final path to the user.</comment></block><block s="doSetVar"><l>node-distance map</l><custom-block s="$flash zip %mult%l"><list><custom-block s="nodes from graph %l"><block var="subgraph"/></custom-block><custom-block s="list with %n copies of %s"><block s="reportListAttribute"><l><option>length</option></l><custom-block s="nodes from graph %l"><block var="subgraph"/></custom-block></block><l>10000</l></custom-block></list></custom-block><comment w="90" collapsed="true">node-distance map - associates each node with a distance from the source.  We set each one to an absurdly high value (10,000 in this case</comment></block><block s="doSetVar"><l>node-distance map</l><block s="reportCONS"><block s="reportNewList"><list><block var="source"/><l>0</l></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>1</l><l/></block><block var="source"/></block></block></autolambda><list></list></block><block var="node-distance map"/></block></block><comment w="90" collapsed="false">bring source to the front of associative list, and set it&apos;s distance to 0.</comment></block><block s="doSetVar"><l>node-estimated_to_destination map</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doForEach"><l>node</l><custom-block s="nodes from graph %l"><block var="subgraph"/></custom-block><script><block s="doAddToList"><block s="reportNewList"><list><block var="node"/><custom-block s="manhattan distance from %s to %s"><block var="node"/><block var="destination"/></custom-block></list></block><block var="node-estimated_to_destination map"/></block></script></block></script></block><block s="doSetVar"><l>node-F_Score map</l><custom-block s="$flash zip %mult%l"><list><custom-block s="nodes from graph %l"><block var="subgraph"/></custom-block><custom-block s="list with %n copies of %s"><block s="reportListAttribute"><l><option>length</option></l><custom-block s="nodes from graph %l"><block var="subgraph"/></custom-block></block><l>10000</l></custom-block></list></custom-block><comment w="222" collapsed="true">node-F-score map - associates each node with a score.  This score will eventually be the sum of the distance traveled to get to that node AND the estimated distance from that node to the destination.</comment></block><block s="doSetVar"><l>node-F_Score map</l><block s="reportCONS"><custom-block s="$flash assoc %s %l"><block var="source"/><block var="node-estimated_to_destination map"/></custom-block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>1</l><l/></block><block var="source"/></block></block></autolambda><list></list></block><block var="node-F_Score map"/></block></block><comment w="90" collapsed="false">bring source to the front of associative list, and set it&apos;s F-score to it&apos;s estimated distance (manhattan distance).</comment></block><block s="doDeclareVariables"><list><l>currentNode</l><l>tempDistance</l></list></block><block s="doSetVar"><l>currentNode</l><block var="source"/></block><block s="doShowVar"><l>node-F_Score map</l><comment w="90" collapsed="true">Shows variables (convenient for watching the process)</comment></block><block s="doShowVar"><l>currentNode</l></block><block s="doUntil"><block s="reportOr"><block s="reportListIsEmpty"><block var="unvisited"/></block><block s="reportEquals"><block var="currentNode"/><block var="destination"/></block></block><script><block s="doGotoObject"><custom-block s="stage coords of square: %s"><block var="currentNode"/></custom-block></block><block s="doForEach"><l>neighbor</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="unvisited"/><l></l></block></autolambda><list></list></block><custom-block s="neighbors of %l in %l"><block var="currentNode"/><block var="subgraph"/></custom-block></block><script><block s="doSetVar"><l>tempDistance</l><block s="reportVariadicSum"><list><custom-block s="weight from edge: %l"><custom-block s="edge between %s and %s in %s"><block var="currentNode"/><block var="neighbor"/><block var="subgraph"/><comment w="339" collapsed="true">distance to neighbor (may be more than one if graph has weights)</comment></custom-block></custom-block><block s="reportListItem"><l>2</l><custom-block s="$flash assoc %s %l"><block var="currentNode"/><block var="node-distance map"/></custom-block><comment w="212.0000000000001" collapsed="true">currentNode&apos;s distance to source.</comment></block></list></block></block><block s="doIf"><block s="reportLessThan"><block var="tempDistance"/><block s="reportListItem"><l>2</l><custom-block s="$flash assoc %s %l"><block var="neighbor"/><block var="node-distance map"/></custom-block><comment w="90" collapsed="true">neighbor&apos;s distance to source (so far)</comment></block></block><script><block s="doSetVar"><l>node-distance map</l><block s="reportCONS"><block s="reportNewList"><list><block var="neighbor"/><block var="tempDistance"/></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>1</l><l/></block><block var="neighbor"/></block></block></autolambda><list></list></block><block var="node-distance map"/></block></block><comment w="90" collapsed="false">update neighbor&apos;s distance.</comment></block><block s="doSetVar"><l>node-F_Score map</l><block s="reportCONS"><block s="reportNewList"><list><block var="neighbor"/><block s="reportVariadicSum"><list><block var="tempDistance"/><block s="reportListItem"><l>2</l><custom-block s="$flash assoc %s %l"><block var="neighbor"/><block var="node-estimated_to_destination map"/></custom-block></block></list></block></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>1</l><l/></block><block var="neighbor"/></block></block></autolambda><list></list></block><block var="node-F_Score map"/></block></block><comment w="90" collapsed="false">update neighbor&apos;s F-score.</comment></block><block s="doSetVar"><l>node-previous_node map</l><block s="reportCONS"><block s="reportNewList"><list><block var="neighbor"/><block var="currentNode"/></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>1</l><l/></block><block var="neighbor"/></block></block></autolambda><list></list></block><block var="node-previous_node map"/></block></block><comment w="90" collapsed="false">Remember path</comment></block></script></block></script></block><block s="doSetVar"><l>unvisited</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><l></l><block var="currentNode"/></block></block></autolambda><list></list></block><block var="unvisited"/></block><comment w="161.9658203125" collapsed="false">remove current node from &quot;unvisited&quot; list</comment></block><block s="doSetVar"><l>node-F_Score map</l><custom-block s="$flash sort %l ordering with %predRing"><block var="node-F_Score map"/><block s="reifyPredicate"><autolambda><block s="reportLessThan"><block s="reportListItem"><l>2</l><l/></block><block s="reportListItem"><l>2</l><l/></block></block></autolambda><list></list></block></custom-block><comment w="159" collapsed="false">sort so shortest f-scores are at the top.</comment></block><block s="doSetVar"><l>currentNode</l><block s="reportListItem"><l>1</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="unvisited"/><block s="reportListItem"><l>1</l><l/></block></block></autolambda><list></list></block><block var="node-F_Score map"/></block></block><comment w="116" collapsed="false">Pick the unvisited node with lowest F score (known distance + guestimated distance)</comment></block></script><comment w="90" collapsed="false">Keep going until we&apos;ve visited every node, OR we found the destination.</comment></block><block s="doHideVar"><l>node-F_Score map</l></block><block s="doHideVar"><l>currentNode</l></block><block s="hide"></block><block s="doIfElse"><block s="reportNot"><block s="reportEquals"><block var="currentNode"/><block var="destination"/></block><comment w="90" collapsed="true">We didn&apos;t find the destination.  Instead we searched every connected node and it wasn&apos;t in there.</comment></block><script><block s="show"></block><block s="doSayFor"><l>failure</l><l>2</l></block><block s="doReport"><block s="reportNewList"><list><block var="node-distance map"/><block var="node-previous_node map"/></list></block><comment w="90" collapsed="true">report our results anyway... why not?</comment></block></script><script><block s="doReport"><block s="reportNewList"><list><block var="node-distance map"/><block var="node-previous_node map"/></list></block><comment w="90" collapsed="false">Report 2 lists:&#xD;node-distance map, and node-previous node map (so we can trace the path back to the start)</comment></block></script></block></script><scripts><script x="520" y="27"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="unvisited"/><block s="reportListItem"><l>1</l><l/></block></block></autolambda><list></list></block><block var="node-distance map"/></block></block><comment w="90" collapsed="false">grab the first node in our node-distance map</comment></block></script></scripts></block-definition><block-definition s="manhattan distance from %&apos;point1&apos; to %&apos;point2&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Reports the manhattan distance between two points.  This is the distance assuming you are moving only in cardinal directions (no diagonal moves). </comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>distance</l></list></block><block s="doSetVar"><l>distance</l><l>0</l></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="point1"/></block><script><block s="doChangeVar"><l>distance</l><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block s="reportListItem"><block var="i"/><block var="point2"/></block><block s="reportListItem"><block var="i"/><block var="point1"/></block></block></block></block></script></block><block s="doReport"><block var="distance"/></block></script></block-definition><block-definition s="greedy best-first search of graph: %&apos;graph&apos; , source node: %&apos;source&apos; , destination node: %&apos;destination&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>node-previous_node map</l><l>subgraph</l><l>unvisited</l><l>queue</l><l>node-orderVisited map</l><l>count</l><l>node-estimated distance map</l></list></block><block s="doSetVar"><l>count</l><l>0</l></block><block s="doSetVar"><l>node-orderVisited map</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>subgraph</l><custom-block s="subgraph of %s containing %s"><block var="graph"/><block var="source"/><comment w="90" collapsed="true">Finds the connected subgraph containing our source.  Eliminates all irrelevant nodes from consideration.</comment></custom-block></block><block s="doSetVar"><l>unvisited</l><custom-block s="nodes from graph %l"><block var="subgraph"/><comment w="90" collapsed="true">all nodes are unvisited at first.</comment></custom-block></block><block s="doSetVar"><l>node-previous_node map</l><block s="reportNewList"><list></list></block><comment w="90" collapsed="true">This will be a node to node map that shows the previous node for each node we put on our final path.  It is useful in displaying the final path to the user.</comment></block><block s="doSetVar"><l>node-estimated distance map</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doForEach"><l>node</l><custom-block s="nodes from graph %l"><block var="subgraph"/></custom-block><script><block s="doAddToList"><block s="reportNewList"><list><block var="node"/><custom-block s="manhattan distance from %s to %s"><block var="node"/><block var="destination"/></custom-block></list></block><block var="node-estimated distance map"/></block></script><comment w="255" collapsed="false">Here we build a map between each node and it&apos;s &quot;manhattan&quot; distance to the destination.  This is how long it would take to get there if there were no walls in the maze.</comment></block></script></block><block s="doSetVar"><l>queue</l><block s="reportNewList"><list><custom-block s="$flash assoc %s %l"><block var="source"/><block var="node-estimated distance map"/></custom-block></list><comment w="109" collapsed="true">enqueue source.</comment></block></block><block s="doSetVar"><l>unvisited</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><l></l><block var="source"/></block></block></autolambda><list></list></block><block var="unvisited"/></block><comment w="143" collapsed="true">mark source as visited</comment></block><block s="doShowVar"><l>queue</l><comment w="364.1298828125" collapsed="false">This time, we have to use a PRIORITY queue.  We need to keep track of not just the nodes, but also our guess at how close each node is to the destination.  We will sort this queue by estimated distance from destination, so we can choose a good direction to explore next.</comment></block><block s="doDeclareVariables"><list><l>currentNode</l><l>previousNode</l></list></block><block s="doSetVar"><l>previousNode</l><block var="source"/></block><block s="doUntil"><block s="reportListIsEmpty"><block var="queue"/></block><script><block s="doDeclareVariables"><list><l>unvisited neighbors</l><l>visited neighbors</l></list></block><block s="doIfElse"><block s="reportNot"><block s="reportEquals"><block var="currentNode"/><block var="destination"/></block></block><script><block s="doForEach"><l>neighbor</l><block var="unvisited neighbors"/><script><block s="doAddToList"><custom-block s="$flash assoc %s %l"><block var="neighbor"/><block var="node-estimated distance map"/></custom-block><block var="queue"/></block><block s="doSetVar"><l>unvisited</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block var="neighbor"/><l></l></block></block></autolambda><list></list></block><block var="unvisited"/></block></block></script><comment w="197.1503906249999" collapsed="false">Because we aren&apos;t just adding nodes, we have to be more careful about adding each neighbor AND it&apos;s estimated distance to the queue</comment></block><block s="doSetVar"><l>queue</l><custom-block s="$flash sort %l ordering with %predRing"><block var="queue"/><block s="reifyPredicate"><autolambda><block s="reportLessThan"><block s="reportListItem"><l>2</l><l/></block><block s="reportListItem"><l>2</l><l/></block></block></autolambda><list></list></block></custom-block><comment w="90" collapsed="false">Make it a priority queue (basicallyif) by sorting it.</comment></block></script><script><block s="doSetVar"><l>queue</l><block s="reportNewList"><list></list></block><comment w="306" collapsed="true">Empty the queue! (stop loop)</comment></block></script></block></script></block><block s="doSayFor"><block s="reportJoinWords"><list><l>We searched </l><block var="count"/><l> nodes</l></list></block><l>3</l></block><block s="hide"></block><block s="doHideVar"><l>queue</l></block><block s="doReport"><block var="node-previous_node map"/><comment w="90" collapsed="false">Report  node-previous node map (so we can trace the path back to the start)</comment></block></script><scripts><script x="822" y="498.3333333333332"><block s="doSetVar"><l>currentNode</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="queue"/></block></block><comment w="90" collapsed="false">DEQUEUE</comment></block><block s="doSetVar"><l>queue</l><block s="reportCDR"><block var="queue"/></block></block></script><script x="769" y="179.99999999999977"><block s="doSetVar"><l>unvisited neighbors</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="unvisited"/><l></l></block></autolambda><list></list></block><custom-block s="neighbors of %l in %l"><block var="currentNode"/><block var="subgraph"/></custom-block></block></block><block s="doSetVar"><l>visited neighbors</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="unvisited"/><l></l></block></block></autolambda><list></list></block><custom-block s="neighbors of %l in %l"><block var="currentNode"/><block var="subgraph"/></custom-block></block></block><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><block var="visited neighbors"/><comment w="90" collapsed="true">fails only for source node (hard-coded above)</comment></block></block><script><block s="doSetVar"><l>previousNode</l><block s="reportListItem"><l>1</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="visited neighbors"/><block s="reportListItem"><l>1</l><l/></block></block></autolambda><list></list></block><block var="node-orderVisited map"/></block></block><comment w="204.359375" collapsed="false">previous node is node in neighbors with lowest value in order visited.  Because we construct the map in order, the first one of the visited neighbors in this map is always the previous node for this one.</comment></block></script></block></script><script x="809" y="658"><block s="doAddToList"><block s="reportNewList"><list><block var="currentNode"/><block var="previousNode"/></list></block><block var="node-previous_node map"/><comment w="90" collapsed="false">remember the path</comment></block><block s="doAddToList"><block s="reportNewList"><list><block var="currentNode"/><block var="count"/></list></block><block var="node-orderVisited map"/></block></script><script x="741" y="746.3333333333333"><block s="doChangeVar"><l>count</l><l>1</l></block></script><script x="838" y="815.666666666667"><block s="show"></block><block s="doGotoObject"><custom-block s="stage coords of square: %s"><block var="currentNode"/></custom-block></block><custom-block s="set pen color to r: %n g: %n b: %n"><l>0</l><l>0</l><l>0</l><comment w="90" collapsed="true">black</comment></custom-block><block s="write"><l>X</l><l>12</l></block></script><script x="397" y="1002.9999999999998"><custom-block s="$flash assoc %s %l"><block var="neighbor"/><block var="node-estimated distance map"/><comment w="176" collapsed="false">This looks through the node-estimated distance map and finds the row with neighbor as the node.  It reports the whole line from the list [node, distance]&#xD;&#xD;Be careful with data types here!&#xD;&#xD;[DON&apos;T put this into your code directly, this is for explanatory purposes only]</comment></custom-block></script></scripts></block-definition><block-definition s="color visided nodes based on %&apos;visitedList&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>rank</option></l><block var="visitedList"/></block><l>3</l></block><script><custom-block s="Write node visitOrder based on %l"><block var="visitedList"/></custom-block></script><script><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>rank</option></l><block var="visitedList"/></block><l>2</l></block><script><block s="setColor"><color>209,255,177,1</color></block><block s="doForEach"><l>node</l><block var="visitedList"/><script><block s="doGotoObject"><custom-block s="stage coords of square: %s"><block var="node"/></custom-block><comment w="145" collapsed="true">goes to center of box</comment></block><block s="floodFill"></block></script></block></script></block></script></block></script><scripts><script x="333.6162109375" y="91.83333333333331"><block s="reportListItem"><l>1</l><block var="results"/></block></script></scripts></block-definition></blocks><stage name="Stage" 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="15923"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAIABJREFUeF7t212oZfdZx/FnnzPTtHlr+mI0msS0xszOi00xtIpeJBG06oX0QrFYoYPgTZkgRW+9Em8EpSUHRIvQ4gsiRVq8ClIzpYIXmr7YZGafpjGVtImaNq1JmuZlzlmyx5l0qAX397eemXXWzHcgzM3zrLXX5/x7vrPOTBflLwUUUEABBRS44AKLC35Hb6iAAgoooIACZYA9BAoooIACCkwgYIAnQPeWCiiggAIKGGDPgAIKKKCAAhMIGOAJ0L2lAgoooIACBtgzoIACCiigwAQCBngCdG+pgAIKKKCAAfYMKKCAAgooMIGAAZ4A3VsqoIACCihggD0DCiiggAIKTCBggCdA95YKKKCAAgoYYM+AAgoooIACEwgY4AnQvaUCCiiggAIG2DOggAIKKKDABAIGeAJ0b6mAAgoooIAB9gwooIACCigwgYABngDdWyqggAIKKGCAPQMKKKCAAgpMIGCAJ0D3lgoooIACChhgz4ACCiiggAITCBjgCdC9pQIKKKCAAgbYM6CAAgoooMAEAgZ4AnRvqYACCiigwCwDfOTIkeNVdff6y7dYzPIRLvjJ29/ff9VKs835h2F4dVi3zdw8a5s5ffeUZy1zO7P1qdVqdc+oK0ywPMt6LZfLx6vqprXXG09+dQK2+d3y68sffDXAJx85Nr8HmOgT33r7zkR3nu9t1yE5+4eVk6d+bL4PcoE/+a2HvnCB73hR3e7Lq9XqLXN7orkG+MGqusf4suP2zK0/VMaXma2njTA3W28YX+62jvAwDB/Y3d39IN++9DaWy+X6rXfdg+Or1ereuQkY4Ll9xUZ8XgOc4RngzM0AczcDzMwMMPNqmV4ul74BB5IGOEDzDThD8w04cjPAjM0AM6+WaQOcMRrgzM034MzNN2DuZoCZmQFmXi3TBjhjNMCZmwHO3AwwdzPAzMwAM6+WaQOcMRrgzM0AZ24GmLsZYGZmgJlXy7QBzhgNcOZmgDM3A8zdDDAzM8DMq2XaAGeMBjhzM8CZmwHmbgaYmRlg5tUybYAzRgOcuRngzM0AczcDzMwMMPNqmTbAGaMBztwMcOZmgLmbAWZmBph5tUwb4IzRAGduBjhzM8DczQAzMwPMvFqmDXDGaIAzNwOcuRlg7maAmZkBZl4t0wY4YzTAmZsBztwMMHczwMzMADOvlmkDnDEa4MzNAGduBpi7GWBmZoCZV8u0Ac4YDXDmZoAzNwPM3QwwMzPAzKtl2gBnjAY4czPAmZsB5m4GmJkZYObVMm2AM0YDnLkZ4MzNAHM3A8zMDDDzapk2wBmjAc7cDHDmZoC5mwFmZgaYebVMG+CM0QBnbgY4czPA3M0AMzMDzLxapg1wxmiAMzcDnLkZYO5mgJmZAWZeLdMGOGM0wJmbAc7cDDB3M8DMzAAzr5ZpA5wxGuDMzQBnbgaYuxlgZmaAmVfLtAHOGA1w5maAMzcDzN0MMDMzwMyrZdoAZ4wGOHMzwJmbAeZuBpiZGWDm1TJtgDNGA5y5GeDMzQBzNwPMzAww82qZNsAZowHO3Axw5maAuZsBZmYGmHm1TBvgjNEAZ24GOHMzwNzNADMzA8y8WqYNcMZogDM3A5y5GWDuZoCZmQFmXi3TBjhjNMCZmwHO3AwwdzPAzMwAM6+WaQOcMRrgzM0AZ24GmLsZYGZmgJlXy/RBD/D+qf166fGqrddVXXb9Vr38tf3a+0bV4euqDl251WKQXMQAJ2pVBjhzO8gBfn7/VL007NXrtw7Xdi3qmf2XT/9+zfZrsodt2jLADNIAM6+W6YMe4Kf++OV6/P0v1eJw1U88f0V99rYX6qXHhrr2Nw7VzX/2uhaD5CJzCPBi+9j60d5TVY9W1fGqenrY23lr8rxdOwY4kzzIAf6lJ/+x/u6Fp+qvv/8n60cPX1n3fPV4fd/2ZfWFG3+uLt86lD1ww5YBZogGmHm1TB/0AK8f8rH3v1j/+aev1Ns/f3k9fO8Ldfkd23XHP1ze8vzpRWYS4BNV9eGqeqiqPjbs7VybPm/XngHOJA9ygF/YP1Xv+Mon6zevfkvdddkb6pf/45/qczf8bF13aLo/IK+VDTA7awaYebVMzyHA6wf9zJHn68UvDrX9hqp3PHlFbb12uh8/rz/PHAK8/pyL7WPPrX8f9nauajkwIy9igDPAgxzg9ROtXn623vnEJ08/3Ceu++m69/LJ/6xngOFRM8AQrGN8LgF+/LdfrKf+6JW6+p7tuuPBad9+Zxbg9VvwDQa4438t013joAf41LBfdz7x9/XEKy/UYzf94ukfQU/9yzdg9hUwwMyrZXoOAX7h5F597vYX6s3vPVRf+4tTdfOfv7au/fXDLc+fXmRGb8APVNVTw97O0fRZO/d8A840D3qAf/+Zk/XpF5+u67ZfV/+9/0r97XU/lT1o45YBZpgGmHm1TM8hwP9yw/N1+AcWdec/X1G7v/LteuYTp+quJ6+o17x5uh9DzyHAZ378fHtVPVtVDw97O9e3HJoRFzHAGd5BDvBnX/pG3f2V4/XIje+qq7cO1x1PPFC/98Y76ujVN2UP27RlgBmkAWZeLdMHPcC7v/rt+vrfnDr9rO/8xhX10I3fqr3nqi67eVF3PXpli0FykTkEOHmu871jgDPhgxrgV4b9etO/faKeG07VH7zpbXXnZa+vdz356dMPubrx5+vIa6b7pwcGmJ01A8y8WqYPeoBbHvI8XMQAZ6gGOHM7qAHOnubCbBlg5myAmVfLtAHOGA1w5maAMzcDzN0MMDMzwMyrZdoAZ4wGOHMzwJmbAeZuBpiZGWDm1TJtgDNGA5y5GeDMzQBzNwPMzAww82qZNsAZowHO3Axw5maAuZsBZmYGmHm1TBvgjNEAZ24GOHMzwNzNADMzA8y8WqYNcMZogDM3A5y5GWDuZoCZmQFmXi3TBjhjNMCZmwHO3AwwdzPAzMwAM6+WaQOcMRrgzM0AZ24GmLsZYGZmgJlXy7QBzhgNcOZmgDM3A8zdDDAzM8DMq2XaAGeMBjhzM8CZmwHmbgaYmRlg5tUybYAzRgOcuRngzM0AczcDzMwMMPNqmTbAGaMBztwMcOZmgLmbAWZmBph5tUwb4IzRAGduBjhzM8DczQAzMwPMvFqmDXDGaIAzNwOcuRlg7maAmZkBZl4t0wY4YzTAmZsBztwMMHczwMzMADOvlmkDnDEa4MzNAGduBpi7GWBmZoCZV8u0Ac4YDXDmZoAzNwPM3QwwMzPAzKtl2gBnjAY4czPAmZsB5m4GmJkZYObVMm2AM0YDnLkZ4MzNAHM3A8zMDDDzapk2wBmjAc7cDHDmZoC5mwFmZgaYebVMG+CM0QBnbgY4czPA3M0AMzMDzLxapg1wxmiAMzcDnLkZYO5mgJmZAWZeLdMGOGM0wJmbAc7cDDB3M8DMzAAzr5ZpA5wxGuDMzQBnbgaYuxlgZmaAmVfLtAHOGA1w5maAMzcDzN0MMDMzwMyrZdoAZ4wGOHMzwJmbAeZuBpiZGWDm1TJtgDNGA5y5GeDMzQBzNwPMzAww82qZNsAZowHO3Axw5maAuZsBZmYGmHm1TBvgjNEAZ24GOHMzwNzNADMzA8y8WqYNcMZogDM3A5y5GWDuZoCZmQFmXi3TBjhjNMCZmwHO3AwwdzPAzMwAM6+WaQOcMRrgzM0AZ24GmLsZYGZmgJlXy7QBzhgNcOZmgDM3A8zdDDAzM8DMq2XaAGeMBjhzM8CZmwHmbgaYmRlg5tUybYAzRgOcuRngzM0AczcDzMwMMPNqmTbAGaMBztwMcOZmgLmbAWZmBph5tUwfOXLkxGKxuHUYhs+/afXknS0Xvcgv8rUj1z22tbX1I8Mw7K9O3Ld1kT9u2+Mtb7t/f7FYrL2+VFU3t134Ir7Q/v7+d87a3ts8axt+rZfb/3ruWfvqhmuX9NgwDNcsFot1Ax5drVa3zA1jMbcPvP68y+Xylao6NAxDLRazfIQLzn7WSjNGrxvzWk9rxs10G222v7u7u51dZbqtWdZruVx+YRiGO4Zh+NzW1tbbp+Obz5339va+tLW1tX6D21uduG92B3Uq6fUbcFVt7e/vf2l7e9s34A2+EJ61DZC+x8h3nTXfgDdg3N/ff/1isXj71tbWoydPnvQNeAOz0SNn/w549IUuwQucfOTYJfjU4x7ZvwPO/Dxr3G191oZh+MDu7u4H+falt+HfAU/wNTfAObrfFLmdAeZm6w3PGnczwMzMADOvlmkDnDP6TZHbGWBuZoAzMwPM3Aww82qZNsA5owHmdgaYmxngzMwAMzcDzLxapg1wzmiAuZ0B5mYGODMzwMzNADOvlmkDnDMaYG5ngLmZAc7MDDBzM8DMq2XaAOeMBpjbGWBuZoAzMwPM3Aww82qZNsA5owHmdgaYmxngzMwAMzcDzLxapg1wzmiAuZ0B5mYGODMzwMzNADOvlmkDnDMaYG5ngLmZAc7MDDBzM8DMq2XaAOeMBpjbGWBuZoAzMwPM3Aww82qZNsA5owHmdgaYmxngzMwAMzcDzLxapg1wzmiAuZ0B5mYGODMzwMzNADOvlmkDnDMaYG5ngLmZAc7MDDBzM8DMq2XaAOeMBpjbGWBuZoAzMwPM3Aww82qZNsA5owHmdgaYmxngzMwAMzcDzLxapg1wzmiAuZ0B5mYGODMzwMzNADOvlmkDnDMaYG5ngLmZAc7MDDBzM8DMq2XaAOeMBpjbGWBuZoAzMwPM3Aww82qZNsA5owHmdgaYmxngzMwAMzcDzLxapg1wzmiAuZ0B5mYGODMzwMzNADOvlmkDnDMaYG5ngLmZAc7MDDBzM8DMq2XaAOeMBpjbGWBuZoAzMwPM3Aww82qZNsA5owHmdgaYmxngzMwAMzcDzLxapg1wzmiAuZ0B5mYGODMzwMzNADOvlmkDnDMaYG5ngLmZAc7MDDBzM8DMq2XaAOeMBpjbGWBuZoAzMwPM3Aww82qZNsA5owHmdgaYmxngzMwAMzcDzLxapg1wzmiAuZ0B5mYGODMzwMzNADOvlmkDnDMaYG5ngLmZAc7MDDBzM8DMq2XaAOeMBz3Ai+1j64d7T1U9WlXHq+rpYW/nrfkTj980wJmhZ427GWBmZoCZV8u0Ac4ZZ/BN8URVfbiqHqqqjw17O9fmT9uzaYAzR88adzPAzMwAM6+WaQOcMx70b4rrJ1tsH3tu/fuwt3NV/qR9mwY4s/SscTcDzMwMMPNqmTbAOeNMvimu34JvMMD51/kgbHrW+FfBADMzA8y8WqYNcM44k2+KD1TVU8PeztH8Sfs2fQPOLD1r3M0AMzMDzLxapg1wznjQvyme+fHz7VX1bFU9POztXJ8/bc+mAc4cPWvczQAzMwPMvFqmDXDOeNC/KeZPdv42DXBm61njbgaYmRlg5tUybYBzRr8pcjsDzM3WG5417maAmZkBZl4t0wY4Z/SbIrczwNzMAGdmBpi5GWDm1TJtgHNGA8ztDDA3M8CZmQFmbgaYebVMG+Cc0QBzOwPMzQxwZmaAmZsBZl4t0wY4ZzTA3M4AczMDnJkZYOZmgJlXy7QBzhkNMLczwNzMAGdmBpi5GWDm1TJtgHNGA8ztDDA3M8CZmQFmbgaYebVMG+Cc0QBzOwPMzQxwZmaAmZsBZl4t0wY4ZzTA3M4AczMDnJkZYOZmgJlXy7QBzhkNMLczwNzMAGdmBpi5GWDm1TJtgHNGA8ztDDA3M8CZmQFmbgaYebVMG+Cc0QBzOwPMzQxwZmaAmZsBZl4t0wY4ZzTA3M4AczMDnJkZYOZmgJlXy7QBzhkNMLczwNzMAGdmBpi5GWDm1TJtgHNGA8ztDDA3M8CZmQFmbgaYebVMG+Cc0QBzOwPMzQxwZmaAmZsBZl4t0wY4ZzTA3M4AczMDnJkZYOZmgJlXy7QBzhkNMLczwNzMAGdmBpi5GWDm1TJtgHNGA8ztDDA3M8CZmQFmbgaYebVMG+Cc0QBzOwPMzQxwZmaAmZsBZl4t0wY4ZzTA3M4AczMDnJkZYOZmgJlXy7QBzhkNMLczwNzMAGdmBpi5GWDm1TJtgHNGA8ztDDA3M8CZmQFmbgaYebVMG+Cc0QBzOwPMzQxwZmaAmZsBZl4t0wY4ZzTA3M4AczMDnJkZYOZmgJlXy7QBzhkNMLczwNzMAGdmBpi5GWDm1TJtgHNGA8ztDDA3M8CZmQFmbgaYebVMG+Cc0QBzOwPMzQxwZmaAmZsBZl4t0wY4ZzTA3M4AczMDnJkZYOZmgJlXy7QBzhkNMLczwNzMAGdmBpi5GWDm1TJtgHNGA8ztDDA3M8CZmQFmbgaYebVMG+Cc0QBzOwPMzQxwZmaAmZsBZl4t0wY4ZzTA3M4AczMDnJkZYOZmgJlXy7QBzhkNMLczwNzMAGdmBpi5GWDm1TJtgHNGA8ztDDA3M8CZmQFmbgaYebVMG+Cc0QBzOwPMzQxwZmaAmZsBZl4t0wY4ZzTA3M4AczMDnJkZYOZmgJlXy7QBzhkNMLczwNzMAGdmBpi5GWDm1TK9XC53q+qWlotdIhcZhqEWi8XppzXCm3/Rje/mVmcnPWvcbL3hWcvczmx9a7VaXTnqChMs/+935Jn9MsD8C7a/v/9qgFcn7uMXuEQ3lrfd/+qT67bZIbhl+aHa2to6PazZZmbrqXPP2tk/LG++fWlOrv+wd+bX87u7u1fNTWGuAX6wqu5Z/7darT41N/QpPu9yuXxfVX3Et1+uv34z0Y25aca8zk6feQs+ulqtPppd4dLaWi6Xd1fV8fV/q9Xq3rk9vQGe21cs/LwGOIQ786NBA8z8DDDzMsCZlwHO3EZtnfOPsHwD3lDSAG8I9T3GjAm304ybrTd8A2ZuBph5tUwbYM5ogLnZuW8lvgEzPwPMvHwDzrwMcOY2assAcz4DzM0MsGa5QLbpGzBzM8DMq2XaAHNGA8zNDLBmuUC2aYCZmwFmXi3TBpgzGmBuZoA1ywWyTQPM3Aww82qZNsCc0QBzMwOsWS6QbRpg5maAmVfLtAHmjAaYmxlgzXKBbNMAMzcDzLxapg0wZzTA3MwAa5YLZJsGmLkZYObVMm2AOaMB5mYGWLNcINs0wMzNADOvlmkDzBkNMDczwJrlAtmmAWZuBph5tUwbYM5ogLmZAdYsF8g2DTBzM8DMq2XaAHNGA8zNDLBmuUC2aYCZmwFmXi3TBpgzGmBuZoA1ywWyTQPM3Aww82qZNsCc0QBzMwOsWS6QbRpg5maAmVfLtAHmjAaYmxlgzXKBbNMAMzcDzLxapg0wZzTA3MwAa5YLZJsGmLkZYObVMm2AOaMB5mYGWLNcINs0wMzNADOvlmkDzBkNMDczwJrlAtmmAWZuBph5tUwbYM5ogLmZAdYsF8g2DTBzM8DMq2XaAHNGA8zNDLBmuUC2aYCZmwFmXi3TBpgzGmBuZoA1ywWyTQPM3Aww82qZNsCc0QBzMwOsWS6QbRpg5maAmVfLtAHmjAaYmxlgzXKBbNMAMzcDzLxapg0wZzTA3MwAa5YLZJsGmLkZYObVMm2AOaMB5mYGWLNcINs0wMzNADOvlmkDzBkNMDczwJrlAtmmAWZuBph5tUwbYM5ogLmZAdYsF8g2DTBzM8DMq2XaAHNGA8zNDLBmuUC2aYCZmwFmXi3TBpgzGmBuZoA1ywWyTQPM3Aww82qZNsCccS4BXmwfWz/ce6rq0ao6XlVPD3s7b+VP3Lex/qZ48pHTn+tA/jpj9sVhb+eWxfaxj1bV+4a9nUk/60E3W+Mc1LNWVUdXq9X66+iv/0fAAE9wRAwwR59RgE9U1Yer6qGq+tiwt3Mtf9rejZnE5CtVdVdVfWTY2/mFXgF+tZmYHcizZoA3P28GeHOrtkkDzCnnEuAzbybPrX8f9nau4k/avzGHmJzj9s/D3s7P9CuwK87M7ECdNQO8+VkzwJtbtU0aYE45swCv30xuMMDs67z+kerUP3o++4lnFOADd9YM8Obn3gBvbtU2aYA55cwC/EBVPTXs7RzlT9q/MYeYLLaP/VdV/W5V/clBiPAczM781ODAnTUDvPn/hg3w5lZtkwaYU84lwIvtY+sfP99eVc9W1cPD3s71/Gl7N+YQk8X2sT+sqt+pqvW/Frtv/Q+yehXY1WZidiDPmgHe/KwZ4M2t2iYNMKecS4D5k53/jTnE5PwrsDtoxrzO/dG9Ad7czgBvbtU2aYA5pQHmZnP7+8z8Cfs3DXBm6v8PmLkZYObVMm2AOaMB5mYGWLNcINs0wMzNADOvlmkDzBkNMDczwJrlAtmmAWZuBph5tUwbYM5ogLmZAdYsF8g2DTBzM8DMq2XaAHNGA8zNDLBmuUC2aYCZmwFmXi3TBpgzGmBuZoA1ywWyTQPM3Aww82qZNsCc0QBzMwOsWS6QbRpg5maAmVfLtAHmjAaYmxlgzXKBbNMAMzcDzLxapg0wZzTA3MwAa5YLZJsGmLkZYObVMm2AOaMB5mYGWLNcINs0wMzNADOvlmkDzBkNMDczwJrlAtmmAWZuBph5tUwbYM5ogLmZAdYsF8g2DTBzM8DMq2XaAHNGA8zNDLBmuUC2aYCZmwFmXi3TBpgzGmBuZoA1ywWyTQPM3Aww82qZNsCc0QBzMwOsWS6QbRpg5maAmVfLtAHmjAaYmxlgzXKBbNMAMzcDzLxapg0wZzTA3MwAa5YLZJsGmLkZYObVMm2AOaMB5mYGWLNcINs0wMzNADOvlmkDzBkNMDczwJrlAtmmAWZuBph5tUwbYM5ogLmZAdYsF8g2DTBzM8DMq2XaAHNGA8zNDLBmuUC2aYCZmwFmXi3TBpgzGmBuZoA1ywWyTQPM3Aww82qZNsCc0QBzMwOsWS6QbRpg5maAmVfLtAHmjAaYmxlgzXKBbNMAMzcDzLxapg0wZzTA3MwAa5YLZJsGmLkZYObVMm2AOaMB5mYGWLNcINs0wMzNADOvlmkDzBkNMDczwJrlAtmmAWZuBph5tUwbYM5ogLmZAdYsF8g2DTBzM8DMq2XaAHNGA8zNDLBmuUC2aYCZmwFmXi3TBpgzGmBuZoA1ywWyTQPM3Aww82qZNsCc0QBzMwOsWS6QbRpg5maAmVfLtAHmjAaYmxlgzXKBbNMAMzcDzLxapg0wZzTA3MwAa5YLZJsGmLkZYObVMm2AOaMB5mYGWLNcINs0wMzNADOvlmkDzBkNMDczwJrlAtmmAWZuBph5tUwbYM5ogLmZAdYsF8g2DTBzM8DMq2XaAHNGA8zNDLBmuUC2aYCZmwFmXi3T5wT4I1X17y0XvcgvMgzDnYvF4t3DMHxzdeK+ay7yx217vOVt939zsVhcMwzDx1cn7nt324Uv4gstb7v/4541/gU+96wtFovP8ytckhs/XFVHq+r4arW6d24Ci7l94PXnXS6Xz1fVFXP87H5mBRRQQIF2gW+tVqsr2696ni841wA/WFX3VJVvwBsekHPfgBeLxYc2XLvkx4Zh+K2zb8C+lWx2HDxrmzl995RnLXLzDThiG7Hk3wFzvLN/B1xVX16tVm/hV7g0N5bL5eNVddP6x1yr1eqjl6YCe2rPGvM6O+1Z427+HTA3G71hgDmh3xS52Zm/7jDAkM6zBsHOjBtg7maAudnoDQPMCf2myM0McGz2vjN/PeRPWwChAQZY3/lDy93rf4DlP8LidvGGAeZ0BpibGeDYzAAHdAaYo/kGzM1GbxhgTmiAuZkBjs0McEBngDmaAeZmozcMMCc0wNzMAMdmBjigM8AczQBzs9EbBpgTGmBuZoBjMwMc0BlgjmaAudnoDQPMCQ0wNzPAsZkBDugMMEczwNxs9IYB5oQGmJsZ4NjMAAd0BpijGWBuNnrDAHNCA8zNDHBsZoADOgPM0QwwNxu9YYA5oQHmZgY4NjPAAZ0B5mgGmJuN3jDAnNAAczMDHJsZ4IDOAHM0A8zNRm8YYE5ogLmZAY7NDHBAZ4A5mgHmZqM3DDAnNMDczADHZgY4oDPAHM0Ac7PRGwaYExpgbmaAYzMDHNAZYI5mgLnZ6A0DzAkNMDczwLGZAQ7oDDBHM8DcbPSGAeaEBpibGeDYzAAHdAaYoxlgbjZ6wwBzQgPMzQxwbGaAAzoDzNEMMDcbvWGAOaEB5mYGODYzwAGdAeZoBpibjd4wwJzQAHMzAxybGeCAzgBzNAPMzUZvGGBOaIC5mQGOzQxwQGeAOZoB5majNwwwJzTA3MwAx2YGOKAzwBzNAHOz0RsGmBMaYG5mgGMzAxzQGWCOZoC52egNA8wJDTA3M8CxmQEO6AwwRzPA3Gz0hgHmhAaYmxng2MwAB3QGmKMZYG42esMAc0IDzM0McGxmgAM6A8zRDDA3G71hgDmhAeZmBjg2M8ABnQHmaAaYm43eMMCc0ABzMwMcmxnggM4AczQDzM1GbxhgTmiAuZkBjs0McEBngDmaAeZmozcMMCc0wNzMAMdmBjigM8AczQBzs9EbBpgTGmBuZoBjMwMc0BlgjmaAudnoDQPMCQ0wNzPAsZkBDugMMEczwNxs9IYB5oQGmJsZ4NjMAAd0BpijGWBuNnrDAHNCA8zNDHBsZoADOgPM0QwwNxu9YYA5oQHmZgY4NjPAAZ0B5mgGmJuN3jDAnNAAczMDHJsZ4IDOAHM0A8zNRm8YYE5ogLmZAY7NDHBAZ4A5mgHmZqM3DDAnNMDczADHZgY4oDPAHM0Ac7PRGwaYExpgbmaAYzMDHNAZYI5mgLnZ6A0DzAkNMDczwLGZAQ7oDDBHM8DcbPSGAeaEBpibGeDYzAAHdAaYoxlgbjZ6wwBzQgPMzQxwbGaAAzoDzNEMMDcbvWGAOaEB5mYGODYzwAGdAeZoBpibjd4wwJzQAHMzAxybGeCAzgBzNAPMzUZvGGBOaIC5mQGOzQxwQGeAOZoB5majNwwwJzTA3MwAx2YGOKAzwBzNAHOz0RsGmBMaYG5mgGMzAxzQGWCOZoC52egNA8wJDTA3M8CxmQEO6AwwRzPA3Gz0hgHmhAbrEXo6AAADsUlEQVSYmxng2MwAB3QGmKMZYG42esMAc0IDzM0McGxmgAM6A8zRDDA3G71hgDmhAeZmBjg2M8ABnQHmaAaYm43eMMCc0ABzMwMcmxnggM4AczQDzM1GbxhgTmiAuZkBjs0McEBngDmaAeZmozcMMCc0wNzMAMdmBjigM8AczQBzs9EbBpgTGmBuZoBjMwMc0BlgjmaAudnoDQPMCQ0wNzPAsZkBDugMMEczwNxs9IYB5oQGmJsZ4NjMAAd0BpijGWBuNnrDAHNCA8zNDHBsZoADOgPM0QwwNxu9YYA5oQHmZgY4NjPAAZ0B5mgGmJuN3jDAnNAAczMDHJsZ4IDOAHM0A8zNRm8YYE5ogLmZAY7NDHBAZ4A5mgHmZqM3DDAnNMDczADHZgY4oDPAHM0Ac7PRGwaYExpgbmaAYzMDHNAZYI5mgLnZ6A0DzAkNMDczwLGZAQ7oDDBHM8DcbPSGAeaEBpibGeDYzAAHdAaYoxlgbjZ6wwBzQgPMzQxwbGaAAzoDzNEMMDcbvWGAOaEB5mYGODYzwAGdAeZoBpibjd4wwJzQAHMzAxybGeCAzgBzNAPMzUZvGGBOaIC5mQGOzQxwQGeAOZoB5majNwwwJzTA3MwAx2YGOKAzwBzNAHOz0RsGmBMaYG5mgGMzAxzQGWCOZoC52egNA8wJDTA3M8CxmQEO6AwwRzPA3Gz0hgHmhAaYmxng2MwAB3QGmKMZYG42esMAc0IDzM0McGxmgAM6A8zRDDA3G71hgDmhAeZmBjg2M8ABnQHmaAaYm43eWC6XD1XVj4++kBdQQAEFFLgYBD6zWq3umtuDLOb2gc+8lfxlVf3aHD+7n1kBBRRQoF3gr1ar1Xvbr3qeLzjLAJ9nEy+vgAIKKKDAeRcwwOed2BsooIACCijwfwUMsKdCAQUUUECBCQQM8ATo3lIBBRRQQAED7BlQQAEFFFBgAgEDPAG6t1RAAQUUUMAAewYUUEABBRSYQMAAT4DuLRVQQAEFFDDAngEFFFBAAQUmEDDAE6B7SwUUUEABBQywZ0ABBRRQQIEJBAzwBOjeUgEFFFBAAQPsGVBAAQUUUGACAQM8Abq3VEABBRRQwAB7BhRQQAEFFJhAwABPgO4tFVBAAQUUMMCeAQUUUEABBSYQMMAToHtLBRRQQAEFDLBnQAEFFFBAgQkEDPAE6N5SAQUUUEABA+wZUEABBRRQYAIBAzwBurdUQAEFFFDAAHsGFFBAAQUUmEDAAE+A7i0VUEABBRT4HxuHPSvdl0nwAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="15924"></list></costumes><sounds><list struct="atomic" id="15925"></list></sounds><variables></variables><blocks></blocks><scripts><script x="55" y="72.33333333333337"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIfElse"><block s="reportEquals"><block var="current mode"/><l>1</l><comment w="90" collapsed="false">Mode 1 = maze-building</comment></block><script><block s="doSetVar"><l>practice maze</l><custom-block s="%s with color flipped at %s , %s"><block var="practice maze"/><block s="reportMouseX"></block><block s="reportMouseY"></block></custom-block></block><block s="doBroadcastAndWait"><l>draw</l><list><l>Sprite</l><block var="practice maze"/></list></block></script><script><block s="doIf"><block s="reportOr"><block s="reportEquals"><block var="current mode"/><l>2</l></block><block s="reportEquals"><block var="current mode"/><l>3</l></block><comment w="90" collapsed="true">Mode 2 = Set start&#xD;Mode 3 = Set end</comment></block><script><block s="doBroadcastAndWait"><l>selectBox</l><list><l>Sprite</l><block s="reportNewList"><list><block s="reportMouseX"></block><block s="reportMouseY"></block></list></block></list><comment w="90" collapsed="true">selects box, tells sprite to color it.</comment></block></script></block></script></block></script></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="0" y="0" heading="90" scale="0.3" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="1" color="255,253,148,1" pen="tip" id="15982"><costumes><list id="15983"><item><ref mediaID="Sprite_cst_ball b"></ref></item></list></costumes><sounds><list struct="atomic" id="15984"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveKey"><l><option>m</option></l><list></list><comment w="205" collapsed="true">&quot;m&quot; cycles through the modes.</comment></block><block s="doChangeVar"><l>current mode</l><l>1</l></block><custom-block s="announce mode"></custom-block><block s="doIf"><block s="reportEquals"><block var="current mode"/><l>4</l><comment w="121" collapsed="true">mode 4: do the search!</comment></block><script><block s="hide"></block><block s="doSetVar"><l>results</l><l></l><comment w="90" collapsed="false">swap search types out here.</comment></block><custom-block s="Draw Path from %l to %l based on %l"><block var="startNode"/><block var="endNode"/><block var="results"/></custom-block></script></block></script><script x="20" y="208.33333333333337"><custom-block s="breadth-first search of graph: %s , source node: %s , destination node: %s"><block var="practice graph"/><block var="startNode"/><block var="endNode"/><comment w="90" collapsed="true">this one works</comment></custom-block></script><script x="20" y="257.0000000000001"><custom-block s="greedy best-first search of graph: %s , source node: %s , destination node: %s"><block var="practice graph"/><block var="startNode"/><block var="endNode"/><comment w="90" collapsed="true">Write this one!</comment></custom-block></script><script x="20" y="305.66666666666686"><block s="receiveGo"></block><block s="clear"></block><block s="setScale"><l>30</l></block><block s="show"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doSayFor"><l>Press "m" to change modes.</l><l>2</l></block><custom-block s="initialize variables cols: %n rows: %n"><l>5</l><l>4</l><comment w="185" collapsed="true">modify size of maze here.</comment></custom-block><block s="doBroadcastAndWait"><l>draw</l><list><l>Sprite</l><block var="practice maze"/></list></block><custom-block s="announce mode"></custom-block></script><script x="20" y="518.1666666666669"><block s="receiveMessage"><l>draw</l><list><l>maze</l></list><comment w="356" collapsed="false">draws the maze after every update.</comment></block><block s="doWarp"><script><block s="clear"></block><block s="setColor"><color>40,40,40,1</color></block><block s="setSize"><l>2</l></block><custom-block s="drawMaze %l"><block var="maze"/></custom-block><block s="doSetVar"><l>practice graph</l><custom-block s="generate graph from maze: %l"><block var="practice maze"/></custom-block></block></script></block></script><script x="20" y="708.3333333333336"><block s="receiveMessage"><l>selectBox</l><list><l>startPoint-pixels</l></list></block><block s="doDeclareVariables"><list><l>row</l><l>col</l></list></block><block s="doSetVar"><l>row</l><custom-block s="row from pixel %l"><block var="startPoint-pixels"/></custom-block></block><block s="doSetVar"><l>col</l><custom-block s="col from pixel %l"><block var="startPoint-pixels"/></custom-block></block><block s="doIfElse"><block s="reportEquals"><block var="current mode"/><l>2</l></block><script><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="startNode"/></block><l>0</l><comment w="129" collapsed="false">redraw  maze because we&apos;re moving the start point</comment></block></block><script><block s="doBroadcastAndWait"><l>draw</l><list><l><option>all</option></l><block var="practice maze"/></list></block></script></block><block s="doSetVar"><l>startNode</l><block s="reportNewList"><list><block var="row"/><block var="col"/></list></block></block><block s="doGotoObject"><custom-block s="stage coords of square: %s"><block var="startNode"/></custom-block></block><block s="setColor"><color>58,255,13,1</color></block><block s="floodFill"></block></script><script><block s="doIf"><block s="reportEquals"><block var="current mode"/><l>3</l><comment w="218" collapsed="true">Mode 3 = select end point</comment></block><script><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="endNode"/></block><l>0</l></block><comment w="124" collapsed="false">redraw  maze because we&apos;re moving the end point</comment></block><script><block s="doBroadcastAndWait"><l>draw</l><list><l><option>all</option></l><block var="practice maze"/></list></block></script></block><block s="doSetVar"><l>endNode</l><block s="reportNewList"><list><block var="row"/><block var="col"/></list></block></block><block s="doGotoObject"><custom-block s="stage coords of square: %s"><block var="endNode"/></custom-block></block><block s="setColor"><color>255,36,85,1</color></block><block s="floodFill"></block></script></block></script><comment w="238" collapsed="true">Mode 2 = select start point</comment></block></script></scripts></sprite><watcher var="practice maze" style="normal" x="9.999999999999773" y="10.000000000000028" color="243,118,29" hidden="true"/><watcher var="modes" style="normal" x="14.457831325300162" y="14.457831325301193" color="243,118,29" hidden="true"/><watcher var="current mode" style="normal" x="14.457831325300162" y="44.819280000000006" color="243,118,29" hidden="true"/><watcher scope="Sprite" s="getCostumeIdx" style="normal" x="20.68965517241395" y="213.10345241379324" color="143,86,227" hidden="true"/><watcher var="startNode" style="normal" x="0" y="0" color="243,118,29" hidden="true"/><watcher var="endNode" style="normal" x="2.4161073825501944" y="86.17449664429539" color="243,118,29" hidden="true"/><watcher var="practice graph" style="normal" x="7.919463087248346" y="4.825505355704706" color="243,118,29" hidden="true"/><watcher var="results" style="normal" x="10" y="10" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="practice maze"><list id="16171"><item><list struct="atomic" id="16172">0,0,0,0,0</list></item><item><list struct="atomic" id="16173">0,0,0,0,0</list></item><item><list struct="atomic" id="16174">1,0,1,0,0</list></item><item><list struct="atomic" id="16175">0,0,1,0,0</list></item></list></variable><variable name="practice graph"><list id="16176"><item><list id="16177"><item><list struct="atomic" id="16178">1,1</list></item><item><list struct="atomic" id="16179">1,2</list></item><item><list struct="atomic" id="16180">1,3</list></item><item><list struct="atomic" id="16181">1,4</list></item><item><list struct="atomic" id="16182">1,5</list></item><item><list struct="atomic" id="16183">2,1</list></item><item><list struct="atomic" id="16184">2,2</list></item><item><list struct="atomic" id="16185">2,3</list></item><item><list struct="atomic" id="16186">2,4</list></item><item><list struct="atomic" id="16187">2,5</list></item><item><list struct="atomic" id="16188">3,2</list></item><item><list struct="atomic" id="16189">3,4</list></item><item><list struct="atomic" id="16190">3,5</list></item><item><list struct="atomic" id="16191">4,1</list></item><item><list struct="atomic" id="16192">4,2</list></item><item><list struct="atomic" id="16193">4,4</list></item><item><list struct="atomic" id="16194">4,5</list></item></list></item><item><list id="16195"><item><list id="16196"><item><ref id="16178"></ref></item><item><list struct="atomic" id="16197">2,1</list></item><item><l>1</l></item></list></item><item><list id="16198"><item><ref id="16178"></ref></item><item><list struct="atomic" id="16199">1,2</list></item><item><l>1</l></item></list></item><item><list id="16200"><item><ref id="16179"></ref></item><item><list struct="atomic" id="16201">2,2</list></item><item><l>1</l></item></list></item><item><list id="16202"><item><ref id="16179"></ref></item><item><list struct="atomic" id="16203">1,3</list></item><item><l>1</l></item></list></item><item><list id="16204"><item><ref id="16180"></ref></item><item><list struct="atomic" id="16205">2,3</list></item><item><l>1</l></item></list></item><item><list id="16206"><item><ref id="16180"></ref></item><item><list struct="atomic" id="16207">1,4</list></item><item><l>1</l></item></list></item><item><list id="16208"><item><ref id="16181"></ref></item><item><list struct="atomic" id="16209">2,4</list></item><item><l>1</l></item></list></item><item><list id="16210"><item><ref id="16181"></ref></item><item><list struct="atomic" id="16211">1,5</list></item><item><l>1</l></item></list></item><item><list id="16212"><item><ref id="16182"></ref></item><item><list struct="atomic" id="16213">2,5</list></item><item><l>1</l></item></list></item><item><list id="16214"><item><ref id="16183"></ref></item><item><list struct="atomic" id="16215">2,2</list></item><item><l>1</l></item></list></item><item><list id="16216"><item><ref id="16184"></ref></item><item><list struct="atomic" id="16217">3,2</list></item><item><l>1</l></item></list></item><item><list id="16218"><item><ref id="16184"></ref></item><item><list struct="atomic" id="16219">2,3</list></item><item><l>1</l></item></list></item><item><list id="16220"><item><ref id="16185"></ref></item><item><list struct="atomic" id="16221">2,4</list></item><item><l>1</l></item></list></item><item><list id="16222"><item><ref id="16186"></ref></item><item><list struct="atomic" id="16223">3,4</list></item><item><l>1</l></item></list></item><item><list id="16224"><item><ref id="16186"></ref></item><item><list struct="atomic" id="16225">2,5</list></item><item><l>1</l></item></list></item><item><list id="16226"><item><ref id="16187"></ref></item><item><list struct="atomic" id="16227">3,5</list></item><item><l>1</l></item></list></item><item><list id="16228"><item><ref id="16188"></ref></item><item><list struct="atomic" id="16229">4,2</list></item><item><l>1</l></item></list></item><item><list id="16230"><item><ref id="16189"></ref></item><item><list struct="atomic" id="16231">4,4</list></item><item><l>1</l></item></list></item><item><list id="16232"><item><ref id="16189"></ref></item><item><list struct="atomic" id="16233">3,5</list></item><item><l>1</l></item></list></item><item><list id="16234"><item><ref id="16190"></ref></item><item><list struct="atomic" id="16235">4,5</list></item><item><l>1</l></item></list></item><item><list id="16236"><item><ref id="16191"></ref></item><item><list struct="atomic" id="16237">4,2</list></item><item><l>1</l></item></list></item><item><list id="16238"><item><ref id="16193"></ref></item><item><list struct="atomic" id="16239">4,5</list></item><item><l>1</l></item></list></item></list></item></list></variable><variable name="modes"><list struct="atomic" id="16240">Build a maze,Identify Starting Point,Identify End Point,Run Algorithm</list></variable><variable name="current mode"><l>4</l></variable><variable name="startNode"><list struct="atomic" id="16241">4,1</list></variable><variable name="endNode"><list struct="atomic" id="16242">4,4</list></variable><variable name="results"><list id="16243"><item><list id="16244"><item><ref id="16241"></ref></item><item><ref id="16241"></ref></item></list></item><item><list id="16245"><item><ref id="16237"></ref></item><item><ref id="16241"></ref></item></list></item><item><list id="16246"><item><ref id="16188"></ref></item><item><ref id="16237"></ref></item></list></item><item><list id="16247"><item><ref id="16184"></ref></item><item><ref id="16188"></ref></item></list></item><item><list id="16248"><item><ref id="16219"></ref></item><item><ref id="16184"></ref></item></list></item><item><list id="16249"><item><ref id="16221"></ref></item><item><ref id="16219"></ref></item></list></item><item><list id="16250"><item><ref id="16223"></ref></item><item><ref id="16221"></ref></item></list></item><item><list id="16251"><item><ref id="16231"></ref></item><item><ref id="16223"></ref></item></list></item></list></variable></variables></scene></scenes></project><media name="maze-magic_starterKit_best" app="Snap! 7, https://snap.berkeley.edu" version="2"><costume name="ball b" center-x="22.5" center-y="22.5" image="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjAiIGlkPSJMYXllcl8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjQ1cHgiIGhlaWdodD0iNDVweCIgdmlld0JveD0iMCAwIDQ1IDQ1IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0NSA0NSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGc+CiAgICA8cmFkaWFsR3JhZGllbnQgaWQ9IlNWR0lEXzFfIiBjeD0iMjkuNzI3NSIgY3k9IjEzLjEzOTYiIHI9IjM4LjUyOTkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojODBGNEZGIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6IzAwNzdGRiIvPgogICAgPC9yYWRpYWxHcmFkaWVudD4KICAgIDxjaXJjbGUgZmlsbD0idXJsKCNTVkdJRF8xXykiIGN4PSIyMi41IiBjeT0iMjIuNSIgcj0iMjIuNSIvPgogIDwvZz4KPC9zdmc+" mediaID="Sprite_cst_ball b"/></media></snapdata>