From beb67f238f0abb5f91a8bb0600871388a8ca0070 Mon Sep 17 00:00:00 2001
From: Sayamindu Dasgupta <sayamindu@gmail.com>
Date: Thu, 15 May 2014 21:11:16 -0400
Subject: [PATCH 01/47] Create gh-pages branch via GitHub

---
 images/bg_hr.png             | Bin 0 -> 943 bytes
 images/blacktocat.png        | Bin 0 -> 1428 bytes
 images/icon_download.png     | Bin 0 -> 1162 bytes
 images/sprite_download.png   | Bin 0 -> 16799 bytes
 index.html                   | 144 ++++++++++++
 javascripts/main.js          |   1 +
 params.json                  |   1 +
 stylesheets/pygment_trac.css |  70 ++++++
 stylesheets/stylesheet.css   | 423 +++++++++++++++++++++++++++++++++++
 9 files changed, 639 insertions(+)
 create mode 100644 images/bg_hr.png
 create mode 100644 images/blacktocat.png
 create mode 100644 images/icon_download.png
 create mode 100644 images/sprite_download.png
 create mode 100644 index.html
 create mode 100644 javascripts/main.js
 create mode 100644 params.json
 create mode 100644 stylesheets/pygment_trac.css
 create mode 100644 stylesheets/stylesheet.css

diff --git a/images/bg_hr.png b/images/bg_hr.png
new file mode 100644
index 0000000000000000000000000000000000000000..7973bd69888c7e10ccad1111d555ceabb7cd99b6
GIT binary patch
literal 943
zcmaJ=O^ee&7!FiK7FWCot{@Ck@nrMW&tx0B-6VAbrk1u~FTzffX&bu9#AIsIdef8t
z!QZfdz=K}>3m(LO;6X3qN}Y6@>cJYA%)G<%Jn!ec>9im1@7>wsIBwrMF}iHO!q%;8
zSJ@xEd~(FL18NRvkBsOXMVM>4WQc*~qcQGc<Sw3n#C49#L9aic1N*V+5T8dWhEM#E
zu{o~ZNJ8XHF$F_B_5uxlefJ&$&(+}5vMt)7jwjy9GQz!OyYDQgj^e_`Lr_mtCg5X=
zK;oYTv6^Ubt*f$gdM!Y(hR~@7FM}G`9iWp4gEB7`9I+yTio{FBQngxr0Ax`T1yL3x
zxgb^5qO6J{*nE(Ai`<dgHCh{A%+lb5(ohwI`FzgLi#&<Of}|))sv*k-hA6~~fTE-j
z#Q99Yz_Al~A@xWAQbjZ*Gpa!r>17IjxRnj!O_^B1gan0x#EWT48PK->5B2>mI;LIx
zC*FSw$Nfc!g)WZCEOJ=mM)}lLsOk|$ltg_(&ax_YCWMlBLPDVT%D_gB7o_$YZ`-OB
z#1sV%whRq21>W;qwN$N?OUGtQQe;JvOsQrna;+v+j8dth=*?orHHb6waX>S!yXCgT
zo!oR3{E&GzaOAzfZYv@_Sf{LdyJInS>TS60&R9%yCs$y>2x(*gYIJtRrYAja$Ceq}
z!N&oc_K1!3-Ft`U>`CM;quEbB4KG%!MovB*9_3!QzFhqHwrbwK|Doo-y>auDJNSP6
T=d)j*_4El@X4^PFK7I8YBT*xD

literal 0
HcmV?d00001

diff --git a/images/blacktocat.png b/images/blacktocat.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e264fe57a2e35a2855405ac7d4102c3f6ddcdae
GIT binary patch
literal 1428
zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk?
zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+*
zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn
zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV
z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj
z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPA<wUD9OyvQvjKmn3P{y
zVygsnDZ~r81#n~YilM;-3^4tQ!~%UoJp+)JU<!SG@hi>Eg{v+u2}(t{7puX=A(aKG
z`a!A1`K3k4z=%sz23b{L<y@4SSdw29lAoUg3&ntp{F40QjQj!x=U`I>-^Aq1JP;qO
z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=eg`=5?o13Glvx}*rp{t>#shg3DvyriZv5}jZ
ztD`wguS<S%X>Mv>2~2MaLa!4}y`ZF!TL84#CABECEH%ZgC_h&L>}9J=EN(GzcCm0X
zaRr%YgxxI=y(w7S0@dq`Q?EYIG5Vm0MT%&c5HR(CnDAr^<iHbtY927P7Xgzs$AOa5
z3=B*ho-U3d6}QfW-_30?;IZ?o)mKhwPHT~VXqI8+n9pLCz~Z(*x<I<XoH2(%`ofZ;
z3+mVT>T6f1avxRvmvnsN+?-j<F7H>}Z~1)Zr#rqzrt`edmo44*B<0=C4>mrxHF6$p
zVws~UocMfeI`gB8pYMLYT<kBy5cl%*+P|OvOiaDG<5W_Sc2L3k=!bUB#~ZJ({Z!h(
z5cQ^m-ML}np}?nF1qJ%QZ%&+4qx_-u5%b!7*Mwh!%GW0DVVfR1^AmT&2Zx^5+9#_y
zVl?bOyxwefi2JC5G4th=kQ;{6OD@}K%_vt2<#@BBJ27y#@Q%c)SuYG()&<V!_^|eg
zNbEu8<;F38thq0oZ=U&WuIgkD`^dLEH(#C<yVZQ)bJeLhTi*Lh1xx<*XLIlWZ+j~E
zz+=Y;?pdE$&$m3i@NdO#%>zA87`NOI2w2B*JM5L`^AkN4AFQu&S+6ULTPjv;vzl4&
z-eaK_F|D4~l3hzBSF~icNT@MID=v+_X`vpuvf=8+S(<atG{hZMy2ue`t;n3Y?!6FW
z7+0vj&y&wTAN+K_C+A?+FM45h$mB}pfT9AcHouH#b+t?P^&V~W-D<ZsX{Vy=S*e6g
zB_1KRh5{A)pF~s!H%@IkzxJ(BvBuOJnbWpR>|^vlRdHe0<)v-^wiVR3w=TQ)uFA9F
z>vmq<fW2S3Joc$<shiogLvWdMT)oG7Hr^l64U7!J|6HeToTRW0R8D%j`njxgN@xNA
D{Dl;^

literal 0
HcmV?d00001

diff --git a/images/icon_download.png b/images/icon_download.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2a287f642aaeeadf62d3819a16d6a55e12afc01
GIT binary patch
literal 1162
zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk?
zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+*
zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn
zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV
z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj
z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPA<wUD9OyvQvjKmn3P{y
zVygsnDZ~r81#n~YilM;-3^4tQ!~%UoJp+)JU<!SG@hi>Eg{v+u2}(t{7puX=A(aKG
z`a!A1`K3k4z=%sz23b{L<y@4SSdw29lAoUg3&ntp{F40QjQj!x=U`I>-^Aq1JP;qO
z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=$skw`#i<zmJiL;xbp{t>#v$3O_v5UEZv#YC%
zp@9obuS<S%X>Mv>2~2MaLa!N4y`ZF!TL84#CABECEH%ZgC_h&L>}9J=+-@<(X&zK>
z3U0TU;MA)Rbc{YIVv!;mCIn19ASOK70y*%6pPC0u?M1+3t#h8?05D7Z^K@|xskoK&
z=l_5E!ww8;ZH!Ed#V+%1n6Rkg{=V8A2QTsNE8^<v%V(Qxmf%on_`xIgQQ0BKTI%>>
zvHmC<g$BX!w=6n3JPlV26`rYFeiOW453f!{-NYx!3);9HwEBF!=QC}z*YoCNGYxnw
zrEt|{(bD@1r|nbFUU9LhR(1lH%B4pf3zllHoVsIC;}0XjS5ciCr(|?Dwly}L7w(9E
z9Jr0M<F%&WRg0!OLLRaVNoFQ1PhSxEGg0lQM8=0gg{ggNJY1~`K{~3d85pBBFnD}*
z+_`^2=Sx1{Xa$c2JRMsdK5}g-k&jescr-(1Px<>ezoM^A29GnE>#ih4F*YzTGbm`!
V-6~#faTQcLc)I$ztaD0e0svx<f<*uT

literal 0
HcmV?d00001

diff --git a/images/sprite_download.png b/images/sprite_download.png
new file mode 100644
index 0000000000000000000000000000000000000000..f2babd575dc1cbd6e9342cc58ca795377d35afdb
GIT binary patch
literal 16799
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

literal 0
HcmV?d00001

diff --git a/index.html b/index.html
new file mode 100644
index 0000000..30d6fdd
--- /dev/null
+++ b/index.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html>
+<html>
+
+  <head>
+    <meta charset='utf-8' />
+    <meta http-equiv="X-UA-Compatible" content="chrome=1" />
+    <meta name="description" content="Scratch Extensions : Extensions for Scratch 2.0" />
+
+    <link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
+
+    <title>Scratch Extensions</title>
+  </head>
+
+  <body>
+
+    <!-- HEADER -->
+    <div id="header_wrap" class="outer">
+        <header class="inner">
+          <a id="forkme_banner" href="https://github.com/LLK/scratch-extensions">View on GitHub</a>
+
+          <h1 id="project_title">Scratch Extensions</h1>
+          <h2 id="project_tagline">Extensions for Scratch 2.0</h2>
+
+            <section id="downloads">
+              <a class="zip_download_link" href="https://github.com/LLK/scratch-extensions/zipball/master">Download this project as a .zip file</a>
+              <a class="tar_download_link" href="https://github.com/LLK/scratch-extensions/tarball/master">Download this project as a tar.gz file</a>
+            </section>
+        </header>
+    </div>
+
+    <!-- MAIN CONTENT -->
+    <div id="main_content_wrap" class="outer">
+      <section id="main_content" class="inner">
+        <h1>
+<a name="writing-extensions-for-scratch-20" class="anchor" href="#writing-extensions-for-scratch-20"><span class="octicon octicon-link"></span></a>Writing Extensions for Scratch 2.0</h1>
+
+<p>Writing a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:</p>
+
+<div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+    <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
+
+    <span class="c1">// Cleanup function when the extension is unloaded</span>
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">_shutdown</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{};</span>
+
+    <span class="c1">// Status reporting code</span>
+    <span class="c1">// Use this to report missing hardware, plugin or unsupported browser</span>
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">_getStatus</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+        <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Ready'</span><span class="p">};</span>
+    <span class="p">};</span>
+
+    <span class="c1">// Block and block menu descriptions</span>
+    <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
+        <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
+        <span class="p">]</span>
+    <span class="p">};</span>
+
+    <span class="c1">// Register the extension</span>
+    <span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Sample extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
+<span class="p">})();</span>
+</pre></div>
+
+<h2>
+<a name="adding-blocks" class="anchor" href="#adding-blocks"><span class="octicon octicon-link"></span></a>Adding Blocks</h2>
+
+<p>An extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.</p>
+
+<h3>
+<a name="command-blocks" class="anchor" href="#command-blocks"><span class="octicon octicon-link"></span></a>Command blocks</h3>
+
+<p>To add a simple <em>command</em> block, there needs to be an entry in the <code>descriptors.blocks</code> list, and a corresponding function. The simplest block possible is shown below:</p>
+
+<div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+    <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
+
+    <span class="c1">// Cleanup function when the extension is unloaded</span>
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">_shutdown</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{};</span>
+
+    <span class="c1">// Status reporting code</span>
+    <span class="c1">// Use this to report missing hardware, plugin or unsupported browser</span>
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">_getStatus</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+        <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Ready'</span><span class="p">};</span>
+    <span class="p">};</span>
+
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">get_pi</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+        <span class="k">return</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span><span class="p">;</span>
+    <span class="p">}</span>
+
+    <span class="c1">// Block and block menu descriptions</span>
+    <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
+        <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
+            <span class="p">[</span><span class="s1">''</span><span class="p">,</span> <span class="s1">'PI'</span><span class="p">,</span> <span class="s1">'get_pi'</span><span class="p">],</span>
+        <span class="p">]</span>
+    <span class="p">};</span>
+
+    <span class="c1">// Register the extension</span>
+    <span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Sample extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
+<span class="p">})();</span>
+</pre></div>
+
+<p>To add parameters to blocks, the block definition in <code>descriptors.blocks</code> needs to be extended.</p>
+
+<div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+    <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
+
+    <span class="c1">// Cleanup function when the extension is unloaded</span>
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">_shutdown</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{};</span>
+
+    <span class="c1">// Status reporting code</span>
+    <span class="c1">// Use this to report missing hardware, plugin or unsupported browser</span>
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">_getStatus</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+        <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Ready'</span><span class="p">};</span>
+    <span class="p">};</span>
+
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">power</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">base</span><span class="p">,</span> <span class="nx">exponent</span><span class="p">)</span> <span class="p">{</span>
+        <span class="k">return</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">pow</span><span class="p">(</span><span class="nx">base</span><span class="p">,</span> <span class="nx">exponent</span><span class="p">);</span>
+    <span class="p">}</span>
+
+    <span class="c1">// Block and block menu descriptions</span>
+    <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
+        <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
+            <span class="p">[</span><span class="s1">''</span><span class="p">,</span> <span class="s1">'%d ^ %d'</span><span class="p">,</span> <span class="s1">'power'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span> 
+            <span class="c1">// The last two values above represent default parameter values</span>
+        <span class="p">]</span>
+    <span class="p">};</span>
+
+    <span class="c1">// Register the extension</span>
+    <span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Sample extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
+<span class="p">})();</span>
+</pre></div>
+      </section>
+    </div>
+
+    <!-- FOOTER  -->
+    <div id="footer_wrap" class="outer">
+      <footer class="inner">
+        <p class="copyright">Scratch Extensions maintained by <a href="https://github.com/LLK">LLK</a></p>
+        <p>Published with <a href="http://pages.github.com">GitHub Pages</a></p>
+      </footer>
+    </div>
+
+    
+
+  </body>
+</html>
diff --git a/javascripts/main.js b/javascripts/main.js
new file mode 100644
index 0000000..d8135d3
--- /dev/null
+++ b/javascripts/main.js
@@ -0,0 +1 @@
+console.log('This would be the main JS file.');
diff --git a/params.json b/params.json
new file mode 100644
index 0000000..7640347
--- /dev/null
+++ b/params.json
@@ -0,0 +1 @@
+{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function. The simplest block possible is shown below:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_pi = function() {\r\n        return Math.PI;\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'PI', 'get_pi'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nTo add parameters to blocks, the block definition in ``descriptors.blocks`` needs to be extended.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', '%d ^ %d', 'power', 2, 3], \r\n            // The last two values above represent default parameter values\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
diff --git a/stylesheets/pygment_trac.css b/stylesheets/pygment_trac.css
new file mode 100644
index 0000000..e65cedf
--- /dev/null
+++ b/stylesheets/pygment_trac.css
@@ -0,0 +1,70 @@
+.highlight .hll { background-color: #ffffcc }
+.highlight  { background: #f0f3f3; }
+.highlight .c { color: #0099FF; font-style: italic } /* Comment */
+.highlight .err { color: #AA0000; background-color: #FFAAAA } /* Error */
+.highlight .k { color: #006699; font-weight: bold } /* Keyword */
+.highlight .o { color: #555555 } /* Operator */
+.highlight .cm { color: #0099FF; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #009999 } /* Comment.Preproc */
+.highlight .c1 { color: #0099FF; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #0099FF; font-weight: bold; font-style: italic } /* Comment.Special */
+.highlight .gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #FF0000 } /* Generic.Error */
+.highlight .gh { color: #003300; font-weight: bold } /* Generic.Heading */
+.highlight .gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */
+.highlight .go { color: #AAAAAA } /* Generic.Output */
+.highlight .gp { color: #000099; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #003300; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #99CC66 } /* Generic.Traceback */
+.highlight .kc { color: #006699; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #006699; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #006699; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #006699 } /* Keyword.Pseudo */
+.highlight .kr { color: #006699; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #007788; font-weight: bold } /* Keyword.Type */
+.highlight .m { color: #FF6600 } /* Literal.Number */
+.highlight .s { color: #CC3300 } /* Literal.String */
+.highlight .na { color: #330099 } /* Name.Attribute */
+.highlight .nb { color: #336666 } /* Name.Builtin */
+.highlight .nc { color: #00AA88; font-weight: bold } /* Name.Class */
+.highlight .no { color: #336600 } /* Name.Constant */
+.highlight .nd { color: #9999FF } /* Name.Decorator */
+.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #CC0000; font-weight: bold } /* Name.Exception */
+.highlight .nf { color: #CC00FF } /* Name.Function */
+.highlight .nl { color: #9999FF } /* Name.Label */
+.highlight .nn { color: #00CCFF; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #330099; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #003333 } /* Name.Variable */
+.highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mf { color: #FF6600 } /* Literal.Number.Float */
+.highlight .mh { color: #FF6600 } /* Literal.Number.Hex */
+.highlight .mi { color: #FF6600 } /* Literal.Number.Integer */
+.highlight .mo { color: #FF6600 } /* Literal.Number.Oct */
+.highlight .sb { color: #CC3300 } /* Literal.String.Backtick */
+.highlight .sc { color: #CC3300 } /* Literal.String.Char */
+.highlight .sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #CC3300 } /* Literal.String.Double */
+.highlight .se { color: #CC3300; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #CC3300 } /* Literal.String.Heredoc */
+.highlight .si { color: #AA0000 } /* Literal.String.Interpol */
+.highlight .sx { color: #CC3300 } /* Literal.String.Other */
+.highlight .sr { color: #33AAAA } /* Literal.String.Regex */
+.highlight .s1 { color: #CC3300 } /* Literal.String.Single */
+.highlight .ss { color: #FFCC33 } /* Literal.String.Symbol */
+.highlight .bp { color: #336666 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #003333 } /* Name.Variable.Class */
+.highlight .vg { color: #003333 } /* Name.Variable.Global */
+.highlight .vi { color: #003333 } /* Name.Variable.Instance */
+.highlight .il { color: #FF6600 } /* Literal.Number.Integer.Long */
+
+.type-csharp .highlight .k { color: #0000FF }
+.type-csharp .highlight .kt { color: #0000FF }
+.type-csharp .highlight .nf { color: #000000; font-weight: normal }
+.type-csharp .highlight .nc { color: #2B91AF }
+.type-csharp .highlight .nn { color: #000000 }
+.type-csharp .highlight .s { color: #A31515 }
+.type-csharp .highlight .sc { color: #A31515 }
diff --git a/stylesheets/stylesheet.css b/stylesheets/stylesheet.css
new file mode 100644
index 0000000..7a08b01
--- /dev/null
+++ b/stylesheets/stylesheet.css
@@ -0,0 +1,423 @@
+/*******************************************************************************
+Slate Theme for GitHub Pages
+by Jason Costello, @jsncostello
+*******************************************************************************/
+
+@import url(pygment_trac.css);
+
+/*******************************************************************************
+MeyerWeb Reset
+*******************************************************************************/
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup,
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font: inherit;
+  vertical-align: baseline;
+}
+
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+  display: block;
+}
+
+ol, ul {
+  list-style: none;
+}
+
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+
+/*******************************************************************************
+Theme Styles
+*******************************************************************************/
+
+body {
+  box-sizing: border-box;
+  color:#373737;
+  background: #212121;
+  font-size: 16px;
+  font-family: 'Myriad Pro', Calibri, Helvetica, Arial, sans-serif;
+  line-height: 1.5;
+  -webkit-font-smoothing: antialiased;
+}
+
+h1, h2, h3, h4, h5, h6 {
+  margin: 10px 0;
+  font-weight: 700;
+  color:#222222;
+  font-family: 'Lucida Grande', 'Calibri', Helvetica, Arial, sans-serif;
+  letter-spacing: -1px;
+}
+
+h1 {
+  font-size: 36px;
+  font-weight: 700;
+}
+
+h2 {
+  padding-bottom: 10px;
+  font-size: 32px;
+  background: url('../images/bg_hr.png') repeat-x bottom;
+}
+
+h3 {
+  font-size: 24px;
+}
+
+h4 {
+  font-size: 21px;
+}
+
+h5 {
+  font-size: 18px;
+}
+
+h6 {
+  font-size: 16px;
+}
+
+p {
+  margin: 10px 0 15px 0;
+}
+
+footer p {
+  color: #f2f2f2;
+}
+
+a {
+  text-decoration: none;
+  color: #007edf;
+  text-shadow: none;
+
+  transition: color 0.5s ease;
+  transition: text-shadow 0.5s ease;
+  -webkit-transition: color 0.5s ease;
+  -webkit-transition: text-shadow 0.5s ease;
+  -moz-transition: color 0.5s ease;
+  -moz-transition: text-shadow 0.5s ease;
+  -o-transition: color 0.5s ease;
+  -o-transition: text-shadow 0.5s ease;
+  -ms-transition: color 0.5s ease;
+  -ms-transition: text-shadow 0.5s ease;
+}
+
+a:hover, a:focus {text-decoration: underline;}
+
+footer a {
+  color: #F2F2F2;
+  text-decoration: underline;
+}
+
+em {
+  font-style: italic;
+}
+
+strong {
+  font-weight: bold;
+}
+
+img {
+  position: relative;
+  margin: 0 auto;
+  max-width: 739px;
+  padding: 5px;
+  margin: 10px 0 10px 0;
+  border: 1px solid #ebebeb;
+
+  box-shadow: 0 0 5px #ebebeb;
+  -webkit-box-shadow: 0 0 5px #ebebeb;
+  -moz-box-shadow: 0 0 5px #ebebeb;
+  -o-box-shadow: 0 0 5px #ebebeb;
+  -ms-box-shadow: 0 0 5px #ebebeb;
+}
+
+p img {
+  display: inline;
+  margin: 0;
+  padding: 0;
+  vertical-align: middle;
+  text-align: center;
+  border: none;
+}
+
+pre, code {
+  width: 100%;
+  color: #222;
+  background-color: #fff;
+
+  font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
+  font-size: 14px;
+
+  border-radius: 2px;
+  -moz-border-radius: 2px;
+  -webkit-border-radius: 2px;
+}
+
+pre {
+  width: 100%;
+  padding: 10px;
+  box-shadow: 0 0 10px rgba(0,0,0,.1);
+  overflow: auto;
+}
+
+code {
+  padding: 3px;
+  margin: 0 3px;
+  box-shadow: 0 0 10px rgba(0,0,0,.1);
+}
+
+pre code {
+  display: block;
+  box-shadow: none;
+}
+
+blockquote {
+  color: #666;
+  margin-bottom: 20px;
+  padding: 0 0 0 20px;
+  border-left: 3px solid #bbb;
+}
+
+
+ul, ol, dl {
+  margin-bottom: 15px
+}
+
+ul {
+  list-style: inside;
+  padding-left: 20px;
+}
+
+ol {
+  list-style: decimal inside;
+  padding-left: 20px;
+}
+
+dl dt {
+  font-weight: bold;
+}
+
+dl dd {
+  padding-left: 20px;
+  font-style: italic;
+}
+
+dl p {
+  padding-left: 20px;
+  font-style: italic;
+}
+
+hr {
+  height: 1px;
+  margin-bottom: 5px;
+  border: none;
+  background: url('../images/bg_hr.png') repeat-x center;
+}
+
+table {
+  border: 1px solid #373737;
+  margin-bottom: 20px;
+  text-align: left;
+ }
+
+th {
+  font-family: 'Lucida Grande', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+  padding: 10px;
+  background: #373737;
+  color: #fff;
+ }
+
+td {
+  padding: 10px;
+  border: 1px solid #373737;
+ }
+
+form {
+  background: #f2f2f2;
+  padding: 20px;
+}
+
+/*******************************************************************************
+Full-Width Styles
+*******************************************************************************/
+
+.outer {
+  width: 100%;
+}
+
+.inner {
+  position: relative;
+  max-width: 640px;
+  padding: 20px 10px;
+  margin: 0 auto;
+}
+
+#forkme_banner {
+  display: block;
+  position: absolute;
+  top:0;
+  right: 10px;
+  z-index: 10;
+  padding: 10px 50px 10px 10px;
+  color: #fff;
+  background: url('../images/blacktocat.png') #0090ff no-repeat 95% 50%;
+  font-weight: 700;
+  box-shadow: 0 0 10px rgba(0,0,0,.5);
+  border-bottom-left-radius: 2px;
+  border-bottom-right-radius: 2px;
+}
+
+#header_wrap {
+  background: #212121;
+  background: -moz-linear-gradient(top, #373737, #212121);
+  background: -webkit-linear-gradient(top, #373737, #212121);
+  background: -ms-linear-gradient(top, #373737, #212121);
+  background: -o-linear-gradient(top, #373737, #212121);
+  background: linear-gradient(top, #373737, #212121);
+}
+
+#header_wrap .inner {
+  padding: 50px 10px 30px 10px;
+}
+
+#project_title {
+  margin: 0;
+  color: #fff;
+  font-size: 42px;
+  font-weight: 700;
+  text-shadow: #111 0px 0px 10px;
+}
+
+#project_tagline {
+  color: #fff;
+  font-size: 24px;
+  font-weight: 300;
+  background: none;
+  text-shadow: #111 0px 0px 10px;
+}
+
+#downloads {
+  position: absolute;
+  width: 210px;
+  z-index: 10;
+  bottom: -40px;
+  right: 0;
+  height: 70px;
+  background: url('../images/icon_download.png') no-repeat 0% 90%;
+}
+
+.zip_download_link {
+  display: block;
+  float: right;
+  width: 90px;
+  height:70px;
+  text-indent: -5000px;
+  overflow: hidden;
+  background: url(../images/sprite_download.png) no-repeat bottom left;
+}
+
+.tar_download_link {
+  display: block;
+  float: right;
+  width: 90px;
+  height:70px;
+  text-indent: -5000px;
+  overflow: hidden;
+  background: url(../images/sprite_download.png) no-repeat bottom right;
+  margin-left: 10px;
+}
+
+.zip_download_link:hover {
+  background: url(../images/sprite_download.png) no-repeat top left;
+}
+
+.tar_download_link:hover {
+  background: url(../images/sprite_download.png) no-repeat top right;
+}
+
+#main_content_wrap {
+  background: #f2f2f2;
+  border-top: 1px solid #111;
+  border-bottom: 1px solid #111;
+}
+
+#main_content {
+  padding-top: 40px;
+}
+
+#footer_wrap {
+  background: #212121;
+}
+
+
+
+/*******************************************************************************
+Small Device Styles
+*******************************************************************************/
+
+@media screen and (max-width: 480px) {
+  body {
+    font-size:14px;
+  }
+
+  #downloads {
+    display: none;
+  }
+
+  .inner {
+    min-width: 320px;
+    max-width: 480px;
+  }
+
+  #project_title {
+  font-size: 32px;
+  }
+
+  h1 {
+    font-size: 28px;
+  }
+
+  h2 {
+    font-size: 24px;
+  }
+
+  h3 {
+    font-size: 21px;
+  }
+
+  h4 {
+    font-size: 18px;
+  }
+
+  h5 {
+    font-size: 14px;
+  }
+
+  h6 {
+    font-size: 12px;
+  }
+
+  code, pre {
+    min-width: 320px;
+    max-width: 480px;
+    font-size: 11px;
+  }
+
+}

From c0fc82331eb8c6b2c301840f71390b09e68a3ad7 Mon Sep 17 00:00:00 2001
From: Sayamindu Dasgupta <sayamindu@gmail.com>
Date: Thu, 15 May 2014 21:25:17 -0400
Subject: [PATCH 02/47] Create gh-pages branch via GitHub

---
 index.html  | 8 ++++----
 params.json | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/index.html b/index.html
index 30d6fdd..55ae46e 100644
--- a/index.html
+++ b/index.html
@@ -65,9 +65,9 @@
 <p>An extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.</p>
 
 <h3>
-<a name="command-blocks" class="anchor" href="#command-blocks"><span class="octicon octicon-link"></span></a>Command blocks</h3>
+<a name="reporter-blocks" class="anchor" href="#reporter-blocks"><span class="octicon octicon-link"></span></a>Reporter blocks</h3>
 
-<p>To add a simple <em>command</em> block, there needs to be an entry in the <code>descriptors.blocks</code> list, and a corresponding function. The simplest block possible is shown below:</p>
+<p>To add a simple <em>command</em> block, there needs to be an entry in the <code>descriptors.blocks</code> list, and a corresponding function. The simplest block possible is shown below. The block reports back the value of  the constant π.</p>
 
 <div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
     <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
@@ -88,7 +88,7 @@
     <span class="c1">// Block and block menu descriptions</span>
     <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
         <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
-            <span class="p">[</span><span class="s1">''</span><span class="p">,</span> <span class="s1">'PI'</span><span class="p">,</span> <span class="s1">'get_pi'</span><span class="p">],</span>
+            <span class="p">[</span><span class="s1">'r'</span><span class="p">,</span> <span class="s1">'PI'</span><span class="p">,</span> <span class="s1">'get_pi'</span><span class="p">],</span>
         <span class="p">]</span>
     <span class="p">};</span>
 
@@ -118,7 +118,7 @@
     <span class="c1">// Block and block menu descriptions</span>
     <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
         <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
-            <span class="p">[</span><span class="s1">''</span><span class="p">,</span> <span class="s1">'%d ^ %d'</span><span class="p">,</span> <span class="s1">'power'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span> 
+            <span class="p">[</span><span class="s1">'r'</span><span class="p">,</span> <span class="s1">'%d ^ %d'</span><span class="p">,</span> <span class="s1">'power'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span> 
             <span class="c1">// The last two values above represent default parameter values</span>
         <span class="p">]</span>
     <span class="p">};</span>
diff --git a/params.json b/params.json
index 7640347..e311387 100644
--- a/params.json
+++ b/params.json
@@ -1 +1 @@
-{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function. The simplest block possible is shown below:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_pi = function() {\r\n        return Math.PI;\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'PI', 'get_pi'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nTo add parameters to blocks, the block definition in ``descriptors.blocks`` needs to be extended.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', '%d ^ %d', 'power', 2, 3], \r\n            // The last two values above represent default parameter values\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
+{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Reporter blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function. The simplest block possible is shown below. The block reports back the value of  the constant π.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_pi = function() {\r\n        return Math.PI;\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['r', 'PI', 'get_pi'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nTo add parameters to blocks, the block definition in ``descriptors.blocks`` needs to be extended.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['r', '%d ^ %d', 'power', 2, 3], \r\n            // The last two values above represent default parameter values\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file

From 61511462dd48211b6a20e0e80c9b01d5baa298dc Mon Sep 17 00:00:00 2001
From: Sayamindu Dasgupta <sayamindu@gmail.com>
Date: Thu, 15 May 2014 21:26:24 -0400
Subject: [PATCH 03/47] Create gh-pages branch via GitHub

---
 index.html  | 2 +-
 params.json | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/index.html b/index.html
index 55ae46e..67bbe76 100644
--- a/index.html
+++ b/index.html
@@ -67,7 +67,7 @@
 <h3>
 <a name="reporter-blocks" class="anchor" href="#reporter-blocks"><span class="octicon octicon-link"></span></a>Reporter blocks</h3>
 
-<p>To add a simple <em>command</em> block, there needs to be an entry in the <code>descriptors.blocks</code> list, and a corresponding function. The simplest block possible is shown below. The block reports back the value of  the constant π.</p>
+<p>To add a simple <em>reporter</em> block, there needs to be an entry in the <code>descriptors.blocks</code> list, and a corresponding function that returns the reported value. The simplest block possible is shown below. The block reports back the value of  the constant π.</p>
 
 <div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
     <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
diff --git a/params.json b/params.json
index e311387..8951cbc 100644
--- a/params.json
+++ b/params.json
@@ -1 +1 @@
-{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Reporter blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function. The simplest block possible is shown below. The block reports back the value of  the constant π.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_pi = function() {\r\n        return Math.PI;\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['r', 'PI', 'get_pi'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nTo add parameters to blocks, the block definition in ``descriptors.blocks`` needs to be extended.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['r', '%d ^ %d', 'power', 2, 3], \r\n            // The last two values above represent default parameter values\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
+{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Reporter blocks\r\n\r\nTo add a simple _reporter_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function that returns the reported value. The simplest block possible is shown below. The block reports back the value of  the constant π.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_pi = function() {\r\n        return Math.PI;\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['r', 'PI', 'get_pi'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nTo add parameters to blocks, the block definition in ``descriptors.blocks`` needs to be extended.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['r', '%d ^ %d', 'power', 2, 3], \r\n            // The last two values above represent default parameter values\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file

From a983f05ef5ca094ab22507bdcd5da42a4eb94a1f Mon Sep 17 00:00:00 2001
From: Sayamindu Dasgupta <sayamindu@gmail.com>
Date: Fri, 16 May 2014 15:46:48 -0400
Subject: [PATCH 04/47] Create gh-pages branch via GitHub

---
 index.html  | 20 ++++++++++++--------
 params.json |  2 +-
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/index.html b/index.html
index 67bbe76..a70d892 100644
--- a/index.html
+++ b/index.html
@@ -65,9 +65,9 @@
 <p>An extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.</p>
 
 <h3>
-<a name="reporter-blocks" class="anchor" href="#reporter-blocks"><span class="octicon octicon-link"></span></a>Reporter blocks</h3>
+<a name="command-blocks" class="anchor" href="#command-blocks"><span class="octicon octicon-link"></span></a>Command blocks</h3>
 
-<p>To add a simple <em>reporter</em> block, there needs to be an entry in the <code>descriptors.blocks</code> list, and a corresponding function that returns the reported value. The simplest block possible is shown below. The block reports back the value of  the constant π.</p>
+<p>To add a simple <em>command</em> block, there needs to be an entry in the <code>descriptors.blocks</code> list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).</p>
 
 <div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
     <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
@@ -81,23 +81,27 @@
         <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Ready'</span><span class="p">};</span>
     <span class="p">};</span>
 
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">get_pi</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-        <span class="k">return</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span><span class="p">;</span>
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">my_first_block</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+        <span class="c1">// Code that gets executed when the block is run</span>
     <span class="p">}</span>
 
     <span class="c1">// Block and block menu descriptions</span>
     <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
         <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
-            <span class="p">[</span><span class="s1">'r'</span><span class="p">,</span> <span class="s1">'PI'</span><span class="p">,</span> <span class="s1">'get_pi'</span><span class="p">],</span>
+            <span class="c1">// Block type, block name, function name</span>
+            <span class="p">[</span><span class="s1">' '</span><span class="p">,</span> <span class="s1">'my first block'</span><span class="p">,</span> <span class="s1">'my_first_block'</span><span class="p">],</span>
         <span class="p">]</span>
     <span class="p">};</span>
 
     <span class="c1">// Register the extension</span>
-    <span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Sample extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
+    <span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'My first extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
 <span class="p">})();</span>
 </pre></div>
 
-<p>To add parameters to blocks, the block definition in <code>descriptors.blocks</code> needs to be extended.</p>
+<h3>
+<a name="reporter-blocks" class="anchor" href="#reporter-blocks"><span class="octicon octicon-link"></span></a>Reporter blocks</h3>
+
+<p>Blocks can also return values, and they are called <em>reporter</em> blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).</p>
 
 <div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
     <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
@@ -118,8 +122,8 @@
     <span class="c1">// Block and block menu descriptions</span>
     <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
         <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
+            <span class="c1">// Block type, block name, function name, parameter1 default value, parameter2 default value</span>
             <span class="p">[</span><span class="s1">'r'</span><span class="p">,</span> <span class="s1">'%d ^ %d'</span><span class="p">,</span> <span class="s1">'power'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span> 
-            <span class="c1">// The last two values above represent default parameter values</span>
         <span class="p">]</span>
     <span class="p">};</span>
 
diff --git a/params.json b/params.json
index 8951cbc..de006f7 100644
--- a/params.json
+++ b/params.json
@@ -1 +1 @@
-{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Reporter blocks\r\n\r\nTo add a simple _reporter_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function that returns the reported value. The simplest block possible is shown below. The block reports back the value of  the constant π.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_pi = function() {\r\n        return Math.PI;\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['r', 'PI', 'get_pi'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nTo add parameters to blocks, the block definition in ``descriptors.blocks`` needs to be extended.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['r', '%d ^ %d', 'power', 2, 3], \r\n            // The last two values above represent default parameter values\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
+{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, parameter1 default value, parameter2 default value\r\n            ['r', '%d ^ %d', 'power', 2, 3], \r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file

From 3b5d42ac813c1f14e780bfe820955b14adf88151 Mon Sep 17 00:00:00 2001
From: Sayamindu Dasgupta <sayamindu@gmail.com>
Date: Fri, 16 May 2014 16:30:25 -0400
Subject: [PATCH 05/47] Create gh-pages branch via GitHub

---
 index.html  | 44 +++++++++++++++++++++++++++++++++++++++++++-
 params.json |  2 +-
 2 files changed, 44 insertions(+), 2 deletions(-)

diff --git a/index.html b/index.html
index a70d892..778bd8f 100644
--- a/index.html
+++ b/index.html
@@ -122,7 +122,7 @@
     <span class="c1">// Block and block menu descriptions</span>
     <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
         <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
-            <span class="c1">// Block type, block name, function name, parameter1 default value, parameter2 default value</span>
+            <span class="c1">// Block type, block name, function name, param1 default value, param2 default value</span>
             <span class="p">[</span><span class="s1">'r'</span><span class="p">,</span> <span class="s1">'%d ^ %d'</span><span class="p">,</span> <span class="s1">'power'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span> 
         <span class="p">]</span>
     <span class="p">};</span>
@@ -130,6 +130,48 @@
     <span class="c1">// Register the extension</span>
     <span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Sample extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
 <span class="p">})();</span>
+</pre></div>
+
+<h3>
+<a name="reporter-blocks-that-wait" class="anchor" href="#reporter-blocks-that-wait"><span class="octicon octicon-link"></span></a>Reporter blocks that wait</h3>
+
+<p>One common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to <a href="http://openweathermap.org/API">Open Weather Map API</a>. Note that the block type is <em>R</em> instead of <em>r</em> (which is for a non-blocking reporter).</p>
+
+<div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+    <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
+
+    <span class="c1">// Cleanup function when the extension is unloaded</span>
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">_shutdown</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{};</span>
+
+    <span class="c1">// Status reporting code</span>
+    <span class="c1">// Use this to report missing hardware, plugin or unsupported browser</span>
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">_getStatus</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+        <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Ready'</span><span class="p">};</span>
+    <span class="p">};</span>
+
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">get_temp</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">location</span><span class="p">)</span> <span class="p">{</span>
+        <span class="c1">// Make an AJAX call to the Open Weather Maps API</span>
+        <span class="nx">$</span><span class="p">.</span><span class="nx">ajax</span><span class="p">({</span>
+              <span class="nx">url</span><span class="o">:</span> <span class="s1">'http://api.openweathermap.org/data/2.5/weather?q='</span><span class="o">+</span><span class="nx">location</span><span class="o">+</span><span class="s1">'&amp;units=imperial'</span><span class="p">,</span>
+              <span class="nx">dataType</span><span class="o">:</span> <span class="s1">'jsonp'</span><span class="p">,</span>
+              <span class="nx">success</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span> <span class="nx">data</span> <span class="p">)</span> <span class="p">{</span>
+                  <span class="c1">// Got the data - return the value</span>
+                  <span class="nx">temperature</span> <span class="o">=</span> <span class="nx">data</span><span class="p">[</span><span class="s1">'main'</span><span class="p">][</span><span class="s1">'temp'</span><span class="p">];</span>
+                  <span class="nx">callback</span><span class="p">(</span><span class="nx">temperature</span><span class="p">);</span>
+              <span class="p">}</span>
+        <span class="p">});</span>
+    <span class="p">}</span>
+
+    <span class="c1">// Block and block menu descriptions</span>
+    <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
+        <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
+            <span class="p">[</span><span class="s1">'R'</span><span class="p">,</span> <span class="s1">'current temperature in city %s'</span><span class="p">,</span> <span class="s1">'get_temp'</span><span class="p">,</span> <span class="s1">'Boston, MA'</span><span class="p">],</span> 
+        <span class="p">]</span>
+    <span class="p">};</span>
+
+    <span class="c1">// Register the extension</span>
+    <span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Weather extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
+<span class="p">})();</span>
 </pre></div>
       </section>
     </div>
diff --git a/params.json b/params.json
index de006f7..395074c 100644
--- a/params.json
+++ b/params.json
@@ -1 +1 @@
-{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, parameter1 default value, parameter2 default value\r\n            ['r', '%d ^ %d', 'power', 2, 3], \r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
+{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%d ^ %d', 'power', 2, 3], \r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( data ) {\r\n                  // Got the data - return the value\r\n                  temperature = data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'], \r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file

From ae5755515bb8126e741e53815a50e534284fcd63 Mon Sep 17 00:00:00 2001
From: Sayamindu Dasgupta <sayamindu@gmail.com>
Date: Fri, 16 May 2014 16:50:55 -0400
Subject: [PATCH 06/47] Create gh-pages branch via GitHub

---
 index.html  | 8 ++++++--
 params.json | 2 +-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/index.html b/index.html
index 778bd8f..c8913f7 100644
--- a/index.html
+++ b/index.html
@@ -155,8 +155,9 @@
               <span class="nx">url</span><span class="o">:</span> <span class="s1">'http://api.openweathermap.org/data/2.5/weather?q='</span><span class="o">+</span><span class="nx">location</span><span class="o">+</span><span class="s1">'&amp;units=imperial'</span><span class="p">,</span>
               <span class="nx">dataType</span><span class="o">:</span> <span class="s1">'jsonp'</span><span class="p">,</span>
               <span class="nx">success</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span> <span class="nx">data</span> <span class="p">)</span> <span class="p">{</span>
-                  <span class="c1">// Got the data - return the value</span>
-                  <span class="nx">temperature</span> <span class="o">=</span> <span class="nx">data</span><span class="p">[</span><span class="s1">'main'</span><span class="p">][</span><span class="s1">'temp'</span><span class="p">];</span>
+                  <span class="c1">// Got the data - parse it and return the temperature</span>
+                  <span class="nx">weather_obj</span> <span class="o">=</span> <span class="nx">JSON</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">data</span><span class="p">);</span>
+                  <span class="nx">temperature</span> <span class="o">=</span> <span class="nx">weather_obj</span><span class="p">[</span><span class="s1">'main'</span><span class="p">][</span><span class="s1">'temp'</span><span class="p">];</span>
                   <span class="nx">callback</span><span class="p">(</span><span class="nx">temperature</span><span class="p">);</span>
               <span class="p">}</span>
         <span class="p">});</span>
@@ -173,6 +174,9 @@
     <span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Weather extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
 <span class="p">})();</span>
 </pre></div>
+
+<h3>
+<a name="hat-blocks" class="anchor" href="#hat-blocks"><span class="octicon octicon-link"></span></a>Hat blocks</h3>
       </section>
     </div>
 
diff --git a/params.json b/params.json
index 395074c..c1c614e 100644
--- a/params.json
+++ b/params.json
@@ -1 +1 @@
-{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%d ^ %d', 'power', 2, 3], \r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( data ) {\r\n                  // Got the data - return the value\r\n                  temperature = data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'], \r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
+{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%d ^ %d', 'power', 2, 3], \r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  weather_obj = JSON.parse(data);\r\n                  temperature = weather_obj['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'], \r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n ","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file

From b4ed4e47b8075ad2f25296b2c0e8bd8926b1f9ec Mon Sep 17 00:00:00 2001
From: Sayamindu Dasgupta <sayamindu@gmail.com>
Date: Fri, 16 May 2014 18:02:57 -0400
Subject: [PATCH 07/47] Create gh-pages branch via GitHub

---
 index.html  | 45 +++++++++++++++++++++++++++++++++++++++++++++
 params.json |  2 +-
 2 files changed, 46 insertions(+), 1 deletion(-)

diff --git a/index.html b/index.html
index c8913f7..0f9305c 100644
--- a/index.html
+++ b/index.html
@@ -177,6 +177,51 @@
 
 <h3>
 <a name="hat-blocks" class="anchor" href="#hat-blocks"><span class="octicon octicon-link"></span></a>Hat blocks</h3>
+
+<p>Hat blocks go on top of block stacks - examples of Scratch hat blocks include "when green flag clicked" or "when this sprite clicked". To create a hat block through an extension, the block type needs to be set to <em>h</em>, as shown in the example below.</p>
+
+<div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+    <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
+    <span class="kd">var</span> <span class="nx">alarm_went_off</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span> <span class="c1">// This becomes true after the alarm goes off</span>
+
+    <span class="c1">// Cleanup function when the extension is unloaded</span>
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">_shutdown</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{};</span>
+
+    <span class="c1">// Status reporting code</span>
+    <span class="c1">// Use this to report missing hardware, plugin or unsupported browser</span>
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">_getStatus</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+        <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Ready'</span><span class="p">};</span>
+    <span class="p">};</span>
+
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">set_alarm</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">time</span><span class="p">)</span> <span class="p">{</span>
+       <span class="nb">window</span><span class="p">.</span><span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+           <span class="nx">alarm_went_off</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>     
+       <span class="p">},</span> <span class="nx">time</span><span class="o">*</span><span class="mi">1000</span><span class="p">);</span>
+    <span class="p">}</span>
+
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">when_alarm</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+       <span class="c1">// Reset alarm_went_off if it is true, and return true</span>
+       <span class="c1">// otherwise, return false.</span>
+       <span class="k">if</span> <span class="p">(</span><span class="nx">alarm_went_off</span> <span class="o">==</span> <span class="kc">true</span><span class="p">)</span> <span class="p">{</span>
+           <span class="nx">alarm_went_off</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
+           <span class="k">return</span> <span class="kc">true</span><span class="p">;</span>
+       <span class="p">}</span>
+
+       <span class="k">return</span> <span class="kc">false</span><span class="p">;</span>
+    <span class="p">}</span>
+
+    <span class="c1">// Block and block menu descriptions</span>
+    <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
+        <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
+            <span class="p">[</span><span class="s1">''</span><span class="p">,</span> <span class="s1">'run alarm after %n seconds'</span><span class="p">,</span> <span class="s1">'set_alarm'</span><span class="p">,</span> <span class="s1">'2'</span><span class="p">],</span>
+            <span class="p">[</span><span class="s1">'h'</span><span class="p">,</span> <span class="s1">'when alarm goes off'</span><span class="p">,</span> <span class="s1">'when_alarm'</span><span class="p">],</span>
+        <span class="p">]</span>
+    <span class="p">};</span>
+
+    <span class="c1">// Register the extension</span>
+    <span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Alarm extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
+<span class="p">})();</span>
+</pre></div>
       </section>
     </div>
 
diff --git a/params.json b/params.json
index c1c614e..d5bc54a 100644
--- a/params.json
+++ b/params.json
@@ -1 +1 @@
-{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%d ^ %d', 'power', 2, 3], \r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  weather_obj = JSON.parse(data);\r\n                  temperature = weather_obj['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'], \r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n ","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
+{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%d ^ %d', 'power', 2, 3], \r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  weather_obj = JSON.parse(data);\r\n                  temperature = weather_obj['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'], \r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;     \r\n       }, time*1000);\r\n    }\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off == true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file

From 6be24baa43aa510c27d01d4c5e17d24ac88de376 Mon Sep 17 00:00:00 2001
From: Sayamindu Dasgupta <sayamindu@gmail.com>
Date: Fri, 16 May 2014 23:58:36 -0400
Subject: [PATCH 08/47] Create gh-pages branch via GitHub

---
 index.html  | 63 +++++++++++++++++++++++++++++++++++++++++++----------
 params.json |  2 +-
 2 files changed, 52 insertions(+), 13 deletions(-)

diff --git a/index.html b/index.html
index 0f9305c..80c086f 100644
--- a/index.html
+++ b/index.html
@@ -98,6 +98,46 @@
 <span class="p">})();</span>
 </pre></div>
 
+<h3>
+<a name="command-blocks-that-wait" class="anchor" href="#command-blocks-that-wait"><span class="octicon octicon-link"></span></a>Command blocks that wait</h3>
+
+<p>Sometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a "random wait" block to show how that can be done. Note the use of the <code>console.log</code> statement in the code - most Javascript methods, as well as JQuery methods will work fine in an extension.</p>
+
+<div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+    <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
+
+    <span class="c1">// Cleanup function when the extension is unloaded</span>
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">_shutdown</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{};</span>
+
+    <span class="c1">// Status reporting code</span>
+    <span class="c1">// Use this to report missing hardware, plugin or unsupported browser</span>
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">_getStatus</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+        <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Ready'</span><span class="p">};</span>
+    <span class="p">};</span>
+
+    <span class="c1">// Functions for block with type 'w' will get a callback function as the </span>
+    <span class="c1">// final argument. This should be called to indicate that the block can</span>
+    <span class="c1">// stop waiting.</span>
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">wait_random</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">callback</span><span class="p">)</span> <span class="p">{</span>
+        <span class="nx">wait</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">();</span>
+        <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'Waiting for '</span> <span class="o">+</span> <span class="nx">wait</span> <span class="o">+</span> <span class="s1">' seconds'</span><span class="p">);</span>
+        <span class="nb">window</span><span class="p">.</span><span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+            <span class="nx">callback</span><span class="p">();</span>
+        <span class="p">},</span> <span class="nx">wait</span><span class="o">*</span><span class="mi">1000</span><span class="p">);</span>
+    <span class="p">};</span>
+
+    <span class="c1">// Block and block menu descriptions</span>
+    <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
+        <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
+            <span class="p">[</span><span class="s1">'w'</span><span class="p">,</span> <span class="s1">'wait for random time'</span><span class="p">,</span> <span class="s1">'wait_random'</span><span class="p">],</span>
+        <span class="p">]</span>
+    <span class="p">};</span>
+
+    <span class="c1">// Register the extension</span>
+    <span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Random wait extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
+<span class="p">})();</span>
+</pre></div>
+
 <h3>
 <a name="reporter-blocks" class="anchor" href="#reporter-blocks"><span class="octicon octicon-link"></span></a>Reporter blocks</h3>
 
@@ -117,13 +157,13 @@
 
     <span class="nx">ext</span><span class="p">.</span><span class="nx">power</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">base</span><span class="p">,</span> <span class="nx">exponent</span><span class="p">)</span> <span class="p">{</span>
         <span class="k">return</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">pow</span><span class="p">(</span><span class="nx">base</span><span class="p">,</span> <span class="nx">exponent</span><span class="p">);</span>
-    <span class="p">}</span>
+    <span class="p">};</span>
 
     <span class="c1">// Block and block menu descriptions</span>
     <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
         <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
             <span class="c1">// Block type, block name, function name, param1 default value, param2 default value</span>
-            <span class="p">[</span><span class="s1">'r'</span><span class="p">,</span> <span class="s1">'%d ^ %d'</span><span class="p">,</span> <span class="s1">'power'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span> 
+            <span class="p">[</span><span class="s1">'r'</span><span class="p">,</span> <span class="s1">'%n ^ %n'</span><span class="p">,</span> <span class="s1">'power'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span>
         <span class="p">]</span>
     <span class="p">};</span>
 
@@ -149,24 +189,23 @@
         <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Ready'</span><span class="p">};</span>
     <span class="p">};</span>
 
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">get_temp</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">location</span><span class="p">)</span> <span class="p">{</span>
+    <span class="nx">ext</span><span class="p">.</span><span class="nx">get_temp</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">location</span><span class="p">,</span> <span class="nx">callback</span><span class="p">)</span> <span class="p">{</span>
         <span class="c1">// Make an AJAX call to the Open Weather Maps API</span>
         <span class="nx">$</span><span class="p">.</span><span class="nx">ajax</span><span class="p">({</span>
               <span class="nx">url</span><span class="o">:</span> <span class="s1">'http://api.openweathermap.org/data/2.5/weather?q='</span><span class="o">+</span><span class="nx">location</span><span class="o">+</span><span class="s1">'&amp;units=imperial'</span><span class="p">,</span>
               <span class="nx">dataType</span><span class="o">:</span> <span class="s1">'jsonp'</span><span class="p">,</span>
-              <span class="nx">success</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span> <span class="nx">data</span> <span class="p">)</span> <span class="p">{</span>
+              <span class="nx">success</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span> <span class="nx">weather_data</span> <span class="p">)</span> <span class="p">{</span>
                   <span class="c1">// Got the data - parse it and return the temperature</span>
-                  <span class="nx">weather_obj</span> <span class="o">=</span> <span class="nx">JSON</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">data</span><span class="p">);</span>
-                  <span class="nx">temperature</span> <span class="o">=</span> <span class="nx">weather_obj</span><span class="p">[</span><span class="s1">'main'</span><span class="p">][</span><span class="s1">'temp'</span><span class="p">];</span>
+                  <span class="nx">temperature</span> <span class="o">=</span> <span class="nx">weather_data</span><span class="p">[</span><span class="s1">'main'</span><span class="p">][</span><span class="s1">'temp'</span><span class="p">];</span>
                   <span class="nx">callback</span><span class="p">(</span><span class="nx">temperature</span><span class="p">);</span>
               <span class="p">}</span>
         <span class="p">});</span>
-    <span class="p">}</span>
+    <span class="p">};</span>
 
     <span class="c1">// Block and block menu descriptions</span>
     <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
         <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
-            <span class="p">[</span><span class="s1">'R'</span><span class="p">,</span> <span class="s1">'current temperature in city %s'</span><span class="p">,</span> <span class="s1">'get_temp'</span><span class="p">,</span> <span class="s1">'Boston, MA'</span><span class="p">],</span> 
+            <span class="p">[</span><span class="s1">'R'</span><span class="p">,</span> <span class="s1">'current temperature in city %s'</span><span class="p">,</span> <span class="s1">'get_temp'</span><span class="p">,</span> <span class="s1">'Boston, MA'</span><span class="p">],</span>
         <span class="p">]</span>
     <span class="p">};</span>
 
@@ -195,20 +234,20 @@
 
     <span class="nx">ext</span><span class="p">.</span><span class="nx">set_alarm</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">time</span><span class="p">)</span> <span class="p">{</span>
        <span class="nb">window</span><span class="p">.</span><span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-           <span class="nx">alarm_went_off</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>     
+           <span class="nx">alarm_went_off</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
        <span class="p">},</span> <span class="nx">time</span><span class="o">*</span><span class="mi">1000</span><span class="p">);</span>
-    <span class="p">}</span>
+    <span class="p">};</span>
 
     <span class="nx">ext</span><span class="p">.</span><span class="nx">when_alarm</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
        <span class="c1">// Reset alarm_went_off if it is true, and return true</span>
        <span class="c1">// otherwise, return false.</span>
-       <span class="k">if</span> <span class="p">(</span><span class="nx">alarm_went_off</span> <span class="o">==</span> <span class="kc">true</span><span class="p">)</span> <span class="p">{</span>
+       <span class="k">if</span> <span class="p">(</span><span class="nx">alarm_went_off</span> <span class="o">===</span> <span class="kc">true</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">alarm_went_off</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
            <span class="k">return</span> <span class="kc">true</span><span class="p">;</span>
        <span class="p">}</span>
 
        <span class="k">return</span> <span class="kc">false</span><span class="p">;</span>
-    <span class="p">}</span>
+    <span class="p">};</span>
 
     <span class="c1">// Block and block menu descriptions</span>
     <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
diff --git a/params.json b/params.json
index d5bc54a..145233a 100644
--- a/params.json
+++ b/params.json
@@ -1 +1 @@
-{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%d ^ %d', 'power', 2, 3], \r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  weather_obj = JSON.parse(data);\r\n                  temperature = weather_obj['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'], \r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;     \r\n       }, time*1000);\r\n    }\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off == true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
+{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Command blocks that wait\r\n\r\nSometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a \"random wait\" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as JQuery methods will work fine in an extension.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Functions for block with type 'w' will get a callback function as the \r\n    // final argument. This should be called to indicate that the block can\r\n    // stop waiting.\r\n    ext.wait_random = function(callback) {\r\n        wait = Math.random();\r\n        console.log('Waiting for ' + wait + ' seconds');\r\n        window.setTimeout(function() {\r\n            callback();\r\n        }, wait*1000);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['w', 'wait for random time', 'wait_random'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Random wait extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%n ^ %n', 'power', 2, 3],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location, callback) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( weather_data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  temperature = weather_data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;\r\n       }, time*1000);\r\n    };\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off === true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file

From 57427de6b26c9cecb4106f338222d4e3a6bb5677 Mon Sep 17 00:00:00 2001
From: Sayamindu Dasgupta <sayamindu@media.mit.edu>
Date: Sat, 17 May 2014 00:07:40 -0400
Subject: [PATCH 09/47] Initial import of sample extensions

---
 alarm_extension.js                 | 44 ++++++++++++++++++++++++++
 localstorage_extension.js          | 46 +++++++++++++++++++++++++++
 power_extension.js                 | 30 ++++++++++++++++++
 random_wait_extension.js           | 36 +++++++++++++++++++++
 speech_to_text_extension.js        | 39 +++++++++++++++++++++++
 text_to_speech_extension.js        | 51 ++++++++++++++++++++++++++++++
 text_to_speech_simple_extension.js | 30 ++++++++++++++++++
 weather_extension.js               | 39 +++++++++++++++++++++++
 8 files changed, 315 insertions(+)
 create mode 100644 alarm_extension.js
 create mode 100644 localstorage_extension.js
 create mode 100644 power_extension.js
 create mode 100644 random_wait_extension.js
 create mode 100644 speech_to_text_extension.js
 create mode 100644 text_to_speech_extension.js
 create mode 100644 text_to_speech_simple_extension.js
 create mode 100644 weather_extension.js

diff --git a/alarm_extension.js b/alarm_extension.js
new file mode 100644
index 0000000..89239d6
--- /dev/null
+++ b/alarm_extension.js
@@ -0,0 +1,44 @@
+/* Extension demonstrating a hat block */
+/* Sayamindu Dasgupta <sayamindu@media.mit.edu>, May 2014 */
+
+new (function() {
+    var ext = this;
+    var alarm_went_off = false; // This becomes true after the alarm goes off
+
+    // Cleanup function when the extension is unloaded
+    ext._shutdown = function() {};
+
+    // Status reporting code
+    // Use this to report missing hardware, plugin or unsupported browser
+    ext._getStatus = function() {
+        return {status: 2, msg: 'Ready'};
+    };
+
+    ext.set_alarm = function(time) {
+       window.setTimeout(function() {
+           alarm_went_off = true;
+       }, time*1000);
+    };
+
+    ext.when_alarm = function() {
+       // Reset alarm_went_off if it is true, and return true
+       // otherwise, return false.
+       if (alarm_went_off === true) {
+           alarm_went_off = false;
+           return true;
+       }
+
+       return false;
+    };
+
+    // Block and block menu descriptions
+    var descriptor = {
+        blocks: [
+            ['', 'run alarm after %n seconds', 'set_alarm', '2'],
+            ['h', 'when alarm goes off', 'when_alarm'],
+        ]
+    };
+
+    // Register the extension
+    ScratchExtensions.register('Alarm extension', descriptor, ext);
+})();
\ No newline at end of file
diff --git a/localstorage_extension.js b/localstorage_extension.js
new file mode 100644
index 0000000..2f42433
--- /dev/null
+++ b/localstorage_extension.js
@@ -0,0 +1,46 @@
+/* Extension using the JavaScript localStorage API */
+/* Sayamindu Dasgupta <sayamindu@media.mit.edu>, April 2014 */
+
+new (function() {
+    var ext = this;
+
+    ext.set_localstorage = function (data) {
+        localStorage.setItem(app.projectModel.id.toString(), data);
+    };
+
+    ext.change_localstorage = function(change) {
+        var data = localStorage.getItem(app.projectModel.id.toString());
+        if (!isNaN(parseFloat(data))) {
+             localStorage.setItem(app.projectModel.id.toString(), parseFloat(data) + change);
+        }
+    };
+
+    ext.get_localstorage = function () {
+        return localStorage.getItem(app.projectModel.id.toString());
+    };
+
+    ext._shutdown = function() {};
+
+
+    ext._getStatus = function() {
+        var test = 'test';
+        try {
+            localStorage.setItem(test, test);
+            localStorage.removeItem(test);
+        } catch(e) {
+            return {status: 1, msg: 'Your browser does not support the localStorage API'};
+        }
+
+        return {status: 2, msg: 'Ready'};
+    };
+
+    var descriptor = {
+        blocks: [
+            ['', 'set local data to %s', 'set_localstorage', '0'],
+            ['', 'change local data by %d', 'change_localstorage', 1],
+            ['r', 'local data', 'get_localstorage'],
+        ],
+    };
+
+    ScratchExtensions.register('Local Storage', descriptor, ext);
+})();
\ No newline at end of file
diff --git a/power_extension.js b/power_extension.js
new file mode 100644
index 0000000..f4b3870
--- /dev/null
+++ b/power_extension.js
@@ -0,0 +1,30 @@
+/* Extension demonstrating a reporter block */
+/* Sayamindu Dasgupta <sayamindu@media.mit.edu>, May 2014 */
+
+new (function() {
+    var ext = this;
+
+    // Cleanup function when the extension is unloaded
+    ext._shutdown = function() {};
+
+    // Status reporting code
+    // Use this to report missing hardware, plugin or unsupported browser
+    ext._getStatus = function() {
+        return {status: 2, msg: 'Ready'};
+    };
+
+    ext.power = function(base, exponent) {
+        return Math.pow(base, exponent);
+    };
+
+    // Block and block menu descriptions
+    var descriptor = {
+        blocks: [
+            // Block type, block name, function name, param1 default value, param2 default value
+            ['r', '%n ^ %n', 'power', 2, 3],
+        ]
+    };
+
+    // Register the extension
+    ScratchExtensions.register('Sample extension', descriptor, ext);
+})();
\ No newline at end of file
diff --git a/random_wait_extension.js b/random_wait_extension.js
new file mode 100644
index 0000000..23b5f71
--- /dev/null
+++ b/random_wait_extension.js
@@ -0,0 +1,36 @@
+/* Extension demonstrating a blocking command block */
+/* Sayamindu Dasgupta <sayamindu@media.mit.edu>, May 2014 */
+
+new (function() {
+    var ext = this;
+
+    // Cleanup function when the extension is unloaded
+    ext._shutdown = function() {};
+
+    // Status reporting code
+    // Use this to report missing hardware, plugin or unsupported browser
+    ext._getStatus = function() {
+        return {status: 2, msg: 'Ready'};
+    };
+
+    // Functions for block with type 'w' will get a callback function as the 
+    // final argument. This should be called to indicate that the block can
+    // stop waiting.
+    ext.wait_random = function(callback) {
+        wait = Math.random();
+        console.log('Waiting for ' + wait + ' seconds');
+        window.setTimeout(function() {
+            callback();
+        }, wait*1000);
+    };
+
+    // Block and block menu descriptions
+    var descriptor = {
+        blocks: [
+            ['w', 'wait for random time', 'wait_random'],
+        ]
+    };
+
+    // Register the extension
+    ScratchExtensions.register('Random wait extension', descriptor, ext);
+})();
\ No newline at end of file
diff --git a/speech_to_text_extension.js b/speech_to_text_extension.js
new file mode 100644
index 0000000..38fb956
--- /dev/null
+++ b/speech_to_text_extension.js
@@ -0,0 +1,39 @@
+/* Extension using the JavaScript Speech API for speech to text */
+/* Sayamindu Dasgupta <sayamindu@media.mit.edu>, April 2014 */
+
+new (function() {
+    var ext = this;
+    
+    var recognized_speech = '';
+
+    ext.recognize_speech = function (callback) {
+        var recognition = new webkitSpeechRecognition();
+        recognition.onresult = function(event) {
+            if (event.results.length > 0) {
+                recognized_speech = event.results[0][0].transcript;
+                if (typeof callback=="function") callback();
+            }
+        };
+        recognition.start();
+    };
+
+    ext.recognized_speech = function () {return recognized_speech;};
+
+    ext._shutdown = function() {};
+
+    ext._getStatus = function() {
+        if (window.webkitSpeechRecognition === undefined) {
+            return {status: 1, msg: 'Your browser does not support speech recognition. Try using Google Chrome.'};
+        }
+        return {status: 2, msg: 'Ready'};
+    };
+
+    var descriptor = {
+        blocks: [
+            ['w', 'wait and recognize speech', 'recognize_speech'],
+            ['r', 'recognized speech', 'recognized_speech']
+        ],
+    };
+
+    ScratchExtensions.register('Speech To Text', descriptor, ext);
+})();
\ No newline at end of file
diff --git a/text_to_speech_extension.js b/text_to_speech_extension.js
new file mode 100644
index 0000000..fd26964
--- /dev/null
+++ b/text_to_speech_extension.js
@@ -0,0 +1,51 @@
+/* Extension using the JavaScript Speech API for text to speech */
+/* Sayamindu Dasgupta <sayamindu@media.mit.edu>, April 2014 */
+
+new (function() {
+    var ext = this;
+
+    /*function _get_voices() {
+        var ret = [];
+        var voices = speechSynthesis.getVoices();
+        
+        for(var i = 0; i < voices.length; i++ ) {
+            ret.push(voices[i].name);
+            console.log(voices.toString());
+        }
+
+        return ret;
+    }
+
+    ext.set_voice = function() {
+    };*/
+
+    ext.speak_text = function (text, callback) {
+        var u = new SpeechSynthesisUtterance(text.toString());
+        u.onend = function(event) {
+            if (typeof callback=="function") callback();
+        };
+        
+        speechSynthesis.speak(u);
+    };
+
+    ext._shutdown = function() {};
+
+    ext._getStatus = function() {
+        if (window.SpeechSynthesisUtterance === undefined) {
+            return {status: 1, msg: 'Your browser does not support text to speech. Try using Google Chrome or Safari.'};
+        }
+        return {status: 2, msg: 'Ready'};
+    };
+
+    var descriptor = {
+        blocks: [
+            //['', 'set voice to %m.voices', 'set_voice', ''],
+            ['w', 'speak %s', 'speak_text', 'Hello!'],
+        ],
+        /*menus: {
+            voices: _get_voices(),
+        },*/
+    };
+
+    ScratchExtensions.register('Text to Speech', descriptor, ext);
+})();
\ No newline at end of file
diff --git a/text_to_speech_simple_extension.js b/text_to_speech_simple_extension.js
new file mode 100644
index 0000000..fd02d0f
--- /dev/null
+++ b/text_to_speech_simple_extension.js
@@ -0,0 +1,30 @@
+/* Extension demonstrating a simple version of the Text to Speech block */
+/* Sayamindu Dasgupta <sayamindu@media.mit.edu>, May 2014 */
+
+new (function() {
+    var ext = this;
+
+    // Cleanup function when the extension is unloaded
+    ext._shutdown = function() {};
+
+    // Status reporting code
+    // Use this to report missing hardware, plugin or unsupported browser
+    ext._getStatus = function() {
+        return {status: 2, msg: 'Ready'};
+    };
+
+    ext.speak = function(text) {
+        msg = new SpeechSynthesisUtterance(text);
+        window.speechSynthesis.speak(msg);
+    };
+
+    // Block and block menu descriptions
+    var descriptor = {
+        blocks: [
+            ['', 'speak %s', 'speak', "Hello!"],
+        ]
+    };
+
+    // Register the extension
+    ScratchExtensions.register('Simple text to speech extension', descriptor, ext);
+})();
\ No newline at end of file
diff --git a/weather_extension.js b/weather_extension.js
new file mode 100644
index 0000000..d530045
--- /dev/null
+++ b/weather_extension.js
@@ -0,0 +1,39 @@
+/* Extension demonstrating a blocking reporter block */
+/* Sayamindu Dasgupta <sayamindu@media.mit.edu>, May 2014 */
+
+
+new (function() {
+    var ext = this;
+
+    // Cleanup function when the extension is unloaded
+    ext._shutdown = function() {};
+
+    // Status reporting code
+    // Use this to report missing hardware, plugin or unsupported browser
+    ext._getStatus = function() {
+        return {status: 2, msg: 'Ready'};
+    };
+
+    ext.get_temp = function(location, callback) {
+        // Make an AJAX call to the Open Weather Maps API
+        $.ajax({
+              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',
+              dataType: 'jsonp',
+              success: function( weather_data ) {
+                  // Got the data - parse it and return the temperature
+                  temperature = weather_data['main']['temp'];
+                  callback(temperature);
+              }
+        });
+    };
+
+    // Block and block menu descriptions
+    var descriptor = {
+        blocks: [
+            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],
+        ]
+    };
+
+    // Register the extension
+    ScratchExtensions.register('Weather extension', descriptor, ext);
+})();
\ No newline at end of file

From 298f82b6fcd482845963bce900509e01ffe2ac24 Mon Sep 17 00:00:00 2001
From: Sayamindu Dasgupta <sayamindu@gmail.com>
Date: Sat, 17 May 2014 08:19:05 -0400
Subject: [PATCH 10/47] Create gh-pages branch via GitHub

---
 index.html  | 2 +-
 params.json | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/index.html b/index.html
index 80c086f..ba718bc 100644
--- a/index.html
+++ b/index.html
@@ -83,7 +83,7 @@
 
     <span class="nx">ext</span><span class="p">.</span><span class="nx">my_first_block</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
         <span class="c1">// Code that gets executed when the block is run</span>
-    <span class="p">}</span>
+    <span class="p">};</span>
 
     <span class="c1">// Block and block menu descriptions</span>
     <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
diff --git a/params.json b/params.json
index 145233a..92a2d95 100644
--- a/params.json
+++ b/params.json
@@ -1 +1 @@
-{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    }\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Command blocks that wait\r\n\r\nSometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a \"random wait\" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as JQuery methods will work fine in an extension.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Functions for block with type 'w' will get a callback function as the \r\n    // final argument. This should be called to indicate that the block can\r\n    // stop waiting.\r\n    ext.wait_random = function(callback) {\r\n        wait = Math.random();\r\n        console.log('Waiting for ' + wait + ' seconds');\r\n        window.setTimeout(function() {\r\n            callback();\r\n        }, wait*1000);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['w', 'wait for random time', 'wait_random'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Random wait extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%n ^ %n', 'power', 2, 3],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location, callback) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( weather_data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  temperature = weather_data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;\r\n       }, time*1000);\r\n    };\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off === true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
+{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Command blocks that wait\r\n\r\nSometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a \"random wait\" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as JQuery methods will work fine in an extension.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Functions for block with type 'w' will get a callback function as the \r\n    // final argument. This should be called to indicate that the block can\r\n    // stop waiting.\r\n    ext.wait_random = function(callback) {\r\n        wait = Math.random();\r\n        console.log('Waiting for ' + wait + ' seconds');\r\n        window.setTimeout(function() {\r\n            callback();\r\n        }, wait*1000);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['w', 'wait for random time', 'wait_random'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Random wait extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%n ^ %n', 'power', 2, 3],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location, callback) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( weather_data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  temperature = weather_data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;\r\n       }, time*1000);\r\n    };\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off === true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file

From 59c7ba05e61b29dd55b360c0067b8f85a4d9feff Mon Sep 17 00:00:00 2001
From: Sayamindu Dasgupta <sayamindu@gmail.com>
Date: Fri, 30 May 2014 17:31:37 -0400
Subject: [PATCH 11/47] Create gh-pages branch via GitHub

---
 index.html  | 2 +-
 params.json | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/index.html b/index.html
index ba718bc..8c34da4 100644
--- a/index.html
+++ b/index.html
@@ -34,7 +34,7 @@
         <h1>
 <a name="writing-extensions-for-scratch-20" class="anchor" href="#writing-extensions-for-scratch-20"><span class="octicon octicon-link"></span></a>Writing Extensions for Scratch 2.0</h1>
 
-<p>Writing a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:</p>
+<p>Writing a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:</p>
 
 <div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
     <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
diff --git a/params.json b/params.json
index 92a2d95..cb90a9a 100644
--- a/params.json
+++ b/params.json
@@ -1 +1 @@
-{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Command blocks that wait\r\n\r\nSometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a \"random wait\" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as JQuery methods will work fine in an extension.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Functions for block with type 'w' will get a callback function as the \r\n    // final argument. This should be called to indicate that the block can\r\n    // stop waiting.\r\n    ext.wait_random = function(callback) {\r\n        wait = Math.random();\r\n        console.log('Waiting for ' + wait + ' seconds');\r\n        window.setTimeout(function() {\r\n            callback();\r\n        }, wait*1000);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['w', 'wait for random time', 'wait_random'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Random wait extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%n ^ %n', 'power', 2, 3],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location, callback) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( weather_data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  temperature = weather_data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;\r\n       }, time*1000);\r\n    };\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off === true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
+{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Command blocks that wait\r\n\r\nSometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a \"random wait\" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as JQuery methods will work fine in an extension.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Functions for block with type 'w' will get a callback function as the \r\n    // final argument. This should be called to indicate that the block can\r\n    // stop waiting.\r\n    ext.wait_random = function(callback) {\r\n        wait = Math.random();\r\n        console.log('Waiting for ' + wait + ' seconds');\r\n        window.setTimeout(function() {\r\n            callback();\r\n        }, wait*1000);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['w', 'wait for random time', 'wait_random'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Random wait extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%n ^ %n', 'power', 2, 3],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location, callback) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( weather_data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  temperature = weather_data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;\r\n       }, time*1000);\r\n    };\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off === true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file

From 76dadfd4b8e1775834023dc2f8d4d3db9e9679cd Mon Sep 17 00:00:00 2001
From: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date: Thu, 31 Jul 2014 12:40:38 -0700
Subject: [PATCH 12/47] Create gh-pages branch via GitHub

---
 images/bg_hr.png           | Bin 943 -> 78 bytes
 images/blacktocat.png      | Bin 1428 -> 463 bytes
 images/icon_download.png   | Bin 1162 -> 216 bytes
 images/sprite_download.png | Bin 16799 -> 14832 bytes
 index.html                 | 213 ++++++++++++++++++++++++++++++++++++-
 params.json                |   2 +-
 6 files changed, 210 insertions(+), 5 deletions(-)

diff --git a/images/bg_hr.png b/images/bg_hr.png
index 7973bd69888c7e10ccad1111d555ceabb7cd99b6..514aee5056a320b059a4b92fc31385b01f3fd707 100644
GIT binary patch
delta 48
zcmZ3_?l(b2OVrcFF+}2Wa)N}>gF8Em|2xh|Ji*9t_b}UK{lKHU8Gyjk)z4*}Q$iB}
D!}1bm

literal 943
zcmaJ=O^ee&7!FiK7FWCot{@Ck@nrMW&tx0B-6VAbrk1u~FTzffX&bu9#AIsIdef8t
z!QZfdz=K}>3m(LO;6X3qN}Y6@>cJYA%)G<%Jn!ec>9im1@7>wsIBwrMF}iHO!q%;8
zSJ@xEd~(FL18NRvkBsOXMVM>4WQc*~qcQGc<Sw3n#C49#L9aic1N*V+5T8dWhEM#E
zu{o~ZNJ8XHF$F_B_5uxlefJ&$&(+}5vMt)7jwjy9GQz!OyYDQgj^e_`Lr_mtCg5X=
zK;oYTv6^Ubt*f$gdM!Y(hR~@7FM}G`9iWp4gEB7`9I+yTio{FBQngxr0Ax`T1yL3x
zxgb^5qO6J{*nE(Ai`<dgHCh{A%+lb5(ohwI`FzgLi#&<Of}|))sv*k-hA6~~fTE-j
z#Q99Yz_Al~A@xWAQbjZ*Gpa!r>17IjxRnj!O_^B1gan0x#EWT48PK->5B2>mI;LIx
zC*FSw$Nfc!g)WZCEOJ=mM)}lLsOk|$ltg_(&ax_YCWMlBLPDVT%D_gB7o_$YZ`-OB
z#1sV%whRq21>W;qwN$N?OUGtQQe;JvOsQrna;+v+j8dth=*?orHHb6waX>S!yXCgT
zo!oR3{E&GzaOAzfZYv@_Sf{LdyJInS>TS60&R9%yCs$y>2x(*gYIJtRrYAja$Ceq}
z!N&oc_K1!3-Ft`U>`CM;quEbB4KG%!MovB*9_3!QzFhqHwrbwK|Doo-y>auDJNSP6
T=d)j*_4El@X4^PFK7I8YBT*xD

diff --git a/images/blacktocat.png b/images/blacktocat.png
index 6e264fe57a2e35a2855405ac7d4102c3f6ddcdae..e160053a5bfc1f1891c5df1a04244b46132ed91c 100644
GIT binary patch
literal 463
zcmeAS@N?(olHy`uVBq!ia0vp^av;pX3?zBp#Z3TGW&u7Su0Z-f>EL7Xu|Ghaf+azI
z!3+%h6VAUEXmGf1FkfMPe?Wo5`wP+x42<TUE{-7;akZCTZ)!H+U`Y@XYI?S)^8a*O
z?ybGQ9$zRd`Ly$Z&(aV17uWB|yR6msxBOeGX63rBUr+8f?G(ReBvezj(~#MG+3Kj)
z<<I_Hb=scwV#3o$vghwSIi@B0lb`#U(bt)Lb5?ido@CKKcT_%S`_`I|0nFa>q#I?$
zCZCHu*mLc{mj@jVb0qJie|tLrXx$RV*xy|DA2&%h)(GsqVy%>MraS!Shm183{#@F!
zV^vm_@$^Y{GUuI-cUN0({K+A*SMX|j#GmyK98SEwQl?dz*($XqK|j>0;H2RlD{}=;
zx7!XPy5}bEXEt-@-@Ngc#+nIgOgm!u=S(u>E&hLN(cd}Wb8P2o&P?9><1zE8l8pz9
zg==?S&3yIdUhdL~<_mg1Y!?@vTUiymeaGcy&vRcbOG}I6uI`9fxn}VP_6h8=I%b0Z
Rq=4be;OXk;vd$@?2>`O9@hboT

literal 1428
zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk?
zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+*
zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn
zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV
z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj
z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPA<wUD9OyvQvjKmn3P{y
zVygsnDZ~r81#n~YilM;-3^4tQ!~%UoJp+)JU<!SG@hi>Eg{v+u2}(t{7puX=A(aKG
z`a!A1`K3k4z=%sz23b{L<y@4SSdw29lAoUg3&ntp{F40QjQj!x=U`I>-^Aq1JP;qO
z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=eg`=5?o13Glvx}*rp{t>#shg3DvyriZv5}jZ
ztD`wguS<S%X>Mv>2~2MaLa!4}y`ZF!TL84#CABECEH%ZgC_h&L>}9J=EN(GzcCm0X
zaRr%YgxxI=y(w7S0@dq`Q?EYIG5Vm0MT%&c5HR(CnDAr^<iHbtY927P7Xgzs$AOa5
z3=B*ho-U3d6}QfW-_30?;IZ?o)mKhwPHT~VXqI8+n9pLCz~Z(*x<I<XoH2(%`ofZ;
z3+mVT>T6f1avxRvmvnsN+?-j<F7H>}Z~1)Zr#rqzrt`edmo44*B<0=C4>mrxHF6$p
zVws~UocMfeI`gB8pYMLYT<kBy5cl%*+P|OvOiaDG<5W_Sc2L3k=!bUB#~ZJ({Z!h(
z5cQ^m-ML}np}?nF1qJ%QZ%&+4qx_-u5%b!7*Mwh!%GW0DVVfR1^AmT&2Zx^5+9#_y
zVl?bOyxwefi2JC5G4th=kQ;{6OD@}K%_vt2<#@BBJ27y#@Q%c)SuYG()&<V!_^|eg
zNbEu8<;F38thq0oZ=U&WuIgkD`^dLEH(#C<yVZQ)bJeLhTi*Lh1xx<*XLIlWZ+j~E
zz+=Y;?pdE$&$m3i@NdO#%>zA87`NOI2w2B*JM5L`^AkN4AFQu&S+6ULTPjv;vzl4&
z-eaK_F|D4~l3hzBSF~icNT@MID=v+_X`vpuvf=8+S(<atG{hZMy2ue`t;n3Y?!6FW
z7+0vj&y&wTAN+K_C+A?+FM45h$mB}pfT9AcHouH#b+t?P^&V~W-D<ZsX{Vy=S*e6g
zB_1KRh5{A)pF~s!H%@IkzxJ(BvBuOJnbWpR>|^vlRdHe0<)v-^wiVR3w=TQ)uFA9F
z>vmq<fW2S3Joc$<shiogLvWdMT)oG7Hr^l64U7!J|6HeToTRW0R8D%j`njxgN@xNA
D{Dl;^

diff --git a/images/icon_download.png b/images/icon_download.png
index a2a287f642aaeeadf62d3819a16d6a55e12afc01..5a793f17688b22d0c98f8b32855f69daff65afaf 100644
GIT binary patch
delta 188
zcmV;t07L(Z3D^OUB!8btL_t(Y$75g^1*2dvfW3S7vH`I%7OYNdi{*g$KNfs=)Z$T#
zM=c(F76T140OD^rEFuP<1Qj^sS{_2CrB8rZf>NJ1l4vO?l#Hnr?CVIdIGmdC%?ZSp
zh_JMU7Aaa9h+pBcbR!Tm(<(bz0`X5QmV!cqpVoOf0nJiSC^e|it3l8UwG`xgCwjI-
qn1OgZ5N8fVGl+AvF*phaB>({Q6ZHXLR?Z{<0000<MNUMnLSTYxgGz7!

literal 1162
zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk?
zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+*
zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn
zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV
z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj
z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPA<wUD9OyvQvjKmn3P{y
zVygsnDZ~r81#n~YilM;-3^4tQ!~%UoJp+)JU<!SG@hi>Eg{v+u2}(t{7puX=A(aKG
z`a!A1`K3k4z=%sz23b{L<y@4SSdw29lAoUg3&ntp{F40QjQj!x=U`I>-^Aq1JP;qO
z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=$skw`#i<zmJiL;xbp{t>#v$3O_v5UEZv#YC%
zp@9obuS<S%X>Mv>2~2MaLa!N4y`ZF!TL84#CABECEH%ZgC_h&L>}9J=+-@<(X&zK>
z3U0TU;MA)Rbc{YIVv!;mCIn19ASOK70y*%6pPC0u?M1+3t#h8?05D7Z^K@|xskoK&
z=l_5E!ww8;ZH!Ed#V+%1n6Rkg{=V8A2QTsNE8^<v%V(Qxmf%on_`xIgQQ0BKTI%>>
zvHmC<g$BX!w=6n3JPlV26`rYFeiOW453f!{-NYx!3);9HwEBF!=QC}z*YoCNGYxnw
zrEt|{(bD@1r|nbFUU9LhR(1lH%B4pf3zllHoVsIC;}0XjS5ciCr(|?Dwly}L7w(9E
z9Jr0M<F%&WRg0!OLLRaVNoFQ1PhSxEGg0lQM8=0gg{ggNJY1~`K{~3d85pBBFnD}*
z+_`^2=Sx1{Xa$c2JRMsdK5}g-k&jescr-(1Px<>ezoM^A29GnE>#ih4F*YzTGbm`!
V-6~#faTQcLc)I$ztaD0e0svx<f<*uT

diff --git a/images/sprite_download.png b/images/sprite_download.png
index f2babd575dc1cbd6e9342cc58ca795377d35afdb..f9f8de24c1c49ce421a44ce2a24ac22d045a39fe 100644
GIT binary patch
literal 14832
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
WAV6(21mh6^0000<MNUMnLSTaBggD0l

literal 16799
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

diff --git a/index.html b/index.html
index 8c34da4..914a2f3 100644
--- a/index.html
+++ b/index.html
@@ -2,9 +2,9 @@
 <html>
 
   <head>
-    <meta charset='utf-8' />
-    <meta http-equiv="X-UA-Compatible" content="chrome=1" />
-    <meta name="description" content="Scratch Extensions : Extensions for Scratch 2.0" />
+    <meta charset='utf-8'>
+    <meta http-equiv="X-UA-Compatible" content="chrome=1">
+    <meta name="description" content="Scratch Extensions : Extensions for Scratch 2.0">
 
     <link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
 
@@ -101,7 +101,7 @@
 <h3>
 <a name="command-blocks-that-wait" class="anchor" href="#command-blocks-that-wait"><span class="octicon octicon-link"></span></a>Command blocks that wait</h3>
 
-<p>Sometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a "random wait" block to show how that can be done. Note the use of the <code>console.log</code> statement in the code - most Javascript methods, as well as JQuery methods will work fine in an extension.</p>
+<p>Sometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a "random wait" block to show how that can be done. Note the use of the <code>console.log</code> statement in the code - most Javascript methods, as well as <a href="http://jquery.com/">jQuery</a> methods will work fine in an extension.</p>
 
 <div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
     <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
@@ -260,6 +260,211 @@
     <span class="c1">// Register the extension</span>
     <span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Alarm extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
 <span class="p">})();</span>
+</pre></div>
+
+<h2>
+<a name="hardware-support" class="anchor" href="#hardware-support"><span class="octicon octicon-link"></span></a>Hardware Support</h2>
+
+<p>Scratch provides its own set of APIs in order to allow extensions to access certain types of hardware. Currently, Scratch extensions may access the following types of hardware:</p>
+
+<ul>
+<li>Serial devices such as the PicoBoard</li>
+<li>USB HID devices such as joysticks or the LEGO WeDo</li>
+</ul><p>Extensions that request hardware access are required to implement two additional methods on the extension instance: <code>_deviceConnected()</code> and <code>_deviceRemoved()</code>. Both methods receive a device instance. To use the integrated hardware functions of the Scratch Extension API you pass the hardware information in the registration call:</p>
+
+<div class="highlight highlight-javascript"><pre><span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Example Name'</span><span class="p">,</span> <span class="nx">descriptor_object</span><span class="p">,</span> <span class="nx">ext_instance</span><span class="p">[,</span> <span class="nx">hardware_info</span><span class="p">]);</span>
+</pre></div>
+
+<p>The <code>_getStatus()</code> method of your extension can be used to indicate whether your extension has successfully communicated with a hardware device. For example:</p>
+
+<div class="highlight highlight-javascript"><pre><span class="nx">ext</span><span class="p">.</span><span class="nx">_getStatus</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+    <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">device</span><span class="p">)</span> <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Device not connected'</span><span class="p">};</span>
+    <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Device connected'</span><span class="p">};</span>
+<span class="p">}</span>
+</pre></div>
+
+<p>The value returned by <code>_getStatus()</code> corresponds to the color of the status 'light' in Scratch and indicates the general state of your extension. The <code>msg</code> property can be used to provide more specific information.</p>
+
+<table>
+<thead><tr>
+<th>Value</th>
+<th>Color</th>
+<th>Meaning</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>0</td>
+<td>red</td>
+<td>error</td>
+</tr>
+<tr>
+<td>1</td>
+<td>yellow</td>
+<td>not ready</td>
+</tr>
+<tr>
+<td>2</td>
+<td>green</td>
+<td>ready</td>
+</tr>
+</tbody>
+</table><p>The details of the <code>hardware_info</code> parameter and the <code>_deviceConnected()</code> and <code>_deviceRemoved()</code> methods are described below in sections specific to each type of device.</p>
+
+<p><em><em>API Note: The hardware API is still somewhat experimental and may change in the future. In particular, we will soon be making a change to methods that return hardware data, such as <code>read()</code> for HID devices: these methods will take a callback in instead of returning data directly. This change is necessary to improve compatibility and allow us to expand the variety of environments in which hardware extensions are available.</em></em></p>
+
+<h3>
+<a name="usb-hid-support" class="anchor" href="#usb-hid-support"><span class="octicon octicon-link"></span></a>USB HID Support</h3>
+
+<p><em>An example HID device extension is available <a href="http://scratch.mit.edu/scratchr2/static/js/scratch_extensions/sixaxisExtension.js">here</a>.</em>
+<em>More information about the HID protocol is available <a href="http://www.usb.org/developers/devclass_docs/HID1_11.pdf">here</a>.</em></p>
+
+<p>To let the extension system know that your extension is interested in USB HID devices, pass an object like this for the <code>hardware_info</code> parameter of the <code>register()</code> method:</p>
+
+<div class="highlight highlight-javascript"><pre><span class="kd">var</span> <span class="nx">hid_info</span> <span class="o">=</span> <span class="p">{</span><span class="nx">type</span><span class="o">:</span> <span class="s1">'hid'</span><span class="p">,</span> <span class="nx">vendor</span><span class="o">:</span> <span class="mh">0x0694</span><span class="p">,</span> <span class="nx">product</span><span class="o">:</span> <span class="mh">0x0003</span><span class="p">};</span>
+<span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Example'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">,</span> <span class="nx">hid_info</span><span class="p">);</span>
+</pre></div>
+
+<p>The <code>vendor</code> and <code>product</code> values indicate the USB vendor and product ID of the device your extension supports. These values are frequently expressed as four-digit hexadecimal values, as indicated with the <code>0x</code> prefix in the JavaScript above.</p>
+
+<p>If a device is connected with matching vendor and product IDs, Scratch will call the <code>_deviceConnected()</code> method on your extension and pass an object representing that device. Your <code>_deviceConnected()</code> method should keep track of the device object and set up communication as necessary for your needs. For example, this will start polling the device for new HID data every 20 milliseconds:</p>
+
+<div class="highlight highlight-javascript"><pre><span class="kd">var</span> <span class="nx">poller</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
+<span class="nx">ext</span><span class="p">.</span><span class="nx">_deviceConnected</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">dev</span><span class="p">)</span> <span class="p">{</span>
+    <span class="k">if</span><span class="p">(</span><span class="nx">device</span><span class="p">)</span> <span class="k">return</span><span class="p">;</span>
+
+    <span class="nx">device</span> <span class="o">=</span> <span class="nx">dev</span><span class="p">;</span>
+    <span class="nx">device</span><span class="p">.</span><span class="nx">open</span><span class="p">();</span>
+
+    <span class="nx">poller</span> <span class="o">=</span> <span class="nx">setInterval</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+        <span class="nx">rawData</span> <span class="o">=</span> <span class="nx">device</span><span class="p">.</span><span class="nx">read</span><span class="p">();</span>
+    <span class="p">},</span> <span class="mi">20</span><span class="p">);</span>
+<span class="p">};</span>
+</pre></div>
+
+<p>Once a connection to your device is established, your extension may use the <code>read()</code> and <code>write()</code> methods on the device object to communicate with it. These methods use <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays">ArrayBuffer</a> objects to contain data being sent or received.</p>
+
+<ul>
+<li>
+<code>device.read(48)</code> will attempt to read 48 bytes of data and return an ArrayBuffer containing any data successfully read. Note that one packet of HID data is 48 bytes. <em><em>This method is likely to change soon. See the API Note above.</em></em>
+</li>
+<li>
+<code>device.write(buffer)</code> will send the given ArrayBuffer's data to the device.</li>
+</ul><p>Your extension will also be notified if a matching device is disconnected, allowing your extension a chance to stop communication:</p>
+
+<div class="highlight highlight-javascript"><pre><span class="nx">ext</span><span class="p">.</span><span class="nx">_deviceRemoved</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">dev</span><span class="p">)</span> <span class="p">{</span>
+    <span class="k">if</span><span class="p">(</span><span class="nx">device</span> <span class="o">!=</span> <span class="nx">dev</span><span class="p">)</span> <span class="k">return</span><span class="p">;</span>
+    <span class="k">if</span><span class="p">(</span><span class="nx">poller</span><span class="p">)</span> <span class="nx">poller</span> <span class="o">=</span> <span class="nx">clearInterval</span><span class="p">(</span><span class="nx">poller</span><span class="p">);</span>
+    <span class="nx">device</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
+<span class="p">};</span>
+</pre></div>
+
+<p>Finally, your extension's <code>_shutdown()</code> method will be executed when the extension itself is shut down. For example:</p>
+
+<div class="highlight highlight-javascript"><pre><span class="nx">ext</span><span class="p">.</span><span class="nx">_shutdown</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+    <span class="k">if</span><span class="p">(</span><span class="nx">poller</span><span class="p">)</span> <span class="nx">poller</span> <span class="o">=</span> <span class="nx">clearInterval</span><span class="p">(</span><span class="nx">poller</span><span class="p">);</span>
+    <span class="k">if</span><span class="p">(</span><span class="nx">device</span><span class="p">)</span> <span class="nx">device</span><span class="p">.</span><span class="nx">close</span><span class="p">();</span>
+    <span class="nx">device</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+
+<h3>
+<a name="serial-device-support" class="anchor" href="#serial-device-support"><span class="octicon octicon-link"></span></a>Serial Device Support</h3>
+
+<p><em>An example serial device extension is available <a href="http://scratch.mit.edu/scratchr2/static/js/scratch_extensions/picoExtension.js">here</a>.</em></p>
+
+<p>To let the extension system know that your extension is interested in serial devices, pass an object like this for the <code>hardware_info</code> parameter of the <code>register()</code> method:</p>
+
+<div class="highlight highlight-javascript"><pre><span class="kd">var</span> <span class="nx">serial_info</span> <span class="o">=</span> <span class="p">{</span><span class="nx">type</span><span class="o">:</span> <span class="s1">'serial'</span><span class="p">};</span>
+<span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Example'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">,</span> <span class="nx">serial_info</span><span class="p">);</span>
+</pre></div>
+
+<p>Your extension's <code>_deviceConnected()</code> method will be called for each serial port present on the computer. Your extension is responsible for checking if a suitable device is attached to that port and continuing on to the next port if necessary. Do not assume that the first time Scratch calls your <code>_deviceConnected()</code> will correspond to your device's serial port. The PicoBoard extension shows an example of how to deal with this situation: if no valid PicoBoard communication is received on a given port withing a particular timeout, the extension assumes that there is no PicoBoard on that port and continues scanning to the next port.</p>
+
+<div class="highlight highlight-javascript"><pre><span class="kd">var</span> <span class="nx">potentialDevices</span> <span class="o">=</span> <span class="p">[];</span>
+<span class="nx">ext</span><span class="p">.</span><span class="nx">_deviceConnected</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">dev</span><span class="p">)</span> <span class="p">{</span>
+    <span class="nx">potentialDevices</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">dev</span><span class="p">);</span>
+
+    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">device</span><span class="p">)</span> <span class="p">{</span>
+        <span class="nx">tryNextDevice</span><span class="p">();</span>
+    <span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+
+<p>To communicate with a given serial port, your extension should open it with whichever options are appropriate for your device. These parameters are based on <a href="http://www.boost.org/doc/libs/1_50_0/doc/html/boost_asio/reference/serial_port_base.html">Boost.Asio's serial port options</a>. For a PicoBoard:</p>
+
+<div class="highlight highlight-javascript"><pre><span class="nx">device</span><span class="p">.</span><span class="nx">open</span><span class="p">({</span> <span class="nx">stopBits</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">bitRate</span><span class="o">:</span> <span class="mi">38400</span><span class="p">,</span> <span class="nx">ctsFlowControl</span><span class="o">:</span> <span class="mi">0</span> <span class="p">});</span>
+</pre></div>
+
+<p>The full set of options available for a serial port are as follows:</p>
+
+<table>
+<thead><tr>
+<th>Option</th>
+<th>Default</th>
+<th>Valid values</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>bitRate</td>
+<td>9600</td>
+<td>Any valid baud rate</td>
+<td>Up to  The bit (or baud) rate at which to communicate.</td>
+</tr>
+<tr>
+<td>bufferSize</td>
+<td>4096</td>
+<td>Up to 8192</td>
+<td>The maximum amount of data that can be received at a time.</td>
+</tr>
+<tr>
+<td>ctsFlowControl</td>
+<td>1 (software)</td>
+<td>0 (none), 1 (software), 2 (hardware)</td>
+<td>The type of flow control to use.</td>
+</tr>
+<tr>
+<td>dataBits</td>
+<td>8</td>
+<td>5, 6, 7, 8</td>
+<td>The number of data bits per character.</td>
+</tr>
+<tr>
+<td>parityBit</td>
+<td>0 (none)</td>
+<td>0 (none), 1 (odd), 2 (even)</td>
+<td>Whether and how to use the parity bit in each character.</td>
+</tr>
+<tr>
+<td>stopBits</td>
+<td>1 (1.5 bits)</td>
+<td>0 (1 bit), 1 (1.5 bits), 2 (2 bits)</td>
+<td>The number of stop bits per character.</td>
+</tr>
+</tbody>
+</table><p>Once a connection to your device is established, your extension may use the <code>send()</code> method to send data to your device, and the <code>set_receive_handler()</code> method to register a function to handle received data. These methods use <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays">ArrayBuffer</a> objects to contain data being sent or received.</p>
+
+<ul>
+<li>
+<code>device.send(buffer)</code> will send the given ArrayBuffer's data to the device.</li>
+<li>
+<code>device.set_receive_handler(myReceiveHandler)</code> will result in <code>myReceiveHandler(buffer)</code> being called any time Scratch receives data from the device. Your receive handler will be supplied an ArrayBuffer containing the received data.</li>
+</ul><p>Your extension will also be notified if a device is disconnected, allowing your extension a chance to stop communication:</p>
+
+<div class="highlight highlight-javascript"><pre><span class="nx">ext</span><span class="p">.</span><span class="nx">_deviceRemoved</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">dev</span><span class="p">)</span> <span class="p">{</span>
+    <span class="k">if</span><span class="p">(</span><span class="nx">device</span> <span class="o">!=</span> <span class="nx">dev</span><span class="p">)</span> <span class="k">return</span><span class="p">;</span>
+    <span class="k">if</span><span class="p">(</span><span class="nx">poller</span><span class="p">)</span> <span class="nx">poller</span> <span class="o">=</span> <span class="nx">clearInterval</span><span class="p">(</span><span class="nx">poller</span><span class="p">);</span>
+    <span class="nx">device</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
+<span class="p">};</span>
+</pre></div>
+
+<p>Finally, your extension's <code>_shutdown()</code> method will be executed when the extension itself is shut down. For example:</p>
+
+<div class="highlight highlight-javascript"><pre><span class="nx">ext</span><span class="p">.</span><span class="nx">_shutdown</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+    <span class="k">if</span><span class="p">(</span><span class="nx">poller</span><span class="p">)</span> <span class="nx">poller</span> <span class="o">=</span> <span class="nx">clearInterval</span><span class="p">(</span><span class="nx">poller</span><span class="p">);</span>
+    <span class="k">if</span><span class="p">(</span><span class="nx">device</span><span class="p">)</span> <span class="nx">device</span><span class="p">.</span><span class="nx">close</span><span class="p">();</span>
+    <span class="nx">device</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
+<span class="p">}</span>
 </pre></div>
       </section>
     </div>
diff --git a/params.json b/params.json
index cb90a9a..999f803 100644
--- a/params.json
+++ b/params.json
@@ -1 +1 @@
-{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Command blocks that wait\r\n\r\nSometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a \"random wait\" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as JQuery methods will work fine in an extension.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Functions for block with type 'w' will get a callback function as the \r\n    // final argument. This should be called to indicate that the block can\r\n    // stop waiting.\r\n    ext.wait_random = function(callback) {\r\n        wait = Math.random();\r\n        console.log('Waiting for ' + wait + ' seconds');\r\n        window.setTimeout(function() {\r\n            callback();\r\n        }, wait*1000);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['w', 'wait for random time', 'wait_random'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Random wait extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%n ^ %n', 'power', 2, 3],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location, callback) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( weather_data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  temperature = weather_data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;\r\n       }, time*1000);\r\n    };\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off === true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
+{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"# Writing Extensions for Scratch 2.0\r\n\r\nWriting a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## Adding Blocks\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Command blocks that wait\r\n\r\nSometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a \"random wait\" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as [jQuery](http://jquery.com/) methods will work fine in an extension.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Functions for block with type 'w' will get a callback function as the \r\n    // final argument. This should be called to indicate that the block can\r\n    // stop waiting.\r\n    ext.wait_random = function(callback) {\r\n        wait = Math.random();\r\n        console.log('Waiting for ' + wait + ' seconds');\r\n        window.setTimeout(function() {\r\n            callback();\r\n        }, wait*1000);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['w', 'wait for random time', 'wait_random'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Random wait extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%n ^ %n', 'power', 2, 3],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location, callback) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( weather_data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  temperature = weather_data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;\r\n       }, time*1000);\r\n    };\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off === true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## Hardware Support\r\n\r\nScratch provides its own set of APIs in order to allow extensions to access certain types of hardware. Currently, Scratch extensions may access the following types of hardware:\r\n- Serial devices such as the PicoBoard\r\n- USB HID devices such as joysticks or the LEGO WeDo\r\n\r\nExtensions that request hardware access are required to implement two additional methods on the extension instance: `_deviceConnected()` and `_deviceRemoved()`. Both methods receive a device instance. To use the integrated hardware functions of the Scratch Extension API you pass the hardware information in the registration call:\r\n```javascript\r\nScratchExtensions.register('Example Name', descriptor_object, ext_instance[, hardware_info]);\r\n```\r\n\r\nThe `_getStatus()` method of your extension can be used to indicate whether your extension has successfully communicated with a hardware device. For example:\r\n```javascript\r\next._getStatus = function() {\r\n    if(!device) return {status: 1, msg: 'Device not connected'};\r\n    return {status: 2, msg: 'Device connected'};\r\n}\r\n```\r\n\r\nThe value returned by `_getStatus()` corresponds to the color of the status 'light' in Scratch and indicates the general state of your extension. The `msg` property can be used to provide more specific information.\r\n\r\n| Value | Color  | Meaning   |\r\n| ----- | ------ | --------- |\r\n| 0     | red    | error     |\r\n| 1     | yellow | not ready |\r\n| 2     | green  | ready     |\r\n\r\nThe details of the `hardware_info` parameter and the `_deviceConnected()` and `_deviceRemoved()` methods are described below in sections specific to each type of device.\r\n\r\n*_API Note: The hardware API is still somewhat experimental and may change in the future. In particular, we will soon be making a change to methods that return hardware data, such as `read()` for HID devices: these methods will take a callback in instead of returning data directly. This change is necessary to improve compatibility and allow us to expand the variety of environments in which hardware extensions are available._*\r\n\r\n### USB HID Support\r\n_An example HID device extension is available [here](http://scratch.mit.edu/scratchr2/static/js/scratch_extensions/sixaxisExtension.js)._\r\n_More information about the HID protocol is available [here](http://www.usb.org/developers/devclass_docs/HID1_11.pdf)._\r\n\r\nTo let the extension system know that your extension is interested in USB HID devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar hid_info = {type: 'hid', vendor: 0x0694, product: 0x0003};\r\nScratchExtensions.register('Example', descriptor, ext, hid_info);\r\n```\r\nThe `vendor` and `product` values indicate the USB vendor and product ID of the device your extension supports. These values are frequently expressed as four-digit hexadecimal values, as indicated with the `0x` prefix in the JavaScript above.\r\n\r\nIf a device is connected with matching vendor and product IDs, Scratch will call the `_deviceConnected()` method on your extension and pass an object representing that device. Your `_deviceConnected()` method should keep track of the device object and set up communication as necessary for your needs. For example, this will start polling the device for new HID data every 20 milliseconds:\r\n```javascript\r\nvar poller = null;\r\next._deviceConnected = function(dev) {\r\n    if(device) return;\r\n\r\n    device = dev;\r\n    device.open();\r\n\r\n    poller = setInterval(function() {\r\n        rawData = device.read();\r\n    }, 20);\r\n};\r\n```\r\n\r\nOnce a connection to your device is established, your extension may use the `read()` and `write()` methods on the device object to communicate with it. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.read(48)` will attempt to read 48 bytes of data and return an ArrayBuffer containing any data successfully read. Note that one packet of HID data is 48 bytes. *_This method is likely to change soon. See the API Note above._*\r\n* `device.write(buffer)` will send the given ArrayBuffer's data to the device.\r\n\r\nYour extension will also be notified if a matching device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n\r\n### Serial Device Support\r\n_An example serial device extension is available [here](http://scratch.mit.edu/scratchr2/static/js/scratch_extensions/picoExtension.js)._\r\n\r\nTo let the extension system know that your extension is interested in serial devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar serial_info = {type: 'serial'};\r\nScratchExtensions.register('Example', descriptor, ext, serial_info);\r\n```\r\n\r\nYour extension's `_deviceConnected()` method will be called for each serial port present on the computer. Your extension is responsible for checking if a suitable device is attached to that port and continuing on to the next port if necessary. Do not assume that the first time Scratch calls your `_deviceConnected()` will correspond to your device's serial port. The PicoBoard extension shows an example of how to deal with this situation: if no valid PicoBoard communication is received on a given port withing a particular timeout, the extension assumes that there is no PicoBoard on that port and continues scanning to the next port.\r\n```javascript\r\nvar potentialDevices = [];\r\next._deviceConnected = function(dev) {\r\n    potentialDevices.push(dev);\r\n\r\n    if (!device) {\r\n        tryNextDevice();\r\n    }\r\n}\r\n```\r\n\r\nTo communicate with a given serial port, your extension should open it with whichever options are appropriate for your device. These parameters are based on [Boost.Asio's serial port options](http://www.boost.org/doc/libs/1_50_0/doc/html/boost_asio/reference/serial_port_base.html). For a PicoBoard:\r\n```javascript\r\ndevice.open({ stopBits: 0, bitRate: 38400, ctsFlowControl: 0 });\r\n```\r\nThe full set of options available for a serial port are as follows:\r\n\r\n| Option         | Default | Valid values | Description\r\n| -------------- | ------- | ------------ | -----------\r\n| bitRate        | 9600 | Any valid baud rate | Up to  The bit (or baud) rate at which to communicate.\r\n| bufferSize     | 4096 | Up to 8192 | The maximum amount of data that can be received at a time.\r\n| ctsFlowControl | 1 (software) | 0 (none), 1 (software), 2 (hardware) | The type of flow control to use.\r\n| dataBits       | 8 | 5, 6, 7, 8 | The number of data bits per character.\r\n| parityBit      | 0 (none) | 0 (none), 1 (odd), 2 (even) | Whether and how to use the parity bit in each character.\r\n| stopBits       | 1 (1.5 bits) | 0 (1 bit), 1 (1.5 bits), 2 (2 bits) | The number of stop bits per character.\r\n\r\nOnce a connection to your device is established, your extension may use the `send()` method to send data to your device, and the `set_receive_handler()` method to register a function to handle received data. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.send(buffer)` will send the given ArrayBuffer's data to the device.\r\n* `device.set_receive_handler(myReceiveHandler)` will result in `myReceiveHandler(buffer)` being called any time Scratch receives data from the device. Your receive handler will be supplied an ArrayBuffer containing the received data.\r\n\r\nYour extension will also be notified if a device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file

From 33824316bce99d02b3d4f8c9a0f156c4fddd37f3 Mon Sep 17 00:00:00 2001
From: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date: Thu, 31 Jul 2014 15:42:45 -0700
Subject: [PATCH 13/47] Create gh-pages branch via GitHub

---
 index.html  | 29 +++++++++++++++++++++++++++++
 params.json |  2 +-
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/index.html b/index.html
index 914a2f3..a36362e 100644
--- a/index.html
+++ b/index.html
@@ -32,6 +32,35 @@
     <div id="main_content_wrap" class="outer">
       <section id="main_content" class="inner">
         <h1>
+<a name="contents" class="anchor" href="#contents"><span class="octicon octicon-link"></span></a>Contents</h1>
+
+<ol>
+<li>
+<a href="#writing-extensions-for-scratch-20">Writing Extensions for Scratch 2.0</a>
+
+<ol>
+<li>
+<a href="#adding-blocks">Adding Blocks</a>
+
+<ol>
+<li><a href="#command-blocks">Command blocks</a></li>
+<li><a href="#command-blocks-that-wait">Command blocks that wait</a></li>
+<li><a href="#reporter-blocks">Reporter blocks</a></li>
+<li><a href="#reporter-blocks-that-wait">Reporter blocks that wait</a></li>
+<li><a href="#hat-blocks">Hat blocks</a></li>
+</ol>
+</li>
+<li>
+<a href="#hardware-support">Hardware Support</a>
+
+<ol>
+<li><a href="#usb-hid-support">USB HID Support</a></li>
+<li><a href="#serial-device-support">Serial Device Support</a></li>
+</ol>
+</li>
+</ol>
+</li>
+</ol><h1>
 <a name="writing-extensions-for-scratch-20" class="anchor" href="#writing-extensions-for-scratch-20"><span class="octicon octicon-link"></span></a>Writing Extensions for Scratch 2.0</h1>
 
 <p>Writing a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:</p>
diff --git a/params.json b/params.json
index 999f803..ccd92c3 100644
--- a/params.json
+++ b/params.json
@@ -1 +1 @@
-{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"# Writing Extensions for Scratch 2.0\r\n\r\nWriting a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## Adding Blocks\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Command blocks that wait\r\n\r\nSometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a \"random wait\" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as [jQuery](http://jquery.com/) methods will work fine in an extension.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Functions for block with type 'w' will get a callback function as the \r\n    // final argument. This should be called to indicate that the block can\r\n    // stop waiting.\r\n    ext.wait_random = function(callback) {\r\n        wait = Math.random();\r\n        console.log('Waiting for ' + wait + ' seconds');\r\n        window.setTimeout(function() {\r\n            callback();\r\n        }, wait*1000);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['w', 'wait for random time', 'wait_random'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Random wait extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%n ^ %n', 'power', 2, 3],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location, callback) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( weather_data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  temperature = weather_data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;\r\n       }, time*1000);\r\n    };\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off === true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## Hardware Support\r\n\r\nScratch provides its own set of APIs in order to allow extensions to access certain types of hardware. Currently, Scratch extensions may access the following types of hardware:\r\n- Serial devices such as the PicoBoard\r\n- USB HID devices such as joysticks or the LEGO WeDo\r\n\r\nExtensions that request hardware access are required to implement two additional methods on the extension instance: `_deviceConnected()` and `_deviceRemoved()`. Both methods receive a device instance. To use the integrated hardware functions of the Scratch Extension API you pass the hardware information in the registration call:\r\n```javascript\r\nScratchExtensions.register('Example Name', descriptor_object, ext_instance[, hardware_info]);\r\n```\r\n\r\nThe `_getStatus()` method of your extension can be used to indicate whether your extension has successfully communicated with a hardware device. For example:\r\n```javascript\r\next._getStatus = function() {\r\n    if(!device) return {status: 1, msg: 'Device not connected'};\r\n    return {status: 2, msg: 'Device connected'};\r\n}\r\n```\r\n\r\nThe value returned by `_getStatus()` corresponds to the color of the status 'light' in Scratch and indicates the general state of your extension. The `msg` property can be used to provide more specific information.\r\n\r\n| Value | Color  | Meaning   |\r\n| ----- | ------ | --------- |\r\n| 0     | red    | error     |\r\n| 1     | yellow | not ready |\r\n| 2     | green  | ready     |\r\n\r\nThe details of the `hardware_info` parameter and the `_deviceConnected()` and `_deviceRemoved()` methods are described below in sections specific to each type of device.\r\n\r\n*_API Note: The hardware API is still somewhat experimental and may change in the future. In particular, we will soon be making a change to methods that return hardware data, such as `read()` for HID devices: these methods will take a callback in instead of returning data directly. This change is necessary to improve compatibility and allow us to expand the variety of environments in which hardware extensions are available._*\r\n\r\n### USB HID Support\r\n_An example HID device extension is available [here](http://scratch.mit.edu/scratchr2/static/js/scratch_extensions/sixaxisExtension.js)._\r\n_More information about the HID protocol is available [here](http://www.usb.org/developers/devclass_docs/HID1_11.pdf)._\r\n\r\nTo let the extension system know that your extension is interested in USB HID devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar hid_info = {type: 'hid', vendor: 0x0694, product: 0x0003};\r\nScratchExtensions.register('Example', descriptor, ext, hid_info);\r\n```\r\nThe `vendor` and `product` values indicate the USB vendor and product ID of the device your extension supports. These values are frequently expressed as four-digit hexadecimal values, as indicated with the `0x` prefix in the JavaScript above.\r\n\r\nIf a device is connected with matching vendor and product IDs, Scratch will call the `_deviceConnected()` method on your extension and pass an object representing that device. Your `_deviceConnected()` method should keep track of the device object and set up communication as necessary for your needs. For example, this will start polling the device for new HID data every 20 milliseconds:\r\n```javascript\r\nvar poller = null;\r\next._deviceConnected = function(dev) {\r\n    if(device) return;\r\n\r\n    device = dev;\r\n    device.open();\r\n\r\n    poller = setInterval(function() {\r\n        rawData = device.read();\r\n    }, 20);\r\n};\r\n```\r\n\r\nOnce a connection to your device is established, your extension may use the `read()` and `write()` methods on the device object to communicate with it. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.read(48)` will attempt to read 48 bytes of data and return an ArrayBuffer containing any data successfully read. Note that one packet of HID data is 48 bytes. *_This method is likely to change soon. See the API Note above._*\r\n* `device.write(buffer)` will send the given ArrayBuffer's data to the device.\r\n\r\nYour extension will also be notified if a matching device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n\r\n### Serial Device Support\r\n_An example serial device extension is available [here](http://scratch.mit.edu/scratchr2/static/js/scratch_extensions/picoExtension.js)._\r\n\r\nTo let the extension system know that your extension is interested in serial devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar serial_info = {type: 'serial'};\r\nScratchExtensions.register('Example', descriptor, ext, serial_info);\r\n```\r\n\r\nYour extension's `_deviceConnected()` method will be called for each serial port present on the computer. Your extension is responsible for checking if a suitable device is attached to that port and continuing on to the next port if necessary. Do not assume that the first time Scratch calls your `_deviceConnected()` will correspond to your device's serial port. The PicoBoard extension shows an example of how to deal with this situation: if no valid PicoBoard communication is received on a given port withing a particular timeout, the extension assumes that there is no PicoBoard on that port and continues scanning to the next port.\r\n```javascript\r\nvar potentialDevices = [];\r\next._deviceConnected = function(dev) {\r\n    potentialDevices.push(dev);\r\n\r\n    if (!device) {\r\n        tryNextDevice();\r\n    }\r\n}\r\n```\r\n\r\nTo communicate with a given serial port, your extension should open it with whichever options are appropriate for your device. These parameters are based on [Boost.Asio's serial port options](http://www.boost.org/doc/libs/1_50_0/doc/html/boost_asio/reference/serial_port_base.html). For a PicoBoard:\r\n```javascript\r\ndevice.open({ stopBits: 0, bitRate: 38400, ctsFlowControl: 0 });\r\n```\r\nThe full set of options available for a serial port are as follows:\r\n\r\n| Option         | Default | Valid values | Description\r\n| -------------- | ------- | ------------ | -----------\r\n| bitRate        | 9600 | Any valid baud rate | Up to  The bit (or baud) rate at which to communicate.\r\n| bufferSize     | 4096 | Up to 8192 | The maximum amount of data that can be received at a time.\r\n| ctsFlowControl | 1 (software) | 0 (none), 1 (software), 2 (hardware) | The type of flow control to use.\r\n| dataBits       | 8 | 5, 6, 7, 8 | The number of data bits per character.\r\n| parityBit      | 0 (none) | 0 (none), 1 (odd), 2 (even) | Whether and how to use the parity bit in each character.\r\n| stopBits       | 1 (1.5 bits) | 0 (1 bit), 1 (1.5 bits), 2 (2 bits) | The number of stop bits per character.\r\n\r\nOnce a connection to your device is established, your extension may use the `send()` method to send data to your device, and the `set_receive_handler()` method to register a function to handle received data. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.send(buffer)` will send the given ArrayBuffer's data to the device.\r\n* `device.set_receive_handler(myReceiveHandler)` will result in `myReceiveHandler(buffer)` being called any time Scratch receives data from the device. Your receive handler will be supplied an ArrayBuffer containing the received data.\r\n\r\nYour extension will also be notified if a device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
+{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"# Contents\r\n\r\n1. [Writing Extensions for Scratch 2.0](#writing-extensions-for-scratch-20)\r\n  1. [Adding Blocks](#adding-blocks)\r\n    1. [Command blocks](#command-blocks)\r\n    1. [Command blocks that wait](#command-blocks-that-wait)\r\n    1. [Reporter blocks](#reporter-blocks)\r\n    1. [Reporter blocks that wait](#reporter-blocks-that-wait)\r\n    1. [Hat blocks](#hat-blocks)\r\n  1. [Hardware Support](#hardware-support)\r\n    1. [USB HID Support](#usb-hid-support)\r\n    1. [Serial Device Support](#serial-device-support)\r\n\r\n# Writing Extensions for Scratch 2.0\r\n\r\nWriting a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## Adding Blocks\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Command blocks that wait\r\n\r\nSometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a \"random wait\" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as [jQuery](http://jquery.com/) methods will work fine in an extension.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Functions for block with type 'w' will get a callback function as the \r\n    // final argument. This should be called to indicate that the block can\r\n    // stop waiting.\r\n    ext.wait_random = function(callback) {\r\n        wait = Math.random();\r\n        console.log('Waiting for ' + wait + ' seconds');\r\n        window.setTimeout(function() {\r\n            callback();\r\n        }, wait*1000);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['w', 'wait for random time', 'wait_random'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Random wait extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%n ^ %n', 'power', 2, 3],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location, callback) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( weather_data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  temperature = weather_data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;\r\n       }, time*1000);\r\n    };\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off === true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## Hardware Support\r\n\r\nScratch provides its own set of APIs in order to allow extensions to access certain types of hardware. Currently, Scratch extensions may access the following types of hardware:\r\n- Serial devices such as the PicoBoard\r\n- USB HID devices such as joysticks or the LEGO WeDo\r\n\r\nExtensions that request hardware access are required to implement two additional methods on the extension instance: `_deviceConnected()` and `_deviceRemoved()`. Both methods receive a device instance. To use the integrated hardware functions of the Scratch Extension API you pass the hardware information in the registration call:\r\n```javascript\r\nScratchExtensions.register('Example Name', descriptor_object, ext_instance[, hardware_info]);\r\n```\r\n\r\nThe `_getStatus()` method of your extension can be used to indicate whether your extension has successfully communicated with a hardware device. For example:\r\n```javascript\r\next._getStatus = function() {\r\n    if(!device) return {status: 1, msg: 'Device not connected'};\r\n    return {status: 2, msg: 'Device connected'};\r\n}\r\n```\r\n\r\nThe value returned by `_getStatus()` corresponds to the color of the status 'light' in Scratch and indicates the general state of your extension. The `msg` property can be used to provide more specific information.\r\n\r\n| Value | Color  | Meaning   |\r\n| ----- | ------ | --------- |\r\n| 0     | red    | error     |\r\n| 1     | yellow | not ready |\r\n| 2     | green  | ready     |\r\n\r\nThe details of the `hardware_info` parameter and the `_deviceConnected()` and `_deviceRemoved()` methods are described below in sections specific to each type of device.\r\n\r\n*_API Note: The hardware API is still somewhat experimental and may change in the future. In particular, we will soon be making a change to methods that return hardware data, such as `read()` for HID devices: these methods will take a callback in instead of returning data directly. This change is necessary to improve compatibility and allow us to expand the variety of environments in which hardware extensions are available._*\r\n\r\n### USB HID Support\r\n_An example HID device extension is available [here](http://scratch.mit.edu/scratchr2/static/js/scratch_extensions/sixaxisExtension.js)._\r\n_More information about the HID protocol is available [here](http://www.usb.org/developers/devclass_docs/HID1_11.pdf)._\r\n\r\nTo let the extension system know that your extension is interested in USB HID devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar hid_info = {type: 'hid', vendor: 0x0694, product: 0x0003};\r\nScratchExtensions.register('Example', descriptor, ext, hid_info);\r\n```\r\nThe `vendor` and `product` values indicate the USB vendor and product ID of the device your extension supports. These values are frequently expressed as four-digit hexadecimal values, as indicated with the `0x` prefix in the JavaScript above.\r\n\r\nIf a device is connected with matching vendor and product IDs, Scratch will call the `_deviceConnected()` method on your extension and pass an object representing that device. Your `_deviceConnected()` method should keep track of the device object and set up communication as necessary for your needs. For example, this will start polling the device for new HID data every 20 milliseconds:\r\n```javascript\r\nvar poller = null;\r\next._deviceConnected = function(dev) {\r\n    if(device) return;\r\n\r\n    device = dev;\r\n    device.open();\r\n\r\n    poller = setInterval(function() {\r\n        rawData = device.read();\r\n    }, 20);\r\n};\r\n```\r\n\r\nOnce a connection to your device is established, your extension may use the `read()` and `write()` methods on the device object to communicate with it. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.read(48)` will attempt to read 48 bytes of data and return an ArrayBuffer containing any data successfully read. Note that one packet of HID data is 48 bytes. *_This method is likely to change soon. See the API Note above._*\r\n* `device.write(buffer)` will send the given ArrayBuffer's data to the device.\r\n\r\nYour extension will also be notified if a matching device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n\r\n### Serial Device Support\r\n_An example serial device extension is available [here](http://scratch.mit.edu/scratchr2/static/js/scratch_extensions/picoExtension.js)._\r\n\r\nTo let the extension system know that your extension is interested in serial devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar serial_info = {type: 'serial'};\r\nScratchExtensions.register('Example', descriptor, ext, serial_info);\r\n```\r\n\r\nYour extension's `_deviceConnected()` method will be called for each serial port present on the computer. Your extension is responsible for checking if a suitable device is attached to that port and continuing on to the next port if necessary. Do not assume that the first time Scratch calls your `_deviceConnected()` will correspond to your device's serial port. The PicoBoard extension shows an example of how to deal with this situation: if no valid PicoBoard communication is received on a given port withing a particular timeout, the extension assumes that there is no PicoBoard on that port and continues scanning to the next port.\r\n```javascript\r\nvar potentialDevices = [];\r\next._deviceConnected = function(dev) {\r\n    potentialDevices.push(dev);\r\n\r\n    if (!device) {\r\n        tryNextDevice();\r\n    }\r\n}\r\n```\r\n\r\nTo communicate with a given serial port, your extension should open it with whichever options are appropriate for your device. These parameters are based on [Boost.Asio's serial port options](http://www.boost.org/doc/libs/1_50_0/doc/html/boost_asio/reference/serial_port_base.html). For a PicoBoard:\r\n```javascript\r\ndevice.open({ stopBits: 0, bitRate: 38400, ctsFlowControl: 0 });\r\n```\r\nThe full set of options available for a serial port are as follows:\r\n\r\n| Option         | Default | Valid values | Description\r\n| -------------- | ------- | ------------ | -----------\r\n| bitRate        | 9600 | Any valid baud rate | Up to  The bit (or baud) rate at which to communicate.\r\n| bufferSize     | 4096 | Up to 8192 | The maximum amount of data that can be received at a time.\r\n| ctsFlowControl | 1 (software) | 0 (none), 1 (software), 2 (hardware) | The type of flow control to use.\r\n| dataBits       | 8 | 5, 6, 7, 8 | The number of data bits per character.\r\n| parityBit      | 0 (none) | 0 (none), 1 (odd), 2 (even) | Whether and how to use the parity bit in each character.\r\n| stopBits       | 1 (1.5 bits) | 0 (1 bit), 1 (1.5 bits), 2 (2 bits) | The number of stop bits per character.\r\n\r\nOnce a connection to your device is established, your extension may use the `send()` method to send data to your device, and the `set_receive_handler()` method to register a function to handle received data. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.send(buffer)` will send the given ArrayBuffer's data to the device.\r\n* `device.set_receive_handler(myReceiveHandler)` will result in `myReceiveHandler(buffer)` being called any time Scratch receives data from the device. Your receive handler will be supplied an ArrayBuffer containing the received data.\r\n\r\nYour extension will also be notified if a device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file

From b311089cdb0e7a301db93311e1c5287bd70b82a7 Mon Sep 17 00:00:00 2001
From: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date: Fri, 1 Aug 2014 10:15:09 -0700
Subject: [PATCH 14/47] Create gh-pages branch via GitHub

---
 index.html  | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 params.json |  2 +-
 2 files changed, 85 insertions(+), 1 deletion(-)

diff --git a/index.html b/index.html
index a36362e..a89fa70 100644
--- a/index.html
+++ b/index.html
@@ -51,6 +51,15 @@
 </ol>
 </li>
 <li>
+<a href="#the-extension-descriptor">The Extension Descriptor</a>
+
+<ol>
+<li><a href="#blocks">Blocks</a></li>
+<li><a href="#menus">Menus</a></li>
+<li><a href="#url">URL</a></li>
+</ol>
+</li>
+<li>
 <a href="#hardware-support">Hardware Support</a>
 
 <ol>
@@ -291,6 +300,81 @@
 <span class="p">})();</span>
 </pre></div>
 
+<h2>
+<a name="the-extension-descriptor" class="anchor" href="#the-extension-descriptor"><span class="octicon octicon-link"></span></a>The Extension Descriptor</h2>
+
+<p>The extension descriptor can be used for more than just listing the blocks offered by your extension. Here is an example of a more complex descriptor:</p>
+
+<div class="highlight highlight-javascript"><pre><span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
+    <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
+        <span class="p">[</span><span class="s1">'w'</span><span class="p">,</span> <span class="s1">'turn motor on for %n secs'</span><span class="p">,</span>             <span class="s1">'motorOnFor'</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span>
+        <span class="p">[</span><span class="s1">' '</span><span class="p">,</span> <span class="s1">'turn motor on'</span><span class="p">,</span>                         <span class="s1">'allMotorsOn'</span><span class="p">],</span>
+        <span class="p">[</span><span class="s1">' '</span><span class="p">,</span> <span class="s1">'turn motor off'</span><span class="p">,</span>                        <span class="s1">'allMotorsOff'</span><span class="p">],</span>
+        <span class="p">[</span><span class="s1">' '</span><span class="p">,</span> <span class="s1">'set motor power %n'</span><span class="p">,</span>                    <span class="s1">'startMotorPower'</span><span class="p">,</span> <span class="mi">100</span><span class="p">],</span>
+        <span class="p">[</span><span class="s1">' '</span><span class="p">,</span> <span class="s1">'set motor direction %m.motorDirection'</span><span class="p">,</span> <span class="s1">'setMotorDirection'</span><span class="p">,</span> <span class="s1">'this way'</span><span class="p">],</span>
+        <span class="p">[</span><span class="s1">'h'</span><span class="p">,</span> <span class="s1">'when distance %m.lessMore %n'</span><span class="p">,</span>          <span class="s1">'whenDistance'</span><span class="p">,</span> <span class="s1">'&lt;'</span><span class="p">,</span> <span class="mi">20</span><span class="p">],</span>
+        <span class="p">[</span><span class="s1">'h'</span><span class="p">,</span> <span class="s1">'when tilt %m.eNe %n'</span><span class="p">,</span>                   <span class="s1">'whenTilt'</span><span class="p">,</span> <span class="s1">'='</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span>
+        <span class="p">[</span><span class="s1">'r'</span><span class="p">,</span> <span class="s1">'distance'</span><span class="p">,</span>                              <span class="s1">'getDistance'</span><span class="p">],</span>
+        <span class="p">[</span><span class="s1">'r'</span><span class="p">,</span> <span class="s1">'tilt'</span><span class="p">,</span>                                  <span class="s1">'getTilt'</span><span class="p">]</span>
+    <span class="p">],</span>
+    <span class="nx">menus</span><span class="o">:</span> <span class="p">{</span>
+        <span class="nx">motorDirection</span><span class="o">:</span> <span class="p">[</span><span class="s1">'this way'</span><span class="p">,</span> <span class="s1">'that way'</span><span class="p">,</span> <span class="s1">'reverse'</span><span class="p">],</span>
+        <span class="nx">lessMore</span><span class="o">:</span> <span class="p">[</span><span class="s1">'&lt;'</span><span class="p">,</span> <span class="s1">'&gt;'</span><span class="p">],</span>
+        <span class="nx">eNe</span><span class="o">:</span> <span class="p">[</span><span class="s1">'='</span><span class="p">,</span><span class="s1">'not ='</span><span class="p">]</span>
+    <span class="p">},</span>
+    <span class="nx">url</span><span class="o">:</span> <span class="s1">'http://info.scratch.mit.edu/WeDo'</span>
+<span class="p">};</span>
+</pre></div>
+
+<h3>
+<a name="blocks" class="anchor" href="#blocks"><span class="octicon octicon-link"></span></a>Blocks</h3>
+
+<p>The blocks property is an array of block definitions. Each block definition is an array of three or more items.  The required items are: op code, formatted label, and method name. These may optionally be followed by default block argument values.</p>
+
+<p>The full list of block types available to an extension is as follows. Note that any operation that will run for more than a few milliseconds or will wait for an external event should be run asynchronously, as described above in the <a href="#reporter-blocks-that-wait">Reporter blocks that wait</a> and <a href="#command-blocks-that-wait">Command blocks that wait</a> sections.</p>
+
+<table>
+<thead><tr>
+<th>Op Code</th>
+<th>Meaning</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+<code>' '</code> (space)</td>
+<td>Synchronous command</td>
+</tr>
+<tr>
+<td><code>'w'</code></td>
+<td>Asynchronous command</td>
+</tr>
+<tr>
+<td><code>'r'</code></td>
+<td>Synchronous reporter</td>
+</tr>
+<tr>
+<td><code>'R'</code></td>
+<td>Asynchronous reporter</td>
+</tr>
+<tr>
+<td><code>'h'</code></td>
+<td>Hat block (always synchronous)</td>
+</tr>
+</tbody>
+</table><p>Each block argument is identified by a <code>%</code> character and the character following it specifies the type.  The types are: <code>%n</code> for number, <code>%s</code> for string, and <code>%m</code> for menu.  Menus also identify which menu to use with a period and the name of the menu like this: <code>%m.menuName</code>.</p>
+
+<h3>
+<a name="menus" class="anchor" href="#menus"><span class="octicon octicon-link"></span></a>Menus</h3>
+
+<p>The <code>menus</code> property is an object whose properties define the menus used by block arguments in the extension.  The property name is the menu name as it is used in the block definition(s). The property value is an array of options to display in the menu dropdown interface in Scratch.</p>
+
+<p>For example, the <code>setMotorDirection</code> block in the example above includes <code>%m.motorDirection</code>, which will cause it to display a menu with <code>'this way'</code>, <code>'that way'</code>, and <code>'reverse'</code> as options.</p>
+
+<h3>
+<a name="url" class="anchor" href="#url"><span class="octicon octicon-link"></span></a>URL</h3>
+
+<p>The <code>url</code> property refers to a web page which describes the extension. Ideally, this page would describe each block, give examples, and identify any hardware or software required to use the extension. If the user clicks the <code>'About [extension name]...'</code> menu item within Scratch, this is the URL that will be opened.</p>
+
 <h2>
 <a name="hardware-support" class="anchor" href="#hardware-support"><span class="octicon octicon-link"></span></a>Hardware Support</h2>
 
diff --git a/params.json b/params.json
index ccd92c3..a8d1ea9 100644
--- a/params.json
+++ b/params.json
@@ -1 +1 @@
-{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"# Contents\r\n\r\n1. [Writing Extensions for Scratch 2.0](#writing-extensions-for-scratch-20)\r\n  1. [Adding Blocks](#adding-blocks)\r\n    1. [Command blocks](#command-blocks)\r\n    1. [Command blocks that wait](#command-blocks-that-wait)\r\n    1. [Reporter blocks](#reporter-blocks)\r\n    1. [Reporter blocks that wait](#reporter-blocks-that-wait)\r\n    1. [Hat blocks](#hat-blocks)\r\n  1. [Hardware Support](#hardware-support)\r\n    1. [USB HID Support](#usb-hid-support)\r\n    1. [Serial Device Support](#serial-device-support)\r\n\r\n# Writing Extensions for Scratch 2.0\r\n\r\nWriting a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## Adding Blocks\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Command blocks that wait\r\n\r\nSometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a \"random wait\" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as [jQuery](http://jquery.com/) methods will work fine in an extension.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Functions for block with type 'w' will get a callback function as the \r\n    // final argument. This should be called to indicate that the block can\r\n    // stop waiting.\r\n    ext.wait_random = function(callback) {\r\n        wait = Math.random();\r\n        console.log('Waiting for ' + wait + ' seconds');\r\n        window.setTimeout(function() {\r\n            callback();\r\n        }, wait*1000);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['w', 'wait for random time', 'wait_random'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Random wait extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%n ^ %n', 'power', 2, 3],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location, callback) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( weather_data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  temperature = weather_data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;\r\n       }, time*1000);\r\n    };\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off === true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## Hardware Support\r\n\r\nScratch provides its own set of APIs in order to allow extensions to access certain types of hardware. Currently, Scratch extensions may access the following types of hardware:\r\n- Serial devices such as the PicoBoard\r\n- USB HID devices such as joysticks or the LEGO WeDo\r\n\r\nExtensions that request hardware access are required to implement two additional methods on the extension instance: `_deviceConnected()` and `_deviceRemoved()`. Both methods receive a device instance. To use the integrated hardware functions of the Scratch Extension API you pass the hardware information in the registration call:\r\n```javascript\r\nScratchExtensions.register('Example Name', descriptor_object, ext_instance[, hardware_info]);\r\n```\r\n\r\nThe `_getStatus()` method of your extension can be used to indicate whether your extension has successfully communicated with a hardware device. For example:\r\n```javascript\r\next._getStatus = function() {\r\n    if(!device) return {status: 1, msg: 'Device not connected'};\r\n    return {status: 2, msg: 'Device connected'};\r\n}\r\n```\r\n\r\nThe value returned by `_getStatus()` corresponds to the color of the status 'light' in Scratch and indicates the general state of your extension. The `msg` property can be used to provide more specific information.\r\n\r\n| Value | Color  | Meaning   |\r\n| ----- | ------ | --------- |\r\n| 0     | red    | error     |\r\n| 1     | yellow | not ready |\r\n| 2     | green  | ready     |\r\n\r\nThe details of the `hardware_info` parameter and the `_deviceConnected()` and `_deviceRemoved()` methods are described below in sections specific to each type of device.\r\n\r\n*_API Note: The hardware API is still somewhat experimental and may change in the future. In particular, we will soon be making a change to methods that return hardware data, such as `read()` for HID devices: these methods will take a callback in instead of returning data directly. This change is necessary to improve compatibility and allow us to expand the variety of environments in which hardware extensions are available._*\r\n\r\n### USB HID Support\r\n_An example HID device extension is available [here](http://scratch.mit.edu/scratchr2/static/js/scratch_extensions/sixaxisExtension.js)._\r\n_More information about the HID protocol is available [here](http://www.usb.org/developers/devclass_docs/HID1_11.pdf)._\r\n\r\nTo let the extension system know that your extension is interested in USB HID devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar hid_info = {type: 'hid', vendor: 0x0694, product: 0x0003};\r\nScratchExtensions.register('Example', descriptor, ext, hid_info);\r\n```\r\nThe `vendor` and `product` values indicate the USB vendor and product ID of the device your extension supports. These values are frequently expressed as four-digit hexadecimal values, as indicated with the `0x` prefix in the JavaScript above.\r\n\r\nIf a device is connected with matching vendor and product IDs, Scratch will call the `_deviceConnected()` method on your extension and pass an object representing that device. Your `_deviceConnected()` method should keep track of the device object and set up communication as necessary for your needs. For example, this will start polling the device for new HID data every 20 milliseconds:\r\n```javascript\r\nvar poller = null;\r\next._deviceConnected = function(dev) {\r\n    if(device) return;\r\n\r\n    device = dev;\r\n    device.open();\r\n\r\n    poller = setInterval(function() {\r\n        rawData = device.read();\r\n    }, 20);\r\n};\r\n```\r\n\r\nOnce a connection to your device is established, your extension may use the `read()` and `write()` methods on the device object to communicate with it. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.read(48)` will attempt to read 48 bytes of data and return an ArrayBuffer containing any data successfully read. Note that one packet of HID data is 48 bytes. *_This method is likely to change soon. See the API Note above._*\r\n* `device.write(buffer)` will send the given ArrayBuffer's data to the device.\r\n\r\nYour extension will also be notified if a matching device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n\r\n### Serial Device Support\r\n_An example serial device extension is available [here](http://scratch.mit.edu/scratchr2/static/js/scratch_extensions/picoExtension.js)._\r\n\r\nTo let the extension system know that your extension is interested in serial devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar serial_info = {type: 'serial'};\r\nScratchExtensions.register('Example', descriptor, ext, serial_info);\r\n```\r\n\r\nYour extension's `_deviceConnected()` method will be called for each serial port present on the computer. Your extension is responsible for checking if a suitable device is attached to that port and continuing on to the next port if necessary. Do not assume that the first time Scratch calls your `_deviceConnected()` will correspond to your device's serial port. The PicoBoard extension shows an example of how to deal with this situation: if no valid PicoBoard communication is received on a given port withing a particular timeout, the extension assumes that there is no PicoBoard on that port and continues scanning to the next port.\r\n```javascript\r\nvar potentialDevices = [];\r\next._deviceConnected = function(dev) {\r\n    potentialDevices.push(dev);\r\n\r\n    if (!device) {\r\n        tryNextDevice();\r\n    }\r\n}\r\n```\r\n\r\nTo communicate with a given serial port, your extension should open it with whichever options are appropriate for your device. These parameters are based on [Boost.Asio's serial port options](http://www.boost.org/doc/libs/1_50_0/doc/html/boost_asio/reference/serial_port_base.html). For a PicoBoard:\r\n```javascript\r\ndevice.open({ stopBits: 0, bitRate: 38400, ctsFlowControl: 0 });\r\n```\r\nThe full set of options available for a serial port are as follows:\r\n\r\n| Option         | Default | Valid values | Description\r\n| -------------- | ------- | ------------ | -----------\r\n| bitRate        | 9600 | Any valid baud rate | Up to  The bit (or baud) rate at which to communicate.\r\n| bufferSize     | 4096 | Up to 8192 | The maximum amount of data that can be received at a time.\r\n| ctsFlowControl | 1 (software) | 0 (none), 1 (software), 2 (hardware) | The type of flow control to use.\r\n| dataBits       | 8 | 5, 6, 7, 8 | The number of data bits per character.\r\n| parityBit      | 0 (none) | 0 (none), 1 (odd), 2 (even) | Whether and how to use the parity bit in each character.\r\n| stopBits       | 1 (1.5 bits) | 0 (1 bit), 1 (1.5 bits), 2 (2 bits) | The number of stop bits per character.\r\n\r\nOnce a connection to your device is established, your extension may use the `send()` method to send data to your device, and the `set_receive_handler()` method to register a function to handle received data. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.send(buffer)` will send the given ArrayBuffer's data to the device.\r\n* `device.set_receive_handler(myReceiveHandler)` will result in `myReceiveHandler(buffer)` being called any time Scratch receives data from the device. Your receive handler will be supplied an ArrayBuffer containing the received data.\r\n\r\nYour extension will also be notified if a device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
+{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"# Contents\r\n\r\n1. [Writing Extensions for Scratch 2.0](#writing-extensions-for-scratch-20)\r\n  1. [Adding Blocks](#adding-blocks)\r\n    1. [Command blocks](#command-blocks)\r\n    1. [Command blocks that wait](#command-blocks-that-wait)\r\n    1. [Reporter blocks](#reporter-blocks)\r\n    1. [Reporter blocks that wait](#reporter-blocks-that-wait)\r\n    1. [Hat blocks](#hat-blocks)\r\n  1. [The Extension Descriptor](#the-extension-descriptor)\r\n    1. [Blocks](#blocks)\r\n    1. [Menus](#menus)\r\n    1. [URL](#url)\r\n  1. [Hardware Support](#hardware-support)\r\n    1. [USB HID Support](#usb-hid-support)\r\n    1. [Serial Device Support](#serial-device-support)\r\n\r\n# Writing Extensions for Scratch 2.0\r\n\r\nWriting a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## Adding Blocks\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Command blocks that wait\r\n\r\nSometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a \"random wait\" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as [jQuery](http://jquery.com/) methods will work fine in an extension.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Functions for block with type 'w' will get a callback function as the \r\n    // final argument. This should be called to indicate that the block can\r\n    // stop waiting.\r\n    ext.wait_random = function(callback) {\r\n        wait = Math.random();\r\n        console.log('Waiting for ' + wait + ' seconds');\r\n        window.setTimeout(function() {\r\n            callback();\r\n        }, wait*1000);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['w', 'wait for random time', 'wait_random'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Random wait extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%n ^ %n', 'power', 2, 3],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location, callback) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( weather_data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  temperature = weather_data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;\r\n       }, time*1000);\r\n    };\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off === true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## The Extension Descriptor\r\n\r\nThe extension descriptor can be used for more than just listing the blocks offered by your extension. Here is an example of a more complex descriptor:\r\n```javascript\r\nvar descriptor = {\r\n    blocks: [\r\n        ['w', 'turn motor on for %n secs',             'motorOnFor', 1],\r\n        [' ', 'turn motor on',                         'allMotorsOn'],\r\n        [' ', 'turn motor off',                        'allMotorsOff'],\r\n        [' ', 'set motor power %n',                    'startMotorPower', 100],\r\n        [' ', 'set motor direction %m.motorDirection', 'setMotorDirection', 'this way'],\r\n        ['h', 'when distance %m.lessMore %n',          'whenDistance', '<', 20],\r\n        ['h', 'when tilt %m.eNe %n',                   'whenTilt', '=', 1],\r\n        ['r', 'distance',                              'getDistance'],\r\n        ['r', 'tilt',                                  'getTilt']\r\n    ],\r\n    menus: {\r\n        motorDirection: ['this way', 'that way', 'reverse'],\r\n        lessMore: ['<', '>'],\r\n        eNe: ['=','not =']\r\n    },\r\n    url: 'http://info.scratch.mit.edu/WeDo'\r\n};\r\n```\r\n\r\n### Blocks\r\n\r\nThe blocks property is an array of block definitions. Each block definition is an array of three or more items.  The required items are: op code, formatted label, and method name. These may optionally be followed by default block argument values.\r\n\r\nThe full list of block types available to an extension is as follows. Note that any operation that will run for more than a few milliseconds or will wait for an external event should be run asynchronously, as described above in the [Reporter blocks that wait](#reporter-blocks-that-wait) and [Command blocks that wait](#command-blocks-that-wait) sections.\r\n\r\n| Op Code | Meaning\r\n| ------- | -------\r\n| `' '` (space) | Synchronous command\r\n| `'w'`   | Asynchronous command\r\n| `'r'`   | Synchronous reporter\r\n| `'R'`   | Asynchronous reporter\r\n| `'h'`   | Hat block (always synchronous)\r\n\r\nEach block argument is identified by a `%` character and the character following it specifies the type.  The types are: `%n` for number, `%s` for string, and `%m` for menu.  Menus also identify which menu to use with a period and the name of the menu like this: `%m.menuName`.\r\n\r\n### Menus\r\n\r\nThe `menus` property is an object whose properties define the menus used by block arguments in the extension.  The property name is the menu name as it is used in the block definition(s). The property value is an array of options to display in the menu dropdown interface in Scratch.\r\n\r\nFor example, the `setMotorDirection` block in the example above includes `%m.motorDirection`, which will cause it to display a menu with `'this way'`, `'that way'`, and `'reverse'` as options.\r\n\r\n### URL\r\n\r\nThe `url` property refers to a web page which describes the extension. Ideally, this page would describe each block, give examples, and identify any hardware or software required to use the extension. If the user clicks the `'About [extension name]...'` menu item within Scratch, this is the URL that will be opened.\r\n\r\n## Hardware Support\r\n\r\nScratch provides its own set of APIs in order to allow extensions to access certain types of hardware. Currently, Scratch extensions may access the following types of hardware:\r\n- Serial devices such as the PicoBoard\r\n- USB HID devices such as joysticks or the LEGO WeDo\r\n\r\nExtensions that request hardware access are required to implement two additional methods on the extension instance: `_deviceConnected()` and `_deviceRemoved()`. Both methods receive a device instance. To use the integrated hardware functions of the Scratch Extension API you pass the hardware information in the registration call:\r\n```javascript\r\nScratchExtensions.register('Example Name', descriptor_object, ext_instance[, hardware_info]);\r\n```\r\n\r\nThe `_getStatus()` method of your extension can be used to indicate whether your extension has successfully communicated with a hardware device. For example:\r\n```javascript\r\next._getStatus = function() {\r\n    if(!device) return {status: 1, msg: 'Device not connected'};\r\n    return {status: 2, msg: 'Device connected'};\r\n}\r\n```\r\n\r\nThe value returned by `_getStatus()` corresponds to the color of the status 'light' in Scratch and indicates the general state of your extension. The `msg` property can be used to provide more specific information.\r\n\r\n| Value | Color  | Meaning   |\r\n| ----- | ------ | --------- |\r\n| 0     | red    | error     |\r\n| 1     | yellow | not ready |\r\n| 2     | green  | ready     |\r\n\r\nThe details of the `hardware_info` parameter and the `_deviceConnected()` and `_deviceRemoved()` methods are described below in sections specific to each type of device.\r\n\r\n*_API Note: The hardware API is still somewhat experimental and may change in the future. In particular, we will soon be making a change to methods that return hardware data, such as `read()` for HID devices: these methods will take a callback in instead of returning data directly. This change is necessary to improve compatibility and allow us to expand the variety of environments in which hardware extensions are available._*\r\n\r\n### USB HID Support\r\n_An example HID device extension is available [here](http://scratch.mit.edu/scratchr2/static/js/scratch_extensions/sixaxisExtension.js)._\r\n_More information about the HID protocol is available [here](http://www.usb.org/developers/devclass_docs/HID1_11.pdf)._\r\n\r\nTo let the extension system know that your extension is interested in USB HID devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar hid_info = {type: 'hid', vendor: 0x0694, product: 0x0003};\r\nScratchExtensions.register('Example', descriptor, ext, hid_info);\r\n```\r\nThe `vendor` and `product` values indicate the USB vendor and product ID of the device your extension supports. These values are frequently expressed as four-digit hexadecimal values, as indicated with the `0x` prefix in the JavaScript above.\r\n\r\nIf a device is connected with matching vendor and product IDs, Scratch will call the `_deviceConnected()` method on your extension and pass an object representing that device. Your `_deviceConnected()` method should keep track of the device object and set up communication as necessary for your needs. For example, this will start polling the device for new HID data every 20 milliseconds:\r\n```javascript\r\nvar poller = null;\r\next._deviceConnected = function(dev) {\r\n    if(device) return;\r\n\r\n    device = dev;\r\n    device.open();\r\n\r\n    poller = setInterval(function() {\r\n        rawData = device.read();\r\n    }, 20);\r\n};\r\n```\r\n\r\nOnce a connection to your device is established, your extension may use the `read()` and `write()` methods on the device object to communicate with it. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.read(48)` will attempt to read 48 bytes of data and return an ArrayBuffer containing any data successfully read. Note that one packet of HID data is 48 bytes. *_This method is likely to change soon. See the API Note above._*\r\n* `device.write(buffer)` will send the given ArrayBuffer's data to the device.\r\n\r\nYour extension will also be notified if a matching device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n\r\n### Serial Device Support\r\n_An example serial device extension is available [here](http://scratch.mit.edu/scratchr2/static/js/scratch_extensions/picoExtension.js)._\r\n\r\nTo let the extension system know that your extension is interested in serial devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar serial_info = {type: 'serial'};\r\nScratchExtensions.register('Example', descriptor, ext, serial_info);\r\n```\r\n\r\nYour extension's `_deviceConnected()` method will be called for each serial port present on the computer. Your extension is responsible for checking if a suitable device is attached to that port and continuing on to the next port if necessary. Do not assume that the first time Scratch calls your `_deviceConnected()` will correspond to your device's serial port. The PicoBoard extension shows an example of how to deal with this situation: if no valid PicoBoard communication is received on a given port withing a particular timeout, the extension assumes that there is no PicoBoard on that port and continues scanning to the next port.\r\n```javascript\r\nvar potentialDevices = [];\r\next._deviceConnected = function(dev) {\r\n    potentialDevices.push(dev);\r\n\r\n    if (!device) {\r\n        tryNextDevice();\r\n    }\r\n}\r\n```\r\n\r\nTo communicate with a given serial port, your extension should open it with whichever options are appropriate for your device. These parameters are based on [Boost.Asio's serial port options](http://www.boost.org/doc/libs/1_50_0/doc/html/boost_asio/reference/serial_port_base.html). For a PicoBoard:\r\n```javascript\r\ndevice.open({ stopBits: 0, bitRate: 38400, ctsFlowControl: 0 });\r\n```\r\nThe full set of options available for a serial port are as follows:\r\n\r\n| Option         | Default | Valid values | Description\r\n| -------------- | ------- | ------------ | -----------\r\n| bitRate        | 9600 | Any valid baud rate | Up to  The bit (or baud) rate at which to communicate.\r\n| bufferSize     | 4096 | Up to 8192 | The maximum amount of data that can be received at a time.\r\n| ctsFlowControl | 1 (software) | 0 (none), 1 (software), 2 (hardware) | The type of flow control to use.\r\n| dataBits       | 8 | 5, 6, 7, 8 | The number of data bits per character.\r\n| parityBit      | 0 (none) | 0 (none), 1 (odd), 2 (even) | Whether and how to use the parity bit in each character.\r\n| stopBits       | 1 (1.5 bits) | 0 (1 bit), 1 (1.5 bits), 2 (2 bits) | The number of stop bits per character.\r\n\r\nOnce a connection to your device is established, your extension may use the `send()` method to send data to your device, and the `set_receive_handler()` method to register a function to handle received data. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.send(buffer)` will send the given ArrayBuffer's data to the device.\r\n* `device.set_receive_handler(myReceiveHandler)` will result in `myReceiveHandler(buffer)` being called any time Scratch receives data from the device. Your receive handler will be supplied an ArrayBuffer containing the received data.\r\n\r\nYour extension will also be notified if a device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file

From d626efd76e7cdabec8baa2e5925b8f7465c76d53 Mon Sep 17 00:00:00 2001
From: Amos Blanton <amos@scratch.mit.edu>
Date: Fri, 1 Aug 2014 13:35:44 -0400
Subject: [PATCH 15/47] Create README.md

---
 README.md | 5 +++++
 1 file changed, 5 insertions(+)
 create mode 100644 README.md

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..ec0f3d3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,5 @@
+scratch-extension-docs
+======================
+
+Documentation and sample code for creating extensions with Scratch 2.0. 
+http://llk.github.io/scratch-extensions/

From 4e6ded0ab8e0c071495a7a6d5c274fdbf329ae6e Mon Sep 17 00:00:00 2001
From: Chris Willis-Ford <cwillisf@acm.org>
Date: Fri, 1 Aug 2014 10:58:46 -0700
Subject: [PATCH 16/47] Added example hardware extensions

---
 joystickExtension.js |  76 ++++++++++++++++
 picoExtension.js     | 202 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 278 insertions(+)
 create mode 100644 joystickExtension.js
 create mode 100644 picoExtension.js

diff --git a/joystickExtension.js b/joystickExtension.js
new file mode 100644
index 0000000..2e72d29
--- /dev/null
+++ b/joystickExtension.js
@@ -0,0 +1,76 @@
+// joystickExtension.js
+// Shane M. Clements, November 2013
+// Joystick Scratch Extension
+//
+// This is an extension for development and testing of the Scratch Javascript Extension API.
+
+new (function() {
+    var device = null;
+    var input = null;
+    var poller = null;
+    var ext = this;
+
+    ext._deviceConnected = function(dev) {
+        if(device) return;
+
+        device = dev;
+        device.open();
+
+        poller = setInterval(function() {
+            input = device.read(48);
+        }, 10);
+
+//        setInterval(function() { console.log(input); }, 100);
+    };
+
+    ext._deviceRemoved = function(dev) {
+        if(device != dev) return;
+        device = null;
+        stopPolling();
+    };
+
+    function stopPolling() {
+        if(poller) clearInterval(poller);
+        poller = null;
+    }
+
+    ext._shutdown = function() {
+        if(poller) clearInterval(poller);
+        poller = null;
+
+        if(device) device.close();
+        device = null;
+    }
+
+    ext._getStatus = function() {
+        if(!device) return {status: 1, msg: 'Controller disconnected'};
+        return {status: 2, msg: 'Controller connected'};
+    }
+
+    // Converts a byte into a value of the range -1 -> 1 with two decimal places of precision
+    function convertByteStr(byte) { return (parseInt(byte, 16) - 128) / 128; }
+    ext.readJoystick = function(name) {
+        var retval = null;
+        switch(name) {
+            case 'leftX': retval = convertByteStr(input[12] + input[13]); break;
+            case 'leftY': retval = -convertByteStr(input[14] + input[15]); break;
+            case 'rightX': retval = convertByteStr(input[16] + input[17]); break;
+            case 'rightY': retval = -convertByteStr(input[18] + input[19]); break;
+        }
+
+        // If it's hardly off center then treat it as centered
+        if(Math.abs(retval) < 0.1) retval = 0;
+
+        return retval.toFixed(2);
+    }
+
+    var descriptor = {
+        blocks: [
+            ['r', 'get joystick %m.joystickPart', 'readJoystick', 'leftX']
+        ],
+        menus: {
+            joystickPart: ['leftX', 'leftY', 'rightX', 'rightY']
+        }
+    };
+    ScratchExtensions.register('Joystick', descriptor, ext, {type: 'hid', vendor:0x054c, product:0x0268});
+})();
diff --git a/picoExtension.js b/picoExtension.js
new file mode 100644
index 0000000..face82d
--- /dev/null
+++ b/picoExtension.js
@@ -0,0 +1,202 @@
+// picoExtension.js
+// Shane M. Clements, February 2014
+// PicoBoard Scratch Extension
+//
+// This is an extension for development and testing of the Scratch Javascript Extension API.
+
+(function(ext) {
+    var device = null;
+    var rawData = null;
+
+    // Sensor states:
+    var channels = {
+        slider: 7,
+        light: 5,
+        sound: 6,
+        button: 3,
+        'resistance-A': 4,
+        'resistance-B': 2,
+        'resistance-C': 1,
+        'resistance-D': 0
+    };
+    var inputs = {
+        slider: 0,
+        light: 0,
+        sound: 0,
+        button: 0,
+        'resistance-A': 0,
+        'resistance-B': 0,
+        'resistance-C': 0,
+        'resistance-D': 0
+    };
+
+    ext.resetAll = function(){};
+
+    // Hats / triggers
+    ext.whenSensorConnected = function(which) {
+        return getSensorPressed(which);
+    };
+
+    ext.whenSensorPass = function(which, sign, level) {
+        if (sign == '<') return getSensor(which) < level;
+        return getSensor(which) > level;
+    };
+
+    // Reporters
+    ext.sensorPressed = function(which) {
+        return getSensorPressed(which);
+    };
+
+    ext.sensor = function(which) { return getSensor(which); };
+
+    // Private logic
+    function getSensorPressed(which) {
+        if (device == null) return false;
+        if (which == 'button pressed' && getSensor('button') < 1) return true;
+        if (which == 'A connected' && getSensor('resistance-A') < 10) return true;
+        if (which == 'B connected' && getSensor('resistance-B') < 10) return true;
+        if (which == 'C connected' && getSensor('resistance-C') < 10) return true;
+        if (which == 'D connected' && getSensor('resistance-D') < 10) return true;
+        return false;
+    }
+
+    function getSensor(which) {
+        return inputs[which];
+    }
+
+    var inputArray = [];
+    function processData() {
+        var bytes = new Uint8Array(rawData);
+
+        inputArray[15] = 0;
+
+        // TODO: make this robust against misaligned packets.
+        // Right now there's no guarantee that our 18 bytes start at the beginning of a message.
+        // Maybe we should treat the data as a stream of 2-byte packets instead of 18-byte packets.
+        // That way we could just check the high bit of each byte to verify that we're aligned.
+        for(var i=0; i<9; ++i) {
+            var hb = bytes[i*2] & 127;
+            var channel = hb >> 3;
+            var lb = bytes[i*2+1] & 127;
+            inputArray[channel] = ((hb & 7) << 7) + lb;
+        }
+
+        if (watchdog && (inputArray[15] == 0x04)) {
+            // Seems to be a valid PicoBoard.
+            clearTimeout(watchdog);
+            watchdog = null;
+        }
+
+        for(var name in inputs) {
+            var v = inputArray[channels[name]];
+            if(name == 'light') {
+                v = (v < 25) ? 100 - v : Math.round((1023 - v) * (75 / 998));
+            }
+            else if(name == 'sound') {
+                //empirically tested noise sensor floor
+                v = Math.max(0, v - 18)
+                v =  (v < 50) ? v / 2 :
+                    //noise ceiling
+                    25 + Math.min(75, Math.round((v - 50) * (75 / 580)));
+            }
+            else {
+                v = (100 * v) / 1023;
+            }
+
+            inputs[name] = v;
+        }
+
+        //console.log(inputs);
+        rawData = null;
+    }
+
+    function appendBuffer( buffer1, buffer2 ) {
+        var tmp = new Uint8Array( buffer1.byteLength + buffer2.byteLength );
+        tmp.set( new Uint8Array( buffer1 ), 0 );
+        tmp.set( new Uint8Array( buffer2 ), buffer1.byteLength );
+        return tmp.buffer;
+    }
+
+    // Extension API interactions
+    var potentialDevices = [];
+    ext._deviceConnected = function(dev) {
+        potentialDevices.push(dev);
+
+        if (!device) {
+            tryNextDevice();
+        }
+    }
+
+    var poller = null;
+    var watchdog = null;
+    function tryNextDevice() {
+        // If potentialDevices is empty, device will be undefined.
+        // That will get us back here next time a device is connected.
+        device = potentialDevices.shift();
+        if (!device) return;
+
+        device.open({ stopBits: 0, bitRate: 38400, ctsFlowControl: 0 });
+        device.set_receive_handler(function(data) {
+            //console.log('Received: ' + data.byteLength);
+            if(!rawData || rawData.byteLength == 18) rawData = new Uint8Array(data);
+            else rawData = appendBuffer(rawData, data);
+
+            if(rawData.byteLength >= 18) {
+                //console.log(rawData);
+                processData();
+                //device.send(pingCmd.buffer);
+            }
+        });
+
+        // Tell the PicoBoard to send a input data every 50ms
+        var pingCmd = new Uint8Array(1);
+        pingCmd[0] = 1;
+        poller = setInterval(function() {
+            device.send(pingCmd.buffer);
+        }, 50);
+        watchdog = setTimeout(function() {
+            // This device didn't get good data in time, so give up on it. Clean up and then move on.
+            // If we get good data then we'll terminate this watchdog.
+            clearInterval(poller);
+            poller = null;
+            device.set_receive_handler(null);
+            device.close();
+            device = null;
+            tryNextDevice();
+        }, 250);
+    };
+
+    ext._deviceRemoved = function(dev) {
+        if(device != dev) return;
+        if(poller) poller = clearInterval(poller);
+        device = null;
+    };
+
+    ext._shutdown = function() {
+        if(device) device.close();
+        if(poller) poller = clearInterval(poller);
+        device = null;
+    };
+
+    ext._getStatus = function() {
+        if(!device) return {status: 1, msg: 'PicoBoard disconnected'};
+        if(watchdog) return {status: 1, msg: 'Probing for PicoBoard'};
+        return {status: 2, msg: 'PicoBoard connected'};
+    }
+
+    var descriptor = {
+        blocks: [
+            ['h', 'when %m.booleanSensor',         'whenSensorConnected', 'button pressed'],
+            ['h', 'when %m.sensor %m.lessMore %n', 'whenSensorPass',      'slider', '>', 50],
+            ['b', 'sensor %m.booleanSensor?',      'sensorPressed',       'button pressed'],
+            ['r', '%m.sensor sensor value',        'sensor',              'slider']
+        ],
+        menus: {
+            booleanSensor: ['button pressed', 'A connected', 'B connected', 'C connected', 'D connected'],
+            sensor: ['slider', 'light', 'sound', 'resistance-A', 'resistance-B', 'resistance-C', 'resistance-D'],
+            lessMore: ['>', '<']
+        },
+        url: '/info/help/studio/tips/ext/PicoBoard/'
+    };
+    ScratchExtensions.register('PicoBoard', descriptor, ext, {type: 'serial'});
+})({});

From 9bd5ca946030f79acabdc58e0319bf9f350a969d Mon Sep 17 00:00:00 2001
From: Chris Willis-Ford <cwillisf@acm.org>
Date: Fri, 1 Aug 2014 11:02:08 -0700
Subject: [PATCH 17/47] Updated URL with the name change

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index ec0f3d3..af9c3e5 100644
--- a/README.md
+++ b/README.md
@@ -2,4 +2,4 @@ scratch-extension-docs
 ======================
 
 Documentation and sample code for creating extensions with Scratch 2.0. 
-http://llk.github.io/scratch-extensions/
+http://llk.github.io/scratch-extension-docs

From 1fed704e79bade7f5beb6eb13f74d59a3c1bdb69 Mon Sep 17 00:00:00 2001
From: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date: Fri, 1 Aug 2014 11:06:24 -0700
Subject: [PATCH 18/47] Create gh-pages branch via GitHub

---
 index.html  | 10 +++++-----
 params.json |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/index.html b/index.html
index a89fa70..9b483d7 100644
--- a/index.html
+++ b/index.html
@@ -16,14 +16,14 @@
     <!-- HEADER -->
     <div id="header_wrap" class="outer">
         <header class="inner">
-          <a id="forkme_banner" href="https://github.com/LLK/scratch-extensions">View on GitHub</a>
+          <a id="forkme_banner" href="https://github.com/LLK/scratch-extension-docs">View on GitHub</a>
 
           <h1 id="project_title">Scratch Extensions</h1>
           <h2 id="project_tagline">Extensions for Scratch 2.0</h2>
 
             <section id="downloads">
-              <a class="zip_download_link" href="https://github.com/LLK/scratch-extensions/zipball/master">Download this project as a .zip file</a>
-              <a class="tar_download_link" href="https://github.com/LLK/scratch-extensions/tarball/master">Download this project as a tar.gz file</a>
+              <a class="zip_download_link" href="https://github.com/LLK/scratch-extension-docs/zipball/master">Download this project as a .zip file</a>
+              <a class="tar_download_link" href="https://github.com/LLK/scratch-extension-docs/tarball/master">Download this project as a tar.gz file</a>
             </section>
         </header>
     </div>
@@ -428,7 +428,7 @@
 <h3>
 <a name="usb-hid-support" class="anchor" href="#usb-hid-support"><span class="octicon octicon-link"></span></a>USB HID Support</h3>
 
-<p><em>An example HID device extension is available <a href="http://scratch.mit.edu/scratchr2/static/js/scratch_extensions/sixaxisExtension.js">here</a>.</em>
+<p><em>An example HID device extension is available <a href="joystickExtension.js">here</a>.</em>
 <em>More information about the HID protocol is available <a href="http://www.usb.org/developers/devclass_docs/HID1_11.pdf">here</a>.</em></p>
 
 <p>To let the extension system know that your extension is interested in USB HID devices, pass an object like this for the <code>hardware_info</code> parameter of the <code>register()</code> method:</p>
@@ -483,7 +483,7 @@
 <h3>
 <a name="serial-device-support" class="anchor" href="#serial-device-support"><span class="octicon octicon-link"></span></a>Serial Device Support</h3>
 
-<p><em>An example serial device extension is available <a href="http://scratch.mit.edu/scratchr2/static/js/scratch_extensions/picoExtension.js">here</a>.</em></p>
+<p><em>An example serial device extension is available <a href="picoExtension.js">here</a>.</em></p>
 
 <p>To let the extension system know that your extension is interested in serial devices, pass an object like this for the <code>hardware_info</code> parameter of the <code>register()</code> method:</p>
 
diff --git a/params.json b/params.json
index a8d1ea9..eba0bef 100644
--- a/params.json
+++ b/params.json
@@ -1 +1 @@
-{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"# Contents\r\n\r\n1. [Writing Extensions for Scratch 2.0](#writing-extensions-for-scratch-20)\r\n  1. [Adding Blocks](#adding-blocks)\r\n    1. [Command blocks](#command-blocks)\r\n    1. [Command blocks that wait](#command-blocks-that-wait)\r\n    1. [Reporter blocks](#reporter-blocks)\r\n    1. [Reporter blocks that wait](#reporter-blocks-that-wait)\r\n    1. [Hat blocks](#hat-blocks)\r\n  1. [The Extension Descriptor](#the-extension-descriptor)\r\n    1. [Blocks](#blocks)\r\n    1. [Menus](#menus)\r\n    1. [URL](#url)\r\n  1. [Hardware Support](#hardware-support)\r\n    1. [USB HID Support](#usb-hid-support)\r\n    1. [Serial Device Support](#serial-device-support)\r\n\r\n# Writing Extensions for Scratch 2.0\r\n\r\nWriting a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## Adding Blocks\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Command blocks that wait\r\n\r\nSometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a \"random wait\" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as [jQuery](http://jquery.com/) methods will work fine in an extension.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Functions for block with type 'w' will get a callback function as the \r\n    // final argument. This should be called to indicate that the block can\r\n    // stop waiting.\r\n    ext.wait_random = function(callback) {\r\n        wait = Math.random();\r\n        console.log('Waiting for ' + wait + ' seconds');\r\n        window.setTimeout(function() {\r\n            callback();\r\n        }, wait*1000);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['w', 'wait for random time', 'wait_random'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Random wait extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%n ^ %n', 'power', 2, 3],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location, callback) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( weather_data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  temperature = weather_data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;\r\n       }, time*1000);\r\n    };\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off === true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## The Extension Descriptor\r\n\r\nThe extension descriptor can be used for more than just listing the blocks offered by your extension. Here is an example of a more complex descriptor:\r\n```javascript\r\nvar descriptor = {\r\n    blocks: [\r\n        ['w', 'turn motor on for %n secs',             'motorOnFor', 1],\r\n        [' ', 'turn motor on',                         'allMotorsOn'],\r\n        [' ', 'turn motor off',                        'allMotorsOff'],\r\n        [' ', 'set motor power %n',                    'startMotorPower', 100],\r\n        [' ', 'set motor direction %m.motorDirection', 'setMotorDirection', 'this way'],\r\n        ['h', 'when distance %m.lessMore %n',          'whenDistance', '<', 20],\r\n        ['h', 'when tilt %m.eNe %n',                   'whenTilt', '=', 1],\r\n        ['r', 'distance',                              'getDistance'],\r\n        ['r', 'tilt',                                  'getTilt']\r\n    ],\r\n    menus: {\r\n        motorDirection: ['this way', 'that way', 'reverse'],\r\n        lessMore: ['<', '>'],\r\n        eNe: ['=','not =']\r\n    },\r\n    url: 'http://info.scratch.mit.edu/WeDo'\r\n};\r\n```\r\n\r\n### Blocks\r\n\r\nThe blocks property is an array of block definitions. Each block definition is an array of three or more items.  The required items are: op code, formatted label, and method name. These may optionally be followed by default block argument values.\r\n\r\nThe full list of block types available to an extension is as follows. Note that any operation that will run for more than a few milliseconds or will wait for an external event should be run asynchronously, as described above in the [Reporter blocks that wait](#reporter-blocks-that-wait) and [Command blocks that wait](#command-blocks-that-wait) sections.\r\n\r\n| Op Code | Meaning\r\n| ------- | -------\r\n| `' '` (space) | Synchronous command\r\n| `'w'`   | Asynchronous command\r\n| `'r'`   | Synchronous reporter\r\n| `'R'`   | Asynchronous reporter\r\n| `'h'`   | Hat block (always synchronous)\r\n\r\nEach block argument is identified by a `%` character and the character following it specifies the type.  The types are: `%n` for number, `%s` for string, and `%m` for menu.  Menus also identify which menu to use with a period and the name of the menu like this: `%m.menuName`.\r\n\r\n### Menus\r\n\r\nThe `menus` property is an object whose properties define the menus used by block arguments in the extension.  The property name is the menu name as it is used in the block definition(s). The property value is an array of options to display in the menu dropdown interface in Scratch.\r\n\r\nFor example, the `setMotorDirection` block in the example above includes `%m.motorDirection`, which will cause it to display a menu with `'this way'`, `'that way'`, and `'reverse'` as options.\r\n\r\n### URL\r\n\r\nThe `url` property refers to a web page which describes the extension. Ideally, this page would describe each block, give examples, and identify any hardware or software required to use the extension. If the user clicks the `'About [extension name]...'` menu item within Scratch, this is the URL that will be opened.\r\n\r\n## Hardware Support\r\n\r\nScratch provides its own set of APIs in order to allow extensions to access certain types of hardware. Currently, Scratch extensions may access the following types of hardware:\r\n- Serial devices such as the PicoBoard\r\n- USB HID devices such as joysticks or the LEGO WeDo\r\n\r\nExtensions that request hardware access are required to implement two additional methods on the extension instance: `_deviceConnected()` and `_deviceRemoved()`. Both methods receive a device instance. To use the integrated hardware functions of the Scratch Extension API you pass the hardware information in the registration call:\r\n```javascript\r\nScratchExtensions.register('Example Name', descriptor_object, ext_instance[, hardware_info]);\r\n```\r\n\r\nThe `_getStatus()` method of your extension can be used to indicate whether your extension has successfully communicated with a hardware device. For example:\r\n```javascript\r\next._getStatus = function() {\r\n    if(!device) return {status: 1, msg: 'Device not connected'};\r\n    return {status: 2, msg: 'Device connected'};\r\n}\r\n```\r\n\r\nThe value returned by `_getStatus()` corresponds to the color of the status 'light' in Scratch and indicates the general state of your extension. The `msg` property can be used to provide more specific information.\r\n\r\n| Value | Color  | Meaning   |\r\n| ----- | ------ | --------- |\r\n| 0     | red    | error     |\r\n| 1     | yellow | not ready |\r\n| 2     | green  | ready     |\r\n\r\nThe details of the `hardware_info` parameter and the `_deviceConnected()` and `_deviceRemoved()` methods are described below in sections specific to each type of device.\r\n\r\n*_API Note: The hardware API is still somewhat experimental and may change in the future. In particular, we will soon be making a change to methods that return hardware data, such as `read()` for HID devices: these methods will take a callback in instead of returning data directly. This change is necessary to improve compatibility and allow us to expand the variety of environments in which hardware extensions are available._*\r\n\r\n### USB HID Support\r\n_An example HID device extension is available [here](http://scratch.mit.edu/scratchr2/static/js/scratch_extensions/sixaxisExtension.js)._\r\n_More information about the HID protocol is available [here](http://www.usb.org/developers/devclass_docs/HID1_11.pdf)._\r\n\r\nTo let the extension system know that your extension is interested in USB HID devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar hid_info = {type: 'hid', vendor: 0x0694, product: 0x0003};\r\nScratchExtensions.register('Example', descriptor, ext, hid_info);\r\n```\r\nThe `vendor` and `product` values indicate the USB vendor and product ID of the device your extension supports. These values are frequently expressed as four-digit hexadecimal values, as indicated with the `0x` prefix in the JavaScript above.\r\n\r\nIf a device is connected with matching vendor and product IDs, Scratch will call the `_deviceConnected()` method on your extension and pass an object representing that device. Your `_deviceConnected()` method should keep track of the device object and set up communication as necessary for your needs. For example, this will start polling the device for new HID data every 20 milliseconds:\r\n```javascript\r\nvar poller = null;\r\next._deviceConnected = function(dev) {\r\n    if(device) return;\r\n\r\n    device = dev;\r\n    device.open();\r\n\r\n    poller = setInterval(function() {\r\n        rawData = device.read();\r\n    }, 20);\r\n};\r\n```\r\n\r\nOnce a connection to your device is established, your extension may use the `read()` and `write()` methods on the device object to communicate with it. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.read(48)` will attempt to read 48 bytes of data and return an ArrayBuffer containing any data successfully read. Note that one packet of HID data is 48 bytes. *_This method is likely to change soon. See the API Note above._*\r\n* `device.write(buffer)` will send the given ArrayBuffer's data to the device.\r\n\r\nYour extension will also be notified if a matching device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n\r\n### Serial Device Support\r\n_An example serial device extension is available [here](http://scratch.mit.edu/scratchr2/static/js/scratch_extensions/picoExtension.js)._\r\n\r\nTo let the extension system know that your extension is interested in serial devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar serial_info = {type: 'serial'};\r\nScratchExtensions.register('Example', descriptor, ext, serial_info);\r\n```\r\n\r\nYour extension's `_deviceConnected()` method will be called for each serial port present on the computer. Your extension is responsible for checking if a suitable device is attached to that port and continuing on to the next port if necessary. Do not assume that the first time Scratch calls your `_deviceConnected()` will correspond to your device's serial port. The PicoBoard extension shows an example of how to deal with this situation: if no valid PicoBoard communication is received on a given port withing a particular timeout, the extension assumes that there is no PicoBoard on that port and continues scanning to the next port.\r\n```javascript\r\nvar potentialDevices = [];\r\next._deviceConnected = function(dev) {\r\n    potentialDevices.push(dev);\r\n\r\n    if (!device) {\r\n        tryNextDevice();\r\n    }\r\n}\r\n```\r\n\r\nTo communicate with a given serial port, your extension should open it with whichever options are appropriate for your device. These parameters are based on [Boost.Asio's serial port options](http://www.boost.org/doc/libs/1_50_0/doc/html/boost_asio/reference/serial_port_base.html). For a PicoBoard:\r\n```javascript\r\ndevice.open({ stopBits: 0, bitRate: 38400, ctsFlowControl: 0 });\r\n```\r\nThe full set of options available for a serial port are as follows:\r\n\r\n| Option         | Default | Valid values | Description\r\n| -------------- | ------- | ------------ | -----------\r\n| bitRate        | 9600 | Any valid baud rate | Up to  The bit (or baud) rate at which to communicate.\r\n| bufferSize     | 4096 | Up to 8192 | The maximum amount of data that can be received at a time.\r\n| ctsFlowControl | 1 (software) | 0 (none), 1 (software), 2 (hardware) | The type of flow control to use.\r\n| dataBits       | 8 | 5, 6, 7, 8 | The number of data bits per character.\r\n| parityBit      | 0 (none) | 0 (none), 1 (odd), 2 (even) | Whether and how to use the parity bit in each character.\r\n| stopBits       | 1 (1.5 bits) | 0 (1 bit), 1 (1.5 bits), 2 (2 bits) | The number of stop bits per character.\r\n\r\nOnce a connection to your device is established, your extension may use the `send()` method to send data to your device, and the `set_receive_handler()` method to register a function to handle received data. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.send(buffer)` will send the given ArrayBuffer's data to the device.\r\n* `device.set_receive_handler(myReceiveHandler)` will result in `myReceiveHandler(buffer)` being called any time Scratch receives data from the device. Your receive handler will be supplied an ArrayBuffer containing the received data.\r\n\r\nYour extension will also be notified if a device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
+{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"# Contents\r\n\r\n1. [Writing Extensions for Scratch 2.0](#writing-extensions-for-scratch-20)\r\n  1. [Adding Blocks](#adding-blocks)\r\n    1. [Command blocks](#command-blocks)\r\n    1. [Command blocks that wait](#command-blocks-that-wait)\r\n    1. [Reporter blocks](#reporter-blocks)\r\n    1. [Reporter blocks that wait](#reporter-blocks-that-wait)\r\n    1. [Hat blocks](#hat-blocks)\r\n  1. [The Extension Descriptor](#the-extension-descriptor)\r\n    1. [Blocks](#blocks)\r\n    1. [Menus](#menus)\r\n    1. [URL](#url)\r\n  1. [Hardware Support](#hardware-support)\r\n    1. [USB HID Support](#usb-hid-support)\r\n    1. [Serial Device Support](#serial-device-support)\r\n\r\n# Writing Extensions for Scratch 2.0\r\n\r\nWriting a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## Adding Blocks\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Command blocks that wait\r\n\r\nSometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a \"random wait\" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as [jQuery](http://jquery.com/) methods will work fine in an extension.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Functions for block with type 'w' will get a callback function as the \r\n    // final argument. This should be called to indicate that the block can\r\n    // stop waiting.\r\n    ext.wait_random = function(callback) {\r\n        wait = Math.random();\r\n        console.log('Waiting for ' + wait + ' seconds');\r\n        window.setTimeout(function() {\r\n            callback();\r\n        }, wait*1000);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['w', 'wait for random time', 'wait_random'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Random wait extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%n ^ %n', 'power', 2, 3],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location, callback) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( weather_data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  temperature = weather_data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;\r\n       }, time*1000);\r\n    };\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off === true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## The Extension Descriptor\r\n\r\nThe extension descriptor can be used for more than just listing the blocks offered by your extension. Here is an example of a more complex descriptor:\r\n```javascript\r\nvar descriptor = {\r\n    blocks: [\r\n        ['w', 'turn motor on for %n secs',             'motorOnFor', 1],\r\n        [' ', 'turn motor on',                         'allMotorsOn'],\r\n        [' ', 'turn motor off',                        'allMotorsOff'],\r\n        [' ', 'set motor power %n',                    'startMotorPower', 100],\r\n        [' ', 'set motor direction %m.motorDirection', 'setMotorDirection', 'this way'],\r\n        ['h', 'when distance %m.lessMore %n',          'whenDistance', '<', 20],\r\n        ['h', 'when tilt %m.eNe %n',                   'whenTilt', '=', 1],\r\n        ['r', 'distance',                              'getDistance'],\r\n        ['r', 'tilt',                                  'getTilt']\r\n    ],\r\n    menus: {\r\n        motorDirection: ['this way', 'that way', 'reverse'],\r\n        lessMore: ['<', '>'],\r\n        eNe: ['=','not =']\r\n    },\r\n    url: 'http://info.scratch.mit.edu/WeDo'\r\n};\r\n```\r\n\r\n### Blocks\r\n\r\nThe blocks property is an array of block definitions. Each block definition is an array of three or more items.  The required items are: op code, formatted label, and method name. These may optionally be followed by default block argument values.\r\n\r\nThe full list of block types available to an extension is as follows. Note that any operation that will run for more than a few milliseconds or will wait for an external event should be run asynchronously, as described above in the [Reporter blocks that wait](#reporter-blocks-that-wait) and [Command blocks that wait](#command-blocks-that-wait) sections.\r\n\r\n| Op Code | Meaning\r\n| ------- | -------\r\n| `' '` (space) | Synchronous command\r\n| `'w'`   | Asynchronous command\r\n| `'r'`   | Synchronous reporter\r\n| `'R'`   | Asynchronous reporter\r\n| `'h'`   | Hat block (always synchronous)\r\n\r\nEach block argument is identified by a `%` character and the character following it specifies the type.  The types are: `%n` for number, `%s` for string, and `%m` for menu.  Menus also identify which menu to use with a period and the name of the menu like this: `%m.menuName`.\r\n\r\n### Menus\r\n\r\nThe `menus` property is an object whose properties define the menus used by block arguments in the extension.  The property name is the menu name as it is used in the block definition(s). The property value is an array of options to display in the menu dropdown interface in Scratch.\r\n\r\nFor example, the `setMotorDirection` block in the example above includes `%m.motorDirection`, which will cause it to display a menu with `'this way'`, `'that way'`, and `'reverse'` as options.\r\n\r\n### URL\r\n\r\nThe `url` property refers to a web page which describes the extension. Ideally, this page would describe each block, give examples, and identify any hardware or software required to use the extension. If the user clicks the `'About [extension name]...'` menu item within Scratch, this is the URL that will be opened.\r\n\r\n## Hardware Support\r\n\r\nScratch provides its own set of APIs in order to allow extensions to access certain types of hardware. Currently, Scratch extensions may access the following types of hardware:\r\n- Serial devices such as the PicoBoard\r\n- USB HID devices such as joysticks or the LEGO WeDo\r\n\r\nExtensions that request hardware access are required to implement two additional methods on the extension instance: `_deviceConnected()` and `_deviceRemoved()`. Both methods receive a device instance. To use the integrated hardware functions of the Scratch Extension API you pass the hardware information in the registration call:\r\n```javascript\r\nScratchExtensions.register('Example Name', descriptor_object, ext_instance[, hardware_info]);\r\n```\r\n\r\nThe `_getStatus()` method of your extension can be used to indicate whether your extension has successfully communicated with a hardware device. For example:\r\n```javascript\r\next._getStatus = function() {\r\n    if(!device) return {status: 1, msg: 'Device not connected'};\r\n    return {status: 2, msg: 'Device connected'};\r\n}\r\n```\r\n\r\nThe value returned by `_getStatus()` corresponds to the color of the status 'light' in Scratch and indicates the general state of your extension. The `msg` property can be used to provide more specific information.\r\n\r\n| Value | Color  | Meaning   |\r\n| ----- | ------ | --------- |\r\n| 0     | red    | error     |\r\n| 1     | yellow | not ready |\r\n| 2     | green  | ready     |\r\n\r\nThe details of the `hardware_info` parameter and the `_deviceConnected()` and `_deviceRemoved()` methods are described below in sections specific to each type of device.\r\n\r\n*_API Note: The hardware API is still somewhat experimental and may change in the future. In particular, we will soon be making a change to methods that return hardware data, such as `read()` for HID devices: these methods will take a callback in instead of returning data directly. This change is necessary to improve compatibility and allow us to expand the variety of environments in which hardware extensions are available._*\r\n\r\n### USB HID Support\r\n_An example HID device extension is available [here](joystickExtension.js)._\r\n_More information about the HID protocol is available [here](http://www.usb.org/developers/devclass_docs/HID1_11.pdf)._\r\n\r\nTo let the extension system know that your extension is interested in USB HID devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar hid_info = {type: 'hid', vendor: 0x0694, product: 0x0003};\r\nScratchExtensions.register('Example', descriptor, ext, hid_info);\r\n```\r\nThe `vendor` and `product` values indicate the USB vendor and product ID of the device your extension supports. These values are frequently expressed as four-digit hexadecimal values, as indicated with the `0x` prefix in the JavaScript above.\r\n\r\nIf a device is connected with matching vendor and product IDs, Scratch will call the `_deviceConnected()` method on your extension and pass an object representing that device. Your `_deviceConnected()` method should keep track of the device object and set up communication as necessary for your needs. For example, this will start polling the device for new HID data every 20 milliseconds:\r\n```javascript\r\nvar poller = null;\r\next._deviceConnected = function(dev) {\r\n    if(device) return;\r\n\r\n    device = dev;\r\n    device.open();\r\n\r\n    poller = setInterval(function() {\r\n        rawData = device.read();\r\n    }, 20);\r\n};\r\n```\r\n\r\nOnce a connection to your device is established, your extension may use the `read()` and `write()` methods on the device object to communicate with it. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.read(48)` will attempt to read 48 bytes of data and return an ArrayBuffer containing any data successfully read. Note that one packet of HID data is 48 bytes. *_This method is likely to change soon. See the API Note above._*\r\n* `device.write(buffer)` will send the given ArrayBuffer's data to the device.\r\n\r\nYour extension will also be notified if a matching device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n\r\n### Serial Device Support\r\n_An example serial device extension is available [here](picoExtension.js)._\r\n\r\nTo let the extension system know that your extension is interested in serial devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar serial_info = {type: 'serial'};\r\nScratchExtensions.register('Example', descriptor, ext, serial_info);\r\n```\r\n\r\nYour extension's `_deviceConnected()` method will be called for each serial port present on the computer. Your extension is responsible for checking if a suitable device is attached to that port and continuing on to the next port if necessary. Do not assume that the first time Scratch calls your `_deviceConnected()` will correspond to your device's serial port. The PicoBoard extension shows an example of how to deal with this situation: if no valid PicoBoard communication is received on a given port withing a particular timeout, the extension assumes that there is no PicoBoard on that port and continues scanning to the next port.\r\n```javascript\r\nvar potentialDevices = [];\r\next._deviceConnected = function(dev) {\r\n    potentialDevices.push(dev);\r\n\r\n    if (!device) {\r\n        tryNextDevice();\r\n    }\r\n}\r\n```\r\n\r\nTo communicate with a given serial port, your extension should open it with whichever options are appropriate for your device. These parameters are based on [Boost.Asio's serial port options](http://www.boost.org/doc/libs/1_50_0/doc/html/boost_asio/reference/serial_port_base.html). For a PicoBoard:\r\n```javascript\r\ndevice.open({ stopBits: 0, bitRate: 38400, ctsFlowControl: 0 });\r\n```\r\nThe full set of options available for a serial port are as follows:\r\n\r\n| Option         | Default | Valid values | Description\r\n| -------------- | ------- | ------------ | -----------\r\n| bitRate        | 9600 | Any valid baud rate | Up to  The bit (or baud) rate at which to communicate.\r\n| bufferSize     | 4096 | Up to 8192 | The maximum amount of data that can be received at a time.\r\n| ctsFlowControl | 1 (software) | 0 (none), 1 (software), 2 (hardware) | The type of flow control to use.\r\n| dataBits       | 8 | 5, 6, 7, 8 | The number of data bits per character.\r\n| parityBit      | 0 (none) | 0 (none), 1 (odd), 2 (even) | Whether and how to use the parity bit in each character.\r\n| stopBits       | 1 (1.5 bits) | 0 (1 bit), 1 (1.5 bits), 2 (2 bits) | The number of stop bits per character.\r\n\r\nOnce a connection to your device is established, your extension may use the `send()` method to send data to your device, and the `set_receive_handler()` method to register a function to handle received data. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.send(buffer)` will send the given ArrayBuffer's data to the device.\r\n* `device.set_receive_handler(myReceiveHandler)` will result in `myReceiveHandler(buffer)` being called any time Scratch receives data from the device. Your receive handler will be supplied an ArrayBuffer containing the received data.\r\n\r\nYour extension will also be notified if a device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file

From 3c69fe28d47c7d2dc65c7715721dc49b5bfb1bf4 Mon Sep 17 00:00:00 2001
From: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date: Fri, 1 Aug 2014 11:20:14 -0700
Subject: [PATCH 19/47] Create gh-pages branch via GitHub

---
 index.html  | 4 ++--
 params.json | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/index.html b/index.html
index 9b483d7..0ac10eb 100644
--- a/index.html
+++ b/index.html
@@ -428,7 +428,7 @@
 <h3>
 <a name="usb-hid-support" class="anchor" href="#usb-hid-support"><span class="octicon octicon-link"></span></a>USB HID Support</h3>
 
-<p><em>An example HID device extension is available <a href="joystickExtension.js">here</a>.</em>
+<p><em>An example HID device extension is available <a href="https://github.com/LLK/scratch-extension-docs/blob/master/joystickExtension.js">here</a>.</em>
 <em>More information about the HID protocol is available <a href="http://www.usb.org/developers/devclass_docs/HID1_11.pdf">here</a>.</em></p>
 
 <p>To let the extension system know that your extension is interested in USB HID devices, pass an object like this for the <code>hardware_info</code> parameter of the <code>register()</code> method:</p>
@@ -483,7 +483,7 @@
 <h3>
 <a name="serial-device-support" class="anchor" href="#serial-device-support"><span class="octicon octicon-link"></span></a>Serial Device Support</h3>
 
-<p><em>An example serial device extension is available <a href="picoExtension.js">here</a>.</em></p>
+<p><em>An example serial device extension is available <a href="https://github.com/LLK/scratch-extension-docs/blob/master/picoExtension.js">here</a>.</em></p>
 
 <p>To let the extension system know that your extension is interested in serial devices, pass an object like this for the <code>hardware_info</code> parameter of the <code>register()</code> method:</p>
 
diff --git a/params.json b/params.json
index eba0bef..2e86c85 100644
--- a/params.json
+++ b/params.json
@@ -1 +1 @@
-{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"# Contents\r\n\r\n1. [Writing Extensions for Scratch 2.0](#writing-extensions-for-scratch-20)\r\n  1. [Adding Blocks](#adding-blocks)\r\n    1. [Command blocks](#command-blocks)\r\n    1. [Command blocks that wait](#command-blocks-that-wait)\r\n    1. [Reporter blocks](#reporter-blocks)\r\n    1. [Reporter blocks that wait](#reporter-blocks-that-wait)\r\n    1. [Hat blocks](#hat-blocks)\r\n  1. [The Extension Descriptor](#the-extension-descriptor)\r\n    1. [Blocks](#blocks)\r\n    1. [Menus](#menus)\r\n    1. [URL](#url)\r\n  1. [Hardware Support](#hardware-support)\r\n    1. [USB HID Support](#usb-hid-support)\r\n    1. [Serial Device Support](#serial-device-support)\r\n\r\n# Writing Extensions for Scratch 2.0\r\n\r\nWriting a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## Adding Blocks\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Command blocks that wait\r\n\r\nSometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a \"random wait\" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as [jQuery](http://jquery.com/) methods will work fine in an extension.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Functions for block with type 'w' will get a callback function as the \r\n    // final argument. This should be called to indicate that the block can\r\n    // stop waiting.\r\n    ext.wait_random = function(callback) {\r\n        wait = Math.random();\r\n        console.log('Waiting for ' + wait + ' seconds');\r\n        window.setTimeout(function() {\r\n            callback();\r\n        }, wait*1000);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['w', 'wait for random time', 'wait_random'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Random wait extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%n ^ %n', 'power', 2, 3],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location, callback) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( weather_data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  temperature = weather_data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;\r\n       }, time*1000);\r\n    };\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off === true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## The Extension Descriptor\r\n\r\nThe extension descriptor can be used for more than just listing the blocks offered by your extension. Here is an example of a more complex descriptor:\r\n```javascript\r\nvar descriptor = {\r\n    blocks: [\r\n        ['w', 'turn motor on for %n secs',             'motorOnFor', 1],\r\n        [' ', 'turn motor on',                         'allMotorsOn'],\r\n        [' ', 'turn motor off',                        'allMotorsOff'],\r\n        [' ', 'set motor power %n',                    'startMotorPower', 100],\r\n        [' ', 'set motor direction %m.motorDirection', 'setMotorDirection', 'this way'],\r\n        ['h', 'when distance %m.lessMore %n',          'whenDistance', '<', 20],\r\n        ['h', 'when tilt %m.eNe %n',                   'whenTilt', '=', 1],\r\n        ['r', 'distance',                              'getDistance'],\r\n        ['r', 'tilt',                                  'getTilt']\r\n    ],\r\n    menus: {\r\n        motorDirection: ['this way', 'that way', 'reverse'],\r\n        lessMore: ['<', '>'],\r\n        eNe: ['=','not =']\r\n    },\r\n    url: 'http://info.scratch.mit.edu/WeDo'\r\n};\r\n```\r\n\r\n### Blocks\r\n\r\nThe blocks property is an array of block definitions. Each block definition is an array of three or more items.  The required items are: op code, formatted label, and method name. These may optionally be followed by default block argument values.\r\n\r\nThe full list of block types available to an extension is as follows. Note that any operation that will run for more than a few milliseconds or will wait for an external event should be run asynchronously, as described above in the [Reporter blocks that wait](#reporter-blocks-that-wait) and [Command blocks that wait](#command-blocks-that-wait) sections.\r\n\r\n| Op Code | Meaning\r\n| ------- | -------\r\n| `' '` (space) | Synchronous command\r\n| `'w'`   | Asynchronous command\r\n| `'r'`   | Synchronous reporter\r\n| `'R'`   | Asynchronous reporter\r\n| `'h'`   | Hat block (always synchronous)\r\n\r\nEach block argument is identified by a `%` character and the character following it specifies the type.  The types are: `%n` for number, `%s` for string, and `%m` for menu.  Menus also identify which menu to use with a period and the name of the menu like this: `%m.menuName`.\r\n\r\n### Menus\r\n\r\nThe `menus` property is an object whose properties define the menus used by block arguments in the extension.  The property name is the menu name as it is used in the block definition(s). The property value is an array of options to display in the menu dropdown interface in Scratch.\r\n\r\nFor example, the `setMotorDirection` block in the example above includes `%m.motorDirection`, which will cause it to display a menu with `'this way'`, `'that way'`, and `'reverse'` as options.\r\n\r\n### URL\r\n\r\nThe `url` property refers to a web page which describes the extension. Ideally, this page would describe each block, give examples, and identify any hardware or software required to use the extension. If the user clicks the `'About [extension name]...'` menu item within Scratch, this is the URL that will be opened.\r\n\r\n## Hardware Support\r\n\r\nScratch provides its own set of APIs in order to allow extensions to access certain types of hardware. Currently, Scratch extensions may access the following types of hardware:\r\n- Serial devices such as the PicoBoard\r\n- USB HID devices such as joysticks or the LEGO WeDo\r\n\r\nExtensions that request hardware access are required to implement two additional methods on the extension instance: `_deviceConnected()` and `_deviceRemoved()`. Both methods receive a device instance. To use the integrated hardware functions of the Scratch Extension API you pass the hardware information in the registration call:\r\n```javascript\r\nScratchExtensions.register('Example Name', descriptor_object, ext_instance[, hardware_info]);\r\n```\r\n\r\nThe `_getStatus()` method of your extension can be used to indicate whether your extension has successfully communicated with a hardware device. For example:\r\n```javascript\r\next._getStatus = function() {\r\n    if(!device) return {status: 1, msg: 'Device not connected'};\r\n    return {status: 2, msg: 'Device connected'};\r\n}\r\n```\r\n\r\nThe value returned by `_getStatus()` corresponds to the color of the status 'light' in Scratch and indicates the general state of your extension. The `msg` property can be used to provide more specific information.\r\n\r\n| Value | Color  | Meaning   |\r\n| ----- | ------ | --------- |\r\n| 0     | red    | error     |\r\n| 1     | yellow | not ready |\r\n| 2     | green  | ready     |\r\n\r\nThe details of the `hardware_info` parameter and the `_deviceConnected()` and `_deviceRemoved()` methods are described below in sections specific to each type of device.\r\n\r\n*_API Note: The hardware API is still somewhat experimental and may change in the future. In particular, we will soon be making a change to methods that return hardware data, such as `read()` for HID devices: these methods will take a callback in instead of returning data directly. This change is necessary to improve compatibility and allow us to expand the variety of environments in which hardware extensions are available._*\r\n\r\n### USB HID Support\r\n_An example HID device extension is available [here](joystickExtension.js)._\r\n_More information about the HID protocol is available [here](http://www.usb.org/developers/devclass_docs/HID1_11.pdf)._\r\n\r\nTo let the extension system know that your extension is interested in USB HID devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar hid_info = {type: 'hid', vendor: 0x0694, product: 0x0003};\r\nScratchExtensions.register('Example', descriptor, ext, hid_info);\r\n```\r\nThe `vendor` and `product` values indicate the USB vendor and product ID of the device your extension supports. These values are frequently expressed as four-digit hexadecimal values, as indicated with the `0x` prefix in the JavaScript above.\r\n\r\nIf a device is connected with matching vendor and product IDs, Scratch will call the `_deviceConnected()` method on your extension and pass an object representing that device. Your `_deviceConnected()` method should keep track of the device object and set up communication as necessary for your needs. For example, this will start polling the device for new HID data every 20 milliseconds:\r\n```javascript\r\nvar poller = null;\r\next._deviceConnected = function(dev) {\r\n    if(device) return;\r\n\r\n    device = dev;\r\n    device.open();\r\n\r\n    poller = setInterval(function() {\r\n        rawData = device.read();\r\n    }, 20);\r\n};\r\n```\r\n\r\nOnce a connection to your device is established, your extension may use the `read()` and `write()` methods on the device object to communicate with it. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.read(48)` will attempt to read 48 bytes of data and return an ArrayBuffer containing any data successfully read. Note that one packet of HID data is 48 bytes. *_This method is likely to change soon. See the API Note above._*\r\n* `device.write(buffer)` will send the given ArrayBuffer's data to the device.\r\n\r\nYour extension will also be notified if a matching device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n\r\n### Serial Device Support\r\n_An example serial device extension is available [here](picoExtension.js)._\r\n\r\nTo let the extension system know that your extension is interested in serial devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar serial_info = {type: 'serial'};\r\nScratchExtensions.register('Example', descriptor, ext, serial_info);\r\n```\r\n\r\nYour extension's `_deviceConnected()` method will be called for each serial port present on the computer. Your extension is responsible for checking if a suitable device is attached to that port and continuing on to the next port if necessary. Do not assume that the first time Scratch calls your `_deviceConnected()` will correspond to your device's serial port. The PicoBoard extension shows an example of how to deal with this situation: if no valid PicoBoard communication is received on a given port withing a particular timeout, the extension assumes that there is no PicoBoard on that port and continues scanning to the next port.\r\n```javascript\r\nvar potentialDevices = [];\r\next._deviceConnected = function(dev) {\r\n    potentialDevices.push(dev);\r\n\r\n    if (!device) {\r\n        tryNextDevice();\r\n    }\r\n}\r\n```\r\n\r\nTo communicate with a given serial port, your extension should open it with whichever options are appropriate for your device. These parameters are based on [Boost.Asio's serial port options](http://www.boost.org/doc/libs/1_50_0/doc/html/boost_asio/reference/serial_port_base.html). For a PicoBoard:\r\n```javascript\r\ndevice.open({ stopBits: 0, bitRate: 38400, ctsFlowControl: 0 });\r\n```\r\nThe full set of options available for a serial port are as follows:\r\n\r\n| Option         | Default | Valid values | Description\r\n| -------------- | ------- | ------------ | -----------\r\n| bitRate        | 9600 | Any valid baud rate | Up to  The bit (or baud) rate at which to communicate.\r\n| bufferSize     | 4096 | Up to 8192 | The maximum amount of data that can be received at a time.\r\n| ctsFlowControl | 1 (software) | 0 (none), 1 (software), 2 (hardware) | The type of flow control to use.\r\n| dataBits       | 8 | 5, 6, 7, 8 | The number of data bits per character.\r\n| parityBit      | 0 (none) | 0 (none), 1 (odd), 2 (even) | Whether and how to use the parity bit in each character.\r\n| stopBits       | 1 (1.5 bits) | 0 (1 bit), 1 (1.5 bits), 2 (2 bits) | The number of stop bits per character.\r\n\r\nOnce a connection to your device is established, your extension may use the `send()` method to send data to your device, and the `set_receive_handler()` method to register a function to handle received data. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.send(buffer)` will send the given ArrayBuffer's data to the device.\r\n* `device.set_receive_handler(myReceiveHandler)` will result in `myReceiveHandler(buffer)` being called any time Scratch receives data from the device. Your receive handler will be supplied an ArrayBuffer containing the received data.\r\n\r\nYour extension will also be notified if a device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
+{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"# Contents\r\n\r\n1. [Writing Extensions for Scratch 2.0](#writing-extensions-for-scratch-20)\r\n  1. [Adding Blocks](#adding-blocks)\r\n    1. [Command blocks](#command-blocks)\r\n    1. [Command blocks that wait](#command-blocks-that-wait)\r\n    1. [Reporter blocks](#reporter-blocks)\r\n    1. [Reporter blocks that wait](#reporter-blocks-that-wait)\r\n    1. [Hat blocks](#hat-blocks)\r\n  1. [The Extension Descriptor](#the-extension-descriptor)\r\n    1. [Blocks](#blocks)\r\n    1. [Menus](#menus)\r\n    1. [URL](#url)\r\n  1. [Hardware Support](#hardware-support)\r\n    1. [USB HID Support](#usb-hid-support)\r\n    1. [Serial Device Support](#serial-device-support)\r\n\r\n# Writing Extensions for Scratch 2.0\r\n\r\nWriting a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## Adding Blocks\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Command blocks that wait\r\n\r\nSometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a \"random wait\" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as [jQuery](http://jquery.com/) methods will work fine in an extension.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Functions for block with type 'w' will get a callback function as the \r\n    // final argument. This should be called to indicate that the block can\r\n    // stop waiting.\r\n    ext.wait_random = function(callback) {\r\n        wait = Math.random();\r\n        console.log('Waiting for ' + wait + ' seconds');\r\n        window.setTimeout(function() {\r\n            callback();\r\n        }, wait*1000);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['w', 'wait for random time', 'wait_random'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Random wait extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%n ^ %n', 'power', 2, 3],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location, callback) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( weather_data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  temperature = weather_data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;\r\n       }, time*1000);\r\n    };\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off === true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## The Extension Descriptor\r\n\r\nThe extension descriptor can be used for more than just listing the blocks offered by your extension. Here is an example of a more complex descriptor:\r\n```javascript\r\nvar descriptor = {\r\n    blocks: [\r\n        ['w', 'turn motor on for %n secs',             'motorOnFor', 1],\r\n        [' ', 'turn motor on',                         'allMotorsOn'],\r\n        [' ', 'turn motor off',                        'allMotorsOff'],\r\n        [' ', 'set motor power %n',                    'startMotorPower', 100],\r\n        [' ', 'set motor direction %m.motorDirection', 'setMotorDirection', 'this way'],\r\n        ['h', 'when distance %m.lessMore %n',          'whenDistance', '<', 20],\r\n        ['h', 'when tilt %m.eNe %n',                   'whenTilt', '=', 1],\r\n        ['r', 'distance',                              'getDistance'],\r\n        ['r', 'tilt',                                  'getTilt']\r\n    ],\r\n    menus: {\r\n        motorDirection: ['this way', 'that way', 'reverse'],\r\n        lessMore: ['<', '>'],\r\n        eNe: ['=','not =']\r\n    },\r\n    url: 'http://info.scratch.mit.edu/WeDo'\r\n};\r\n```\r\n\r\n### Blocks\r\n\r\nThe blocks property is an array of block definitions. Each block definition is an array of three or more items.  The required items are: op code, formatted label, and method name. These may optionally be followed by default block argument values.\r\n\r\nThe full list of block types available to an extension is as follows. Note that any operation that will run for more than a few milliseconds or will wait for an external event should be run asynchronously, as described above in the [Reporter blocks that wait](#reporter-blocks-that-wait) and [Command blocks that wait](#command-blocks-that-wait) sections.\r\n\r\n| Op Code | Meaning\r\n| ------- | -------\r\n| `' '` (space) | Synchronous command\r\n| `'w'`   | Asynchronous command\r\n| `'r'`   | Synchronous reporter\r\n| `'R'`   | Asynchronous reporter\r\n| `'h'`   | Hat block (always synchronous)\r\n\r\nEach block argument is identified by a `%` character and the character following it specifies the type.  The types are: `%n` for number, `%s` for string, and `%m` for menu.  Menus also identify which menu to use with a period and the name of the menu like this: `%m.menuName`.\r\n\r\n### Menus\r\n\r\nThe `menus` property is an object whose properties define the menus used by block arguments in the extension.  The property name is the menu name as it is used in the block definition(s). The property value is an array of options to display in the menu dropdown interface in Scratch.\r\n\r\nFor example, the `setMotorDirection` block in the example above includes `%m.motorDirection`, which will cause it to display a menu with `'this way'`, `'that way'`, and `'reverse'` as options.\r\n\r\n### URL\r\n\r\nThe `url` property refers to a web page which describes the extension. Ideally, this page would describe each block, give examples, and identify any hardware or software required to use the extension. If the user clicks the `'About [extension name]...'` menu item within Scratch, this is the URL that will be opened.\r\n\r\n## Hardware Support\r\n\r\nScratch provides its own set of APIs in order to allow extensions to access certain types of hardware. Currently, Scratch extensions may access the following types of hardware:\r\n- Serial devices such as the PicoBoard\r\n- USB HID devices such as joysticks or the LEGO WeDo\r\n\r\nExtensions that request hardware access are required to implement two additional methods on the extension instance: `_deviceConnected()` and `_deviceRemoved()`. Both methods receive a device instance. To use the integrated hardware functions of the Scratch Extension API you pass the hardware information in the registration call:\r\n```javascript\r\nScratchExtensions.register('Example Name', descriptor_object, ext_instance[, hardware_info]);\r\n```\r\n\r\nThe `_getStatus()` method of your extension can be used to indicate whether your extension has successfully communicated with a hardware device. For example:\r\n```javascript\r\next._getStatus = function() {\r\n    if(!device) return {status: 1, msg: 'Device not connected'};\r\n    return {status: 2, msg: 'Device connected'};\r\n}\r\n```\r\n\r\nThe value returned by `_getStatus()` corresponds to the color of the status 'light' in Scratch and indicates the general state of your extension. The `msg` property can be used to provide more specific information.\r\n\r\n| Value | Color  | Meaning   |\r\n| ----- | ------ | --------- |\r\n| 0     | red    | error     |\r\n| 1     | yellow | not ready |\r\n| 2     | green  | ready     |\r\n\r\nThe details of the `hardware_info` parameter and the `_deviceConnected()` and `_deviceRemoved()` methods are described below in sections specific to each type of device.\r\n\r\n*_API Note: The hardware API is still somewhat experimental and may change in the future. In particular, we will soon be making a change to methods that return hardware data, such as `read()` for HID devices: these methods will take a callback in instead of returning data directly. This change is necessary to improve compatibility and allow us to expand the variety of environments in which hardware extensions are available._*\r\n\r\n### USB HID Support\r\n_An example HID device extension is available [here](https://github.com/LLK/scratch-extension-docs/blob/master/joystickExtension.js)._\r\n_More information about the HID protocol is available [here](http://www.usb.org/developers/devclass_docs/HID1_11.pdf)._\r\n\r\nTo let the extension system know that your extension is interested in USB HID devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar hid_info = {type: 'hid', vendor: 0x0694, product: 0x0003};\r\nScratchExtensions.register('Example', descriptor, ext, hid_info);\r\n```\r\nThe `vendor` and `product` values indicate the USB vendor and product ID of the device your extension supports. These values are frequently expressed as four-digit hexadecimal values, as indicated with the `0x` prefix in the JavaScript above.\r\n\r\nIf a device is connected with matching vendor and product IDs, Scratch will call the `_deviceConnected()` method on your extension and pass an object representing that device. Your `_deviceConnected()` method should keep track of the device object and set up communication as necessary for your needs. For example, this will start polling the device for new HID data every 20 milliseconds:\r\n```javascript\r\nvar poller = null;\r\next._deviceConnected = function(dev) {\r\n    if(device) return;\r\n\r\n    device = dev;\r\n    device.open();\r\n\r\n    poller = setInterval(function() {\r\n        rawData = device.read();\r\n    }, 20);\r\n};\r\n```\r\n\r\nOnce a connection to your device is established, your extension may use the `read()` and `write()` methods on the device object to communicate with it. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.read(48)` will attempt to read 48 bytes of data and return an ArrayBuffer containing any data successfully read. Note that one packet of HID data is 48 bytes. *_This method is likely to change soon. See the API Note above._*\r\n* `device.write(buffer)` will send the given ArrayBuffer's data to the device.\r\n\r\nYour extension will also be notified if a matching device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n\r\n### Serial Device Support\r\n_An example serial device extension is available [here](https://github.com/LLK/scratch-extension-docs/blob/master/picoExtension.js)._\r\n\r\nTo let the extension system know that your extension is interested in serial devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar serial_info = {type: 'serial'};\r\nScratchExtensions.register('Example', descriptor, ext, serial_info);\r\n```\r\n\r\nYour extension's `_deviceConnected()` method will be called for each serial port present on the computer. Your extension is responsible for checking if a suitable device is attached to that port and continuing on to the next port if necessary. Do not assume that the first time Scratch calls your `_deviceConnected()` will correspond to your device's serial port. The PicoBoard extension shows an example of how to deal with this situation: if no valid PicoBoard communication is received on a given port withing a particular timeout, the extension assumes that there is no PicoBoard on that port and continues scanning to the next port.\r\n```javascript\r\nvar potentialDevices = [];\r\next._deviceConnected = function(dev) {\r\n    potentialDevices.push(dev);\r\n\r\n    if (!device) {\r\n        tryNextDevice();\r\n    }\r\n}\r\n```\r\n\r\nTo communicate with a given serial port, your extension should open it with whichever options are appropriate for your device. These parameters are based on [Boost.Asio's serial port options](http://www.boost.org/doc/libs/1_50_0/doc/html/boost_asio/reference/serial_port_base.html). For a PicoBoard:\r\n```javascript\r\ndevice.open({ stopBits: 0, bitRate: 38400, ctsFlowControl: 0 });\r\n```\r\nThe full set of options available for a serial port are as follows:\r\n\r\n| Option         | Default | Valid values | Description\r\n| -------------- | ------- | ------------ | -----------\r\n| bitRate        | 9600 | Any valid baud rate | Up to  The bit (or baud) rate at which to communicate.\r\n| bufferSize     | 4096 | Up to 8192 | The maximum amount of data that can be received at a time.\r\n| ctsFlowControl | 1 (software) | 0 (none), 1 (software), 2 (hardware) | The type of flow control to use.\r\n| dataBits       | 8 | 5, 6, 7, 8 | The number of data bits per character.\r\n| parityBit      | 0 (none) | 0 (none), 1 (odd), 2 (even) | Whether and how to use the parity bit in each character.\r\n| stopBits       | 1 (1.5 bits) | 0 (1 bit), 1 (1.5 bits), 2 (2 bits) | The number of stop bits per character.\r\n\r\nOnce a connection to your device is established, your extension may use the `send()` method to send data to your device, and the `set_receive_handler()` method to register a function to handle received data. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.send(buffer)` will send the given ArrayBuffer's data to the device.\r\n* `device.set_receive_handler(myReceiveHandler)` will result in `myReceiveHandler(buffer)` being called any time Scratch receives data from the device. Your receive handler will be supplied an ArrayBuffer containing the received data.\r\n\r\nYour extension will also be notified if a device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file

From 5861959ac4ab4a48526cd202c4da42e7a031b1a6 Mon Sep 17 00:00:00 2001
From: Chris Willis-Ford <cwillisf@acm.org>
Date: Fri, 1 Aug 2014 20:03:01 -0700
Subject: [PATCH 20/47] Converted site to use Jekyll

Most edits should now be done on index.md directly.
See the README for more information.
---
 .gitignore            |   1 +
 Gemfile               |   2 +
 Gemfile.lock          | 115 ++++++++
 README.md             |  47 ++++
 _config.yml           |  22 ++
 _layouts/default.html |  49 ++++
 index.html            | 596 ------------------------------------------
 index.md              | 439 +++++++++++++++++++++++++++++++
 javascripts/main.js   |   1 -
 params.json           |   1 -
 10 files changed, 675 insertions(+), 598 deletions(-)
 create mode 100644 .gitignore
 create mode 100644 Gemfile
 create mode 100644 Gemfile.lock
 create mode 100644 README.md
 create mode 100644 _config.yml
 create mode 100644 _layouts/default.html
 delete mode 100644 index.html
 create mode 100644 index.md
 delete mode 100644 javascripts/main.js
 delete mode 100644 params.json

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0baf015
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/_site
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..053c27d
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'github-pages'
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644
index 0000000..16bc19a
--- /dev/null
+++ b/Gemfile.lock
@@ -0,0 +1,115 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    RedCloth (4.2.9)
+    activesupport (4.1.4)
+      i18n (~> 0.6, >= 0.6.9)
+      json (~> 1.7, >= 1.7.7)
+      minitest (~> 5.1)
+      thread_safe (~> 0.1)
+      tzinfo (~> 1.1)
+    blankslate (2.1.2.4)
+    celluloid (0.15.2)
+      timers (~> 1.1.0)
+    classifier (1.3.4)
+      fast-stemmer (>= 1.0.0)
+    coffee-script (2.3.0)
+      coffee-script-source
+      execjs
+    coffee-script-source (1.7.1)
+    colorator (0.1)
+    execjs (2.2.1)
+    fast-stemmer (1.0.2)
+    ffi (1.9.3)
+    gemoji (2.0.0)
+    github-pages (22)
+      RedCloth (= 4.2.9)
+      jekyll (= 2.2.0)
+      jekyll-coffeescript (= 1.0.0)
+      jekyll-mentions (= 0.1.3)
+      jekyll-redirect-from (= 0.4.0)
+      jekyll-sass-converter (= 1.2.0)
+      jekyll-sitemap (= 0.5.1)
+      jemoji (= 0.3.0)
+      kramdown (= 1.3.1)
+      liquid (= 2.6.1)
+      maruku (= 0.7.0)
+      pygments.rb (= 0.6.0)
+      rdiscount (= 2.1.7)
+      redcarpet (= 3.1.2)
+    html-pipeline (1.9.0)
+      activesupport (>= 2)
+      nokogiri (~> 1.4)
+    i18n (0.6.11)
+    jekyll (2.2.0)
+      classifier (~> 1.3)
+      colorator (~> 0.1)
+      jekyll-coffeescript (~> 1.0)
+      jekyll-gist (~> 1.0)
+      jekyll-paginate (~> 1.0)
+      jekyll-sass-converter (~> 1.0)
+      jekyll-watch (~> 1.0)
+      kramdown (~> 1.3)
+      liquid (~> 2.6.1)
+      mercenary (~> 0.3.3)
+      pygments.rb (~> 0.6.0)
+      redcarpet (~> 3.1)
+      safe_yaml (~> 1.0)
+      toml (~> 0.1.0)
+    jekyll-coffeescript (1.0.0)
+      coffee-script (~> 2.2)
+    jekyll-gist (1.1.0)
+    jekyll-mentions (0.1.3)
+      html-pipeline (~> 1.9.0)
+      jekyll (~> 2.0)
+    jekyll-paginate (1.0.0)
+    jekyll-redirect-from (0.4.0)
+      jekyll (~> 2.0)
+    jekyll-sass-converter (1.2.0)
+      sass (~> 3.2)
+    jekyll-sitemap (0.5.1)
+    jekyll-watch (1.0.0)
+      listen (~> 2.7)
+    jemoji (0.3.0)
+      gemoji (~> 2.0)
+      html-pipeline (~> 1.9)
+      jekyll (~> 2.0)
+    json (1.8.1)
+    kramdown (1.3.1)
+    liquid (2.6.1)
+    listen (2.7.9)
+      celluloid (>= 0.15.2)
+      rb-fsevent (>= 0.9.3)
+      rb-inotify (>= 0.9)
+    maruku (0.7.0)
+    mercenary (0.3.4)
+    mini_portile (0.6.0)
+    minitest (5.4.0)
+    nokogiri (1.6.3.1)
+      mini_portile (= 0.6.0)
+    parslet (1.5.0)
+      blankslate (~> 2.0)
+    posix-spawn (0.3.9)
+    pygments.rb (0.6.0)
+      posix-spawn (~> 0.3.6)
+      yajl-ruby (~> 1.1.0)
+    rb-fsevent (0.9.4)
+    rb-inotify (0.9.5)
+      ffi (>= 0.5.0)
+    rdiscount (2.1.7)
+    redcarpet (3.1.2)
+    safe_yaml (1.0.3)
+    sass (3.3.13)
+    thread_safe (0.3.4)
+    timers (1.1.0)
+    toml (0.1.1)
+      parslet (~> 1.5.0)
+    tzinfo (1.2.1)
+      thread_safe (~> 0.1)
+    yajl-ruby (1.1.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  github-pages
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..4b8bfa9
--- /dev/null
+++ b/README.md
@@ -0,0 +1,47 @@
+See [Using Jekyll with Pages](https://help.github.com/articles/using-jekyll-with-pages) for help with editing this content.
+
+== Quick start
+
+1. Verify that you have Ruby (version 1.9.3 or 2.0.0)
+1. Run `gem install bundler`
+1. Clone this repository and switch to the `gh-pages` branch
+1. In your cloned repository, run `bundle install`
+1. Run `bundle exec jekyll serve` to preview your site at
+   http://localhost:4000
+
+== Windows users
+
+Jekyll isn't really designed with Windows in mind, but it's not too hard to
+get it working with Cygwin. Follow the 'Installing Jekyll' steps on the GitHub
+help page above after installing Cygwin with the following packages. If you
+get errors from the `bundle install` step, you're probably missing a package
+-- most likely, a `*-devel` library package. If it's not listed below, please
+add it!
+
+Required Cygwin packages:
+* ruby (version 1.9.3 or 2.0.0)
+* gcc-core
+* libcrypt-devel
+* libiconv-devel
+* libffi-devel
+* make
+* patch
+* pkg-config
+
+Even with all the required packages, Jekyll on Windows doesn't seem to like
+running in `--watch` mode. This might be fixed by downgrading the `listen`
+package, but doing so means downgrading many other packages and potentially
+breaking compatibility.
+
+If you get "permission denied" related to `conftest.exe` while running
+`bundle install`, you may need to temporarily disable your virus protection.
+Remember to turn it on again after installation!
+
+If Jekyll fails to build your site, you may need to provide a "fixed" version
+of your `COMSPEC` environment variable. The easiest way to do that is:
+```Bash
+export COMSPEC=`cygpath -u "$COMSPEC"`
+```
+You can either run that command in your shell yourself, add it to `.bashrc`,
+or add it to a shell script that (for example) runs `bundle exec jekyll serve`
+for you.
diff --git a/_config.yml b/_config.yml
new file mode 100644
index 0000000..47f8261
--- /dev/null
+++ b/_config.yml
@@ -0,0 +1,22 @@
+highlighter: pygments
+markdown: redcarpet
+
+kramdown:
+  input: GFM
+redcarpet:
+  extensions: ["no_intra_emphasis", "tables", "fenced_code_blocks", "autolink", "strikethrough", "lax_spacing", "with_toc_data"]
+
+# Make relative links stay within our project
+# You may want to preview with: bundle exec jekyll serve --baseurl ''
+# See http://jekyllrb.com/docs/github-pages/
+baseurl: /scratch-extension-docs
+
+# The following are fixed by GitHub and cannot be changed by us
+safe: true
+lsi: false
+
+gems:
+- jekyll-mentions
+- jemoji
+- jekyll-redirect-from
+- jekyll-sitemap
diff --git a/_layouts/default.html b/_layouts/default.html
new file mode 100644
index 0000000..f5539c7
--- /dev/null
+++ b/_layouts/default.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html>
+
+  <head>
+    <meta charset='utf-8'>
+    <meta http-equiv="X-UA-Compatible" content="chrome=1">
+    <meta name="description" content="Scratch Extensions : Extensions for Scratch 2.0">
+
+    <link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
+
+    <title>Scratch Extensions</title>
+  </head>
+
+  <body>
+
+    <!-- HEADER -->
+    <div id="header_wrap" class="outer">
+        <header class="inner">
+          <a id="forkme_banner" href="https://github.com/LLK/scratch-extension-docs">View on GitHub</a>
+
+          <h1 id="project_title">Scratch Extensions</h1>
+          <h2 id="project_tagline">Extensions for Scratch 2.0</h2>
+
+            <section id="downloads">
+              <a class="zip_download_link" href="https://github.com/LLK/scratch-extension-docs/zipball/master">Download this project as a .zip file</a>
+              <a class="tar_download_link" href="https://github.com/LLK/scratch-extension-docs/tarball/master">Download this project as a tar.gz file</a>
+            </section>
+        </header>
+    </div>
+
+    <!-- MAIN CONTENT -->
+    <div id="main_content_wrap" class="outer">
+      <section id="main_content" class="inner">
+        {{ content }}
+      </section>
+    </div>
+
+    <!-- FOOTER  -->
+    <div id="footer_wrap" class="outer">
+      <footer class="inner">
+        <p class="copyright">Scratch Extensions maintained by <a href="https://github.com/LLK">LLK</a></p>
+        <p>Published with <a href="http://pages.github.com">GitHub Pages</a></p>
+      </footer>
+    </div>
+
+    
+
+  </body>
+</html>
diff --git a/index.html b/index.html
deleted file mode 100644
index 0ac10eb..0000000
--- a/index.html
+++ /dev/null
@@ -1,596 +0,0 @@
-<!DOCTYPE html>
-<html>
-
-  <head>
-    <meta charset='utf-8'>
-    <meta http-equiv="X-UA-Compatible" content="chrome=1">
-    <meta name="description" content="Scratch Extensions : Extensions for Scratch 2.0">
-
-    <link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
-
-    <title>Scratch Extensions</title>
-  </head>
-
-  <body>
-
-    <!-- HEADER -->
-    <div id="header_wrap" class="outer">
-        <header class="inner">
-          <a id="forkme_banner" href="https://github.com/LLK/scratch-extension-docs">View on GitHub</a>
-
-          <h1 id="project_title">Scratch Extensions</h1>
-          <h2 id="project_tagline">Extensions for Scratch 2.0</h2>
-
-            <section id="downloads">
-              <a class="zip_download_link" href="https://github.com/LLK/scratch-extension-docs/zipball/master">Download this project as a .zip file</a>
-              <a class="tar_download_link" href="https://github.com/LLK/scratch-extension-docs/tarball/master">Download this project as a tar.gz file</a>
-            </section>
-        </header>
-    </div>
-
-    <!-- MAIN CONTENT -->
-    <div id="main_content_wrap" class="outer">
-      <section id="main_content" class="inner">
-        <h1>
-<a name="contents" class="anchor" href="#contents"><span class="octicon octicon-link"></span></a>Contents</h1>
-
-<ol>
-<li>
-<a href="#writing-extensions-for-scratch-20">Writing Extensions for Scratch 2.0</a>
-
-<ol>
-<li>
-<a href="#adding-blocks">Adding Blocks</a>
-
-<ol>
-<li><a href="#command-blocks">Command blocks</a></li>
-<li><a href="#command-blocks-that-wait">Command blocks that wait</a></li>
-<li><a href="#reporter-blocks">Reporter blocks</a></li>
-<li><a href="#reporter-blocks-that-wait">Reporter blocks that wait</a></li>
-<li><a href="#hat-blocks">Hat blocks</a></li>
-</ol>
-</li>
-<li>
-<a href="#the-extension-descriptor">The Extension Descriptor</a>
-
-<ol>
-<li><a href="#blocks">Blocks</a></li>
-<li><a href="#menus">Menus</a></li>
-<li><a href="#url">URL</a></li>
-</ol>
-</li>
-<li>
-<a href="#hardware-support">Hardware Support</a>
-
-<ol>
-<li><a href="#usb-hid-support">USB HID Support</a></li>
-<li><a href="#serial-device-support">Serial Device Support</a></li>
-</ol>
-</li>
-</ol>
-</li>
-</ol><h1>
-<a name="writing-extensions-for-scratch-20" class="anchor" href="#writing-extensions-for-scratch-20"><span class="octicon octicon-link"></span></a>Writing Extensions for Scratch 2.0</h1>
-
-<p>Writing a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:</p>
-
-<div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-    <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
-
-    <span class="c1">// Cleanup function when the extension is unloaded</span>
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">_shutdown</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{};</span>
-
-    <span class="c1">// Status reporting code</span>
-    <span class="c1">// Use this to report missing hardware, plugin or unsupported browser</span>
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">_getStatus</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-        <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Ready'</span><span class="p">};</span>
-    <span class="p">};</span>
-
-    <span class="c1">// Block and block menu descriptions</span>
-    <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
-        <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
-        <span class="p">]</span>
-    <span class="p">};</span>
-
-    <span class="c1">// Register the extension</span>
-    <span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Sample extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
-<span class="p">})();</span>
-</pre></div>
-
-<h2>
-<a name="adding-blocks" class="anchor" href="#adding-blocks"><span class="octicon octicon-link"></span></a>Adding Blocks</h2>
-
-<p>An extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.</p>
-
-<h3>
-<a name="command-blocks" class="anchor" href="#command-blocks"><span class="octicon octicon-link"></span></a>Command blocks</h3>
-
-<p>To add a simple <em>command</em> block, there needs to be an entry in the <code>descriptors.blocks</code> list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).</p>
-
-<div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-    <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
-
-    <span class="c1">// Cleanup function when the extension is unloaded</span>
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">_shutdown</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{};</span>
-
-    <span class="c1">// Status reporting code</span>
-    <span class="c1">// Use this to report missing hardware, plugin or unsupported browser</span>
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">_getStatus</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-        <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Ready'</span><span class="p">};</span>
-    <span class="p">};</span>
-
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">my_first_block</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-        <span class="c1">// Code that gets executed when the block is run</span>
-    <span class="p">};</span>
-
-    <span class="c1">// Block and block menu descriptions</span>
-    <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
-        <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
-            <span class="c1">// Block type, block name, function name</span>
-            <span class="p">[</span><span class="s1">' '</span><span class="p">,</span> <span class="s1">'my first block'</span><span class="p">,</span> <span class="s1">'my_first_block'</span><span class="p">],</span>
-        <span class="p">]</span>
-    <span class="p">};</span>
-
-    <span class="c1">// Register the extension</span>
-    <span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'My first extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
-<span class="p">})();</span>
-</pre></div>
-
-<h3>
-<a name="command-blocks-that-wait" class="anchor" href="#command-blocks-that-wait"><span class="octicon octicon-link"></span></a>Command blocks that wait</h3>
-
-<p>Sometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a "random wait" block to show how that can be done. Note the use of the <code>console.log</code> statement in the code - most Javascript methods, as well as <a href="http://jquery.com/">jQuery</a> methods will work fine in an extension.</p>
-
-<div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-    <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
-
-    <span class="c1">// Cleanup function when the extension is unloaded</span>
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">_shutdown</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{};</span>
-
-    <span class="c1">// Status reporting code</span>
-    <span class="c1">// Use this to report missing hardware, plugin or unsupported browser</span>
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">_getStatus</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-        <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Ready'</span><span class="p">};</span>
-    <span class="p">};</span>
-
-    <span class="c1">// Functions for block with type 'w' will get a callback function as the </span>
-    <span class="c1">// final argument. This should be called to indicate that the block can</span>
-    <span class="c1">// stop waiting.</span>
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">wait_random</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">callback</span><span class="p">)</span> <span class="p">{</span>
-        <span class="nx">wait</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">();</span>
-        <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'Waiting for '</span> <span class="o">+</span> <span class="nx">wait</span> <span class="o">+</span> <span class="s1">' seconds'</span><span class="p">);</span>
-        <span class="nb">window</span><span class="p">.</span><span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-            <span class="nx">callback</span><span class="p">();</span>
-        <span class="p">},</span> <span class="nx">wait</span><span class="o">*</span><span class="mi">1000</span><span class="p">);</span>
-    <span class="p">};</span>
-
-    <span class="c1">// Block and block menu descriptions</span>
-    <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
-        <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
-            <span class="p">[</span><span class="s1">'w'</span><span class="p">,</span> <span class="s1">'wait for random time'</span><span class="p">,</span> <span class="s1">'wait_random'</span><span class="p">],</span>
-        <span class="p">]</span>
-    <span class="p">};</span>
-
-    <span class="c1">// Register the extension</span>
-    <span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Random wait extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
-<span class="p">})();</span>
-</pre></div>
-
-<h3>
-<a name="reporter-blocks" class="anchor" href="#reporter-blocks"><span class="octicon octicon-link"></span></a>Reporter blocks</h3>
-
-<p>Blocks can also return values, and they are called <em>reporter</em> blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).</p>
-
-<div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-    <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
-
-    <span class="c1">// Cleanup function when the extension is unloaded</span>
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">_shutdown</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{};</span>
-
-    <span class="c1">// Status reporting code</span>
-    <span class="c1">// Use this to report missing hardware, plugin or unsupported browser</span>
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">_getStatus</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-        <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Ready'</span><span class="p">};</span>
-    <span class="p">};</span>
-
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">power</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">base</span><span class="p">,</span> <span class="nx">exponent</span><span class="p">)</span> <span class="p">{</span>
-        <span class="k">return</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">pow</span><span class="p">(</span><span class="nx">base</span><span class="p">,</span> <span class="nx">exponent</span><span class="p">);</span>
-    <span class="p">};</span>
-
-    <span class="c1">// Block and block menu descriptions</span>
-    <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
-        <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
-            <span class="c1">// Block type, block name, function name, param1 default value, param2 default value</span>
-            <span class="p">[</span><span class="s1">'r'</span><span class="p">,</span> <span class="s1">'%n ^ %n'</span><span class="p">,</span> <span class="s1">'power'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span>
-        <span class="p">]</span>
-    <span class="p">};</span>
-
-    <span class="c1">// Register the extension</span>
-    <span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Sample extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
-<span class="p">})();</span>
-</pre></div>
-
-<h3>
-<a name="reporter-blocks-that-wait" class="anchor" href="#reporter-blocks-that-wait"><span class="octicon octicon-link"></span></a>Reporter blocks that wait</h3>
-
-<p>One common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to <a href="http://openweathermap.org/API">Open Weather Map API</a>. Note that the block type is <em>R</em> instead of <em>r</em> (which is for a non-blocking reporter).</p>
-
-<div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-    <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
-
-    <span class="c1">// Cleanup function when the extension is unloaded</span>
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">_shutdown</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{};</span>
-
-    <span class="c1">// Status reporting code</span>
-    <span class="c1">// Use this to report missing hardware, plugin or unsupported browser</span>
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">_getStatus</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-        <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Ready'</span><span class="p">};</span>
-    <span class="p">};</span>
-
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">get_temp</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">location</span><span class="p">,</span> <span class="nx">callback</span><span class="p">)</span> <span class="p">{</span>
-        <span class="c1">// Make an AJAX call to the Open Weather Maps API</span>
-        <span class="nx">$</span><span class="p">.</span><span class="nx">ajax</span><span class="p">({</span>
-              <span class="nx">url</span><span class="o">:</span> <span class="s1">'http://api.openweathermap.org/data/2.5/weather?q='</span><span class="o">+</span><span class="nx">location</span><span class="o">+</span><span class="s1">'&amp;units=imperial'</span><span class="p">,</span>
-              <span class="nx">dataType</span><span class="o">:</span> <span class="s1">'jsonp'</span><span class="p">,</span>
-              <span class="nx">success</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span> <span class="nx">weather_data</span> <span class="p">)</span> <span class="p">{</span>
-                  <span class="c1">// Got the data - parse it and return the temperature</span>
-                  <span class="nx">temperature</span> <span class="o">=</span> <span class="nx">weather_data</span><span class="p">[</span><span class="s1">'main'</span><span class="p">][</span><span class="s1">'temp'</span><span class="p">];</span>
-                  <span class="nx">callback</span><span class="p">(</span><span class="nx">temperature</span><span class="p">);</span>
-              <span class="p">}</span>
-        <span class="p">});</span>
-    <span class="p">};</span>
-
-    <span class="c1">// Block and block menu descriptions</span>
-    <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
-        <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
-            <span class="p">[</span><span class="s1">'R'</span><span class="p">,</span> <span class="s1">'current temperature in city %s'</span><span class="p">,</span> <span class="s1">'get_temp'</span><span class="p">,</span> <span class="s1">'Boston, MA'</span><span class="p">],</span>
-        <span class="p">]</span>
-    <span class="p">};</span>
-
-    <span class="c1">// Register the extension</span>
-    <span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Weather extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
-<span class="p">})();</span>
-</pre></div>
-
-<h3>
-<a name="hat-blocks" class="anchor" href="#hat-blocks"><span class="octicon octicon-link"></span></a>Hat blocks</h3>
-
-<p>Hat blocks go on top of block stacks - examples of Scratch hat blocks include "when green flag clicked" or "when this sprite clicked". To create a hat block through an extension, the block type needs to be set to <em>h</em>, as shown in the example below.</p>
-
-<div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-    <span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
-    <span class="kd">var</span> <span class="nx">alarm_went_off</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span> <span class="c1">// This becomes true after the alarm goes off</span>
-
-    <span class="c1">// Cleanup function when the extension is unloaded</span>
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">_shutdown</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{};</span>
-
-    <span class="c1">// Status reporting code</span>
-    <span class="c1">// Use this to report missing hardware, plugin or unsupported browser</span>
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">_getStatus</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-        <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Ready'</span><span class="p">};</span>
-    <span class="p">};</span>
-
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">set_alarm</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">time</span><span class="p">)</span> <span class="p">{</span>
-       <span class="nb">window</span><span class="p">.</span><span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-           <span class="nx">alarm_went_off</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
-       <span class="p">},</span> <span class="nx">time</span><span class="o">*</span><span class="mi">1000</span><span class="p">);</span>
-    <span class="p">};</span>
-
-    <span class="nx">ext</span><span class="p">.</span><span class="nx">when_alarm</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-       <span class="c1">// Reset alarm_went_off if it is true, and return true</span>
-       <span class="c1">// otherwise, return false.</span>
-       <span class="k">if</span> <span class="p">(</span><span class="nx">alarm_went_off</span> <span class="o">===</span> <span class="kc">true</span><span class="p">)</span> <span class="p">{</span>
-           <span class="nx">alarm_went_off</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
-           <span class="k">return</span> <span class="kc">true</span><span class="p">;</span>
-       <span class="p">}</span>
-
-       <span class="k">return</span> <span class="kc">false</span><span class="p">;</span>
-    <span class="p">};</span>
-
-    <span class="c1">// Block and block menu descriptions</span>
-    <span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
-        <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
-            <span class="p">[</span><span class="s1">''</span><span class="p">,</span> <span class="s1">'run alarm after %n seconds'</span><span class="p">,</span> <span class="s1">'set_alarm'</span><span class="p">,</span> <span class="s1">'2'</span><span class="p">],</span>
-            <span class="p">[</span><span class="s1">'h'</span><span class="p">,</span> <span class="s1">'when alarm goes off'</span><span class="p">,</span> <span class="s1">'when_alarm'</span><span class="p">],</span>
-        <span class="p">]</span>
-    <span class="p">};</span>
-
-    <span class="c1">// Register the extension</span>
-    <span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Alarm extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
-<span class="p">})();</span>
-</pre></div>
-
-<h2>
-<a name="the-extension-descriptor" class="anchor" href="#the-extension-descriptor"><span class="octicon octicon-link"></span></a>The Extension Descriptor</h2>
-
-<p>The extension descriptor can be used for more than just listing the blocks offered by your extension. Here is an example of a more complex descriptor:</p>
-
-<div class="highlight highlight-javascript"><pre><span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
-    <span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
-        <span class="p">[</span><span class="s1">'w'</span><span class="p">,</span> <span class="s1">'turn motor on for %n secs'</span><span class="p">,</span>             <span class="s1">'motorOnFor'</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span>
-        <span class="p">[</span><span class="s1">' '</span><span class="p">,</span> <span class="s1">'turn motor on'</span><span class="p">,</span>                         <span class="s1">'allMotorsOn'</span><span class="p">],</span>
-        <span class="p">[</span><span class="s1">' '</span><span class="p">,</span> <span class="s1">'turn motor off'</span><span class="p">,</span>                        <span class="s1">'allMotorsOff'</span><span class="p">],</span>
-        <span class="p">[</span><span class="s1">' '</span><span class="p">,</span> <span class="s1">'set motor power %n'</span><span class="p">,</span>                    <span class="s1">'startMotorPower'</span><span class="p">,</span> <span class="mi">100</span><span class="p">],</span>
-        <span class="p">[</span><span class="s1">' '</span><span class="p">,</span> <span class="s1">'set motor direction %m.motorDirection'</span><span class="p">,</span> <span class="s1">'setMotorDirection'</span><span class="p">,</span> <span class="s1">'this way'</span><span class="p">],</span>
-        <span class="p">[</span><span class="s1">'h'</span><span class="p">,</span> <span class="s1">'when distance %m.lessMore %n'</span><span class="p">,</span>          <span class="s1">'whenDistance'</span><span class="p">,</span> <span class="s1">'&lt;'</span><span class="p">,</span> <span class="mi">20</span><span class="p">],</span>
-        <span class="p">[</span><span class="s1">'h'</span><span class="p">,</span> <span class="s1">'when tilt %m.eNe %n'</span><span class="p">,</span>                   <span class="s1">'whenTilt'</span><span class="p">,</span> <span class="s1">'='</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span>
-        <span class="p">[</span><span class="s1">'r'</span><span class="p">,</span> <span class="s1">'distance'</span><span class="p">,</span>                              <span class="s1">'getDistance'</span><span class="p">],</span>
-        <span class="p">[</span><span class="s1">'r'</span><span class="p">,</span> <span class="s1">'tilt'</span><span class="p">,</span>                                  <span class="s1">'getTilt'</span><span class="p">]</span>
-    <span class="p">],</span>
-    <span class="nx">menus</span><span class="o">:</span> <span class="p">{</span>
-        <span class="nx">motorDirection</span><span class="o">:</span> <span class="p">[</span><span class="s1">'this way'</span><span class="p">,</span> <span class="s1">'that way'</span><span class="p">,</span> <span class="s1">'reverse'</span><span class="p">],</span>
-        <span class="nx">lessMore</span><span class="o">:</span> <span class="p">[</span><span class="s1">'&lt;'</span><span class="p">,</span> <span class="s1">'&gt;'</span><span class="p">],</span>
-        <span class="nx">eNe</span><span class="o">:</span> <span class="p">[</span><span class="s1">'='</span><span class="p">,</span><span class="s1">'not ='</span><span class="p">]</span>
-    <span class="p">},</span>
-    <span class="nx">url</span><span class="o">:</span> <span class="s1">'http://info.scratch.mit.edu/WeDo'</span>
-<span class="p">};</span>
-</pre></div>
-
-<h3>
-<a name="blocks" class="anchor" href="#blocks"><span class="octicon octicon-link"></span></a>Blocks</h3>
-
-<p>The blocks property is an array of block definitions. Each block definition is an array of three or more items.  The required items are: op code, formatted label, and method name. These may optionally be followed by default block argument values.</p>
-
-<p>The full list of block types available to an extension is as follows. Note that any operation that will run for more than a few milliseconds or will wait for an external event should be run asynchronously, as described above in the <a href="#reporter-blocks-that-wait">Reporter blocks that wait</a> and <a href="#command-blocks-that-wait">Command blocks that wait</a> sections.</p>
-
-<table>
-<thead><tr>
-<th>Op Code</th>
-<th>Meaning</th>
-</tr></thead>
-<tbody>
-<tr>
-<td>
-<code>' '</code> (space)</td>
-<td>Synchronous command</td>
-</tr>
-<tr>
-<td><code>'w'</code></td>
-<td>Asynchronous command</td>
-</tr>
-<tr>
-<td><code>'r'</code></td>
-<td>Synchronous reporter</td>
-</tr>
-<tr>
-<td><code>'R'</code></td>
-<td>Asynchronous reporter</td>
-</tr>
-<tr>
-<td><code>'h'</code></td>
-<td>Hat block (always synchronous)</td>
-</tr>
-</tbody>
-</table><p>Each block argument is identified by a <code>%</code> character and the character following it specifies the type.  The types are: <code>%n</code> for number, <code>%s</code> for string, and <code>%m</code> for menu.  Menus also identify which menu to use with a period and the name of the menu like this: <code>%m.menuName</code>.</p>
-
-<h3>
-<a name="menus" class="anchor" href="#menus"><span class="octicon octicon-link"></span></a>Menus</h3>
-
-<p>The <code>menus</code> property is an object whose properties define the menus used by block arguments in the extension.  The property name is the menu name as it is used in the block definition(s). The property value is an array of options to display in the menu dropdown interface in Scratch.</p>
-
-<p>For example, the <code>setMotorDirection</code> block in the example above includes <code>%m.motorDirection</code>, which will cause it to display a menu with <code>'this way'</code>, <code>'that way'</code>, and <code>'reverse'</code> as options.</p>
-
-<h3>
-<a name="url" class="anchor" href="#url"><span class="octicon octicon-link"></span></a>URL</h3>
-
-<p>The <code>url</code> property refers to a web page which describes the extension. Ideally, this page would describe each block, give examples, and identify any hardware or software required to use the extension. If the user clicks the <code>'About [extension name]...'</code> menu item within Scratch, this is the URL that will be opened.</p>
-
-<h2>
-<a name="hardware-support" class="anchor" href="#hardware-support"><span class="octicon octicon-link"></span></a>Hardware Support</h2>
-
-<p>Scratch provides its own set of APIs in order to allow extensions to access certain types of hardware. Currently, Scratch extensions may access the following types of hardware:</p>
-
-<ul>
-<li>Serial devices such as the PicoBoard</li>
-<li>USB HID devices such as joysticks or the LEGO WeDo</li>
-</ul><p>Extensions that request hardware access are required to implement two additional methods on the extension instance: <code>_deviceConnected()</code> and <code>_deviceRemoved()</code>. Both methods receive a device instance. To use the integrated hardware functions of the Scratch Extension API you pass the hardware information in the registration call:</p>
-
-<div class="highlight highlight-javascript"><pre><span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Example Name'</span><span class="p">,</span> <span class="nx">descriptor_object</span><span class="p">,</span> <span class="nx">ext_instance</span><span class="p">[,</span> <span class="nx">hardware_info</span><span class="p">]);</span>
-</pre></div>
-
-<p>The <code>_getStatus()</code> method of your extension can be used to indicate whether your extension has successfully communicated with a hardware device. For example:</p>
-
-<div class="highlight highlight-javascript"><pre><span class="nx">ext</span><span class="p">.</span><span class="nx">_getStatus</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-    <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">device</span><span class="p">)</span> <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Device not connected'</span><span class="p">};</span>
-    <span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Device connected'</span><span class="p">};</span>
-<span class="p">}</span>
-</pre></div>
-
-<p>The value returned by <code>_getStatus()</code> corresponds to the color of the status 'light' in Scratch and indicates the general state of your extension. The <code>msg</code> property can be used to provide more specific information.</p>
-
-<table>
-<thead><tr>
-<th>Value</th>
-<th>Color</th>
-<th>Meaning</th>
-</tr></thead>
-<tbody>
-<tr>
-<td>0</td>
-<td>red</td>
-<td>error</td>
-</tr>
-<tr>
-<td>1</td>
-<td>yellow</td>
-<td>not ready</td>
-</tr>
-<tr>
-<td>2</td>
-<td>green</td>
-<td>ready</td>
-</tr>
-</tbody>
-</table><p>The details of the <code>hardware_info</code> parameter and the <code>_deviceConnected()</code> and <code>_deviceRemoved()</code> methods are described below in sections specific to each type of device.</p>
-
-<p><em><em>API Note: The hardware API is still somewhat experimental and may change in the future. In particular, we will soon be making a change to methods that return hardware data, such as <code>read()</code> for HID devices: these methods will take a callback in instead of returning data directly. This change is necessary to improve compatibility and allow us to expand the variety of environments in which hardware extensions are available.</em></em></p>
-
-<h3>
-<a name="usb-hid-support" class="anchor" href="#usb-hid-support"><span class="octicon octicon-link"></span></a>USB HID Support</h3>
-
-<p><em>An example HID device extension is available <a href="https://github.com/LLK/scratch-extension-docs/blob/master/joystickExtension.js">here</a>.</em>
-<em>More information about the HID protocol is available <a href="http://www.usb.org/developers/devclass_docs/HID1_11.pdf">here</a>.</em></p>
-
-<p>To let the extension system know that your extension is interested in USB HID devices, pass an object like this for the <code>hardware_info</code> parameter of the <code>register()</code> method:</p>
-
-<div class="highlight highlight-javascript"><pre><span class="kd">var</span> <span class="nx">hid_info</span> <span class="o">=</span> <span class="p">{</span><span class="nx">type</span><span class="o">:</span> <span class="s1">'hid'</span><span class="p">,</span> <span class="nx">vendor</span><span class="o">:</span> <span class="mh">0x0694</span><span class="p">,</span> <span class="nx">product</span><span class="o">:</span> <span class="mh">0x0003</span><span class="p">};</span>
-<span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Example'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">,</span> <span class="nx">hid_info</span><span class="p">);</span>
-</pre></div>
-
-<p>The <code>vendor</code> and <code>product</code> values indicate the USB vendor and product ID of the device your extension supports. These values are frequently expressed as four-digit hexadecimal values, as indicated with the <code>0x</code> prefix in the JavaScript above.</p>
-
-<p>If a device is connected with matching vendor and product IDs, Scratch will call the <code>_deviceConnected()</code> method on your extension and pass an object representing that device. Your <code>_deviceConnected()</code> method should keep track of the device object and set up communication as necessary for your needs. For example, this will start polling the device for new HID data every 20 milliseconds:</p>
-
-<div class="highlight highlight-javascript"><pre><span class="kd">var</span> <span class="nx">poller</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
-<span class="nx">ext</span><span class="p">.</span><span class="nx">_deviceConnected</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">dev</span><span class="p">)</span> <span class="p">{</span>
-    <span class="k">if</span><span class="p">(</span><span class="nx">device</span><span class="p">)</span> <span class="k">return</span><span class="p">;</span>
-
-    <span class="nx">device</span> <span class="o">=</span> <span class="nx">dev</span><span class="p">;</span>
-    <span class="nx">device</span><span class="p">.</span><span class="nx">open</span><span class="p">();</span>
-
-    <span class="nx">poller</span> <span class="o">=</span> <span class="nx">setInterval</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-        <span class="nx">rawData</span> <span class="o">=</span> <span class="nx">device</span><span class="p">.</span><span class="nx">read</span><span class="p">();</span>
-    <span class="p">},</span> <span class="mi">20</span><span class="p">);</span>
-<span class="p">};</span>
-</pre></div>
-
-<p>Once a connection to your device is established, your extension may use the <code>read()</code> and <code>write()</code> methods on the device object to communicate with it. These methods use <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays">ArrayBuffer</a> objects to contain data being sent or received.</p>
-
-<ul>
-<li>
-<code>device.read(48)</code> will attempt to read 48 bytes of data and return an ArrayBuffer containing any data successfully read. Note that one packet of HID data is 48 bytes. <em><em>This method is likely to change soon. See the API Note above.</em></em>
-</li>
-<li>
-<code>device.write(buffer)</code> will send the given ArrayBuffer's data to the device.</li>
-</ul><p>Your extension will also be notified if a matching device is disconnected, allowing your extension a chance to stop communication:</p>
-
-<div class="highlight highlight-javascript"><pre><span class="nx">ext</span><span class="p">.</span><span class="nx">_deviceRemoved</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">dev</span><span class="p">)</span> <span class="p">{</span>
-    <span class="k">if</span><span class="p">(</span><span class="nx">device</span> <span class="o">!=</span> <span class="nx">dev</span><span class="p">)</span> <span class="k">return</span><span class="p">;</span>
-    <span class="k">if</span><span class="p">(</span><span class="nx">poller</span><span class="p">)</span> <span class="nx">poller</span> <span class="o">=</span> <span class="nx">clearInterval</span><span class="p">(</span><span class="nx">poller</span><span class="p">);</span>
-    <span class="nx">device</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
-<span class="p">};</span>
-</pre></div>
-
-<p>Finally, your extension's <code>_shutdown()</code> method will be executed when the extension itself is shut down. For example:</p>
-
-<div class="highlight highlight-javascript"><pre><span class="nx">ext</span><span class="p">.</span><span class="nx">_shutdown</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-    <span class="k">if</span><span class="p">(</span><span class="nx">poller</span><span class="p">)</span> <span class="nx">poller</span> <span class="o">=</span> <span class="nx">clearInterval</span><span class="p">(</span><span class="nx">poller</span><span class="p">);</span>
-    <span class="k">if</span><span class="p">(</span><span class="nx">device</span><span class="p">)</span> <span class="nx">device</span><span class="p">.</span><span class="nx">close</span><span class="p">();</span>
-    <span class="nx">device</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
-<span class="p">}</span>
-</pre></div>
-
-<h3>
-<a name="serial-device-support" class="anchor" href="#serial-device-support"><span class="octicon octicon-link"></span></a>Serial Device Support</h3>
-
-<p><em>An example serial device extension is available <a href="https://github.com/LLK/scratch-extension-docs/blob/master/picoExtension.js">here</a>.</em></p>
-
-<p>To let the extension system know that your extension is interested in serial devices, pass an object like this for the <code>hardware_info</code> parameter of the <code>register()</code> method:</p>
-
-<div class="highlight highlight-javascript"><pre><span class="kd">var</span> <span class="nx">serial_info</span> <span class="o">=</span> <span class="p">{</span><span class="nx">type</span><span class="o">:</span> <span class="s1">'serial'</span><span class="p">};</span>
-<span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Example'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">,</span> <span class="nx">serial_info</span><span class="p">);</span>
-</pre></div>
-
-<p>Your extension's <code>_deviceConnected()</code> method will be called for each serial port present on the computer. Your extension is responsible for checking if a suitable device is attached to that port and continuing on to the next port if necessary. Do not assume that the first time Scratch calls your <code>_deviceConnected()</code> will correspond to your device's serial port. The PicoBoard extension shows an example of how to deal with this situation: if no valid PicoBoard communication is received on a given port withing a particular timeout, the extension assumes that there is no PicoBoard on that port and continues scanning to the next port.</p>
-
-<div class="highlight highlight-javascript"><pre><span class="kd">var</span> <span class="nx">potentialDevices</span> <span class="o">=</span> <span class="p">[];</span>
-<span class="nx">ext</span><span class="p">.</span><span class="nx">_deviceConnected</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">dev</span><span class="p">)</span> <span class="p">{</span>
-    <span class="nx">potentialDevices</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">dev</span><span class="p">);</span>
-
-    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">device</span><span class="p">)</span> <span class="p">{</span>
-        <span class="nx">tryNextDevice</span><span class="p">();</span>
-    <span class="p">}</span>
-<span class="p">}</span>
-</pre></div>
-
-<p>To communicate with a given serial port, your extension should open it with whichever options are appropriate for your device. These parameters are based on <a href="http://www.boost.org/doc/libs/1_50_0/doc/html/boost_asio/reference/serial_port_base.html">Boost.Asio's serial port options</a>. For a PicoBoard:</p>
-
-<div class="highlight highlight-javascript"><pre><span class="nx">device</span><span class="p">.</span><span class="nx">open</span><span class="p">({</span> <span class="nx">stopBits</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">bitRate</span><span class="o">:</span> <span class="mi">38400</span><span class="p">,</span> <span class="nx">ctsFlowControl</span><span class="o">:</span> <span class="mi">0</span> <span class="p">});</span>
-</pre></div>
-
-<p>The full set of options available for a serial port are as follows:</p>
-
-<table>
-<thead><tr>
-<th>Option</th>
-<th>Default</th>
-<th>Valid values</th>
-<th>Description</th>
-</tr></thead>
-<tbody>
-<tr>
-<td>bitRate</td>
-<td>9600</td>
-<td>Any valid baud rate</td>
-<td>Up to  The bit (or baud) rate at which to communicate.</td>
-</tr>
-<tr>
-<td>bufferSize</td>
-<td>4096</td>
-<td>Up to 8192</td>
-<td>The maximum amount of data that can be received at a time.</td>
-</tr>
-<tr>
-<td>ctsFlowControl</td>
-<td>1 (software)</td>
-<td>0 (none), 1 (software), 2 (hardware)</td>
-<td>The type of flow control to use.</td>
-</tr>
-<tr>
-<td>dataBits</td>
-<td>8</td>
-<td>5, 6, 7, 8</td>
-<td>The number of data bits per character.</td>
-</tr>
-<tr>
-<td>parityBit</td>
-<td>0 (none)</td>
-<td>0 (none), 1 (odd), 2 (even)</td>
-<td>Whether and how to use the parity bit in each character.</td>
-</tr>
-<tr>
-<td>stopBits</td>
-<td>1 (1.5 bits)</td>
-<td>0 (1 bit), 1 (1.5 bits), 2 (2 bits)</td>
-<td>The number of stop bits per character.</td>
-</tr>
-</tbody>
-</table><p>Once a connection to your device is established, your extension may use the <code>send()</code> method to send data to your device, and the <code>set_receive_handler()</code> method to register a function to handle received data. These methods use <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays">ArrayBuffer</a> objects to contain data being sent or received.</p>
-
-<ul>
-<li>
-<code>device.send(buffer)</code> will send the given ArrayBuffer's data to the device.</li>
-<li>
-<code>device.set_receive_handler(myReceiveHandler)</code> will result in <code>myReceiveHandler(buffer)</code> being called any time Scratch receives data from the device. Your receive handler will be supplied an ArrayBuffer containing the received data.</li>
-</ul><p>Your extension will also be notified if a device is disconnected, allowing your extension a chance to stop communication:</p>
-
-<div class="highlight highlight-javascript"><pre><span class="nx">ext</span><span class="p">.</span><span class="nx">_deviceRemoved</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">dev</span><span class="p">)</span> <span class="p">{</span>
-    <span class="k">if</span><span class="p">(</span><span class="nx">device</span> <span class="o">!=</span> <span class="nx">dev</span><span class="p">)</span> <span class="k">return</span><span class="p">;</span>
-    <span class="k">if</span><span class="p">(</span><span class="nx">poller</span><span class="p">)</span> <span class="nx">poller</span> <span class="o">=</span> <span class="nx">clearInterval</span><span class="p">(</span><span class="nx">poller</span><span class="p">);</span>
-    <span class="nx">device</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
-<span class="p">};</span>
-</pre></div>
-
-<p>Finally, your extension's <code>_shutdown()</code> method will be executed when the extension itself is shut down. For example:</p>
-
-<div class="highlight highlight-javascript"><pre><span class="nx">ext</span><span class="p">.</span><span class="nx">_shutdown</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-    <span class="k">if</span><span class="p">(</span><span class="nx">poller</span><span class="p">)</span> <span class="nx">poller</span> <span class="o">=</span> <span class="nx">clearInterval</span><span class="p">(</span><span class="nx">poller</span><span class="p">);</span>
-    <span class="k">if</span><span class="p">(</span><span class="nx">device</span><span class="p">)</span> <span class="nx">device</span><span class="p">.</span><span class="nx">close</span><span class="p">();</span>
-    <span class="nx">device</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
-<span class="p">}</span>
-</pre></div>
-      </section>
-    </div>
-
-    <!-- FOOTER  -->
-    <div id="footer_wrap" class="outer">
-      <footer class="inner">
-        <p class="copyright">Scratch Extensions maintained by <a href="https://github.com/LLK">LLK</a></p>
-        <p>Published with <a href="http://pages.github.com">GitHub Pages</a></p>
-      </footer>
-    </div>
-
-    
-
-  </body>
-</html>
diff --git a/index.md b/index.md
new file mode 100644
index 0000000..3bada31
--- /dev/null
+++ b/index.md
@@ -0,0 +1,439 @@
+---
+title: 'Scratch Extensions'
+tagline: 'Extensions for Scratch 2.0'
+layout: default
+---
+# Contents
+
+1. [Writing Extensions for Scratch 2.0](#writing-extensions-for-scratch-20)
+   1. [Adding Blocks](#adding-blocks)
+      1. [Command blocks](#command-blocks)
+      1. [Command blocks that wait](#command-blocks-that-wait)
+      1. [Reporter blocks](#reporter-blocks)
+      1. [Reporter blocks that wait](#reporter-blocks-that-wait)
+      1. [Hat blocks](#hat-blocks)
+   1. [The Extension Descriptor](#the-extension-descriptor)
+      1. [Blocks](#blocks)
+      1. [Menus](#menus)
+      1. [URL](#url)
+   1. [Hardware Support](#hardware-support)
+      1. [USB HID Support](#usb-hid-support)
+      1. [Serial Device Support](#serial-device-support)
+
+# Writing Extensions for Scratch 2.0
+
+Writing a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:
+
+```javascript
+new (function() {
+    var ext = this;
+
+    // Cleanup function when the extension is unloaded
+    ext._shutdown = function() {};
+
+    // Status reporting code
+    // Use this to report missing hardware, plugin or unsupported browser
+    ext._getStatus = function() {
+        return {status: 2, msg: 'Ready'};
+    };
+
+    // Block and block menu descriptions
+    var descriptor = {
+        blocks: [
+        ]
+    };
+
+    // Register the extension
+    ScratchExtensions.register('Sample extension', descriptor, ext);
+})();
+```
+
+## Adding Blocks
+
+An extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.
+
+### Command blocks
+
+To add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).
+
+```javascript
+new (function() {
+    var ext = this;
+
+    // Cleanup function when the extension is unloaded
+    ext._shutdown = function() {};
+
+    // Status reporting code
+    // Use this to report missing hardware, plugin or unsupported browser
+    ext._getStatus = function() {
+        return {status: 2, msg: 'Ready'};
+    };
+
+    ext.my_first_block = function() {
+        // Code that gets executed when the block is run
+    };
+
+    // Block and block menu descriptions
+    var descriptor = {
+        blocks: [
+            // Block type, block name, function name
+            [' ', 'my first block', 'my_first_block'],
+        ]
+    };
+
+    // Register the extension
+    ScratchExtensions.register('My first extension', descriptor, ext);
+})();
+```
+
+### Command blocks that wait
+
+Sometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a "random wait" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as [jQuery](http://jquery.com/) methods will work fine in an extension.
+
+```javascript
+new (function() {
+    var ext = this;
+
+    // Cleanup function when the extension is unloaded
+    ext._shutdown = function() {};
+
+    // Status reporting code
+    // Use this to report missing hardware, plugin or unsupported browser
+    ext._getStatus = function() {
+        return {status: 2, msg: 'Ready'};
+    };
+
+    // Functions for block with type 'w' will get a callback function as the 
+    // final argument. This should be called to indicate that the block can
+    // stop waiting.
+    ext.wait_random = function(callback) {
+        wait = Math.random();
+        console.log('Waiting for ' + wait + ' seconds');
+        window.setTimeout(function() {
+            callback();
+        }, wait*1000);
+    };
+
+    // Block and block menu descriptions
+    var descriptor = {
+        blocks: [
+            ['w', 'wait for random time', 'wait_random'],
+        ]
+    };
+
+    // Register the extension
+    ScratchExtensions.register('Random wait extension', descriptor, ext);
+})();
+```
+
+### Reporter blocks
+
+Blocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).
+
+```javascript
+new (function() {
+    var ext = this;
+
+    // Cleanup function when the extension is unloaded
+    ext._shutdown = function() {};
+
+    // Status reporting code
+    // Use this to report missing hardware, plugin or unsupported browser
+    ext._getStatus = function() {
+        return {status: 2, msg: 'Ready'};
+    };
+
+    ext.power = function(base, exponent) {
+        return Math.pow(base, exponent);
+    };
+
+    // Block and block menu descriptions
+    var descriptor = {
+        blocks: [
+            // Block type, block name, function name, param1 default value, param2 default value
+            ['r', '%n ^ %n', 'power', 2, 3],
+        ]
+    };
+
+    // Register the extension
+    ScratchExtensions.register('Sample extension', descriptor, ext);
+})();
+```
+
+### Reporter blocks that wait
+
+One common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).
+
+```javascript
+new (function() {
+    var ext = this;
+
+    // Cleanup function when the extension is unloaded
+    ext._shutdown = function() {};
+
+    // Status reporting code
+    // Use this to report missing hardware, plugin or unsupported browser
+    ext._getStatus = function() {
+        return {status: 2, msg: 'Ready'};
+    };
+
+    ext.get_temp = function(location, callback) {
+        // Make an AJAX call to the Open Weather Maps API
+        $.ajax({
+              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',
+              dataType: 'jsonp',
+              success: function( weather_data ) {
+                  // Got the data - parse it and return the temperature
+                  temperature = weather_data['main']['temp'];
+                  callback(temperature);
+              }
+        });
+    };
+
+    // Block and block menu descriptions
+    var descriptor = {
+        blocks: [
+            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],
+        ]
+    };
+
+    // Register the extension
+    ScratchExtensions.register('Weather extension', descriptor, ext);
+})();
+```
+
+### Hat blocks
+
+Hat blocks go on top of block stacks - examples of Scratch hat blocks include "when green flag clicked" or "when this sprite clicked". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.
+
+```javascript
+new (function() {
+    var ext = this;
+    var alarm_went_off = false; // This becomes true after the alarm goes off
+
+    // Cleanup function when the extension is unloaded
+    ext._shutdown = function() {};
+
+    // Status reporting code
+    // Use this to report missing hardware, plugin or unsupported browser
+    ext._getStatus = function() {
+        return {status: 2, msg: 'Ready'};
+    };
+
+    ext.set_alarm = function(time) {
+       window.setTimeout(function() {
+           alarm_went_off = true;
+       }, time*1000);
+    };
+
+    ext.when_alarm = function() {
+       // Reset alarm_went_off if it is true, and return true
+       // otherwise, return false.
+       if (alarm_went_off === true) {
+           alarm_went_off = false;
+           return true;
+       }
+
+       return false;
+    };
+
+    // Block and block menu descriptions
+    var descriptor = {
+        blocks: [
+            ['', 'run alarm after %n seconds', 'set_alarm', '2'],
+            ['h', 'when alarm goes off', 'when_alarm'],
+        ]
+    };
+
+    // Register the extension
+    ScratchExtensions.register('Alarm extension', descriptor, ext);
+})();
+```
+
+## The Extension Descriptor
+
+The extension descriptor can be used for more than just listing the blocks offered by your extension. Here is an example of a more complex descriptor:
+```javascript
+var descriptor = {
+    blocks: [
+        ['w', 'turn motor on for %n secs',             'motorOnFor', 1],
+        [' ', 'turn motor on',                         'allMotorsOn'],
+        [' ', 'turn motor off',                        'allMotorsOff'],
+        [' ', 'set motor power %n',                    'startMotorPower', 100],
+        [' ', 'set motor direction %m.motorDirection', 'setMotorDirection', 'this way'],
+        ['h', 'when distance %m.lessMore %n',          'whenDistance', '<', 20],
+        ['h', 'when tilt %m.eNe %n',                   'whenTilt', '=', 1],
+        ['r', 'distance',                              'getDistance'],
+        ['r', 'tilt',                                  'getTilt']
+    ],
+    menus: {
+        motorDirection: ['this way', 'that way', 'reverse'],
+        lessMore: ['<', '>'],
+        eNe: ['=','not =']
+    },
+    url: 'http://info.scratch.mit.edu/WeDo'
+};
+```
+
+### Blocks
+
+The blocks property is an array of block definitions. Each block definition is an array of three or more items.  The required items are: op code, formatted label, and method name. These may optionally be followed by default block argument values.
+
+The full list of block types available to an extension is as follows. Note that any operation that will run for more than a few milliseconds or will wait for an external event should be run asynchronously, as described above in the [Reporter blocks that wait](#reporter-blocks-that-wait) and [Command blocks that wait](#command-blocks-that-wait) sections.
+
+| Op Code | Meaning
+| ------- | -------
+| `' '` (space) | Synchronous command
+| `'w'`   | Asynchronous command
+| `'r'`   | Synchronous reporter
+| `'R'`   | Asynchronous reporter
+| `'h'`   | Hat block (always synchronous)
+
+Each block argument is identified by a `%` character and the character following it specifies the type.  The types are: `%n` for number, `%s` for string, and `%m` for menu.  Menus also identify which menu to use with a period and the name of the menu like this: `%m.menuName`.
+
+### Menus
+
+The `menus` property is an object whose properties define the menus used by block arguments in the extension.  The property name is the menu name as it is used in the block definition(s). The property value is an array of options to display in the menu dropdown interface in Scratch.
+
+For example, the `setMotorDirection` block in the example above includes `%m.motorDirection`, which will cause it to display a menu with `'this way'`, `'that way'`, and `'reverse'` as options.
+
+### URL
+
+The `url` property refers to a web page which describes the extension. Ideally, this page would describe each block, give examples, and identify any hardware or software required to use the extension. If the user clicks the `'About [extension name]...'` menu item within Scratch, this is the URL that will be opened.
+
+## Hardware Support
+
+Scratch provides its own set of APIs in order to allow extensions to access certain types of hardware. Currently, Scratch extensions may access the following types of hardware:
+- Serial devices such as the PicoBoard
+- USB HID devices such as joysticks or the LEGO WeDo
+
+Extensions that request hardware access are required to implement two additional methods on the extension instance: `_deviceConnected()` and `_deviceRemoved()`. Both methods receive a device instance. To use the integrated hardware functions of the Scratch Extension API you pass the hardware information in the registration call:
+```javascript
+ScratchExtensions.register('Example Name', descriptor_object, ext_instance[, hardware_info]);
+```
+
+The `_getStatus()` method of your extension can be used to indicate whether your extension has successfully communicated with a hardware device. For example:
+```javascript
+ext._getStatus = function() {
+    if(!device) return {status: 1, msg: 'Device not connected'};
+    return {status: 2, msg: 'Device connected'};
+}
+```
+
+The value returned by `_getStatus()` corresponds to the color of the status 'light' in Scratch and indicates the general state of your extension. The `msg` property can be used to provide more specific information.
+
+| Value | Color  | Meaning   |
+| ----- | ------ | --------- |
+| 0     | red    | error     |
+| 1     | yellow | not ready |
+| 2     | green  | ready     |
+
+The details of the `hardware_info` parameter and the `_deviceConnected()` and `_deviceRemoved()` methods are described below in sections specific to each type of device.
+
+*_API Note: The hardware API is still somewhat experimental and may change in the future. In particular, we will soon be making a change to methods that return hardware data, such as `read()` for HID devices: these methods will take a callback in instead of returning data directly. This change is necessary to improve compatibility and allow us to expand the variety of environments in which hardware extensions are available._*
+
+### USB HID Support
+_An example HID device extension is available [here](https://github.com/LLK/scratch-extension-docs/blob/master/joystickExtension.js)._
+_More information about the HID protocol is available [here](http://www.usb.org/developers/devclass_docs/HID1_11.pdf)._
+
+To let the extension system know that your extension is interested in USB HID devices, pass an object like this for the `hardware_info` parameter of the `register()` method:
+```javascript
+var hid_info = {type: 'hid', vendor: 0x0694, product: 0x0003};
+ScratchExtensions.register('Example', descriptor, ext, hid_info);
+```
+The `vendor` and `product` values indicate the USB vendor and product ID of the device your extension supports. These values are frequently expressed as four-digit hexadecimal values, as indicated with the `0x` prefix in the JavaScript above.
+
+If a device is connected with matching vendor and product IDs, Scratch will call the `_deviceConnected()` method on your extension and pass an object representing that device. Your `_deviceConnected()` method should keep track of the device object and set up communication as necessary for your needs. For example, this will start polling the device for new HID data every 20 milliseconds:
+```javascript
+var poller = null;
+ext._deviceConnected = function(dev) {
+    if(device) return;
+
+    device = dev;
+    device.open();
+
+    poller = setInterval(function() {
+        rawData = device.read();
+    }, 20);
+};
+```
+
+Once a connection to your device is established, your extension may use the `read()` and `write()` methods on the device object to communicate with it. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.
+* `device.read(48)` will attempt to read 48 bytes of data and return an ArrayBuffer containing any data successfully read. Note that one packet of HID data is 48 bytes. *_This method is likely to change soon. See the API Note above._*
+* `device.write(buffer)` will send the given ArrayBuffer's data to the device.
+
+Your extension will also be notified if a matching device is disconnected, allowing your extension a chance to stop communication:
+```javascript
+ext._deviceRemoved = function(dev) {
+    if(device != dev) return;
+    if(poller) poller = clearInterval(poller);
+    device = null;
+};
+```
+
+Finally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:
+```javascript
+ext._shutdown = function() {
+    if(poller) poller = clearInterval(poller);
+    if(device) device.close();
+    device = null;
+}
+```
+
+### Serial Device Support
+_An example serial device extension is available [here](https://github.com/LLK/scratch-extension-docs/blob/master/picoExtension.js)._
+
+To let the extension system know that your extension is interested in serial devices, pass an object like this for the `hardware_info` parameter of the `register()` method:
+```javascript
+var serial_info = {type: 'serial'};
+ScratchExtensions.register('Example', descriptor, ext, serial_info);
+```
+
+Your extension's `_deviceConnected()` method will be called for each serial port present on the computer. Your extension is responsible for checking if a suitable device is attached to that port and continuing on to the next port if necessary. Do not assume that the first time Scratch calls your `_deviceConnected()` will correspond to your device's serial port. The PicoBoard extension shows an example of how to deal with this situation: if no valid PicoBoard communication is received on a given port withing a particular timeout, the extension assumes that there is no PicoBoard on that port and continues scanning to the next port.
+```javascript
+var potentialDevices = [];
+ext._deviceConnected = function(dev) {
+    potentialDevices.push(dev);
+
+    if (!device) {
+        tryNextDevice();
+    }
+}
+```
+
+To communicate with a given serial port, your extension should open it with whichever options are appropriate for your device. These parameters are based on [Boost.Asio's serial port options](http://www.boost.org/doc/libs/1_50_0/doc/html/boost_asio/reference/serial_port_base.html). For a PicoBoard:
+```javascript
+device.open({ stopBits: 0, bitRate: 38400, ctsFlowControl: 0 });
+```
+The full set of options available for a serial port are as follows:
+
+| Option         | Default | Valid values | Description
+| -------------- | ------- | ------------ | -----------
+| bitRate        | 9600 | Any valid baud rate | Up to  The bit (or baud) rate at which to communicate.
+| bufferSize     | 4096 | Up to 8192 | The maximum amount of data that can be received at a time.
+| ctsFlowControl | 1 (software) | 0 (none), 1 (software), 2 (hardware) | The type of flow control to use.
+| dataBits       | 8 | 5, 6, 7, 8 | The number of data bits per character.
+| parityBit      | 0 (none) | 0 (none), 1 (odd), 2 (even) | Whether and how to use the parity bit in each character.
+| stopBits       | 1 (1.5 bits) | 0 (1 bit), 1 (1.5 bits), 2 (2 bits) | The number of stop bits per character.
+
+Once a connection to your device is established, your extension may use the `send()` method to send data to your device, and the `set_receive_handler()` method to register a function to handle received data. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.
+* `device.send(buffer)` will send the given ArrayBuffer's data to the device.
+* `device.set_receive_handler(myReceiveHandler)` will result in `myReceiveHandler(buffer)` being called any time Scratch receives data from the device. Your receive handler will be supplied an ArrayBuffer containing the received data.
+
+Your extension will also be notified if a device is disconnected, allowing your extension a chance to stop communication:
+```javascript
+ext._deviceRemoved = function(dev) {
+    if(device != dev) return;
+    if(poller) poller = clearInterval(poller);
+    device = null;
+};
+```
+
+Finally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:
+```javascript
+ext._shutdown = function() {
+    if(poller) poller = clearInterval(poller);
+    if(device) device.close();
+    device = null;
+}
+```
diff --git a/javascripts/main.js b/javascripts/main.js
deleted file mode 100644
index d8135d3..0000000
--- a/javascripts/main.js
+++ /dev/null
@@ -1 +0,0 @@
-console.log('This would be the main JS file.');
diff --git a/params.json b/params.json
deleted file mode 100644
index 2e86c85..0000000
--- a/params.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"# Contents\r\n\r\n1. [Writing Extensions for Scratch 2.0](#writing-extensions-for-scratch-20)\r\n  1. [Adding Blocks](#adding-blocks)\r\n    1. [Command blocks](#command-blocks)\r\n    1. [Command blocks that wait](#command-blocks-that-wait)\r\n    1. [Reporter blocks](#reporter-blocks)\r\n    1. [Reporter blocks that wait](#reporter-blocks-that-wait)\r\n    1. [Hat blocks](#hat-blocks)\r\n  1. [The Extension Descriptor](#the-extension-descriptor)\r\n    1. [Blocks](#blocks)\r\n    1. [Menus](#menus)\r\n    1. [URL](#url)\r\n  1. [Hardware Support](#hardware-support)\r\n    1. [USB HID Support](#usb-hid-support)\r\n    1. [Serial Device Support](#serial-device-support)\r\n\r\n# Writing Extensions for Scratch 2.0\r\n\r\nWriting a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## Adding Blocks\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.my_first_block = function() {\r\n        // Code that gets executed when the block is run\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name\r\n            [' ', 'my first block', 'my_first_block'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Command blocks that wait\r\n\r\nSometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a \"random wait\" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as [jQuery](http://jquery.com/) methods will work fine in an extension.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    // Functions for block with type 'w' will get a callback function as the \r\n    // final argument. This should be called to indicate that the block can\r\n    // stop waiting.\r\n    ext.wait_random = function(callback) {\r\n        wait = Math.random();\r\n        console.log('Waiting for ' + wait + ' seconds');\r\n        window.setTimeout(function() {\r\n            callback();\r\n        }, wait*1000);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['w', 'wait for random time', 'wait_random'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Random wait extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.power = function(base, exponent) {\r\n        return Math.pow(base, exponent);\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            // Block type, block name, function name, param1 default value, param2 default value\r\n            ['r', '%n ^ %n', 'power', 2, 3],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks that wait\r\n\r\nOne common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.get_temp = function(location, callback) {\r\n        // Make an AJAX call to the Open Weather Maps API\r\n        $.ajax({\r\n              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',\r\n              dataType: 'jsonp',\r\n              success: function( weather_data ) {\r\n                  // Got the data - parse it and return the temperature\r\n                  temperature = weather_data['main']['temp'];\r\n                  callback(temperature);\r\n              }\r\n        });\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Weather extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Hat blocks\r\n\r\nHat blocks go on top of block stacks - examples of Scratch hat blocks include \"when green flag clicked\" or \"when this sprite clicked\". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.\r\n\r\n```javascript\r\nnew (function() {\r\n    var ext = this;\r\n    var alarm_went_off = false; // This becomes true after the alarm goes off\r\n\r\n    // Cleanup function when the extension is unloaded\r\n    ext._shutdown = function() {};\r\n\r\n    // Status reporting code\r\n    // Use this to report missing hardware, plugin or unsupported browser\r\n    ext._getStatus = function() {\r\n        return {status: 2, msg: 'Ready'};\r\n    };\r\n\r\n    ext.set_alarm = function(time) {\r\n       window.setTimeout(function() {\r\n           alarm_went_off = true;\r\n       }, time*1000);\r\n    };\r\n\r\n    ext.when_alarm = function() {\r\n       // Reset alarm_went_off if it is true, and return true\r\n       // otherwise, return false.\r\n       if (alarm_went_off === true) {\r\n           alarm_went_off = false;\r\n           return true;\r\n       }\r\n\r\n       return false;\r\n    };\r\n\r\n    // Block and block menu descriptions\r\n    var descriptor = {\r\n        blocks: [\r\n            ['', 'run alarm after %n seconds', 'set_alarm', '2'],\r\n            ['h', 'when alarm goes off', 'when_alarm'],\r\n        ]\r\n    };\r\n\r\n    // Register the extension\r\n    ScratchExtensions.register('Alarm extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n## The Extension Descriptor\r\n\r\nThe extension descriptor can be used for more than just listing the blocks offered by your extension. Here is an example of a more complex descriptor:\r\n```javascript\r\nvar descriptor = {\r\n    blocks: [\r\n        ['w', 'turn motor on for %n secs',             'motorOnFor', 1],\r\n        [' ', 'turn motor on',                         'allMotorsOn'],\r\n        [' ', 'turn motor off',                        'allMotorsOff'],\r\n        [' ', 'set motor power %n',                    'startMotorPower', 100],\r\n        [' ', 'set motor direction %m.motorDirection', 'setMotorDirection', 'this way'],\r\n        ['h', 'when distance %m.lessMore %n',          'whenDistance', '<', 20],\r\n        ['h', 'when tilt %m.eNe %n',                   'whenTilt', '=', 1],\r\n        ['r', 'distance',                              'getDistance'],\r\n        ['r', 'tilt',                                  'getTilt']\r\n    ],\r\n    menus: {\r\n        motorDirection: ['this way', 'that way', 'reverse'],\r\n        lessMore: ['<', '>'],\r\n        eNe: ['=','not =']\r\n    },\r\n    url: 'http://info.scratch.mit.edu/WeDo'\r\n};\r\n```\r\n\r\n### Blocks\r\n\r\nThe blocks property is an array of block definitions. Each block definition is an array of three or more items.  The required items are: op code, formatted label, and method name. These may optionally be followed by default block argument values.\r\n\r\nThe full list of block types available to an extension is as follows. Note that any operation that will run for more than a few milliseconds or will wait for an external event should be run asynchronously, as described above in the [Reporter blocks that wait](#reporter-blocks-that-wait) and [Command blocks that wait](#command-blocks-that-wait) sections.\r\n\r\n| Op Code | Meaning\r\n| ------- | -------\r\n| `' '` (space) | Synchronous command\r\n| `'w'`   | Asynchronous command\r\n| `'r'`   | Synchronous reporter\r\n| `'R'`   | Asynchronous reporter\r\n| `'h'`   | Hat block (always synchronous)\r\n\r\nEach block argument is identified by a `%` character and the character following it specifies the type.  The types are: `%n` for number, `%s` for string, and `%m` for menu.  Menus also identify which menu to use with a period and the name of the menu like this: `%m.menuName`.\r\n\r\n### Menus\r\n\r\nThe `menus` property is an object whose properties define the menus used by block arguments in the extension.  The property name is the menu name as it is used in the block definition(s). The property value is an array of options to display in the menu dropdown interface in Scratch.\r\n\r\nFor example, the `setMotorDirection` block in the example above includes `%m.motorDirection`, which will cause it to display a menu with `'this way'`, `'that way'`, and `'reverse'` as options.\r\n\r\n### URL\r\n\r\nThe `url` property refers to a web page which describes the extension. Ideally, this page would describe each block, give examples, and identify any hardware or software required to use the extension. If the user clicks the `'About [extension name]...'` menu item within Scratch, this is the URL that will be opened.\r\n\r\n## Hardware Support\r\n\r\nScratch provides its own set of APIs in order to allow extensions to access certain types of hardware. Currently, Scratch extensions may access the following types of hardware:\r\n- Serial devices such as the PicoBoard\r\n- USB HID devices such as joysticks or the LEGO WeDo\r\n\r\nExtensions that request hardware access are required to implement two additional methods on the extension instance: `_deviceConnected()` and `_deviceRemoved()`. Both methods receive a device instance. To use the integrated hardware functions of the Scratch Extension API you pass the hardware information in the registration call:\r\n```javascript\r\nScratchExtensions.register('Example Name', descriptor_object, ext_instance[, hardware_info]);\r\n```\r\n\r\nThe `_getStatus()` method of your extension can be used to indicate whether your extension has successfully communicated with a hardware device. For example:\r\n```javascript\r\next._getStatus = function() {\r\n    if(!device) return {status: 1, msg: 'Device not connected'};\r\n    return {status: 2, msg: 'Device connected'};\r\n}\r\n```\r\n\r\nThe value returned by `_getStatus()` corresponds to the color of the status 'light' in Scratch and indicates the general state of your extension. The `msg` property can be used to provide more specific information.\r\n\r\n| Value | Color  | Meaning   |\r\n| ----- | ------ | --------- |\r\n| 0     | red    | error     |\r\n| 1     | yellow | not ready |\r\n| 2     | green  | ready     |\r\n\r\nThe details of the `hardware_info` parameter and the `_deviceConnected()` and `_deviceRemoved()` methods are described below in sections specific to each type of device.\r\n\r\n*_API Note: The hardware API is still somewhat experimental and may change in the future. In particular, we will soon be making a change to methods that return hardware data, such as `read()` for HID devices: these methods will take a callback in instead of returning data directly. This change is necessary to improve compatibility and allow us to expand the variety of environments in which hardware extensions are available._*\r\n\r\n### USB HID Support\r\n_An example HID device extension is available [here](https://github.com/LLK/scratch-extension-docs/blob/master/joystickExtension.js)._\r\n_More information about the HID protocol is available [here](http://www.usb.org/developers/devclass_docs/HID1_11.pdf)._\r\n\r\nTo let the extension system know that your extension is interested in USB HID devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar hid_info = {type: 'hid', vendor: 0x0694, product: 0x0003};\r\nScratchExtensions.register('Example', descriptor, ext, hid_info);\r\n```\r\nThe `vendor` and `product` values indicate the USB vendor and product ID of the device your extension supports. These values are frequently expressed as four-digit hexadecimal values, as indicated with the `0x` prefix in the JavaScript above.\r\n\r\nIf a device is connected with matching vendor and product IDs, Scratch will call the `_deviceConnected()` method on your extension and pass an object representing that device. Your `_deviceConnected()` method should keep track of the device object and set up communication as necessary for your needs. For example, this will start polling the device for new HID data every 20 milliseconds:\r\n```javascript\r\nvar poller = null;\r\next._deviceConnected = function(dev) {\r\n    if(device) return;\r\n\r\n    device = dev;\r\n    device.open();\r\n\r\n    poller = setInterval(function() {\r\n        rawData = device.read();\r\n    }, 20);\r\n};\r\n```\r\n\r\nOnce a connection to your device is established, your extension may use the `read()` and `write()` methods on the device object to communicate with it. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.read(48)` will attempt to read 48 bytes of data and return an ArrayBuffer containing any data successfully read. Note that one packet of HID data is 48 bytes. *_This method is likely to change soon. See the API Note above._*\r\n* `device.write(buffer)` will send the given ArrayBuffer's data to the device.\r\n\r\nYour extension will also be notified if a matching device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n\r\n### Serial Device Support\r\n_An example serial device extension is available [here](https://github.com/LLK/scratch-extension-docs/blob/master/picoExtension.js)._\r\n\r\nTo let the extension system know that your extension is interested in serial devices, pass an object like this for the `hardware_info` parameter of the `register()` method:\r\n```javascript\r\nvar serial_info = {type: 'serial'};\r\nScratchExtensions.register('Example', descriptor, ext, serial_info);\r\n```\r\n\r\nYour extension's `_deviceConnected()` method will be called for each serial port present on the computer. Your extension is responsible for checking if a suitable device is attached to that port and continuing on to the next port if necessary. Do not assume that the first time Scratch calls your `_deviceConnected()` will correspond to your device's serial port. The PicoBoard extension shows an example of how to deal with this situation: if no valid PicoBoard communication is received on a given port withing a particular timeout, the extension assumes that there is no PicoBoard on that port and continues scanning to the next port.\r\n```javascript\r\nvar potentialDevices = [];\r\next._deviceConnected = function(dev) {\r\n    potentialDevices.push(dev);\r\n\r\n    if (!device) {\r\n        tryNextDevice();\r\n    }\r\n}\r\n```\r\n\r\nTo communicate with a given serial port, your extension should open it with whichever options are appropriate for your device. These parameters are based on [Boost.Asio's serial port options](http://www.boost.org/doc/libs/1_50_0/doc/html/boost_asio/reference/serial_port_base.html). For a PicoBoard:\r\n```javascript\r\ndevice.open({ stopBits: 0, bitRate: 38400, ctsFlowControl: 0 });\r\n```\r\nThe full set of options available for a serial port are as follows:\r\n\r\n| Option         | Default | Valid values | Description\r\n| -------------- | ------- | ------------ | -----------\r\n| bitRate        | 9600 | Any valid baud rate | Up to  The bit (or baud) rate at which to communicate.\r\n| bufferSize     | 4096 | Up to 8192 | The maximum amount of data that can be received at a time.\r\n| ctsFlowControl | 1 (software) | 0 (none), 1 (software), 2 (hardware) | The type of flow control to use.\r\n| dataBits       | 8 | 5, 6, 7, 8 | The number of data bits per character.\r\n| parityBit      | 0 (none) | 0 (none), 1 (odd), 2 (even) | Whether and how to use the parity bit in each character.\r\n| stopBits       | 1 (1.5 bits) | 0 (1 bit), 1 (1.5 bits), 2 (2 bits) | The number of stop bits per character.\r\n\r\nOnce a connection to your device is established, your extension may use the `send()` method to send data to your device, and the `set_receive_handler()` method to register a function to handle received data. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.\r\n* `device.send(buffer)` will send the given ArrayBuffer's data to the device.\r\n* `device.set_receive_handler(myReceiveHandler)` will result in `myReceiveHandler(buffer)` being called any time Scratch receives data from the device. Your receive handler will be supplied an ArrayBuffer containing the received data.\r\n\r\nYour extension will also be notified if a device is disconnected, allowing your extension a chance to stop communication:\r\n```javascript\r\next._deviceRemoved = function(dev) {\r\n    if(device != dev) return;\r\n    if(poller) poller = clearInterval(poller);\r\n    device = null;\r\n};\r\n```\r\n\r\nFinally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:\r\n```javascript\r\next._shutdown = function() {\r\n    if(poller) poller = clearInterval(poller);\r\n    if(device) device.close();\r\n    device = null;\r\n}\r\n```\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file

From f00d330570a24855af7e8e60282b1b9a5248515e Mon Sep 17 00:00:00 2001
From: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date: Fri, 1 Aug 2014 20:07:12 -0700
Subject: [PATCH 21/47] Fixed some markdown mistakes

---
 README.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index 4b8bfa9..db7cb0f 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 See [Using Jekyll with Pages](https://help.github.com/articles/using-jekyll-with-pages) for help with editing this content.
 
-== Quick start
+## Quick start
 
 1. Verify that you have Ruby (version 1.9.3 or 2.0.0)
 1. Run `gem install bundler`
@@ -9,7 +9,7 @@ See [Using Jekyll with Pages](https://help.github.com/articles/using-jekyll-with
 1. Run `bundle exec jekyll serve` to preview your site at
    http://localhost:4000
 
-== Windows users
+## Windows users
 
 Jekyll isn't really designed with Windows in mind, but it's not too hard to
 get it working with Cygwin. Follow the 'Installing Jekyll' steps on the GitHub
@@ -39,7 +39,7 @@ Remember to turn it on again after installation!
 
 If Jekyll fails to build your site, you may need to provide a "fixed" version
 of your `COMSPEC` environment variable. The easiest way to do that is:
-```Bash
+```sh
 export COMSPEC=`cygpath -u "$COMSPEC"`
 ```
 You can either run that command in your shell yourself, add it to `.bashrc`,

From f2e70f13df1f829b77c210d7290c7d632ecf7599 Mon Sep 17 00:00:00 2001
From: "Shane M. Clements" <shanemc@media.mit.edu>
Date: Sun, 3 Aug 2014 17:43:04 -0600
Subject: [PATCH 22/47] Polished example js. Added a link to the extension ui
 video.

---
 images/add_ext_win.png | Bin 0 -> 26633 bytes
 index.md               |  45 +++++++++++++++++++----------------------
 2 files changed, 21 insertions(+), 24 deletions(-)
 create mode 100644 images/add_ext_win.png

diff --git a/images/add_ext_win.png b/images/add_ext_win.png
new file mode 100644
index 0000000000000000000000000000000000000000..5ac19b4c4b7d6fcef658efd687315bcfcc8d6f9d
GIT binary patch
literal 26633
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
X()&g~r2KyPa~?%`)z@WmCISBimFmQ#

literal 0
HcmV?d00001

diff --git a/index.md b/index.md
index 3bada31..175ded7 100644
--- a/index.md
+++ b/index.md
@@ -19,15 +19,14 @@ layout: default
    1. [Hardware Support](#hardware-support)
       1. [USB HID Support](#usb-hid-support)
       1. [Serial Device Support](#serial-device-support)
+   1. [Editor Interface](#editor-interface)
 
 # Writing Extensions for Scratch 2.0
 
 Writing a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:
 
 ```javascript
-new (function() {
-    var ext = this;
-
+(function(ext) {
     // Cleanup function when the extension is unloaded
     ext._shutdown = function() {};
 
@@ -45,7 +44,7 @@ new (function() {
 
     // Register the extension
     ScratchExtensions.register('Sample extension', descriptor, ext);
-})();
+})({});
 ```
 
 ## Adding Blocks
@@ -57,9 +56,7 @@ An extension may define a number of blocks, of different types (e.g. a command b
 To add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).
 
 ```javascript
-new (function() {
-    var ext = this;
-
+(function(ext) {
     // Cleanup function when the extension is unloaded
     ext._shutdown = function() {};
 
@@ -83,7 +80,7 @@ new (function() {
 
     // Register the extension
     ScratchExtensions.register('My first extension', descriptor, ext);
-})();
+})({});
 ```
 
 ### Command blocks that wait
@@ -91,9 +88,7 @@ new (function() {
 Sometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a "random wait" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as [jQuery](http://jquery.com/) methods will work fine in an extension.
 
 ```javascript
-new (function() {
-    var ext = this;
-
+(function(ext) {
     // Cleanup function when the extension is unloaded
     ext._shutdown = function() {};
 
@@ -123,7 +118,7 @@ new (function() {
 
     // Register the extension
     ScratchExtensions.register('Random wait extension', descriptor, ext);
-})();
+})({});
 ```
 
 ### Reporter blocks
@@ -131,9 +126,7 @@ new (function() {
 Blocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).
 
 ```javascript
-new (function() {
-    var ext = this;
-
+(function(ext) {
     // Cleanup function when the extension is unloaded
     ext._shutdown = function() {};
 
@@ -157,7 +150,7 @@ new (function() {
 
     // Register the extension
     ScratchExtensions.register('Sample extension', descriptor, ext);
-})();
+})({});
 ```
 
 ### Reporter blocks that wait
@@ -165,9 +158,7 @@ new (function() {
 One common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).
 
 ```javascript
-new (function() {
-    var ext = this;
-
+(function(ext) {
     // Cleanup function when the extension is unloaded
     ext._shutdown = function() {};
 
@@ -199,7 +190,7 @@ new (function() {
 
     // Register the extension
     ScratchExtensions.register('Weather extension', descriptor, ext);
-})();
+})({});
 ```
 
 ### Hat blocks
@@ -207,8 +198,7 @@ new (function() {
 Hat blocks go on top of block stacks - examples of Scratch hat blocks include "when green flag clicked" or "when this sprite clicked". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.
 
 ```javascript
-new (function() {
-    var ext = this;
+(function(ext) {
     var alarm_went_off = false; // This becomes true after the alarm goes off
 
     // Cleanup function when the extension is unloaded
@@ -247,7 +237,7 @@ new (function() {
 
     // Register the extension
     ScratchExtensions.register('Alarm extension', descriptor, ext);
-})();
+})({});
 ```
 
 ## The Extension Descriptor
@@ -287,7 +277,7 @@ The full list of block types available to an extension is as follows. Note that
 | `'w'`   | Asynchronous command
 | `'r'`   | Synchronous reporter
 | `'R'`   | Asynchronous reporter
-| `'h'`   | Hat block (always synchronous)
+| `'h'`   | Hat block (synchronous, returns boolean, true = run stack)
 
 Each block argument is identified by a `%` character and the character following it specifies the type.  The types are: `%n` for number, `%s` for string, and `%m` for menu.  Menus also identify which menu to use with a period and the name of the menu like this: `%m.menuName`.
 
@@ -437,3 +427,10 @@ ext._shutdown = function() {
     device = null;
 }
 ```
+
+### Editor Interface
+_A demonstration of the interface and workflow can be viewed [here](https://www.youtube.com/watch?v=PLU7enk1tJ0)._
+
+Scratchers with access to the extension development UI will see new options in the _Extension Library_ window and the extension drop-down menus. In the _Extension Library_ there is a button called _My Extensions_ which will load a list of the user's own extensions. The first item in this list is an option for creating a new extension.
+
+![](https://github.com/LLK/scratch-extension-docs/blob/gh-pages/images/add_ext_win.png)

From 115221f5195484723c1be5ea6e983836c72493f7 Mon Sep 17 00:00:00 2001
From: "Shane M. Clements" <shanemc@media.mit.edu>
Date: Sun, 3 Aug 2014 17:48:03 -0600
Subject: [PATCH 23/47] Fixed image URL and size

---
 images/add_ext_win.png | Bin 26633 -> 11407 bytes
 index.md               |   2 +-
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/images/add_ext_win.png b/images/add_ext_win.png
index 5ac19b4c4b7d6fcef658efd687315bcfcc8d6f9d..26378a837a524f53c69248c3b3444143b49f01d7 100644
GIT binary patch
delta 10688
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

delta 26034
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

diff --git a/index.md b/index.md
index 175ded7..e64cb21 100644
--- a/index.md
+++ b/index.md
@@ -433,4 +433,4 @@ _A demonstration of the interface and workflow can be viewed [here](https://www.
 
 Scratchers with access to the extension development UI will see new options in the _Extension Library_ window and the extension drop-down menus. In the _Extension Library_ there is a button called _My Extensions_ which will load a list of the user's own extensions. The first item in this list is an option for creating a new extension.
 
-![](https://github.com/LLK/scratch-extension-docs/blob/gh-pages/images/add_ext_win.png)
+![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/add_ext_win.png)

From 292cacb6578a272bf0fb284870367afcdb78db1d Mon Sep 17 00:00:00 2001
From: "Shane M. Clements" <shanemc@media.mit.edu>
Date: Sun, 3 Aug 2014 17:55:56 -0600
Subject: [PATCH 24/47] Added images that show the extension drop-down menu
 states.

---
 images/new_ext_menu.png   | Bin 0 -> 11068 bytes
 images/saved_ext_menu.png | Bin 0 -> 13319 bytes
 index.md                  |  11 +++++++++++
 3 files changed, 11 insertions(+)
 create mode 100644 images/new_ext_menu.png
 create mode 100644 images/saved_ext_menu.png

diff --git a/images/new_ext_menu.png b/images/new_ext_menu.png
new file mode 100644
index 0000000000000000000000000000000000000000..aa71f244a24d08e4c10ec8b38bb435a3c2cc39d0
GIT binary patch
literal 11068
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
OtkMz+fEqD_!2bufENM9a

literal 0
HcmV?d00001

diff --git a/images/saved_ext_menu.png b/images/saved_ext_menu.png
new file mode 100644
index 0000000000000000000000000000000000000000..8bc3c4e37bc38a4be6ef64e2e701497b1233a296
GIT binary patch
literal 13319
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
Z>x`#;v;vR7e}2u85S10F64LYk{{R&ABWnNv

literal 0
HcmV?d00001

diff --git a/index.md b/index.md
index e64cb21..70868de 100644
--- a/index.md
+++ b/index.md
@@ -434,3 +434,14 @@ _A demonstration of the interface and workflow can be viewed [here](https://www.
 Scratchers with access to the extension development UI will see new options in the _Extension Library_ window and the extension drop-down menus. In the _Extension Library_ there is a button called _My Extensions_ which will load a list of the user's own extensions. The first item in this list is an option for creating a new extension.
 
 ![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/add_ext_win.png)
+
+Before an extension is first uploaded to the Scratch servers, the extension menu looks like this:
+
+![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/new_ext_menu.png)
+
+Extensions saved to the server and/or loaded from the server, have these options:
+
+![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/saved_ext_menu.png)
+
+When editing an extension, the editor will load and watch (we call it 'connecting' to a file) a local file. This allows the editor to detect changes to the file and display a reload button when changes are available for loading.
+

From 814614aa4b8f74be083c323621dd2412295eb052 Mon Sep 17 00:00:00 2001
From: "Shane M. Clements" <shanemc@media.mit.edu>
Date: Mon, 4 Aug 2014 08:51:44 -0600
Subject: [PATCH 25/47] Added an introduction section

---
 index.md | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/index.md b/index.md
index 70868de..44b7a70 100644
--- a/index.md
+++ b/index.md
@@ -5,6 +5,7 @@ layout: default
 ---
 # Contents
 
+1. [Introduction](#intro)
 1. [Writing Extensions for Scratch 2.0](#writing-extensions-for-scratch-20)
    1. [Adding Blocks](#adding-blocks)
       1. [Command blocks](#command-blocks)
@@ -21,6 +22,16 @@ layout: default
       1. [Serial Device Support](#serial-device-support)
    1. [Editor Interface](#editor-interface)
 
+# Introduction
+
+For information about Scratch 2.0 HTTP extensions please see [this page](http://wiki.scratch.mit.edu/wiki/Scratch_Extension_Protocol_(2.0)#HTTP_Extensions). **In this document the word _extension_ will only refer to Scratch 2.0 Javascript extensions.**
+
+Javascript extensions let you create any kind of block you can find in the Scratch language. Need to delay? They can do that too. As you may expect, extensions have access to web browser APIs. We even added an API for extensions to communicate with serial and HID hardware. This API requires a web browser plugin to use online but the offline editor will have it built-in (on Mac and Windows) with the next release.
+
+With the updates to Scratch in August 2014, extensions are now uploaded to and loaded from the Scratch servers. However, when creating an extension, your code will be initially loaded from a local file before being uploaded to the server and accessible by projects. With these updates developers now have control over their uploaded extensions in the _Extension Library_. From there developers can create, update, or download their extensions.
+
+For more information about the editor updates see [Editor Interface](#editor-interface).
+
 # Writing Extensions for Scratch 2.0
 
 Writing a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:

From e39d1393495189efb58ed1e3bdef2c7a39c27d0a Mon Sep 17 00:00:00 2001
From: "Shane M. Clements" <shanemc@media.mit.edu>
Date: Mon, 4 Aug 2014 08:53:40 -0600
Subject: [PATCH 26/47] Added link to the browser plugin.

---
 index.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/index.md b/index.md
index 44b7a70..6e32485 100644
--- a/index.md
+++ b/index.md
@@ -26,7 +26,7 @@ layout: default
 
 For information about Scratch 2.0 HTTP extensions please see [this page](http://wiki.scratch.mit.edu/wiki/Scratch_Extension_Protocol_(2.0)#HTTP_Extensions). **In this document the word _extension_ will only refer to Scratch 2.0 Javascript extensions.**
 
-Javascript extensions let you create any kind of block you can find in the Scratch language. Need to delay? They can do that too. As you may expect, extensions have access to web browser APIs. We even added an API for extensions to communicate with serial and HID hardware. This API requires a web browser plugin to use online but the offline editor will have it built-in (on Mac and Windows) with the next release.
+Javascript extensions let you create any kind of block you can find in the Scratch language. Need to delay? They can do that too. As you may expect, extensions have access to web browser APIs. We even added an API for extensions to communicate with serial and HID hardware. This API requires a [web browser plugin](http://scratch.mit.edu/scratchr2/static/ext/download.html) to use online but the offline editor will have it built-in (on Mac and Windows) with the next release.
 
 With the updates to Scratch in August 2014, extensions are now uploaded to and loaded from the Scratch servers. However, when creating an extension, your code will be initially loaded from a local file before being uploaded to the server and accessible by projects. With these updates developers now have control over their uploaded extensions in the _Extension Library_. From there developers can create, update, or download their extensions.
 

From 7341035996d6f9ab21f9c7d4131a8ad36aa83645 Mon Sep 17 00:00:00 2001
From: "Shane M. Clements" <shanemc@media.mit.edu>
Date: Mon, 4 Aug 2014 08:54:36 -0600
Subject: [PATCH 27/47] Fixed typo

---
 index.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/index.md b/index.md
index 6e32485..d2593f1 100644
--- a/index.md
+++ b/index.md
@@ -24,7 +24,7 @@ layout: default
 
 # Introduction
 
-For information about Scratch 2.0 HTTP extensions please see [this page](http://wiki.scratch.mit.edu/wiki/Scratch_Extension_Protocol_(2.0)#HTTP_Extensions). **In this document the word _extension_ will only refer to Scratch 2.0 Javascript extensions.**
+For information about Scratch 2.0 HTTP extensions please see [this page](http://wiki.scratch.mit.edu/wiki/Scratch_Extension_Protocol_(2.0)#HTTP_Extensions). **In this document the word _extension_ will only refer to Scratch 2.0 Javascript Extensions.**
 
 Javascript extensions let you create any kind of block you can find in the Scratch language. Need to delay? They can do that too. As you may expect, extensions have access to web browser APIs. We even added an API for extensions to communicate with serial and HID hardware. This API requires a [web browser plugin](http://scratch.mit.edu/scratchr2/static/ext/download.html) to use online but the offline editor will have it built-in (on Mac and Windows) with the next release.
 

From 54658eced9b990e76fc7155716e6a846ab9332b8 Mon Sep 17 00:00:00 2001
From: "Shane M. Clements" <shanemc@media.mit.edu>
Date: Tue, 5 Aug 2014 16:26:32 -0600
Subject: [PATCH 28/47] Improved the editor UI documentation

---
 images/loaded_ext_menu.png | Bin 0 -> 10050 bytes
 index.md                   |  11 +++++++----
 2 files changed, 7 insertions(+), 4 deletions(-)
 create mode 100644 images/loaded_ext_menu.png

diff --git a/images/loaded_ext_menu.png b/images/loaded_ext_menu.png
new file mode 100644
index 0000000000000000000000000000000000000000..ae7988cda39aa33cee959207ea89e8aeaf564732
GIT binary patch
literal 10050
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
a9AGeLz!AW^TK0EWo2;agM5&l@!2bb^07a_+

literal 0
HcmV?d00001

diff --git a/index.md b/index.md
index d2593f1..e8a419b 100644
--- a/index.md
+++ b/index.md
@@ -30,7 +30,7 @@ Javascript extensions let you create any kind of block you can find in the Scrat
 
 With the updates to Scratch in August 2014, extensions are now uploaded to and loaded from the Scratch servers. However, when creating an extension, your code will be initially loaded from a local file before being uploaded to the server and accessible by projects. With these updates developers now have control over their uploaded extensions in the _Extension Library_. From there developers can create, update, or download their extensions.
 
-For more information about the editor updates see [Editor Interface](#editor-interface).
+For more information about the editor updates see [Editor Interface](#editor-interface). We've created a [forum](http://scratch.mit.edu/discuss/41/) on Scratch for approved developers to discuss extensions, ask questions, and make suggestions.
 
 # Writing Extensions for Scratch 2.0
 
@@ -446,13 +446,16 @@ Scratchers with access to the extension development UI will see new options in t
 
 ![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/add_ext_win.png)
 
-Before an extension is first uploaded to the Scratch servers, the extension menu looks like this:
+Extensions can be in three states while editing them. Before a new extension is first uploaded to the Scratch servers, the extension menu looks like this:
 
 ![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/new_ext_menu.png)
 
-Extensions saved to the server and/or loaded from the server, have these options:
+When editing an extension, the editor will load and watch (we call it 'connecting' to a file) a local file. This allows the editor to detect changes to the file and display a reload button when changes are available for loading. These are the options for an extension that has been saved to the server and is still connected to a local file:
 
 ![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/saved_ext_menu.png)
 
-When editing an extension, the editor will load and watch (we call it 'connecting' to a file) a local file. This allows the editor to detect changes to the file and display a reload button when changes are available for loading.
+Lastly, here are the options for an extension that has been loaded with a project but is not connected to a local file:
+
+![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/loaded_ext_menu.png)
+
 

From 07bcff925212b975c1795e1ea6b4fa896b01c8bb Mon Sep 17 00:00:00 2001
From: Amos Blanton <amos@scratch.mit.edu>
Date: Wed, 6 Aug 2014 14:53:19 -0400
Subject: [PATCH 29/47] Update README.md

---
 README.md | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index af9c3e5..43d55ec 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,9 @@
 scratch-extension-docs
 ======================
 
-Documentation and sample code for creating extensions with Scratch 2.0. 
-http://llk.github.io/scratch-extension-docs
+Sample code for creating extensions with Scratch 2.0.
+
+See http://llk.github.io/scratch-extension-docs for documentation.
+
+Questions? See the Scratch extension developer's forum:
+http://scratch.mit.edu/discuss/41/

From f065ced4a6a918e5aca93547e80607ff30b486a7 Mon Sep 17 00:00:00 2001
From: "Shane M. Clements" <shanemc@media.mit.edu>
Date: Wed, 6 Aug 2014 15:51:32 -0400
Subject: [PATCH 30/47] Added image of wedo blocks

---
 images/LEGO_WeDo_Extension.png | Bin 0 -> 15004 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 images/LEGO_WeDo_Extension.png

diff --git a/images/LEGO_WeDo_Extension.png b/images/LEGO_WeDo_Extension.png
new file mode 100644
index 0000000000000000000000000000000000000000..e76e449b103b7ea8dfdd8ef4618c1e8b1a2c3d34
GIT binary patch
literal 15004
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
CI;uke

literal 0
HcmV?d00001


From 1b9af254e1b16a4ecc56a21dd39ee2d7259c3afd Mon Sep 17 00:00:00 2001
From: "Shane M. Clements" <shanemc@media.mit.edu>
Date: Wed, 6 Aug 2014 16:53:49 -0400
Subject: [PATCH 31/47] New intro with copy from Amos

---
 index.md | 50 ++++++++++++++++++++++++++------------------------
 1 file changed, 26 insertions(+), 24 deletions(-)

diff --git a/index.md b/index.md
index e8a419b..819d217 100644
--- a/index.md
+++ b/index.md
@@ -6,6 +6,7 @@ layout: default
 # Contents
 
 1. [Introduction](#intro)
+1. [Editor Interface](#editor-interface)
 1. [Writing Extensions for Scratch 2.0](#writing-extensions-for-scratch-20)
    1. [Adding Blocks](#adding-blocks)
       1. [Command blocks](#command-blocks)
@@ -20,17 +21,37 @@ layout: default
    1. [Hardware Support](#hardware-support)
       1. [USB HID Support](#usb-hid-support)
       1. [Serial Device Support](#serial-device-support)
-   1. [Editor Interface](#editor-interface)
 
 # Introduction
 
-For information about Scratch 2.0 HTTP extensions please see [this page](http://wiki.scratch.mit.edu/wiki/Scratch_Extension_Protocol_(2.0)#HTTP_Extensions). **In this document the word _extension_ will only refer to Scratch 2.0 Javascript Extensions.**
+Scratch extensions make it possible to connect Scratch projects with external hardware and information on the web through custom blocks. The sample extension code in [this github repository](https://github.com/LLK/scratch-extension-docs/) shows how to pull weather information from openweathermap.org, get input from a USB joystick, and other examples that demonstrate the range of possibilities.
 
-Javascript extensions let you create any kind of block you can find in the Scratch language. Need to delay? They can do that too. As you may expect, extensions have access to web browser APIs. We even added an API for extensions to communicate with serial and HID hardware. This API requires a [web browser plugin](http://scratch.mit.edu/scratchr2/static/ext/download.html) to use online but the offline editor will have it built-in (on Mac and Windows) with the next release.
+![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/LEGO_WeDo_Extension.png)
 
-With the updates to Scratch in August 2014, extensions are now uploaded to and loaded from the Scratch servers. However, when creating an extension, your code will be initially loaded from a local file before being uploaded to the server and accessible by projects. With these updates developers now have control over their uploaded extensions in the _Extension Library_. From there developers can create, update, or download their extensions.
+This document explains how members of the Scratch Developer Program can develop and test extensions using their Scratch accounts. Membership in the Scratch Developer Program is currently invite only, but will be open to new members soon. We’re also developing criteria and workflow for making polished and vetted Scratch extensions publicly available to all users on the Scratch website, which we plan to publish in 2015.
 
-For more information about the editor updates see [Editor Interface](#editor-interface). We've created a [forum](http://scratch.mit.edu/discuss/41/) on Scratch for approved developers to discuss extensions, ask questions, and make suggestions.
+The UI, workflow, and protocols for developing extensions should be considered *alpha* - and subject to change as we continue to refine them and act on feedback from the developer community.  Members of the Scratch developer’s program are invited to ask questions and give feedback in the [Extension Developer’s discussion forum](http://scratch.mit.edu/discuss/41/) on the Scratch website. (This forum is currently only visible to members of the developer program.)
+
+( For information about Scratch 2.0 HTTP extensions please see [this page](http://wiki.scratch.mit.edu/wiki/Scratch_Extension_Protocol_(2.0)#HTTP_Extensions). In this document the word extension will only refer to Scratch 2.0 Javascript Extensions. )
+
+### Editor Interface
+_A demonstration of the interface and workflow can be viewed [here](https://www.youtube.com/watch?v=PLU7enk1tJ0)._
+
+Scratchers with access to the extension development UI will see new options in the _Extension Library_ window and the extension drop-down menus. In the _Extension Library_ there is a button called _My Extensions_ which will load a list of the user's own extensions. The first item in this list is an option for creating a new extension.
+
+![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/add_ext_win.png)
+
+Extensions can be in three states while editing them. Before a new extension is first uploaded to the Scratch servers, the extension menu looks like this:
+
+![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/new_ext_menu.png)
+
+When editing an extension, the editor will load and watch (we call it 'connecting' to a file) a local file. This allows the editor to detect changes to the file and display a reload button when changes are available for loading. These are the options for an extension that has been saved to the server and is still connected to a local file:
+
+![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/saved_ext_menu.png)
+
+Lastly, here are the options for an extension that has been loaded with a project but is not connected to a local file:
+
+![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/loaded_ext_menu.png)
 
 # Writing Extensions for Scratch 2.0
 
@@ -439,23 +460,4 @@ ext._shutdown = function() {
 }
 ```
 
-### Editor Interface
-_A demonstration of the interface and workflow can be viewed [here](https://www.youtube.com/watch?v=PLU7enk1tJ0)._
-
-Scratchers with access to the extension development UI will see new options in the _Extension Library_ window and the extension drop-down menus. In the _Extension Library_ there is a button called _My Extensions_ which will load a list of the user's own extensions. The first item in this list is an option for creating a new extension.
-
-![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/add_ext_win.png)
-
-Extensions can be in three states while editing them. Before a new extension is first uploaded to the Scratch servers, the extension menu looks like this:
-
-![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/new_ext_menu.png)
-
-When editing an extension, the editor will load and watch (we call it 'connecting' to a file) a local file. This allows the editor to detect changes to the file and display a reload button when changes are available for loading. These are the options for an extension that has been saved to the server and is still connected to a local file:
-
-![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/saved_ext_menu.png)
-
-Lastly, here are the options for an extension that has been loaded with a project but is not connected to a local file:
-
-![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/loaded_ext_menu.png)
-
 

From ee12b14db0f75138c11da81dce419a862e1bff2a Mon Sep 17 00:00:00 2001
From: "Shane M. Clements" <shanemc@media.mit.edu>
Date: Thu, 7 Aug 2014 09:56:45 -0400
Subject: [PATCH 32/47] Added browser extension

---
 browser_extension.js | 45 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)
 create mode 100644 browser_extension.js

diff --git a/browser_extension.js b/browser_extension.js
new file mode 100644
index 0000000..3169774
--- /dev/null
+++ b/browser_extension.js
@@ -0,0 +1,45 @@
+// Scratch Extension to demonstrate some simple web browser functionality
+// 2014 Shane M. Clements
+
+(function(ext) {
+    ext.alert = function(message) {
+        alert(message);
+    };
+
+    ext.confirm = function(question) {
+        return confirm(question);
+    };
+
+    ext.ask = function(question) {
+        return prompt(question);
+    };
+
+    ext.setTitle = function(title) {
+        window.document.title = title;
+    };
+
+    ext.openTab = function(location) {
+        window.open(location, '_blank');
+    };
+
+    ext._shutdown = function() {
+        console.log('Shutting down...');
+    };
+
+    ext._getStatus = function() {
+        return {status: 2, msg: 'Ready'};
+    };
+
+    var descriptor = {
+        blocks: [
+            [' ', 'alert %s', 'alert', ''],
+            ['r', 'confirm %s', 'confirm', 'Are you sure?'],
+            ['r', 'ask %s', 'ask', 'How are you?'],
+            [' ', 'set window title to %s', 'setTitle', 'title'],
+            [' ', 'open tab with %s', 'openTab', 'https://twitter.com/scratchteam']
+        ]
+    };
+
+    ScratchExtensions.register('Browser Stuff', descriptor, ext);
+})({});
+

From 91ae39873522b79f36891fcc7c6d5994249b198a Mon Sep 17 00:00:00 2001
From: Amos Blanton <amos@scratch.mit.edu>
Date: Tue, 23 Sep 2014 15:54:26 -0400
Subject: [PATCH 33/47] Add developer's FAQ.

---
 index.md | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/index.md b/index.md
index 819d217..9566192 100644
--- a/index.md
+++ b/index.md
@@ -21,6 +21,8 @@ layout: default
    1. [Hardware Support](#hardware-support)
       1. [USB HID Support](#usb-hid-support)
       1. [Serial Device Support](#serial-device-support)
+1. [Frequently Asked Questions](#frequently-asked-questions)
+ 
 
 # Introduction
 
@@ -459,5 +461,26 @@ ext._shutdown = function() {
     device = null;
 }
 ```
-
-
+# Frequently Asked Questions
+####What is the Scratch Developer Program?
+The Scratch Developer Program consists of software developers who are interested in new technical initiatives within the Scratch ecosystem. Members of the Scratch Developer Program gain early access to initiatives such as the Scratch Extensions project. Members also have access to the Scratch extension developer forum.
+####How do I join the Scratch Developer Program?
+Membership in the Scratch Developer Program is currently invite only, but will be open to new members next year. This program is for programmers with knowledge of Javascript.
+####What are Scratch Extensions?
+Scratch extensions make it possible for Scratch to interface with external hardware and information outside of the Scratch website through new blocks. Extensions are written in JavaScript for the online Scratch project editor.
+####How do I create a Scratch extension?
+You can learn more about how to create a Scratch extension here: http://llk.github.io/scratch-extension-docs/ 
+####Why can’t I share projects that use unpublished extensions?
+Until we have an approval process in place to ensure that all extensions meet security and quality standards, it won’t be possible to “share” projects that use extensions on the Scratch website. You can download the project using the file menu, and send the .sb2 project file to others who can use the file menu to load it into the Scratch editor and try it out.
+####How can I make my extension available to everyone who uses Scratch?
+We’re working on an approval process for publishing Scratch extensions. We’ll make an announcement on the Scratch Extensions developer forums when we’re ready to accept submissions. Keep in mind we’re likely to choose only one official extension per functionality (hardware, web API). Here are some of the criteria we’ll be using to decide whether or not to accept an extension: 
+  * Security
+  * Ease of Use
+  * Quality (documentation, design, code)
+  * Requirements (browsers, operating system, hardware, etc)
+  * Content (age-appropriate, copyright infringement) 
+   
+####I’m having trouble creating my extension - where can I get help?
+Publish your code someplace publicly viewable, like Github, and then post a link to it in the [Scratch extension developers forum](http://scratch.mit.edu/discuss/41/) asking other developers for help.
+####How do I request new features or submit bugs?  
+We would love to hear your thoughts and suggestions. Submit them as issues against this repository.

From db4679703205c29fe780404d058fa22741564c5c Mon Sep 17 00:00:00 2001
From: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date: Thu, 16 Apr 2015 10:58:00 -0700
Subject: [PATCH 34/47] Update README.md

Added workaround instructions for build failure with Nokogiri 1.6.6.2 on Cygwin
---
 README.md | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/README.md b/README.md
index db7cb0f..7a0f648 100644
--- a/README.md
+++ b/README.md
@@ -27,16 +27,39 @@ Required Cygwin packages:
 * make
 * patch
 * pkg-config
+* zlib-devel
+
+Note that `bundle install` will likely take quite a while, and may appear to hang.
 
 Even with all the required packages, Jekyll on Windows doesn't seem to like
 running in `--watch` mode. This might be fixed by downgrading the `listen`
 package, but doing so means downgrading many other packages and potentially
 breaking compatibility.
 
+### Troubleshooting
+
+#### Nokogiri fails to build
+
+This appears to be a bug related to Cygwin and certain versions of Nokogiri. As a workaround, you'll need to install a few more Cygwin packages:
+* libxml2-devel
+* libxslt-devel
+* ruby-nokogiri
+
+Then, run this command:
+```sh
+bundle config build.nokogiri --use-system-libraries
+```
+
+After this, `bundle install` will use the version of Nokogiri installed by Cygwin rather than trying to download and build a new one.
+
+#### Permission denied
+
 If you get "permission denied" related to `conftest.exe` while running
 `bundle install`, you may need to temporarily disable your virus protection.
 Remember to turn it on again after installation!
 
+#### Jekyll fails to build your site
+
 If Jekyll fails to build your site, you may need to provide a "fixed" version
 of your `COMSPEC` environment variable. The easiest way to do that is:
 ```sh

From c720ca02515a639926fa2a6f5494b47d39e79bc6 Mon Sep 17 00:00:00 2001
From: Kasia Chmielinski <kaschm@media.mit.edu>
Date: Thu, 7 May 2015 13:34:22 -0400
Subject: [PATCH 35/47] Test commit to the scratchx branch

---
 index.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/index.md b/index.md
index 9566192..31e39cf 100644
--- a/index.md
+++ b/index.md
@@ -26,7 +26,7 @@ layout: default
 
 # Introduction
 
-Scratch extensions make it possible to connect Scratch projects with external hardware and information on the web through custom blocks. The sample extension code in [this github repository](https://github.com/LLK/scratch-extension-docs/) shows how to pull weather information from openweathermap.org, get input from a USB joystick, and other examples that demonstrate the range of possibilities.
+Scratch extensions make it possible to connect Scratch projects with external hardware and information on the web through custom blocks. The sample extension code in [this github repository](https://github.com/LLK/scratch-extension-docs/) shows how to pull weather information from openweathermap.org, get input from a USB joystick, and other examples that demonstrate the range of possibilities. There are a lot. 
 
 ![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/LEGO_WeDo_Extension.png)
 

From 84d85ba3b88ebfb5a9c0e01b46fd264d46eaa070 Mon Sep 17 00:00:00 2001
From: Kasia Chmielinski <kaschm@media.mit.edu>
Date: Thu, 7 May 2015 16:44:16 -0400
Subject: [PATCH 36/47] scratchx documentation content

---
 .DS_Store                                     | Bin 0 -> 8196 bytes
 images/.DS_Store                              | Bin 0 -> 6148 bytes
 images/link_to_github.png                     | Bin 0 -> 73681 bytes
 images/link_to_js_menu.png                    | Bin 0 -> 39028 bytes
 images/load_ext_buttons.png                   | Bin 0 -> 90301 bytes
 ...ension.png => old_LEGO_WeDo_Extension.png} | Bin
 .../{add_ext_win.png => old_add_ext_win.png}  | Bin
 images/{bg_hr.png => old_bg_hr.png}           | Bin
 images/{blacktocat.png => old_blacktocat.png} | Bin
 ...con_download.png => old_icon_download.png} | Bin
 ...d_ext_menu.png => old_loaded_ext_menu.png} | Bin
 ...{new_ext_menu.png => old_new_ext_menu.png} | Bin
 ...ed_ext_menu.png => old_saved_ext_menu.png} | Bin
 ...e_download.png => old_sprite_download.png} | Bin
 images/open_ext_files.png                     | Bin 0 -> 23126 bytes
 images/open_ext_url.png                       | Bin 0 -> 34050 bytes
 index.md                                      | 151 +++++++++++++-----
 17 files changed, 107 insertions(+), 44 deletions(-)
 create mode 100644 .DS_Store
 create mode 100644 images/.DS_Store
 create mode 100644 images/link_to_github.png
 create mode 100644 images/link_to_js_menu.png
 create mode 100644 images/load_ext_buttons.png
 rename images/{LEGO_WeDo_Extension.png => old_LEGO_WeDo_Extension.png} (100%)
 rename images/{add_ext_win.png => old_add_ext_win.png} (100%)
 rename images/{bg_hr.png => old_bg_hr.png} (100%)
 rename images/{blacktocat.png => old_blacktocat.png} (100%)
 rename images/{icon_download.png => old_icon_download.png} (100%)
 rename images/{loaded_ext_menu.png => old_loaded_ext_menu.png} (100%)
 rename images/{new_ext_menu.png => old_new_ext_menu.png} (100%)
 rename images/{saved_ext_menu.png => old_saved_ext_menu.png} (100%)
 rename images/{sprite_download.png => old_sprite_download.png} (100%)
 create mode 100644 images/open_ext_files.png
 create mode 100644 images/open_ext_url.png

diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..f37e27ae0485c8c69b050e11ccf36f46c15d3d12
GIT binary patch
literal 8196
zcmeHMTWl0n82<lKU}g&Rv_ol2U0BmLQY=^j*;c@8Z(M|irY*fuU1oQNc4T&@*_rLd
z+N8$IgCU@a4}=Fbpkg2~n!t+>Mq?yKjF*HMYSb6sd@}Kgr~02WvrTskFA$N$Ih%9-
zbI$zVoO8bU&i;F50RY>w`jY@v03cE3mX%O(hs3Y*yet(3JsgLG2RI2PjKX%9hV(M;
zup?w3WFTZ9WFTZ9WZ+?7fMPaJ(p}=de>E&a20{k@mkjXlhbU!k<AI&?t@!GoLL33e
z7E`xKRHt)*z(fNZ5A2+81(fdTpB^xPVsOMjA5Pb!+?{MZuyelk;eb9IFc=ww6AFsa
z2^SUafN|f3WynCtz;Xt7>@R@?q`(0?@BD5ZvYb@Xa+2i1H`RX1TNXs38h<5_01Gra
z>pPGI58ML(?+W}^!vQepy#RklV1beEjXee4Yx2G6oq|Q<q~KHm?p6VA72Q2evl^wb
z3TMPuaE>xAEKmuM=bM~#$Ai`0PL5lq>oqmaW6_G@m8(`uvQol7tW0^Xcg&gW^)xT*
zwrQE;qGjqvGN^ZJ-dL{Q=Q!44T}$?x#$<x6Z+C1@Gi@WY1UfQc+PX8@=45T%9qIM&
zH(=`CSb|k_XN(Dgc5AlLZ@OmEv`lYWlKCgWs%B<(#9A7oJDOW&8>2I^SW{zk*Us4N
zEc-%|Y8swu?HU@NedEH#_dodX(nnu?EtU-!e20SSw-?Lng``;SM7K{$(R7ZKTT4h$
z+dDdy1S{tgJUZ@~j_vjv8JBE=mAb^#p_F3>3m8Z_RyJ+B309WUtW?(0JfqdJdd(LN
zchEDYJYE}ios8Em90yIp^1cLPS=Z<>2w+Ya9Rzb3%9qzvY}{14W!sM3dv2~>SIWxD
zRb`l%vpw^qX=IK~a{7ieH)YtmX^##}aPBOl&(_jL88%AtO}4Idtx~B}%j}vwqSI}=
z9Gzozale{MRXxso+cO50x+ID2%~4h9b7@vgqg(KS>*^Jy?-V^i=E{Cg!&XH-W@$;o
zV!G_Zwm+e$0~0<q>~PSzvs_UJQ%*WflXio?ShK1=&xbvtx!%!n!!~sG4UN5b-!p5~
zO0_k&j>7dx(hx_r>N-ueHonDwrg_V%jW_wdGVR@J+EH;h2qUyl#%T|qhBI&$&cj9c
z7_P$Sa2;;I_wWP!2=nj@{0hIppYS&<Ac+SREX6V`M-?BzN3j;`upYPLF5HbVY{phR
zgop76c40pz@C0i30#4%$zJ#;*I-bF|@f~~@-^0sz1+U_l_^m&wqMRrX`0ZSYH>j4k
zQ%RJ;PA$^zB+5uf=l=gll=Eu>DXy;&+KlauFFxRcr@B;ILQuY9gpzVf5n|1IhBr4<
zR#k7TQ6k4kaK==j3UcaTt4ZRdDDJ&E8i_DTh=@1q>Zw`8u92pAvtesQVJn1~d6RS+
zVJn4fd2{D3MPbE4*u2@?LRVJ_{qp9%8o~l?gX+qv4NAQt%ksTT?*d$b&xGuLf}i1c
z_yhie+a$P^B(_SdCaFbm6F!Cw_&7G=HWFJiK8<^DFLvSqlH9W-x;~QJAP(U$rqIAq
z977W`=-~uT;uOA&ui&fr8cFahzKL()dAx+56o~I&PIkV<PsvIYQf$y^qfF7JNrRpr
zf`A9Qb4voF3_Z{Zt<V8oWbc3w!EPy{1Y8QB(>yFvZH!7|c|b)T>XxGXDc(o9!pBze
z-vFI=fB%0UBZSb9fslcRodGQF=<R5uS>{4;;e`2FJ4*QkWuCa-oNon$3hu)D#c`bM
m;va@oj|SJ`ft~X$U7_^AUj+P{KT5;+f6qTX!}$MT<NrTkJ<BHm

literal 0
HcmV?d00001

diff --git a/images/.DS_Store b/images/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..a3dd8922246b1930fd36aa14a9c74c446b36f6bb
GIT binary patch
literal 6148
zcmeH~-)_?|6vmIYUQ{4Z#m1Pln_O~*v^R*RZU_kpiCu6RmadGk&`fKy?lO<TL-7E-
zP5B+$$=o)rxIzf|NcQJAK3|SM|BFS$oK%;`A_EcWlN5VT$U02lYg)4%U-KL^mLrpy
zl#<DnT(7l`6;Xkxz`v$|uH6?>uwEx}!^(YJzccwNmE`h9Zh3e0t|&)&QRcMQ&Ekyo
znzXZ6kc;fCaeR|0eBWh^ceR1#C!Qh8J}jkN$R(a*c_5mM2r5wHn!wl@jrq93vq$T~
zvM5)`Hn%<PX8Gk=jPKL4mL+FL%h2Pl`}<an9}8=6sG`mHbK<y=5!z}GMwDk8I8=*}
z<7LZnji2^DqbH@zDK#o}_e0ePnT}ef_i`$4<pWHg(053EMvdyMqclYu{Z2QlsuQxl
zYFV3T#!E_XA9?1F=?9AKw`>z)nG;tt{@Zy_ZHecg<(Z=OJuKnqZ{^ZiWb~lh_2d88
z!zpXv4s}$gKOF`1T8d2P#4Y|hj!oabz*+FLVP5OJG7m)5tg=A|M@3{s_n3*Q6Z%6H
z7-zOx|Ea^6M+Kq+QGr$g-5(N?V(PJWXtxeBdj$Y{R9mC0zX$4*cuYOk4tawa=L$Mk
z<F6RTxl^C`cB#kOp>r4GFCWH#*>2plF!t+U!UJYf3o(ldL<Lq9*mchXJ^xQP-~U&<
z;$u`GD)2ukV0y#z;R!wRXX{$u^sG%tpGj)ku6Af$$oz3^3wnn-Bw6EKq6IMZSUaQ!
Qi$4NZhL}YK{;C4M0h^)irT_o{

literal 0
HcmV?d00001

diff --git a/images/link_to_github.png b/images/link_to_github.png
new file mode 100644
index 0000000000000000000000000000000000000000..52515ce297b2a673f01fac008f6eb5c120515190
GIT binary patch
literal 73681
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

literal 0
HcmV?d00001

diff --git a/images/link_to_js_menu.png b/images/link_to_js_menu.png
new file mode 100644
index 0000000000000000000000000000000000000000..10371ec9d3111a2645dc7800e80f314a28c70d8a
GIT binary patch
literal 39028
zcmZsCb9kiBwr-q>ZFD%X?PQ{fGZWjkI<{?1Y}>Y-Ol;fs&2R60&pG!wxBuv;zN%Wa
zdR4EgZ@ufS3YC`?M}WnJ1pxs;koYO`8w3QD?yG$L4eIMV({vjV1O%JNOjuZ6LRgqc
z-rmO8%+d%1L^Uwc6;f4kz3GGhP?|{?ah(WZc72@+!H?N-Xu2Y#*e9E^B0IqMn`**0
zFzT>kY)UA}kg!l6%Aae(M~|=GkKS3YYwx_T<2)8s4G(RPD|QR;AZz#u!^83^C_dF!
z*rgpMzCLAXZ6F^A-5^li--x<Ju0x~#Hr3UEeHx^Chn?i?*WCT7`c%98)JXAo&-DcH
zIg>v-$2&(0+8G1UZT283VFJ;G{?#JyA-#v2Da-_iLH-RSsyYaqopB2HVWZprlsoDn
zh>{)5M^Gw99vmcF=avEa5Y6W$Ct756c)L?*yV(4Dn3D$>RVRq;x}Z~IP@rh}wi$Z3
z`)6>L&*xClqfQpOWVcQ`Q_}qpM%b_@_yV#IK+&!@gI-RJ_sf!>@`_+->ibH{j4KZs
zs$NTw*{?N}3oC<gedaJ5=;zAQs%<Ra8e`eCmn_d*gc&YyOOWpFWPQU>eMfq|#wBEm
zcbRg*oXXYQmueaLh?d>&4~1e&HZQ@uZ@G~KA6tR~4rMY~uYJN+A6u}WL}(7^c{B)}
z>F7sCwLNH^C|G-z{`zj{NMga9s@5l6vaqc6&w0X;4LZBD5j$MorJ?UZh`lJ7?<Sfd
z5lBWE;Lu_B`d|bT?3O4hU8X8!0&5=c5fL1mM4evSvT5lkj!rmBHY>)WK`T}#q!?Z~
zg%5bQ5v-y^TyHg==>GK8k*<P+{#2MiytmlrVQiiu1Z!;gYOtX0Z{K`W>)rgnA;bG!
zcw0Y5c&(Z;fuajSf_5YQw2}N!Z7y#L$diMPf#}R0MiTjKU{STX2e&Ksc&>8Xr9yaH
z)Yx61`_avV9<0~Q$c-%%f${QJxC~4TA@5^I)@NI;iqjw+WfI=RFaBw)588+zOqu%I
z%Vn)MZOvshQqArX@fqa<SG9=7`!rJ(6Z|I+v&j{3eeB>dLkQ=uHxm}ff-ZUk%QAij
zhdJN9I5cTkt@0qYZvC$hN@sYyAh@3f3DdDh297f|RC%+XhS;yk0|E}ummdpH?}ykN
z`*(47qiMA5pEn$DW%o7=L7z<GokvCcU2L)M!{qr$$6^;m1V7=B1zTg34MAEOgFY(*
znoeo9<!l~K*M7(g2zfj1O^(Qn(7iWpP^G~apI$>TdBHGQ;Po<+FvsGeBV&_hM`sRu
zfgNn~GiyMi@9iams`6}dL`AE;-aFvwyI(~|_*Gi4DT9QBe-4wJfS78EL^tt$4vT1m
zbbk=|%*pWA{B1_SF+TT&6uCRl1x@!s`UYy}C=DwJX$r=t3s37qXA5Di3(bA%O9XF3
zfb_fDItJ3dn^^was33VUlu5U%ElRx);xvM_Z<{VMyl?W+N(w|)H){%X7xA}VVMk<^
zewb@vk{I-SkP;#87$!r=Wnt?WEOd}S;Tn0^dgxJK*lgw_GDpl-kOrakX@Vo-JA7RK
z!fYH<6fs@(6v%@>Q9U(PgoR)_J@F+pM4!AZGETHff2l3%W<u+rw(YhnWL{WrKW`!s
zVq(h>B9h2r;-C<^ov0^LMKXjDv9K8Gd{8rSgLiBkQGQZ5Z2TY`QlD6{#Uh+Rm|g$S
z-h4fKCZiOV6ytG(af5MeW86Bwg1#Hwf@)k<hjJQr5WMJ#UQ9hXy((RsTpn{&p6I^q
zC0l(?B}bdqZ9lt_X3aG_P0|bQ3u0@qNATz&hn<3}6&DR&NPz!TZ}QIRwbqmPlf)YX
zSZKGLJW&er8q9V8{123zsA&lo5f`~9nZBQ-Kk|eOq;{p^f5yux2+zsh`WVL@aKwgE
ziv9i0jp`rT7E0a^wIj1bvqKvyvhw3Mg%v4eEHGB`r%e88KGQ51U8-{2Ld=3cdlGx}
z1M9id%3*z-qoZT4qnqP}Ba@@6qsg(`vG&}1u1R5X4oA^rfm{(okxiku$Y-K&kWhe7
zmL9Y)sxV3)c@Q*w7LFOVC=LP+RfJi@euP!T6t*`b6Uzw8GIJo)KJz@&y55W6V7%za
zprMZa_m)3vQklA9DS;^nsh%m1jEjt$hM9&vH6b-Abr5xX)#)ZJQ_K^R#!C85#xlBe
zCLM#^qe0c7wW)Q1wfl8ihVG+{!;@o`Qx`*CJ{`XAD6eve)`)zF0#TMxVo}6VqOzc}
z29wB>ed%=Rq?*|D5|vh(*P0lb94-6~b+#7vueK%*I(uF{;I}_-mTt*z6>s6M-nRC4
z+4dv%==RU|-^Ygri-xeqofE3!ZNjorb%F&#J}JGiKE*+mK|OuteNlb!z~=mT{fzx;
z{3swV;XXD<8VAgz29pNqNPmbBvk`me<o)3LG1vRnyU<J3dl;Y-G96MJ3K51Lei!<N
zj)CTcvQDu=@*)%=Jg!MAahASBW5;c$bxnCqeNBPN3BwkO9J-6@A6K1UYnW}=vIkD3
zDk)0+^Q8H2U&T_ziAG<OvX$p|8JY?P0t!!AH|ZdmLCNpJg`x*#<<;eFXL`&0%NSfn
zE%Gh6Ey*{Au5i!r&%kFKNC`+lpnV`km}A)Yu;Z|bu+7B$gtr9hgrLOK#EQg6sz*wO
zvf@&CC0xZq#XzMF#pn`#1%qF83S&xb6;VnY@^UJd@;cM<Ga)n0#n&<l>MSC4vbX+8
zDM?w%kqZG2m{wsA66e1NKnWN!(75wj{aVr2sn_lJi1~Cn6x=TF$?yE{Pw%^MhjHW)
zDzV>K|1wImwOa>Zr{Wsnt#f?G<H1SB>0)2jN7c2TG+a?!W?jB(#aS4iJ*!@3anN=E
z+}0h;VU}W+U~<r!(Gk#&(GFFRRTL|qFH|=K-lLqVu#>QFv(q(pFRVR;oQGtjXeF%A
zTQyq&S4W#V>XMt}YAzjgflJ5ohm4n|TPc@Mvl44m3nfFTJ<EO1<+pNJq{(2(zf{x~
z6&KsAHLZoLD=u7|O&%341RC*d7}ofYbIxM-um38Hv-I3fB32UQ@Kl}~E=erAj=-Jn
z?<gHMh}0A){_=83a|hgJJ}});Jv{G~9lHN@9+g|I>b~sgYV`K~3<f#(Aq7?NZS@uP
z&GLu$ANA{mPJ>i|`h>4R;3BBSJwaW;7W;M!YXL_Q92~G2vK9U_#08rQBNc-Sw*W;6
zn@y%6KQk;SmoHDlKy_Lr!&missiVf=%X{|ix^^;l8ORyQ11R9hB)=2>^vE)dQ%sAH
zc#yb|K#^X~U`{H{a$`o2yp=tbz>=Jj&RR2SJsr2+xrkYRWZq+jWj=UlJ~Nxzn^;Ta
zs#$crY@vOjHD9Rn{PRlvXz&1i-sLTLEqLskXt{azf!~szn_i%qwf5nE11*JEdGLI=
zKBY2J#TmeZ?sasmx87$0n*tjL`#nk(V8%~v%ldkxxjos-BPuDHIMBbdv@?TR7Ps(w
zdsetW%E;G9cpqv%a>yl$fb-$D`SMyE!wmx=u|1J1F`U9r7CwuWZ&{OET}d&rEUL^)
zWmj`frA*oV0e!I~U16-KPcAyMM!;dW{A9V#iP!1*aLb|Qu<(TM1bPZD!^SGcnsa%0
zA!QEYkA51z_EqcEUGDxsrj&UyE`7KrKQQoF63Fs5eTjD+b%}Z9WZ|WHBDbPQtL}YN
zDYdMK2ZCp`sz!V4k_>1JtOSxfy*CrOzB@PzK8j3DW+r!3cF0*<w%L6a?oX^XNn77P
z96vg(FLbWkiSNp4bg6rfX(hHzfRBQ!Tu^Pc+3W0k-Ga|USNNa!pCdI80{Le>|GqCB
zT~|;X$Xy^V!}EEZ+&Mm_4%N-*ZEhn?31@kGqde|Bj%ig@SJjGRi-&37wpY55UKiRa
z8r^-xeM{ZVeNSUBS)p<^d7Jby#+`ZYDtDQm@5@NA0PaHRLMQ?2PtIqmo4Ly=HJy}B
z{8#Fa`x}l98}PZxx%kbJO%)S+6D||EDXNM4x9ZnxH-5{H$Eh=&^sY(TV!AuJR@%-_
zg027^YPBR)Yn>WR*9P3iR$Pgk-wQgB$o0J+A0XrDP(G6gAjYiGq_Z}AI%$x;3$utI
z={exG==u>%{i8bp*YFV5xU#t*62S|x^iiD&dg&6O>4R?xN||)w?|elVix`B~8y;Rn
z$TXa!=+wLvf9NMEf6<e-G>8rgKE$?n^_KrGgiSWjXl)(zNeX``uI$>N@Mr8Z+hvS*
zHs+ZCX#7#vYDB4@s7tF^wEyXJX8W?AdxU$Uy#Mjnf2*Xi&)dXzk!>^qX<21sYC(WZ
zS58-Ax@9XW=3{!hx@mipG%5E=@xU|_`$9E|Q-AIE+fV>SXoW<<h#gg9Np4Bk9AW<A
zndDLjpRmbPlC;OcVuxH^<z?BX4v>h4hc5UJp2sxL6uHhW@?lP39|K$^K?!eb5o7Ui
zqiTalc7iIm%0r>Ymg?p8L)dL%B89!&ppvWN>AYo0pv91!mVoDu^o!ai_mIQEz1!hD
z?j9cb9|#6p&HRpL`{Ubv6P4CK7V5R?!YgMhN>#9q(~jd>c&GShC!Jm`uhMd&HrtW@
z9M0>xcV_Dc&3xX65}%1}1K=Z%?H6f$F@Qa<5O>bkqlw*0ibP>5IjzhQMAE+K%;a`k
z_mP*Ii?RTeoY;@W8k_#jb^<=81FlIve%@bq3wm*OHydr>mysJ)UZ!ce9svSL-m`D4
z*DXik_bP9Tl{PbTU~}u6=bZu>H7RBp>)h_<vbL2s!CTQUuJ6w^S^Hf-FnKW*yaY5V
z)wHytyO?OBbz`WcIU13%{2xi0XE~ASeqz?I9(f!&;I!g+$L^<qtCgy4){Qxk**)0T
z-3D9%uWxfLbVY_$pTde`R6Cz?4MYCYn9-!NbD2Fei@Fs!?wieLn0w;Z{wYwW;qGkZ
zxDSM%g%6H2lBtyro*<_~rNt{3v;5g;4%}EpT;ky5wS7B~J|x*U-#OUNY<`ask2JZB
z(%=bh|4zBtj^*JCn9M>K1Po(~AR5Ey!H@?t1)z~`h3Ld)<!b+a&1L9EANoFI6|Ewt
zE0rRFFKsT#pMV-`p7uR!GM&HcbpPTaV$S`B1?|DjMC~kIaB8pyTx)sAKF(nsvGmaH
z;C&Ln_1CGnRQEDACeJ$1Safv2kGwxFb#}Wp>SojcXQ+b)o+eOES57*^L*1#ZwWF}6
z@j!9;xX<JvL#8sE^H9mgS-VXrH+HT0@7+ajUwFomtJ96-F9$CvSqs_Ko(I3O0s^JQ
z6YlV~2hHfChqIcC`Hmb9g_k6etbVIw9?5rZXF4eSi{%Xt*K9V*Px(8PM}rrN>G<WG
zCb{6ub^Oko_J@J(<eI8<u>_sE&X4PZk)whdzw2U{wx-&6_;{U7K9|iWVjJqSya9?C
zIhrhhcgeHldm&$BYUlfVcf>NSb)&_kgY}E}T6E%bo&bhd)LW@)Hht?mPz_ddQtNmn
zq6_&iL>sa6u;@6D7G*UkZzmB3yVvTEu!v3^Oa*TSG9MCnYHVhx|M*n-u>ORkQJJoH
zKa8E3!|N^j74X&*Web&c36(^VXpQ<t3_b)-@<`G;IoEofREyF<tWl;?=cAw(Yrx1T
z4z{VZ`A=zUO;E)FI~|Xe1p$ke79XUi5V*QOSKp!7`C!3!m_k`&`vZ|%lyI>zcp4K6
zGraVPW~*eafksw$254|`Vv2}4jYI8Z$whPy73YC-$JI@D%}3g0l$yEz@F9yo_H%82
zDTY<%kq$ZbbkLB|OtJg%Sy4Q=$Y}nuNt0Moy#YmJ^VQJ5pK!C0tCPRDOKX+O;XAM8
zJ)J>x1U&b@kV!JT-}ooImq3+_nW@a7IhS0judT<%Hi`?NjhwBw(Ma)G05_lCeW67V
zr43aMpAIDVWC50At7$ggKewin`_7MWYxzdK?ws_TehJoyTo1*y&So=T*FNr>MDOEA
z7gtv)a`(9DKkVr$Y29Do4yn(qJS%X>0=Rd*7h0@Wxysz)Z(9+lBjaRvu|lv87&<%u
zy0<)xZXARp1uV2T{&|QhljH6LqP7N9o;tQY_CFG~%s4u1EflS$JJY_*&EQ!cbnf^E
z^lXTiNB3o}xl%vV+PHiKZjMcnw%90&cSSX|)44j|_3cNG>C_fl8TTC?dO1`Mc<(wl
zH~1-lW@lr86uE-n1Hoe);6Q4~S*OUrbj6{4^0<A5q(MDcVFW2;J~sf!Fa0@c6r{T1
zb$T$_0SAASy9p*3(Yn3l;br~Vr;)_ESp!5_#MD^j?tF4{G>f550)leXQV5d*Wb|}g
zI5c5&{B?SyzA@zbyAZp_%nfT9;`W8j{BUT(A15EDp+%&LzV9dOW;dX)E9W%O<gG;H
z@T1t3xi)(;e&g^X>xq^Z#V*(`y3Q@hO(l~=?hCCT0~^WsD;Pd)UDP2xB#0&Hoa{y8
z$^VYu2MofCsEyc{W|fwZ-W(CyYZ~7eN23L$)luD@i74>V3h7Ag3p4Oz2@DS}3+71=
z&N2yU@|jB2iSbs}6|A<F%9Jm!P7aBp%)%yPr`lkcAycDGY@A2pgG@AZ-K)00g%yld
z4wX{-A*wJh7MV*}WhY;!TqgBeFzH8_@qr0W(3c?w9kD8HJia%vOV?U~T|vdJau#Fd
z_E3VTLV%UQrUh)-0Gg~4p4nLh?@f}xj<{zr>?NOcA!B2);-O-^kn>W0C5wI#gxW=W
zVqT^V$FnBHWf|ANEqhwYt!by0JHJMo@EkJZpG^taaqfRBu+^xsDp7I0xXwXaQF?E%
zGf6p#JK1F8)^2uED{HBcIW^ZQdc6m9gnQb*>x0iBP4dFxGXrG3_PGbyQd#Gp3m$k}
z9~M3Ks>Vg<Hj$E3mGf1W7p9QDd9HSYt9Qe@_)x|`uXLkEdNKZlYT4p6h2YzwdV&x_
zhQ@VQ7>1MdgU$JF3i8MAy84@Cgcv_sWuQ$DV0v5|(@rEV2F(=l6QR$SsXIVVl97Xn
zMHRH1j-6mNfI!^APHN3s6V4i!!S}I8Wk(048D<q`2*$=Vz|7C|k11wIP(SYur9@zY
z_>0fM5XCVOH=uR(uJ(=`9y^FKh)E23kpH_?A!aSfGf5qZ16(+}6rc?J6hecRC$=L@
zIBgfwgaiu-_Y#>9F_WkL*yF?l?kxih8e+X^7-k066NM1Hg-o3~iJ0*FHoX~rL8sF1
zKXO5|QZeB6W3XhRgyc9z!Who;*bN@{Zjo(&vKnxl6dn2QQ17G=xDkpXxMVD49LAw&
zQ)v0hC)F92)RzgC+4s7)o7ay6Zh2I2n#dl#ki4ey2^iY%s1W$UI>q13z-Ga^pxuLc
zVdoI4!pX$Re{c3<4=oI^Q2eDxC5tX9EOa<CA7xx-Y3CraF!r`*Pp`WqqPpB8PU|ZZ
zr^gDyluGcRwct%s)wB28{c;zLhWR3g$%8B!Zk>6T>)r_|QWdX;+NLrm7vM$5#`NvY
zcde|E3{U6ai!mf+-UFOcK%+ZM^j%a^htg;E-SNg^!6l!=%B@)!ES5uZuW~)dZZsrW
zx8H>)PByruFVatl=PmRjh^cOP5hRHp#xVl*SnHP@*-ea?n89>gKbx^HevnQ^9Fgb^
zGwl)9hW+Y?(3jQCG*GKvtq!h^wmajL(?qzS(I&_W^!|ZNOoj|)8eke{78C;8pVtqG
z8ptYGCb23=@xwVzJLUu3AHR=H3~vyo5S<y&lFStn7+a8-*ej-Qq4&72yM44Pz5jdv
z&!P3M#39?R!LIw1w@kJwqj7j$Oj32ow>HWSY$1FK-*_@fChPqK%-CNEY)KA@n`P4#
z0hAiW=w-4cc;<>`+YNb6-|rev1(@oYS`G9~SBxt4X3PtW*Yzw6A6NMMe)S&LNR_4)
zzj`8_ASPubQz32$c+k96fHMho5Vz=MqL}|mpRpZxTyyyWjQeq8dJ^k+x*ma3#mr!Y
zaj}^}kcF4rbc_68`;M~s<Ht-xTtD-<LI18nA|J(+iprvL#)h+U?uE6d3wTS-zTYAF
z`2LG=k@7U~qI8w*&t%ymshfzK&Bk44gMC}R&WH6TU(+i9%7BobPu9EkhIM~=>JWut
zqvHnK^=Z(h-U~mo+9geZ>nZcD$CUbIH&kvtOUL{9!^sI(y2|5|`PS{>MDsd&%Qf(M
zAS>A$lGc{ak>Ns9^FynXtX{FJyxqe}RIdP-Xu#%7_c8Mk279^)En)!z@^F80Qcel-
z1O}3XR8{#=sjj6}DHb280-}ku{$ykFUa1GMwKR@<l8nD{fBC8U0k`Vf)$G7qp#DW3
zWSA+cI;zS@a~s%L(d!x7=o`_ySlNDY2_PW6F5F*5D<eleA{Q%5YX@!@K9Ya+;QlKA
zQ_Vm^^sg?C7JMYCGV(;iHugqDZ1k-3j3oT9L_|cq_J+pXzeU9UBmVWoM`G&eXv@vO
z;Oy*7@61APV{gL1#KpzMz{t$N%uM&ygU-R#+ELGi&f0<W--G<$aYT$94D8Kp9nEa4
ziT)W^Pv6GLk&lGrA4UK5`S<TMaxwdFP1X+oG3(1fhJRWZnCKZ9{%h<nQQm)Qx#i7V
zj4V|}%&d&89lmt%voJF8{;U80YWZ)C|3gykza^Pj{~yW!(efWjUWR`R_#X!Sd$#^n
z`!!wsu)GZaHTC?k+F3v1KtKdRBt(Q1T|mz|pmnu|?C5!qGKhYH5vlgjhiT=DNGe`-
zjIqh?H21rP?#A^?oZa=8$iAf?JW>F|2q^5D$i_}c21rV)!#f^fkpqwJKRY{~y60yq
znzL1HliE}0Sa{m%+8m4@&z2`lt<8?lFD@D*BH(YeY*ea@5{*~4Ux6#jS!^1ZAJ3Iz
ztrdGc`e|2tj;Gc~wGn6Vr|0KRUE|}@7FHGwRvJyKK@&C_P&+mq_r`b%N=BRS8%S0c
zYs<j%xB>b$lT6nI+$r`If21`VhK{>1BSYh*b?0?GD=UJB_$*#CmdX@8mh0D%c)8Vt
zk@)jLyrh+pxuUaIfw!7<uQ59M=)+9!o*B7JMJo!~jM}2iw-P#Sk4PoOh+4qg))2eV
zD7r?iVJrfkvUx>CMP)>}P4y&wozxN1enxVlp18W3)hG*{@l{u!5y{^*3vW-E&i92x
zHDF=GqCK$=_iSxOZCzbOTicjyR%L_Hm`($2zf3Cg@<RJZP$VADq??;NzBS^Nb?5W<
z)ke=Y0$$r`LYFOm@z+tBv5LI9zKgC)Z65o(;*QP(x;>{+OieZ<tM-0v_j5WPx4W2i
z?@!N0_bI~FcC$LZyJ>%ARaM<G<qqQ_*{sGPLeC}O#hRH-XUhU6efy|v4nlM$ry0_Q
zcNGQ(rn;P5v_+XzO$XUwV<S5c)bn%=VMMetV8B5d2n4EITUT08479=TyrF1|iwF0O
zj*NtkO-)JGCvY6kZBMlS1XNXCyVR|zsj2<iPdG<I49W^5tNTqEQdXsHSZ6#@t5l{V
zeCWAu-FhrGlv`Xptgfz3%R{po79L*F*to#W!#(pS7WM89fl^7e*DwV<p8%E)?ej=I
zJAg91y<PLr#>U1uEIN|k{4XVZ%xjN#r04Bsr%^Z~QDv(+=xFkBK#m8gX7HfSLTXg4
zrKRPWMVTJEUGLXE=v`T%-2inn79f3V+2iNR?)An=*<fA7S-h2ffzS6Tf83%YR@k>K
zeC!YK=%p$;%=GLTjKT>AhB`7;p91n}{Y}*nKkRRBG<7)bb^;O;;Ol|`s(Zco&HV&n
zvQ}&{tqO&T{NPT<H?qN*^|ao!9Hx?GT`^lu_ykDmJx))*NX3`-M&d0$d;G=D)l}tm
zhoT9Zo^KD-u`;hHWHak`;!wwEhM{GG!fB`}>*HmLDoR?&XZ2z!cq+MFzL!I)L+o+E
z*PmOR10O8WphmE<hKe9CC@@sb%t}0uz%T30d7PJSr@GEYS%GKRrza=&&DQ~FQl`mn
zy!&F$?HxvC=j&~ol_^Z?VPUXVa|d+FY{vC6S=<=PJ$4%JD;DyaaODU{L8!y7vwP;e
zzC0NXk~s3fifSUa?7x%gTn1@E0&aJvCPoS{``bh8rdC!CwT0sv>gpL!KUX(4eA`zw
zn>#yuxMTTS&FlAt^cEH}?Vho+yG*YT0vmr5Ec2JQrSD)wK?V-h9PkXh+6i^paxTyt
zZ}^witD1d85%3w?ROs03Uga0Waob+S$Yij>5VZClOr-77R#9ZVP(cZ{v9Yr*oj0wU
zr+YDak{80u5m%tWR&;hw^7Xj8yH&KbET@)_XJs_E6f7eI!JvI#TB=cc*a>IwpAv%4
zbem>tHk%lUFFLzl-0WwqSyOW$9UW!l49E8*u_Cmb9wRT0k~ls7Q-;+#>56<VY{aV9
z%c;TW-HD-l0^E(1vRZ#ZXoQ(-(S-L&WvOCp?8D~8hP}C67Y<<FOXz4TTHWu9>hv4}
zhEVq<X*x70DJwSz!z5xs|8RY#T>PkCS_;}zQC5b1)0W19`%16QeW#_^(s6Kzmr3CS
z9Rpo#3nsW$dKfF9%bgc~kCTtOS8m_Y7urS$;3rT|q9AxtG-ZLZkdczoM!ni56+b6R
z_?A_#l)`>>oDo0v+_1deCvG{F>8Xk~Qj5c4+}uz^2p>{eDeL%>p*mOGqgxEL_%13s
zP@NRCoFg2(KG#`WyT(_M3Y|D}wcS@yQZfQOTQYKzw>KDyYVd%MW2U5(#d$niHz}$S
zi_3^VT^JOL#61p>BGx(a_d&=w`J;@uSH+$SUu?=eL%A*wt4OQqp7Ucjo*yt;0u4*W
z!ZJ2cL-!0(G)tVhi=;MZhpPf&(bC4lOs==W^+vnZ)b=nrIeA>9q%Gq@#P?cv7-<m~
zj-_*c<NhAWabD4IdLB9iusioEp{5%ZvX?QI8B^kaLsJ3sH#U<1t&Tk^l*zDUDU=f)
zGNzb3x-6E?j3~OTH&f8!<>B#m<dUZi$E0@z4^lup=m+iJ#8A=g0aVx3jUg1O)m1u5
zM(L@`EowFO@An9tZT<Ps>NqOpCl4&4NFcdBX0=ta#^Qqbc)B;%nDHx6;DyHaP9O$A
zb$Vb=m2f1Yyi4cZpz;+R&0Ld$CokX^1>_p>zuA=v*#G_J?r^T&ZpanMJ8nu|ciwz3
z0>nZ(Y?1yjE&ut@d6uih6vB|McodjMO?N%w{S{VEL%AaTnT3T-IK}QXFjCTUax9>b
zBqh8>BZNlZ1Y<4-9Sro`WQwfBIo0nZ<<AH>Dnh^zFv@$#6(#T5qgno`oDgpM?cL=?
z6fiF3*h^7y>9IoYvdRO>0B$b3*ev?&>TtLef<j7v3cT6he)Yt8_5ut&qETQ!9PeR8
z=`w0>tI9k2^}+>VTncZ0qo%`F_CSV>W~`j;g@R(SG@2F=AjKN8LYyRYYnpyTl;CEb
z(~a4TR$1Y3fiO)FbNe_#oe2$M9A1=bQ+)RfqT5i+hU!VSL`T`FRc-MSf!bKsjx!?L
z*HkZe*@k&>>C8IrsWwd*bZjJk9TO>+lf@S31Oy^cY~PD(ixDnF-zUTGjD*b>rXK}V
zbynFj-}TBQCV7YoQ+D0BGq?^Zs#nU(t5iU*oR#aj`(ak7x;4w5&5iQMoumJ;C8av#
zHm@e};=~cSy}eH8LQ14BW(|b&zlPNrl_waI$)D=2oj^3DgGzHNuSA<jj}4B(OfA)+
zbuxZFUJ|==kOVkNqG>a}|3-8e?70`RUjC&qSQgE|Fd8;S?J+_O$Fa2N?-~lNSK6MM
zd^D0a2BCS|j@)iQT>)>Ycy@8r$mPv6!7Q8SU<bMAoYAqM;472gO>BL%;SN(B58Qzi
zQ<H6cUzI^y+n5c(4M_-m{i%@+jTwE?*f^;?cASRW^++B$IRh~46bK<;pbK%Q3T$|e
zGm<Tg;zvw`?5io<nAsz8>s54pH6pX=KzZ2ByH;G&y@@KRZ!I4Ry2o6R+0Ck*HyR?E
z{|e)~HxS!eT*^ECzBaS<qV|2vI~NA$Jc@uVL78g-XMy({k%yAoJTAsP{FSGChAd}Q
zjANfM4Ud_kJcE`u&eK7@w+x`_YWBE)Va5Hw)F+~2+P&AC*7GCUDeRxm>6mUD=3^F9
zITtA8RSq6v06m~-D@b&YxT3^eOzP;WdJp+nzL=Y-aU??&sHr*#)5<#VhWq+e9m3^>
zCYODt0?>#@WEQx`l?kJzhA8M?Po~#<4!#|h0^HOnG95b@R3Qv&|5+hQVu}8CqtT3+
zQo%{jFLz9dNi-0Ff1<ToM9JmV*D_9N=x9?I5jaC(@vE5iR=UZv5#vLrOm%J5L<LDP
z@&M<3%*sOFSC2E~47$*!rvL=Ef2X4HT&Ol>j&GGqPkwMJrt7F|0?I!4qb@1D81d<l
zw!gtr{A&rw$$xq3jwdC)Pyu9L7}AezltD%Hs9`4}M`NJrVhJh1Y5`Mv&*t>8p^%U^
zydK;4u~|Y&dBar-(q-90RDVf-xYD(I*~K7F1<fstNv_hK+mi8sw+x1TP8V{oOZ&Jr
zay0v-2(l)Z0*T;%c6O?NcJ^JG3YS@!{8*|Ci1O+kP5mu7=162B7=JU#?o0dx0dI{a
ztG-3J;PvlQ$4kiN(fRM}cgv-b@6EnX&!bs@_FDx8Z_n>3i-J$F2frPuo3c-k;c584
z1yU5>>8f7yqeo@W`soco=UhP~62jAL1oxsSsxyv1b@SNg6e6Z_d7mAf`FON-PnkX?
z`DIxgSwY9(6LKM|fD3;R!S57k*T(cF`>cf6DdLXV;ZKBNlxe12LqwWnx%VtoXk4y@
zG+RnF5@1<B-yR>Uv?oNFejTMSBmMYE2tS9y&dTcdC~30HG~RePbTt}pw==~1WPmU5
zsqfJb*zRE@$a$mRL4D1;?ydrPYVdg|rQ-kP6d-Pqx{8X986nPqf73qQevc6_x|i%e
zO-BbL%e<)u1NY6ctoFZ_CiAl8aXLZgn7E71%<)lWbgIt=NW7bQ^$34<lL<cG3_*`X
z5%64B9MZQPUbIcK$7=@JbTkldzEuod+`(Ls9=rs(rMJcyh)3Z&Amvgie9w^~Rggf8
z$l!72vM9j?a5zBo@T{77g!S3r%4KjP48$Gt*YX43Ab@RIjrJZ4>U?%24=@e80im83
zJb$fLotx3P#iA=6!L2qswK%u)a9q&Vu7A*CM>FJ-YJv0D9*z)GT$M~wy*(jN%U$Sh
z8mu4v&C=XLeaZWf`>FQZckau0r2z4xXu5%+JS@cRfpK^FL`)i~v9QfLwjC<B^;z;t
z(o5k(%|?$vG~Q?-y{6eF-}>P_6LC_$EM&*CfHz&NWp3vZVE@l!hNvz}QtprSu1}Bz
z(L|Ya&dSfUakV<*l~tQAt07wt<iu$f0e8&JPYg92e(A%$5J2{(!(&Eeq_)Sg(W&WW
zJxRXJ(6$f9ZhJiw=duBU?84T8DB_=I&iP#@d`g$ICke{zSWZL}yiNwKtpr2?ze9hk
zsm^y<;u~z@n>>BosOUWo>orTMsy0lM+KKv%HsC7a8?0`JTsq@ShG5T4bY*$K55Aq3
zg#@bjjCml{Bbs`=V=cQDh&OtbEiEN)6zL|_Ml{?@V4vNP0>|FJD%)=-+@}*Td0?R-
zycwspDDc_r^Le&&PzlN!J2x_3x)Fyd&JcNXO3F(qly?n|aDa^^Ul?#Dkl`i#e9Ko@
zc8;Oj*HekJvQS{NlS+^_C-6FyJR5W(7<8(adcfDcTI$8<jGLBU@Nh<emx>gRAZ66_
zrM{#Qjw1RdUrk;9Ejx8|UnpId+j5D~eS09;5)K_Jx^mk$>a00h;30$tnT|PgaR8}Q
zN39V*7~;YS8j-#idd8#si-6&~sE<-%QrhDvh~|3<iR|aH9J|ie2rr=)xYPq24GvvA
z^4(PP>>RubJjG%l(bTM3w+)18xoT*7>%S`w_0N7|q8EjMU-^ScQ-!#Tj>V0{LmeH;
zwd%59eocIK#mrwJw{oMRvUAn>8~>1Jf!%UR_Z11h8?Cl)q1?5PfJvBKC7P<+qN>6U
z6J(LAH;U6`UFuvIa^5$dAsgw1V9o_sEGiA`p;eB}-oXwXVL?UGb_cA;llLmR3)3TF
zl6_arm{*pPhjdJhTN5>f(K=m$mDm1AT8l4X{kGA5pIZ9%M3Yy}V+%cC0h`VusN|b#
z2+`sX91bXDqOsX&)l1q)Nonxl?HsXzM&t!txwEH9@6Re8|H!8k((=B76Gh;UcU7zb
ziqhmOk<;KQiVB^<fBtD&I+y^+$$oCADbLT5cmXFlO<4?AqP6tpIxT2C{`T>M$<)BA
zXNPl$geA~)E`F2A#Om6xGjn_y7S9(&e34|Euf;y;G`*&&4xVf+o?uB2Rg9Pz$Wlu^
zI;MAh(T`p+k+D4KP!|Odh!RG}vqGPwn_HUd=4YgCo~*PklD?@H?IjqAcu0$2qgP+h
zG@vHnhY$M#5}8vNT=C(fR$S#}H({_GbbBo(9zP{|u4F+DG6Lm#T#ya%5Q7YHcS**e
zG{1*9Dr7zf=A1z>E)Gz~QqVm#SS+>#Z=kO62;y?@UxHyB1E|oG61{#TYRHRXA@+4{
zBC%*Y`U$=G&N2fMf9-e5w?og*#`!#H(MOMG1o?kfsxxk04B`$GIIjg20e#aD|K^Y~
zxH|>%J-&s@TboqiTM+Q_MmgwH^YYKTBOicd`?%S`I~+lYgPknlud$d++TM6R@9)e0
znwfPyE>KxpnS)U6N#Mikm(%ASHi+Y}TG_+AY9ZI(>A#lstuZRD9@Q0{<2Jy%$&I+U
z7{<cj#SO9I^;|)BzF7XHc`*&T;Q=AKz`)bfwxOnZ#z0Y{I~Ba7Hf_1_#y-m2n;5Jh
zt!^|OJZZIDJ3u!))mO8QA+OzFazX-=Jgw6J8IG^WJX4C&j}(+Q^JKR}%q?)XJ8<**
zH0s|R7A<<X8zRf<cWvr_=WlH$nj&6^QJ+$3d*BR>sp0y;K?rdX8a1<Jy*5L_3pXjM
zO-;2^y~`rYSYM0EW_EL&K;x|lq8YwJ_jB#xYW>nPYhov124RuG2{w?^<F(0d_d5r|
zxUZ4ZDILeIZ-Pa9X<0={&4{*#8BR*qPGMv_RVc*}CRTEG#%;#E0-}ZWY{JOH-#LN4
zUjC>ydfM7id;GKDkM5?x-K&MmlA=uC0=`v(y`_MLdX=P(lgW%Kp9beSgvB<|<MwtB
zXFsY-lr1xiHToL2`_l_ms|~d7G(QqdkkjOLUV5@ZTFgf1_ke3nWS!=cX*dog^_{W^
zYUter9cCje`r{*XSrIACtjBCBI^)uaHpa*;Fq%!G>vQC+IO$!OL<hU(Rk*3Hy+)A;
zq2T@F6or|R<3H8dQ%;D=en}v=Tip@`_VjsIa?&uxkxzozmL)$kU3Qq#r=s$#h@AO;
zricwG=v}tn0-fJ+F;b$8jaNL@7FeJcd#-)Nv|+@=TVF4`hI)oAZfP~|fpv5Pe<LlF
z*64eft38)1A2-~a@(x>Z#_Ew7bX-7)7MoKjZVf(LfFo?Qgm1hbTxcr2bc0rMaIY@n
z8;&T+r&-BiyDRvcsIxnYZT&Pnc1NuIlvs^eMYAKb7PMNU;&bpTcQL(N(F9I=!^}<c
zqj~n^(!hH9e5LJUx7YI~eb^;qjV5b{Mb#Q&PR=Lx(5B96;aixA5^_9IS7ZjqV+p|w
zW#+`+!y-c_c-O>zoDD_}3gKx`2l`c*yURi57L91P+sjwdXavylg#6M)0<%$y+!^n%
z;b!?GQ&Ym3u>~Lp65^2J0&`lMzFBaWikf?XZ33>{jl&7v=Qi|ocCEVdas?8K7PM$)
z;*KMT-F;&GufUu|XC|HlqoUXE65~>+u3pvlV@asQws|?as(;>9iCA4v6K$LO+uT!r
z&Vq^f?gY(R=osRN8F}>P{N$P;1SuhL1Ow<u9COhoV6R>gJF0&7r$+0YI!B~o%H&Y8
z&K)e;?DI3Uoqj<meMl8=BE9zYRfszi4>clJmsc3v4*<o@4atoY==EDYQATesv2<e7
z)b5X4Le_$PXF_U%PQOC2LZ3I*pwvMM?pOA?5b>dsT+`fr;vAm6E4dZa7+%PCc(V@M
zx*}i;i*!4Yb$j(JL}C}<;eBQn2dn>=DkEmb4ukU1*Q?n79wvz=q{?xYT<R-MHw$GT
z{9jJ$>`?$Iw6o6cHGLHDzKUp?r!Ynu#c9iL@KO@FpHMjZn`vZ<^#dDm7NT#IA>fdV
zi0h_er8>lSE=zToF>SO#!P`+2=~ltrY(*4o;Q82&1r`lWQjnQE_cB`aX!q$u@fiBY
z=`HrR4pRuFp|8+Zh?2KAMRE)Qin=t3#n{Boz%fA>#A@lMWSb5sBo1Vs{<zB~fDS(&
zq3<%uM}a71($1MDD!QSsXCZ&KH*iws9ARNKaNzP`nB<|&0oDLjB0JfioZ_Y$;bC2*
zz9j!NXKPRgK>Yj_mudInee>k5r&Zy;E18CBbM2CTDy*t2TlccsAZ^rNv0{fEx)ZY|
z*#k|*QJz~hYC=x}gI1Y-l(~Ef6`pb@0R<k=*9+^(hQ4nWWc8vQt>MDJ#rU#Y9F^7;
zklHvMJ|$y0#9wg1J@HZP8TI8uzfP=Fd!R6yK(~1P4)Gi1|Nlc17-~Lj<#wb%(&BpE
zl<S&A%tDw6d9hF1Go`xL_1Ji+*FwMg%5t>Br>GRY`*}Fp@aw}SI;CJ_DDs%lWSq!A
z_WLS+e}gwJtw$8b{lTvF4ur;*LnYQ<OFugu<F4z<oEw}pmY?+7P8}S|D;nmkd}M=w
zM4YvpoNR}!^g4=WT;wYth&RZ5X2%qK$LN6m$G+Z{rGL<RM~c1S&bio7=_Y$0%C&Mt
z78Jy*7n)yPO{vqajhYROHRd1%QI5L}dAIDKQ<t));;W9%JJngav$}fh?3O5Wrpy!a
zVF%rsQE#MH$2_;?C<X>_6YD@jjzya>L;TlEnE$G9eP!8`h(1Q<0;xn+>8w8C@y)^N
z!R-J~;cS>9I+U_Ri%|r3Bmxt1a#j5e3T>tjp7uruf8x(-y_c<@f*G-LJF!7irm)lL
zmz~_UwkaLrEmz#!nlq*yoII^qSzrYxvjs>uyZfTg70b$+iP0C{7v!SIHr2hB3fzb;
zpDx$~6g#B6-csOZ=zwT#&NI2=n}=tb&7K_s1v4(F1VB~B4km$hj50u<ch{|E6fd@h
zMF3^4YQE%nU)A*ej!YgmXXo2~$XBW(5p!MMKMp~F{KAZnqD#bn3#2~?eQbPa(uLR6
z?aC~oFgmq)cXr)<8S`0C?K<>Enmz*@z;k;0!i^YGobF~D{ap(Q*zT;)JvioDvp(<C
z;*f$!evxH8?ZC|;|Dt<<lW}%J3D7o#uf+FDC(&yt%C7$3V6gm&2t6}<)?aVnRi4vN
z5-tb_pko%w3{yN_VtSXb1;!^wRZue0p(eCXh6@;#E1>X3JrhnqC)=Whf*0CA-B?)&
z3-_p{LsF0$;BeOWw=s#vATc5eBh~)JdADk7Vl0lwe-1{10ooEHpe3YKDU+gQe*gNX
z+>QaWQ_IrcJba&lFxiIGBxxyi-J}AhDNljvQ9w;g8|yJ^3tP{O3lTl5_^y{UK`QAB
zGT%rB^JA<CDX62O%8YS)G;|pZA$ssE=|gf3=9iX^ewQf~YarPylnBYSgYoos`2#Zd
zZ1%I>5s>V)6GYDjBmc{Bck_tci2d>d254#!Y4zFj%OqpEvGpKt&hl@*zQ*I`Yq>S_
zMdO(Q0Y4TMrvQDDfZv#+{YAqwptx})+^(5a-xMQbN!w&Ki`QHR;hf#++SL7XlfEJO
z!z;exZ3S`6dGv0bOMG_<E{I}X-a7hiS>OF+%);ut>%8u5+;X>sv_`YuLw_3)*#6Qq
z2%hs&m+b-@thad?jKjd)L-a0amWnjSBmd%P>fa8nWi~U)t>6xoOls)}_|atI*ev|n
zXw_%e{)F09T?~>DvViS8CZ3u1A`-ALuZ|DP3C2@{MW-IJ`;{jF!g^s9`Jst}*~V^X
zC6ISVEzYl685~AbLw7kgoO|8|oO|Aom6uuLu@`g`zRW5qv)iSdd%q{lUvQq5V^Bj-
zv#Qf;E)>1!rPSQrlBf>;?wOfl<=(l;LdV+n3of-9fi7H)rDIc;|6|fO3U}U+23$fC
zcqla5H&$Cd(jTLVQq`8NX~Ex21-LRZWMR1)V;Qerm6D9n^o#dzZ4P|+dH-%N4<1EL
z_0et)&a6`P=t9#>5cnr2W6p>l*bblw!GjmiyLW}S_TM(W>qSAAW&Foc3Ag`=g%0G7
zCGE~&x_S?(^2MVG>$3P?X=SO_O*u9~F5#HoIV0nxqqi){wOL2u7+gs9w+)8Qwm$ro
zgAE+R!@}$wB?4ceqD(?>(E!?w-8QHt^-p;UMt+I#eKq7;3H(reQ?$FR74|E(X&&AM
zR!`TUZ7&y8%IuB9E4WOa{((P8$(vZmFyGe<@dTXn&t1>+t=^~lQq*?>LTJJ*XMd;9
zbXE>lHanCzWSm!Xe414$ZT_}~BdltyD_S|L_*@A#Bdll$LDloJY+WHWIX^|}(!F=r
zILi}g9;kHnXr=o+tXPupuWN37x^~L<EYU3#kT<Hk{G;0-o@V*}c~)1K@?cj*G%t5=
zg~5K=6S}bRMdZD`TH}vIRDh`hNL`T>SH_1Zmab|78?Sj@E6Q?)Fh55X@px<!2sFPg
zU%XvaH)Qm#3cj@=PhR#_$}k4)v=DXLazVuvU|E;e_hTXblYV2E;gk+$AO6DJNjjiR
z+uA79%!Fy~`w=*eHlJRPpsaE<`=VG%N{Q8@U+|AXiZhbb9nbC+4k?z$@u`|;Bw^_J
zre9K)rOA3dilxV<Q6m0(ixcxT8NAjFYKS9iCVGrs1p>i><|1eT<K)K2wNRStsY@Bx
zn&Go&lB|$Wl;@tebuA7@L_^T746u)3ynfMU)8O+pc3zn&@9)NAvQ+tlZ5=`tZT<e{
zlD>+keJ!8w@p7ucgfcHP;5o9+=5rR-!pA<hK^P9Eb?}@Xz}3+YE4KZI>uROtB!%t5
zvIYfBY7NVP7Ox_=?b9V{)m+{gUJ9XlG>MmK;$wGr>}=_UyKVRJV8y?yY4{|Hqb<FS
zr?uh$xl<=lZ)0ZGzyXk9n)S3`)wqMVTHaAOM)-C8tMRIa3g}^yG12LnuA!;(TIJ3V
zGrBYJL%uUb6#mW>H;Q4F8Hp;;r9+T2fH#B)V`E(9Zg0%##FsEUp8iruNxeLUm7eA&
z#c8<s)ZG>x%9J)PhjqE<9hSfj_a(60vqIIkuFvjfuQ%}a90YwepDO<RrC_nez{152
zEYJaVQSSXN)#RM0yz=Da#0%jvCBXZ45{O1{odbO{K+}74a2(gH4iKdDTgg<MeR1V)
zfzm?gl-I%MkA{i1qLt3qK&6MZP0Ly&52up#YYT@ArG<s1C^OYer$+WA9oml?Cw8Y*
z6P=E!sLRqO@7533w3j2(*8-ajbCorgLFLcgN&bSsCOemJiOQJE!Ji*ccwCiBwYPOz
z9}_Z9tt5D12uZ>wG=){Sqi0DvnMSM0fI9E?L$0=)9=nHAf!3kQ=a!NOw;}7c-8l!Q
z20pV-$6W_`-dL)mHJ$V$eid8+=YWY;t8^>Zix|H9Qwuuig`GX}yb8pHm9Eb>W{ah{
zlX5m0JO#`xB4l|pTZ9zZ-S66s{D{Xtt2lcMk3!R^ZMq`%DrCyM-rNUy2=jdNCDc0N
zlWdS{e82VX6hJE)mf4v>E_S+zxlpjz-hlZ>Axa~}h{?!WNpGJmw{2z^OlpLbT(#QO
zBXl)L6~=C;1u^bP`Jkax!d_cG2%pNWGE$a7ch*nKo?BI~fXhtQ<~Fdn4ce;GX#uw)
zacM(MRx2@v&ZBg)OcGhXcsQqq1;|t5TL<X#{v4<@hea0}UneE`KL%Z`H?m_RQ#ET~
z?Ku713Wf+_QzgT02g@v04|h7{b&W5G8h1~I?oUXSHMm#jrhTbuTdR?DQ2TR1Y7(NI
zRvJM@5PP=f8vYq#&(uYTO)!gz8rFJIR<768b;CC~Pb*CG1!IG)OLSQ&My{e<52FHI
zktMV@mW=Knm+UJBI@*@r)!Q%{_Z0*WqbeJXgYPK&``<Qq1?uDW;*O`jXaPiTd#^t`
ze)60FB{#;}xn0xk(Cf2t*{VX+1cZb`4h@I~twT=qgz(Mw`{q0mZ70p0qLDKD^KeG{
zou?!OUhPDVo1O0$VuYFClX+>bwnR<x&D#qmBcVFq;*)&{X*D19pm`fU%LxLVoDNM6
zRxLI+LiyC?Q7*Rq%pexRYHN~d+OQ=-`vkgJ7aJ7B(d6<5N>NvQ8I){;oBNEK4+Qf%
zuAI}>giFgBhRlKNt&Y@^)~?wW!AcG9!QyAS!jba;%f<mf`o+TdLx<Do{s^=Np6!(x
zIl3O<L;mh9j;bDH-)(tE!JPW3Ehtoi2328!ELDRYcc^o&YS9?YXk(v-dBwAI+xjgY
zoaN<-0`TQr%>7p2VQFKZ;;c1#s@lD}jSo7D&+`(^LerJLAJ70k1pEFQwq_KyA4{A1
zU)0tUb>3(X=YF#Ea-bA9cOcpf>f#}vsbqL6wE>V*8)lFWDHsVb5IJzVc6VXDW;hOZ
zlMA8!F>>3p>E&LQhRdw|{SrqSLnG(t#P%MYuDV2lf@i=PKbg>$iLkib{_}5q&NMj#
zs1v3(Nt{ZAMSu0V?$jSN-~e5b)n#cs`}+cQxtZQcT!x;84yQTC=Z&TN5fY}_{GA?f
ztmt56WF4XLHE~y&y`<khoO2+w{TFXd=?1Wp)41-U+iLDfx$46uJhGg=7A@^$Etd;x
z>X;J}pTBU}`lFY&$+q)qW<*}U`d}dgn52Qoo~f*(WNqVp8FQ`*`H__#*(bJA@$yHK
zCSZ2uWfo=i{@nn$$6<cvR$jw4U$6F2jnC8Bv2ibSqk0`#0X(X}eSL#NT3PSn+su5+
zXaFuIAE=)bQyx{A=x%Rwnow@R9l!OQyc#5q3|+tflSlf3<U-pJ{~~VwCp!8!RQ!q=
zM-yOa0Pf|r4)*5-$vVE|iM#Y)=UKO*?aD?eAK7iUm2NGUYcU?GK3{Cup|FUrjIsEy
zTkgHt=^eCc^c&tEox5xnb=vyZ>u)M-KATog*~}HW=<jI*Yr}XG`&m?b81Z$$JeqA=
z=NG1rp}56btv)Z9c&c~m*$8avP6qaYj&S8V{Qyn7(azVjs^#@Aw#|#@in8kOe=X&_
zT{AM4R!j@zrH2~l)eI0G7JSKzyyQIXD)0m!KQBncy|*S58l49uEVu|;*wSe@O`=$r
zacEO?{6+8K&n%0FNM4(~j9Sj$Mwn=N4yFlcqF0|>_mx8;3pZcSaNT!oFjvo2yG|@G
zYqQ?A@fx4;pw|+v+OjmPkUo#ufVUKtjyxwiFE6VpE17|bfjl@l2@e%qR%0Ko;S()3
zxsjOyYujrNWe)Ow@Rm)*4ToK|IGrIRkqkAD^h!uxKe!$o259Ip(KiH-=5mZ&XLIBN
z+4EWo3X)&*{a~}3@D993Y-yg=eT{TYm>b3GRK)OCae{g8WEq<3x`3n1lM4otGfh=N
z;9zsT4x5BCV0}9@E~WyQ80gVj2P=yFm(#*PUiWm^XfqF%9!Zgn(k&U}g{B+ZD9*VQ
z=<6R?$7EcpT_ygaw?*>;_7<`u!-1oL{)sk+oDDlsF4Roy48%ohYjjgC^onS~s0_GC
z!FVn!`0NVPs40!xWMEHReEABRpvBJ!dNi`d6QZRzCK~ZUy!Dd<oU<%|^DFA&;f4o=
zJ-qE-5njFLIOACs7O^)5bm&ZhkRCXK-qAF8w-ksLq5@{BSikGYo{d^u3`VWc-Xh-C
zT9L;9j<gzhloT6`qh9U<;J`*u$7=L=r?Vk^Bo74_cny!E-@ks0+~7#Me4TEnu{&BK
zQlz#d+ho!XW6C9~(G7D#^V$$DaxAQg_1&o2v;RMgy=7Zm-L|z0goNN0+=9EiyL)hV
z3r-3z+?@n>2=4CgP!QbR-Q78rXRY&ITh@pD18QD1ZH(SqzgwGC9sO<$6ST-8Ru)-`
z2a0rlp*39+atKTKmY5*s-&GH~#(eQ89bcmR?(e8!`807`%f6C2{Xn?nI)HyZBt3nP
z<^ta6ZsbSU6LRhJ_K|!{fXZ>R8drTTRwzu4H{k3D$n!T^#20ugNq^b<<-8eV<()DV
zkrDRDno*HkF>=-BQKgF&VZy!G$Q`_}f19Xq83v-}o0=Mj@v1QquM5Pt#`?uMBF~@A
z@_4K8_H$E3{8EMKWfJvQ&U@TOyu#<j8|tDT84~VHr|DUG%>J@PZo&gW;I7OvyGCWA
z_~ROZB0SyinNV@yTSV|6SHb1BHTPo>QFpgG_Fh1iVIBgi$0IC3V+RY%C}KWfEB}gB
z-6|ZNF(^fW4~wV>=DH1A*GDU-?m=k2Oa%PTsQ6CvziBcNwmS@6i(IQ~LBBc;HrDCF
zo9HKZ^Ir0?Jgp+br~DMyAs@JVlA%b<ni($W-(v%On<>H%#c8&TAJTaj#(=oK(__MC
zq$jLUr1U`%)aTMqy}C9kdC1$HWW&kG?xSP*ef5G5vtHSuD4Pqh4E%yA*Qe|T=8{8a
zC2;?l<V8gR+@FE*l|)!K@RT@f;Au7<!bxd47bzjk8}}~R$NmTN0;6aoLC5vQ@}HP3
z*9?%9uG)=m%zmYg^o6A6KQixYbSn_t*bwLImM&%?5;6(V_Def(+XAoRlFnlWb=*GW
zD2B{2=3Xgt|Eq%!yn1$jYGU?mZskM2-paHhs*n7Y(8OPh5Rf~5GMIF&NnXEJvfO+D
zO%cE`ax;SYgf8V9HNsh}<*wDRu_>Jx^s0)pZ*C4-)VpI!)@30AgZVg8n9yWT(#&}R
z<lzqm?hd)A14-8Yt0*=A^gIX*s1M8RK|7AhiQ^Jt(Q%M6EUH7h&A(0@8`u*l{w;z}
zj@NQc0jYqP=1?tOB11bRu({mZZIhgws4jNBIlLNpiolFjaWT`a4r4XkO{bZxVGJvE
zR@ZQJ%x!?Y`uGc?oWRaGb`&N6`TDo)+%LGTQiT6sF+ck&MiLqEB_YvY-yWLK&|`=^
zS8icQHC;ON)O9EM?kFT@p!;-AZu}rh<(AnCQ1%pLTqmNn{|m(kVn-*2I6w!X|L3Xs
zXA`*>e=;Mkcp)mk?nH=t7AI2n4Ey%JEm8bUN7)aDDvM~u+W#Un&gbUl;0JhBwW~d(
zu!&?g_+)+61L#8is$`Nl^q&0UQ`ipYc=v7`vOmHdiogb<Nhv__Q7SOteB9c0Xyo}H
zb=5{&0LFDM8>yC3N`klc0Wvw$3|V${c6XZHD|^MSKb)bAZ~s1f$!VB>!4e!p&*>%6
zJ<1=q7-lDe(6EotHlCD!cc+9$zO(^-%J_iz>xwUiT-t>HubKXDst*QHU=L|zX<Z(H
zdoeWDx)}B-6G8}DQ#yIqa&FC!8plN$<<5G?j-yg$Nvc7|Lbv{Y|9?LMihp&{0X1zJ
zDa0|0!Yw%0j=>`uqnBMe$jp)vbXVB|Lk+$T2<|L}V83j)e}NVMYkwBbhv^N!&vAfG
zz(imbsF)&wl;6T>lBTRVkUS;wIioQrMj&@^m-;%j&pmC~ZT)uLu1XRSupQm08l9Na
zCeFAEx^lv&70^%n91?r;cNzMV1?C2LE2hwdtv77w1Oq0BWDJX>gaQN?pCoG0&?di+
zDjQuoVG;h4-pzS1JuEg&fmuf@SqTG?5@NyI&#9SR9TR9+75}nxIsH@piXh@c<(ESO
z85Lsag)t6^X&d|Tayuvi3j+fqk&YMqqMM~&0Gz6N{4WoJL^H8i&zoc-Fiz~Dlaq7c
z$(g|NOZ5gXk`rO#{KCY>z%bJaM*@sEDIYat7R65kwm?-~r*I7}%rBYo85iJbHyagx
zPeh8VNPd2}Sg9#CmW&~lw6BRDoHX(k643w0)`R1{d4`jvl~r{Kv&qWq=N@S_f#0O@
z=<B8f#ynuStfuU6qEH0SuIt<QXCo><GP3M$@sCq$_orXWaf6%P<om^aSl}pdc_*on
z1@RFDvG=!Wk+-M>LeE2jNdMCqPQbRP4rmqlrUV5`mMtu{+h2}?@Ek7Z2wUSg%n&0G
z5&kB|5K4qVDXNG+8CJOQn1>b9y^-PIkz7P#<N>~HRFE{Z)J)V2pzeFhUl9l5Nk|=8
z8fCyhQmVFp>G=Qk=Kp0^B(b%%g%1Nam7qSv`hLQY_VQ^f`^HZwp$>PwlNfwqnd&x$
zIQ{n(`b_TdQ|fCvp*|TRDyGSSw6AB*&adh*U^*ZsL^^?Ug!&CD)s>51wGtM59qu)u
z-T;d5vzOs0;A(Mul0}|RY(E5jvOxCy8qG&=T<pc`X<|x-telBIzRUfWFCCWo`Ljv&
zwIk4{<mN-ptvf=XKAV4u$-i_cBTK7~`RKu-u)0F9518UDn9?OTNpR<ZiHS5Kh?MUi
zZKfkK>v!@fd&Lbls(i5$pl9r%)tdhE`TjRnXJAlGTlE{subyw3DZxx6ki(KJ=m@*$
zGG8%Zi`G%D>OP(}XaIk=1xjl3L~FeLqd*59UYQdX$Ma+S-CnX_X-l@50Sbz3Amm~;
zHYATAv#Stf-Nl8D6A^O3JP*;O1hw@|F4=ucTz&b04z7t@t0tI8du;ZzxWhpjUiaFU
zJViC58n7+R>6$+O>gFS!nicHN*yu>SqvO+)#o7uczH>in(bpB2;V$8!B9y_)#Kgpo
z+#GUQ5HlbL8ckXV<fje?!$6#|6_>w1$>zN-8?4V2(47V+`3O5e+v?D#Qz%EZRv1-M
z7fKZ*Zc5m=va({s<I!sd5tKMdsU+B&v$OANZizF`1#Ds42u0I32BYL*v@^Ma<iWpy
zJuL+ckci)q^r`9gem{tD!;KfpC+gP)s`C8n9a?+b^Qth_moBP$$Zgmb%In$si8u2C
zph=fx$!q_1!6%t6nJ|;VZL+(&JBDkfO;t&}%KxpT?J45vOW2~%mn<sQe`B|_f8ngZ
zd&!oKNp9Mel96L3E>hRQYOu)ubg@m}XN#1nE0Eu)he(PzmL@iy8WgU9zX)9L-(?hC
z)q|<bjR;Os$qLMq1t_`s%OL+h*3ulPnolmq5Z?T;-rwI<4r|-2s4fShxCkhzwY#&&
z178aNw$f3Y8-xBN3M&P5B#3Wc!xoQ;_~|kz4zArnC7-+lROG~@@Q6C_<8Xq-AWNWR
ziUbXQ@|^-<GqVE{n=U;I=kP%FrxX=hfuOdT7yfR3lWESu%ZoT(Ib9F@To9Xg>Pw`C
zfI!sw`Cv|Z_NbIBc8d~JHQB~J(YheYi|Ro@Q?~=jn=p8*z-|A38>1xl56Lz>fLD09
zC?oD~2Y&>ABSdeO8O1u?I+OGs;U%$6F@Oy674f(wgZg7AUc|uoAT`Y}{U>B1!5d^f
zSO?h;G08b5g7Q0|q<m99GlM^7Z2fzL`pn0`cHRVjZE&osSoFD6;a(iW`?w02<tQWm
ze0+LiTHV~bTPr&mf_wvw4Cb!yZ$Ibe7vuNk=K2nIqQ`m`*PZu~-@T$%jAuF086ewZ
zozZ4lzOaPODIVXCp!X<2DU)@17r*5)qkk+HlzCNo9VgNlo_ek;zAz{53y3ulwa3O-
zH<+Lz+(aqRKL2{2EJF*o?kZjl@uG~H&gVWgHZ!Yp+Xri>f<s&H^A6d#>D2S!_zIH$
zxFPWC_L!3=-SfO1o=ulC;snCmHGfQtTP`=(DVz;=n&ePb2?m+a$)1muh1I4n^e2b+
zisrql`<}(Pmh-Kc4)D+H*(VH+WZVg}P{FbY{Ok29$2bBmu*n0s@#fu6E?)Kt%loq^
zY#xmtR2jxdu>mzc;u9CXU<*ZLleadTHc?1Z@zvcSBip&Kvi72q_Ok0q-E8UnLNBtQ
z<@Nrb>fR8AMHNLslUzv+o_=LbP0J<f(kPQQ??W4vxLWh8E2ngp91_sTNE8(rhlE5y
zZh(xV?azoHyDMvJYw#<HZ}~Db0<|~H|BbP;W|TS$)h)vH<luYj(^09-+l%|$%*@Hv
zezfKu^6TdiMMR-Nr-@5MD@Ek;($5N#o*}utwUBLay4=7ZnN%frWjOFIc(Eq^l|DZo
z65eyfsrE-XHgC`U>9YL~i}8kDNhIEp;=H^C#Jl;qHoI1rGnW8hxBsKdZh{7v;B|J&
z<J^+-+=AO&MXO8L=~DgRT!qg0RHc3$3g#4aVR}(A5&@459)}G;ef8ne<P;3?Ybh(|
zsHl$8GIEY%GIlIs(zk)UFM5fV*FM15jHNHyeV3}fqOP?V*9Rj70nQ>?e^Ph{E1Hah
z&HP+ozMK!pr$vE|T8<OB-cqU-SXgUyAKj+m9xtUyBNSQO&Qs}j0L@ZDiTuwfuVGK$
zPz;=;g7lk;r_c<{RJpMWUw%=yI!H?vI*@2@J+<YQSE5sr!=&_L9#&6n<~NBHFCyXd
zS>7(hYky-w_!uF#U6W0>H=1I$;@fPzOLH$BtKw3X=yI}R1~%u6(Nq!Ff;};b^ggpC
z5-|;v3AwhrpxG{4Cs1(0c3myn+;aM&#!`bVug&ru!MSGPZ?&7HRL&E@&RYVo4j)Rd
zSCjWn$V1bfI$eL)1J9^KEO$L=GPpoHqQNEZ_R=Ta*SYiMyzWqio)?C9>5`F`6;B3`
z)P6gsO-qZnmWA~(KC(&$%`}uRkF4u0SAdKvNT`S?=(jK}-{h0gCagrR#gdSvIAsyv
z7YZ`L?(1P*dfAbLi3FCbybYLNE3h3;x143hGgM{N3C+b=g#eQQ)y2Eh*0PE>gaSwU
zxv7<{FI|Vz?00YlfNQ4wbokN`Os#1xx!o%6xanaEIU>C3?)tnuvfouSv}GL~kk%S7
z<>k4nO^*pGVsMjTWt_dBY`#Gw`iSWcdY#7R@tB8UR7WHNffLMq`<BB`Kw8a%FLQ6N
z&l&X^N}7g^>)sI<n3&D-Ig&_3^{Gp^o|pX^x{G^%GLEkhT(Z5n12dJNtYmz>;uVw@
z|1U+Vw-Oyay@85V6cOhb(#bN6xbhYqIt#y^iix7YEdqzW`SJ?)k7|KHc3R6_I=R-O
zWEvWp^eZm+t9TVtV49|~ay0dhT<d;jYxavo(;;?wgV~6F5XsVa@MBrST-EpBGR}Qr
z^y5d=_p2Rgmyti5OY9L?i$+w%sj1o*AV4@ZjEXYDL!7+^<r<xfb1R#+QQZ~~>U`8k
zFFPc&U{x10Gc%W)17%*YRf*Oh(CC3PzH39at5KbVF?CFfaoFMdFknuB#3PGCZ>@N$
zu!omEpFBs2x!%MmeVr;XDTbvHDX1}Y1-{3GqDew*A+rBMH005xa&kDvT1+?F=fcl3
zgZ*aZn$a+v3nWi`f3gNI?l}7WlE6Sg!7i)Kv%EQfc8QnwgzL*^9|D35hN$OUs-nF;
zisgs9<+~ZhEWeM9D_(87%FJ*wHG}1i$~aTsNh>X~ya;!{*IP{&ECODN`ZC`R$4|KB
z&|S}#PBHJA7v3MXW17UDu=Ih8^rJuY<eU{}P<w8apo+m&eG;-#ho*5>fy&>?Xi)3Z
zVEVsHaWEOMpyBNgUhQ8Ge@~iw9m*O!ky1eaVG70>FUFbAS;>sVb{pkmrJa_D#<w!L
zG;(%!uFo|Bau<Z5Q$)I2i`QFxuU1gAQYnzDE-8^|WH;^`LglbK(JT$D7w=~wTqdOu
z*~}>B-7fI1t10??SVSk$b!62)^Q#H$Q5j@&h^#$Wx&Ca%;9H-xPuEPC#%1Kcyw$~b
zb!lEz+B!m!V-rWA#@jEA%g_`jm_WG>xH5zI$bod59VD)u7zT=eZqwC&{E0j${D#yl
zZJu6pm5i$$KWQr4GNHGGW~k$8Xn56q97AA7zA<j^TJVDxDaPeDdWWGBTDXPJK7x=@
z_g8NwIleck@vH;rfCq2Qx<GJmbQ=YtEpjqvYplC*ihY9p!bPx&DpyHUO_d2_hH?zD
z-*WVIf}7j3(zGKMS~YTX)?`>~vO=fc*8{>iOjE$mFD>msivhp8!KFSHBfOypJiMTW
zL}v)=U}7gB2lZG{5)@{87+*vY9S>O%;{{-TDIIQ!$aK`w`ht0#U$9TemRLDUKYIO#
zYy>SH%e^>`<rKT%S8i2<26R6LV$wrSD;s%sb$3T!$g~yya$d&}o4~=tBwsnk7E|=$
z3FiqGAe<6G?+7il8AZ{LXZnkXhUmvy4L(OJq^U>5?%;3u2`QU`7#|ZL@oL)J@uC*b
zUQ{Vm2_yG~EHtCtX$%Hvqh4?-6?(6n1QXBWDf-2Lg2-ENA)r~h8VgzXo4dON<Y^^^
zA7LYWFD>v%v9rhT;xxyUA>ii6kvv<V{7u~Sma|8UfdD+A*Qx*<sN_Ty*CoT|?RtN~
zw3rkA`6x2e6+@v)#Q4k1RDP(CIC?t_0h>|qS_L;JOM{J1Te%~S>4hsx!JU;~yUpzh
z7<L?@rY;N$v$hdHvJ%0P`T7%j#sWHs=s&9w|DEA4l93IFvF577<@z%f_E9DxF$Ej;
ziR-W3#({|;xuVLDjWGN==i+0+UP#<!1jA=)<SAK(3o)garmxD_NaPT(MdL;953fwA
zzWxtA(*N4S-u1i)z|-H98hB2<HRXgvIHCN0dMH~>8@e75_W7823dj-&QJim>FPEXa
za~;&o^Q$5_h`ahfo6c}$`)*#Vsl4#lvuIw0EWHRn<X}Z*A7TG<CX(1HR*qgpSf6_x
zls}AzGWt$U>7aH(b&rN<YleqC_qJ58sl#hIHu7V=<&TnG<WQtlbzG8Xv+MG2pxvV1
zvTr%ACJDC38*8)N^bs@6J2&J1qO+e9`&&AKuR;*%4jz;G#Y44;9iAw|8p-b)1);FO
zFP*~-uc{!)nyug&31CZKW0~2)(`KRG6FZ`{g8*4qH)El9o&%c{K2J0+E=Jxwu3gQ|
zH|^pp3WLk9_G2v!U;Z8%Bqg$Ct$XIOPrJ6)(N6Kjz`-aJ15ZYQB|Ck=m$Ztq{Ilm0
z6&8DyDR=x1+8jGKtb^Pz`LrSsUt8*B_|Xas>4ED?P?~$#oBuVEx||Ur4>f}VVlyNw
z;F4U({Zeu|O~ENr5u*S}999ap>a0UBkq)fW{HH7Erl1B>l}r_c5ePZMge?yBD<zQN
zBY7n57TU%0XK*1RgJQ5XttlV;UrUiS*}okjoY>zAKL`4g0o0pNlAu=qS73t7rs-cl
zTKNIAN<QVAkd?S3wuY5-E}F7823z31B-F2Z+`|_K*dOhh<k>D*s(-b`|KTC|57>}~
zRhST5gi$~BGzwBQG?mFKm5IS#Kriv=?zdQo<yCv1M6FHJ0sVh8iu8Xp3Kc76bZ)o^
z_z~cr!%iA;>L9cpKPd>Od<1Io4zC&JvF}3WhtDuQBzetsWZ8FnT-yQ+gd|-ZIS*p>
zsDxIB``sUgY4|6dWIuG0D}-=fhvFxrxI<8WYZ6|gb1maHWlq3MiLIsqej5DRxY0&u
zAWu#sMFNR@3t*3rqvpZpyht==t>mHJMF+WA-lEkva(L6wB}?J<Z2QhX$Ttv$CC1)(
zbD<h!4H{m|ExRUk?-Qw6IWj#4aXBBw*KfLEp3OV)w*MR&4So`!H;Dak`HT#qU446d
zI~T54Afchg-QTYuiB-P&sfRJI`GGvUVK003QjV^E3w>6|4R~=$S?Cs&E4-<D(w0j@
zkD2))ILN+B==<P3z{D|<CFsEV+!6zM`&$wO5n4Puvd&KR*sZfO2O6H*B2vx3w{iBo
zrZ42#cZr)_Jb6>d;Gs)M;;!6ZJgP`00%z#5u77Itr;g=KcU=}k8%hBsBq-6Gy?l`e
zpSj$@qd9mcDHYoE^mEC}|L#!#x&i-Xg<5F9ErWm%(EghR@NZjGWK3~gs9b3Yo}k^M
z>)^D547R{4`M9v3M-LM#NQX%K-jJ9h_dNGl*yxM7)1<Tz^1JDvDvAMy%)e`7FST96
z^efWH{iz(Y4goLK{C=p5{R020mKTw5E`7+}x*hUt3CfRV%kRgYTx3})q3*@fT|@^R
zg6jPLCjrwPPqEVp3N1r14}rZ4J27hl`T0$g>o;n}$k$=P-?!IyuOJo2?kb`zvXQrz
zPuJhL7J-3S@$|j%En7iYJtMMEeEi}%p$o|9+?|!bqHoyf4*ua{+QcQ@a{l6tZ@!nW
zbam-?x?Y%&uRtAPDaa?QzI~4<{oE(6bR=ed5sg$_sY`E7?>$<e$kn_VPInDTQgmJ4
zuA+iF)w-tA&2Lh|$0{U{D3{#zYd2rQUTmA7cXQjpgeQ*7SGE2e0WoDIt)FY>7GYvL
z+kaP%h|IQn<k6UzL4!K5&J)eUA33<9s3OcY;THDM-kX7*V9rPL>-6eZXx(;?C>>q>
zmYXH-{>iZZeY2*-OsrOhw(ou;+U^qD+k?Z5gl)_rI-lGkkhUKR;xu9|%hS{LJY-}P
zDXByC^&dPGLT+il?w(#>y)G(gf*UHQq;7qm*LpkF47Z%m4*Qvz-EGM-Z<AXom@Oj)
zP<-6t3SP>amJ@?NQNQvD$~y{!bxSZ3%{Up?7zrgPFf@)F;lkvGtZC&~HR%}pP1t6k
zYEr%Pu0`+1AClJH0=y_VYU4+-vLc?g0ee4V;*5y#?mhMuhhExbo@&pe1m(=p7)k!?
zM2i6xR+Y!t==pf(+l>phs(m~T4;DwWg|`ndr_KBNT{%HPLooOBB1WrT^91U_oLL0f
zg(`%{bM{PY=3e9cuKt`AUwYNdN7JHjjXD^R9)Ah`F-k0NO@rV4Deu`cJ~Glz5E6vM
z$QqY+MWT^ayfPXGw1S*sM%M2iz`_Ug!LLrl`>x-CS7x^V{Qwf?y!2hZ3gZR^kzz;w
zm2e3*eG@RlxVyN&x-&dY<_<bS9$WIdoCK;U0Jj%rW=xkG&#P*i=1TA6GHQ!L*L~3i
zz=+h|nJC#9)rs`)ZxiPm-J%V6oN}&!y6wCDVvb^u-vm5>q21nbcsD;f`#_3LLQUxk
zIwiW^V8q(2_o0xLpb9nvcivk(`;J|PkbJv^&i8DLq%Vu$rmzetsk=f~&-mJW+-Y~U
z?a_8*fFR_@-dMx86`^+LV+N`kIbP?I0qPPhjWNJ;5!fze+j@UeZ$#eDfmhcXBI#1~
zBYXjzi_~ylvpuNTBx_pPWZa_i4Qwx}BBY|FIYXH7xhtd9(~l?0z$H@;2)axvguaP2
zf1b`NB7(joPxx<s&c7u^5&!^4`J23AoOdr36V-&<Jex?qKaNtNMOGUN+@gEc0`QG6
zO}Pua?K|qnR{KWeOBA{{jpz0qPhS%0m+=wp0R?K}`!tYlHwVml^*tg-Rr^^!!{4(n
z?#@>2$N8?y2>6|5z`+)_jGb*OTGH9!s-YnC#1*h>(P8&B!UZBc#?15iw7kJ-_B&N&
zeZ%7^eU+03b3&9RaKbHlX?7u^>8ztZAEQxwp8JUcSaI`|$_aL_Xq01uY;TX||Ar>G
z;5LnSUi=;jP&Z+<YgvQ)*aU9cIR_1{2Xq>)>gUU9L#Ed>Y*$+l=VlkptYhbChaw&;
zwXTE94LT=>MWXg-h~99V&<vliB`K+bvM+Z-0v@`Vt}ibWLbm!v0p6Ni{=(V=U=vJl
zj8CN-vXoVISB0;ah#+w1GhH}Cqrd3T^^Wyr`IcV*3^=SLX~`r;z-Bg%!imCyQX$><
z7q6MC(b3&R!2KdNu%_oQ`D*9J9*Hh_IF7<Eq&qx-MOeSil!lh}<n8&q{y0fL<N?##
z&URo!@IHQv?F^xe_A2}1V0}&NS<5OCk$^Fb;ps|X&1eei@<4R4lll@t<LVJzu?l-V
z!}(^_4A?q_wEHbaMH}8`AoB38W00_Z7)+wjh9UMj0Zcqv4A=P5xEz0{sXI|VFV@O8
zSPv@b)EWA<6S37={P7oAMmjECUA1KUv4`M^e+llcT+9&4>10>|!mtkb6R1apRkBhS
z;N$~<<tt0cinljxc!m=3)6IuWLKbuyY;DeTBu7vKp|v=E8)bHUNp@t@Twm!9x9#s-
z|4m%9&-7T<!fkpy9~>*3CY0*>v@cFqWf|MI=5i<$k~ajbbNo*Z`!%+QWRGS0^5YDP
zpk<iMTA$Ba!73d~2v!QumW-38>*L4Avj9^CM)x?j`9w_y1=8yk9<|C=_k-Z$ByH+=
zJ*;@f!X~+KVSW#f)^hymg+U_EK5%qP!Rz^bhkfI!OT?}r{b&Mmc%%#mmP`}_%&}7>
zCDE6u@@FgC=um}2-q8z1@JKNU;yGzxU}K+9Q1bQ^@GwaG?i-(22CdN9^d^??ynoub
zC|CAu(~FB)sKZ*7$qJQ~SEdJ!gpchFiPqdbkik<EK$9UET<cQ(eiTn_M>7<M*whkt
z8gH0J(0vn|D9sTMoA4FJo3cPlH5LFA9coPIaL_CW4whK1aW3T@5#Xep*HWo84(9>e
z<_e*?S3M89VX87!O+#Yv8@!&8HO0l7RTA~|GBkDY4&yD2go)!R3ksDS0Jf*LNFj`f
zP3D}};W#ePb30%iN1+*vHa9d4G&qi6js*CxK$cp+JUF_^#+`%Y&7>s{Tv|ncN=F~E
zRgAE`{8*Io_3}qH9TQmjP=9WT3pM~2T|D^at+&sJc!$S;&A+&xP6~NaB`z;5Qz-br
z<BdEEy?<sM!xv*uQ%M~+l9P3~FlgIW!j3}Ugo%F}c(P`wqbd6OB2QOnor!3`g|UHW
zbIEY>HKHNN%fl*#8BT^P;FySV=*QEL9!ndWs_-i(PVt?Ym=_X}u`0dR`=)SKFR=4%
zti(i{9dox?XdEP;s){&5an%q#hu#@y)7226;>Nl#wX~&w%)!oy)2J2s$zB0(gjRx^
z_5yltH5#AyyRKnnQ4v6eJ29-%AIv46+7XtNl>v4OSaww7K+f>`UoUn=%-n-KRY06^
z@rW2qg)Qlr=PS+A15pG4RwwmRBaRvoYW^_CnlVWzy;T#6K@$5rpS3{a9_%LHX;UPv
z@j~$5nzPXiTQ744QXpTQP6S^bPX_=r#CM83oABZ4v6p#;+dAJjVc{4t<wErNh6D-L
zMk&>vOx-R1>Grcjef?v*ieICJ4pog&t_1`;N|3i4qe29=1*Q_y)t!w|Gn@(w%+ky^
z|D@MZU8clrErQcuwvNA$fx2blGPSe3--be#VVttd`r^ze<h{KKfvPzZPss{SG^wi^
z918M3xYfk<0YKKFtKv}{90bWsCtwdVqqZBW;1QB(VqAEfnVHsSEzG&7Im{7I%cZ=L
zx(kIRsUok7@tmIf&rXoAV8)R`dYn>)!k*i=YGB7G>B8nZJUL_oIyenb<7o29ymgv6
zil{9q3VU+hF4BbO`G`4vLs(L~zA@tSdmfozUO~tgrb2s<OeQ(W%^$Ij5H&{FdtbLn
zxDp`zD;z_YmzVdZ#Cy4T`Xe&kSrxg1QzU|jeIzBZ++1$1$rz^b@Wv;ZquZ9AK*7eu
z>lBitz|Gh>*SzgCVUer3x*Od#?x21LPu}?&5}5>Ni+uo+tgBq1^}zCwq5kN6Qm$wp
zQ9tv^a{^({hz^v^k2{RcQw(*Va7sVGUoa}=A26z7%2)#MMO`AxAf*-hWpm@2z|ks5
ztXCx+*AMWvq1KX>HRUCMs^@U#%eoa&sfc&OioEq0ZPdvpbM2`1Y3p%TP2aoa05*Yf
zmsnDld$M*7;QhL*k!mU8<}NGbC8AW1_<x&0<@;@YB8^?CLx~-n?!(O<9d$LP7^)NV
z&WESz1dl0;MFfe~$ASKvhHEldsx3Xj*m4>RA-`Cy*yV4xckZo3-gikM>lv4`yl-<f
z*%7wj88JLI3uI)0VCO2hz?UsJ=^-b`=n1n7JHC!Csf&ljP(_*x=W3^>qjCBmYfb0f
zonm$Hi2)K6AB~B_S#A#H6cx>)Zi2{nAA4n-;5&dbvJXc4=D}!R@f334+&(jk$K>ad
z=zn!9f#Ajt1`P%Q3sZ3mkr-?1F(nc|j5H3nKaj}`R;Z(6Tc=k7$gRZTl&50YjYTG4
zchGr5-c_%P`)PPg-;~PX#1RNi2*|*Tkk<a*W4106#F<|Xa}cygpk`I<5ZFc>9A5g#
zUOM%nfeg#O?uj4}tHn>YYdB>mmQ)aT-(Qdjp|^@WkRX5{vU5T&6Kw;YQhNqSTF#7B
zS<shbl9fHRxomx!FO#S*L#wv7LreIUc42uu--pOEiB>SeTQW5zMEv2cNsyWd6u!RW
zEUbiYnuA9Mt27Wxi3k2@%hmJU1Cy&WQ~lsqM}*pDDYC9|VW;7`>KIWoO4<nb2P+Wk
z=OEE!8vCrlfBtc`Z-;qaRzR4bHbf2{5Vnf+axjSyFoxWW9(;Bc4^e0V{&8)Ls1H+F
z8#q%4IWW<^Kr{=<Hr7=xU!0<2%V`>;a$}SV5I_sbj{;moW(Z+wjF5)HHvkMbxS|+1
z|63SZpN9eK#G-gRV3QN7GR7AG$r*Yb96?Wag0HDOb_@7<_r?QvTJ?91K*7J34foHI
zN?iZBxBQzlLy{ANKT3s=MFcCgw@(TFibRAKRDjjbqRbOTkcQ)Aw!`P$U-{(Tf5{RG
zRqYaAxJpnUQ@juhSnNQ2&4~cJCZ&`X{`2AgTZ%_yOljRyJ&}v)<p)y+)GQqy)dnz0
zf}#gi(RpD8^-lg+7n3<X5jLAV-2g>!4jw4~LLqF#m>56(G7QqM)79C%?>oEz?><CS
z_KCc6F5$^CvKU`af?H@nG)%g8W*HA5(k3K}L5HGRQ0e;F5gRYa^9HG{m%`k+BK-;9
zDzn=@9Zltsj{^>*k2`VX>yh$e1_cYINKi2_eZ;jM8|vLF+ZWq<zw_e78d=)sFQJIS
zW_f+0#pj^$OxDw287$a|sU2Gzq9!=fxa8SY`lVJ?@e95j;q70c2z-P;cm5rwRpc<W
zIOyE*w?q9IZIPIiU@cgoXLK%j^S&9GKu~1CC5^!0f{i5g^@B`Acq!J0Lbue{qNn!-
zy<RLG&P42mN;WPiRU;I%SRmUQ)fbTLWmq6to8LsC=!jFkXcn9;et!RUOs$RNv9Ra+
zTjeH1F*+ASJKxXIzXE(FwBgT2!YWDE_XOLN>lluD!?t=?$uT~7j3i2maoXn3G}QkW
z4<mDex}ro3hUu53#_ySfhwkiL{@I^P;*;`P`eAo*z?0lb@-FXRVFoU+gl?3lFc$jt
z>$ulB@nyjWI0gdMHNjj=W>$TrdjHc&{a?ATkih2C#JTOSoAD?Fu?)hSBvPB}#Eg)4
zar$o#G&bs)w${Aihnu`Hw}eM5S1>K-G2~ePCq}HI$f5-a>(DiE(!%KD54hgH7=-V!
zj@!m%u0!FVrC-pPwC^(R&0!*#9798P43y-VqNT%*NWA>Vv#aRykFs#SG7G_W*OU$K
z(q+gMO2oLLxU4}IynTD_{o<BFk+OGX{Q7jnb>Qx~`+4tA)wsc-KcQ9Uykf2(_L(HU
z@8Iq%WrW+6B9C>Qh0o(wCrE*3WCZ%BXAVHn?~6=Z396)<Di4_KIAr$O`$=ODrZO9S
ziX%aNb(#ubI0MY3O)$s&E_{LyVrOiet@Fu%ue2y$z+M+UK&_pAGBW!;c5)CJQ!K`L
z#xY7IG)I+swe=++dQ+c9set;u!%2*3?R9=XXU5Py8SC+v55?Ts)AbqY=dD&g;an0F
z`p{{~qbsL}(1XfCwC64C6RWVDpK93BWEFAr$1wXxNI1OBZjoy0S(1TUE9;tO5fZ&G
znwSF2ERFy;db>-*=*z3C%P~hE%61~bzSkw7G_&Osx+0kXQlsbrN~h{!iegEd7vaty
zdeo(e-6UG|#~@bhHgK+vCb=PB0t}4W*=M>2%x(Hf=D=drnPKj#haz)LeUF1SH!KMt
z@)`|>Vzs^EOO@BoP|WBNr}!uNPX=j<JuOllh=Vo_nQ&!~U*i$%+8qP(##!P-j_1jg
z-Nd$K-!@*mtC5$C+cMuz-t0wOl^ySPWpURPfrClT#K=4kH~<C0eCo9j!gA5$`t_o>
zkF-Jf?}p=?O7<X3SngO`;h@bqX<88+1sC?@di+DItgP+U*Dc5*5^l17(uqpbFEF7T
zFRRi-tS4wSg1i^y0{Dy>`ujUZA2(d7F7EdiLoof5(WIP-5<dyB#`h@g{ZCg$MV)3u
zrg|G{%b)<$k-ARPqpJf3>lZASG2Y$X%(*^4V-tM(Ks#M^>HfsU#!LFRrh|iaCA5q>
zK+S11>ihzIVd64NCT#-j(r;-Or!|d?E*=N9c`Z#b*2b4Gt=><00h#Jp6_m9Ix=TwD
zt502yeAwq@Xal4~@$6gKDEJ0_j;@`u0nL$44a$yA2zL(ig0Eg?r@h@~!J!r%RD$k2
zd}7U9=?5}FG;bBrU8hzJ2AK~L9ORW#9aYbzUHKv+YYM16irVqFsav#VB!vh@7XU83
zyH=C)`t=W|DPtZpf+LBu<&7~m@3Pr!ce9W|r?kCTh2Ch4#~vr+E+(EbXH<RDP9_AK
zEJ_@p+z?lR8aoFCfijpf&aH2YOqG$q<AZJqCGCtEv5VF_KQvJY;H9rqBBKL=z?GRh
z>u>-Fo(q^A#E=8cX7-yU+dzgG(+I`D?f(Z(BmbBCozrs#f`FH;!?wo|v<+bv(jQc$
z082dBOq#Sb9;0i#Y=i^6o}sPMPo=9o`Tk6@6>h}tg&JPm{$@Lo5=GrQAi#e09WPTW
z6mr^1PZe{tQqc-v6uZ*=I&O13d2Z5ZjWO^j^?cDZc*-mPJeqp91XD^_^UmG6Op}9O
zNsDb8XZY%f^`4cf8x7bn#aaw0J*&5tHD7SGUav`Dr~MPGXVkb8Rr51BI;wB%l!)WJ
zW|}H@GcJyNSGIbUba@XWvKk5D#iwG~vXc);NS6ckd>mIKJ3_1}w0&}4a#n4$@ffr{
zPJEV4FSaTnLagwIvGLo^GZtl)9`wa_?s)@?rm`gO*uuO*hfO15nh|mWec-ODg@M4Q
zr8)FD*xiZEc$_2o5Cz@v;v<gu_ajap*j@jG1hsG{#YO|V_Nljk-J#N|K~#aYMN^`R
zCJZwEhR*hZjvr1bT89YF-*;_YicagiZu@F2O9?%juGD#FXKh^l--MQ>cOd!rpwA>8
z38{1p@y5<-?X%0hm#WZhWz0V9!fAQ8T`9Lh)jU+DHri~bu#b^+AkQ&&Ak_x-$DKX~
z(>K)I-F7q}W2omrqQBq5l!Ai>4!0k?w_tiFuTY}19saXbn$QSW242yfidvs`AY%*_
zK8T=Unh@tll9$&}<szO%<Ki=|eZz6iSAmve>pM@<iu$7$89cvsULAAq$%69d$S4|I
z+hdFOuv1Hc4QK-hv+2s=473wr;@T5eiFIrHBwZtWi1XQ{`n$fO<5P{2vqqxXvYK%b
zzgLH2qJ=EsFksse<n!C1hK=wgptbTuTc_p`{_c63sP<lM#fBD-V{yI^IF;EY)czsh
zv~*g))}Gy_mT0c5O0cqJ*^a&)R50hW^5%A8($EBmE*EGWwxde1&%)EOUS398l9$Sg
zR{SQ=asR$J%_<1fpZI~cXjnh<&8pRQe|;${8=n&~%bszr-K<fBTAmTx+JO7kU(E>)
zk&~DRQ)x}=8T-p9j%Ef?aodPFhU#)i!#lSPb|x$`8E5+^v24V|?WPyF=icH@oARn(
zZ%;F&3~!7SUOfeSQPs2&6q*cWo%Y+1N|`$5h*Tq*U3j3qWkI>OKwFz7lL%V#B{!=5
zaiZs9FO#SJQ?X}iUdWNtdkSD*YSrYmp+>Hk^}zn=Ve0I|j(M<Gu6M1M?H0^W`@~fb
z^9(OM=hhrRhppYBEn_rTr&@h8D+S@0ucutL-aReSC&rv2WEFW#&~SQTB8L)C3C?w|
z;EB$00g7e18mYua{7U{oosWq`h2;KP(EpXkIqgPwrv>dL;z$}j{YjHOi_j~p{QH6p
zay$5DlzMj9-HUc>Zn{0cimq3`^R$CfnIR-i;C_G;3k>j`<7S;Xmi`<I+H#&gz|lo3
zP@2MZBN`&?*~ne*8MPk^XtK;>%KLqsFh@S`WBYs-L*X^^cCq234MSIifbcMH*xqjc
zTDb`0@{*y3rMkFHT3L@QB8_jwZ#6z^TO*<=kww>uIX&vaJF9FV>*Ce_X1;HrqvweZ
zLQUyt=-SenZJIpOdDeP{Evxa+G(@(0X!F|d`@!)ce9K5Ph!aW2u#)|(iXCy;)@V4v
z#bTJv8it_IA*Sp(-V3jZ6~5G#7F1tmM*ylH_BJ^tGS+S#76`2WJwJX{vsb~Pqr^hM
zLi;0}=zNakL#B#3SKEZkv2J7hpW4<D%tba$2ld89f%<2nQ;k7><2a?xXIG!q4$qyC
z2GmD>oz{UjkCCJk(pXN6-RoPt6O<#b`=S1aH~YMd;QV`J$*h{?d9Ni7(VRbwB@K28
zy_fG|&p6NdUhl?pO@F9INNww@j?5SI%w$hA?q1^f9|p#k)1q`vI0prMivdZqhF+(^
zdOp?~ov(vb7D=lbT#%0r9_|$eO)_Ao>@Qz?<%#o<xZ$Be#e~0inf@>SIbB=#l(*3D
zOiKk>v7TMnTD&+mCtB49SB4p}q)XdU>5%@4pSh7v(eCIHLQlXk7|!yeoUC=iD-hB2
zWqfd^%AO$Dy|p{-V?=hpK<j<l9o!ec-Hp>sort44U|DXw;ZuF?ZC&rKg(QLQd=H==
zUGW)-YEpS&SW&hd!z>wE{4r`<u->QGz@8}hH}|5S-=d$DhFuVP6FR<|xk-C*!v{D7
zbt1+3q5$?DzbM9ir49x;>WEdgM3tdhs(T`W2UpLWLtn2JmSx;l=6+}&8hmduo5g$%
zx)6J4=HyyQO}j;1&kva6GE~*8$>w8wvY!N`FMl}gXrs+%Gu@7f4mWa~Hl}gDAr;J1
zA<uW$uo&gDFJGjijh-k`%|Til^(Sj%{ccO-L<+AM8gt?3J;H^AKlFWVIzwDup7md0
zAyqMy`=MiGw!3Xq)v?Fkim86YSt9t|6LZbD@$^BKDj%tFf)~+k^}!YHWr3q!=_vOa
zWT>~R4ZlRj;x+E1vK;CdbTt`JQ>&08s|QuX)l}}=czO|v$pEAkP>${)rGEui#;@9!
zVCcTr_6y$<1z7De$sXK_1>^roA8FzY>~3oOcmOgswnP12tkC9o1yr1qyxe+1Z1$=a
zlL^ZkVI)=!k&Rn!o=u3V+ifLJAb4IfG+VV7n=nAXArt35e<>PN&swyDhpX(WJ0pHB
zz0xTsDIJCL$dPURDToPRtybb=shuGlgnG?2A*{(NZ6XQ)q`#tn()wW$@%p@JabiH>
z0|$RMT@D-ZINPk|qVm{&w_6>fqvBcn+L_8}1Fuk21R^wBuUv;EcUbt2i=<7g3UwVc
z0L6&k9`NzN=)opzPLKIph=mZh2xYvcUxL|Ihh$_g$%8EFyL{Orn+qFhy#0FV`ggq4
zXhZqqI>cVwFVp1_?mH%W@DX#X87>9o!{+;n)ooMFcRt}3%cfL`;H@A8ccczArI#Q}
zKi&vGzR)ZRnjbqCUsXGf3Gv1Bqbcv6a4Y7t9&NhWyX%(ZDV}6zk9Ugx(B`&+`YnNc
zL$>87I6j!fRdcFpW8TRnU+PQ3XX$NX)*)lDIfveMnTl0V>{xCvf>~-3E9mWD!&UhX
zt+n0o*Y53(5C?fft5GLG?}ts~Qo`zx!H#u1ypAFLidBe!5}4iKlcvxZ9t27LACFT3
zAdpssO{?EsX{-X;hOhh}xC=$H<uRkMC0RSL`rwR0MVE$Hh3T?s^=3r(WNxIKiP>jy
z|4vEgC-OXUWYAZaJ7+iWWgyjMxs%XyX-&gB?zDUBWxBr9Hh_JxB$4x^q&Dt!zS3>z
zj-9BHsF9&o!^x08e!{pXRqG5#XSIE}f{-7v^U&_e?L;XfijIE3`0ah+dzm!9+TBMw
z3dQ=iEqpu`zMc-g>sM?s?z@Gz&Oz)YqZq>X7B8PG%G1Z7tlDkOWbYc+r1C#}mLsim
zX}i<@hZ0(MTKeE*r3Jgndz)JG4g$KPx<(Jz<;yc%Isw<kmdMpHxazgjyG;{=`p&cm
zR8Nl;U7hHlCyiE)#p6|-vM~FDa8H}^(`p6X0jr=tchv)hw$A;Up5}LhC)Hl>cAO3E
zMg}RbKN^UZ#WL;mg2Z1jpOfY^Y+d@r(!xA!1ltinr9*2%gtE2BON{cZ(@s>!1FIa6
za8`<QsLy?uK6Rc<r_ZYW1m?XFr#~#-=HEP*z-jnD1iveuym^jPjx?;NKZbgOymv2R
zPL`8-I;O&cZcer<qDxyim!H;NIjlAPyv(Ow)jy4#N+MP+ai%3LKh&Tm_QJrpG4egR
z-fiu~EM_J8^mVwJr@X5DX|(;MU(~j6OHsz7nN6?N(B_?SdLouKiMAuO9g~>2A=J8n
zk~hs3rY-?#*ZE7Ot*1KsVv3(|&v-9ma%E~tRz)=-fvJUgm$u*kID@y-l5wsL`lFMA
zFOp<sLvw<!{i<c+#N{j}J$grC$SvApGz9!78M2yF2!b@W6eSsX&D=#;S<(+TD>V~A
zjcUo!4tk?Z&d|(nCL68w6c4+}V_w?nNSCndkouY^Z==c2%)6tFf`hm*o>M<M(H)!S
zwl0(#7^o6#gc_s#yfsCEuQ7*l+d<vdniDPo(Li0kqXD-z_lS*b@6niJ;jtc}X6A(O
zlk*-!v&{3Zk3>A`ki$Reaj5VL!B9X&$7sZd46__kLigBCe6t~<!Yxa@#vnf~?u|j}
zmMe?Q<hP7vgWxt|B1%cQ!3>+~=z}Z&{2d1^@4b;zY8xUN{JE6JTEr#;q-hBab%ky%
zhKB1hkGu?FzAH1r3h(TEsN5_hWM4`{;`imeaY_Fn-i3AD9`XxGb%+rk%p|O=0rG*R
z#y&QE8(j|Lz~y2E`~l_+-k}%*{-f_j50)%nJEq8yf^s+EC7J%t<c0<R?vBqAp(Xgf
z_|Q%$1$e5jMgW-sBl?dN(Z-OdgN<QYq$G!Sp#I2<AC%%<Bh+8Yu$Os9E1oK4MzED(
z(G(I_zSS*X`66TLW}e(H;%xJ+{cKD~<`R+LA_B$6abv<Sw%?h~<5D(>bI(R6S}Vy}
zRA^y~^-&^soSMQI68>ao1C&L=B@H;ZNaW}4&qc^hfa7e(2ZsSSRnXl5?r2HYMu5@Y
zLGnteKU6_d?x7*@e^A3WBptG`sHO!Z3G4JTPC_H<qzFiMT@JmRLjjhB%uhUud32zN
zL9>0+$o_Dx9l6qz$jOQmI^;X``(3=Bh-Tu09v5AbiPM#o?q;MFwYh^F>O$QKYGUye
z*4OWiuH-^4n1jvar^R|!8dDX4NMtBKn_*FqOvVC9H(1n9;vL~4^_u*V6I2SeP~bv-
zZ{^|hVtk;c%)vKMLvqByN}zEtW<tV-;`oGs)PO+o$%GEcFL0tgNuA{N&$8l?ZTo%a
z>;1ZG*^J7qzT!PVaeSTCr!(_$KWqNC?Zg!uhf>%d+HmVo)kUa$@4&^0q~~9Q_X&~X
zKVxF^2`N`au25=5xAQ!u1Vj=&(*f|qqC+e(0s50x`Q7<0w5wt!$`IBha>290p+)@#
zY)opOVBL{ayU221T5slca!V!!^o}xeIbrl)i(>)%>OsHI+yP~68X6f@CWfD%GjzXU
zX_23{27{LFF5^pW+H^VWxgW3Uj_4T~8wC?wM8f`fB5phCp{#Y%<QKR0wrtZr;Y@T4
zTzwVbil)dYFB{{Cf_L^^+Q(LWFhmL7rooAK$(9GLX3yPZW|_I~45w*ezU)55+{)*j
z?$DRC{+^bJnz)>gvcgr!9*z5D!UE;#SkBas$uqH;2k7?rB#@frhnH>Gqje`0`5jIj
zYipJ+`_<)y=cjxC>kj*gzrBX!YJpdzmAgm!=OQBV@kz4}f|jLfKG{jjc&mG~dX2l)
z?iZeIx&%AKWHE!%_p!i0x_hoe%wHj~X5ecndIfnDN|WWVeLfXx<~&Xfg0O%nWcirI
zcB@qHd6SDoyY@h3|86BbyE)OWJnp{^4)Gah1!RT2Q5Z>4iwR!mZXf(^raZd&qOv;0
z=mNsuF<8LtItXJLA=@A(+A!Twem6CxmRyip#WpfS=fk}_F3WU{PG^1B)jL_s*5GZR
ziU?Z#opqy-rU36O5OVuVYI+>%fx7oPK9TrO)OVtz7Og`)adKl|D8ori8^ifQs}REh
zKYKa(R`6!!-c9RPu`M&^esvaH*cg@U2e+XRQrmER<T#B+TT%cr5)wtB)#2=t!rJc^
z*20jB0)krYT^-tY5xXgZaZY=$Z$9$3(vzlfxO$Q{R^PcqVVq?{c<A&_DylMfVYqk^
z0tjcbdB#P1<J|@-^Q#v12ex;vV}V6@?ps<wD%#70rL<W)1I60yhyJwupK2ijm%90i
z>{-^6QYC7|wofU=NM+7`K$(nL_NOxvj?M!4Qe3Z~X_{L)P6Md4P<cA!1~G{JI9VO_
z60djrD~P>W+vU%zFN$Ka>jv8bAl0LagE}|SEm$-c10U~x$=##wq+5*i?j5E(c8jfM
zK<;+%y!_8vz(`*&-W=$U=h-j!C$>oec9W<krJ=~9#7M0cMJtLm@fql)i3^5R3J#Se
z?YmCsAtSuO&^MC0<1uX)Ix{WCBVimzA&Ph{e87goPVW;6q=!YZciPv0x+HrsA91w;
zap%YqT~F(X23W-%z@y~yuCv?9+-jt|nD%N5hIw@dk-O=-@>K(dr0hE}e12{z>teR-
zh`I~iY{x7*8z4>0qoo8(aJ8aVy}_Q@WIm?eiH9C}pqya7p)8%watCs>bQ#2{egEeA
zvVd{kE~J;$RZ5%NDme|2&fUPkJdg<QP}P$&I#npg*kCJFSrHFNuyfNf3cul5GM$~;
zy;`!yGdqs<1N4q(Op|kZKd`tTrR?uSdlJSk612cbPZO^G<d-E_?z#v~ziX8o!6;>n
z_jy?&xSD!G9PTE2HG$i3sLFsmU-KJ-jJ;YaZX#Y>V@BmSb80N(u}J~$T*>b0tT!uW
z>ORxHf<LPr9eL-Eu*BbK5v|*}2gjXf-|=!WY%o+41i#b3+sT-e`Hr+$W7hg|eELqF
zVRG8wVUy{RhVgsw!epx4vla7@_M82&E`w}qA_#0foXw>FzO47uGNII>)kI**qi0Zl
zilp<^=tQoMAv5cAgj8{@t!BdlZxLxilgLn=h9ttH94KBWE+MqCf`Tiv&+Nz2EY{z8
zn~<QTy<Ua%T_4bli<*F63kU;VRti#Qwcm0yKX*&!m)45r7V+1-MRA%P-(?i*1&ETe
zgx)9I%oo<n=i)>;Y_KVC+a&;8U5C1c9G-aV6r7o)bX<{!TE}=r83gXx9&ZGJ?sQL+
zt{9RMDxMP*Ts=+%%w^7%>lYGEk(TQW{LE0V^|HB@XNwt!Ud6V&E}$d$v3OPmKJ~Y&
zYXcb`UN#UeAt5-0r93`q7P7b7xO1VaOUWs@tCi=T--x!5S8Ybj0K4Eo<pdIMmK`L#
zn$F|<r>ON7Mz}Dlxbs#rW*bI63u#`B5nV@T0Z9IuIJigoT?2&j?LRMO<~;N)zoB*_
z?8qn7vQ?4qzWtez+*-gNZgGAn1lBW3oqV&XKFhzo3g?Lt_k!O^S5cIj?lw^`kHs?Z
zmOpEH7LG!=mH5^{9MuxdyT!zP9gn^P*1gqI<eg?fX1GBajFJS^x)tqDuUAp;O&Uai
zKk@f^PMLr|XR)4y-g4e|H`ku_OiPds4wjnwnvMDmcB>5V`?o`$3<4UtmHD{N{Iu(y
z2bZee3%|sjCKn3}WVv4^$gldA3_#b%`Ux2=7vaSWzj@mnnRH^x+U1-HeRgEPdq&~z
zS_l#2>Vb(%v3Z0!mEty(iKw6zX~kO?>hI1JOVKUJ5glK_6JNP1g2OyD|DCi*AgWef
zVJMJr@iKxXfo}3E4{rnk1U@IQu_8tHev)?Qr7?>R-qUj@SW!2nz<*>`OZWW}c}VN1
zFWC8ywQ6pXI1m4Gn&5kt1Q)I8^B8f)*a1(nfNt`1`LU&T^fU(M?Re6-o@agA>yF7T
z${(N27Ivqr>QYm&tdoT_M5O&HvydT+ie{N;&1%)P_X@#S<o0`!#U`r={FWxc@*hSP
z0tKm>Wq}NG8jAdzmd%&wMDgT2;(c*g<b{X(S^9Sh?v*_4@@b7Awbb`lR)s`i=Nfg3
z06C)Xc&3nd{9gqv;SOh0#RWjxZHYAvQT21HGYS!%>}-690qmqJ2fQ#LrkWXDV}8QT
zx9jKe)^B%NJNfelNf@%X7#Mmlr<S&Hij|Ls+R*Q%X`QJLO9051{qa|cv*$_lnzLC%
zr&sy^udpi*hq7(ogM_9=s&|xS#8@+=LX5FyYcXDtWrPu8tR*8eStFD%V}EVQS}}-0
zNf9xO*ESelB5%!LOp&oK=^OPOzoYMWyx;LXf82jQ$8%rzd7jsGozL-Hk4yRv|7#3s
zZmjv$75e*-1mCe53st?DWk%>!%#=DyYw^%>?AZqSxO(hX5+herd7Ij>kdZiEf3XZA
z$BAeTGlAf@Jvq-zvEMm8Ivz!wfUzds*9M94{>Eh~-J&a9Qu$%oO-~!0Lz!62AnTKM
z8RSvN6{VdD&3A>{24n!`7(HxhXB_m|5a(MmwWywv?{S7&8fT&Xokf|8be1^TwkfzY
z+p#hZC;3|Is7yA+--sO+<b!LRlTCT3wkm5CL7<7KC@#=6N<_k>K+FKlk>SZnnQu!o
z7Z!50G5cc6?q|hbd;QF_GQYMY>Dt>||38X|;)N$F(%<6tKRNSmQ&dI{-g_h+^V*zS
zqSU^2@_)r{X2#~ckr&OwJ_!8;9O+(wIp#_X`i6x>uBae1t`>tt5_Y^iFQEA8z1Lay
zi_WNvjX!1kWXXTn$=hO9ZiT1ipUAkA0+*MZ0yF>uZWz3O0e;k3;<(eqF>xQzR2HUq
zE_(YlGzHn$Bb7f4Aum?JEvhy}mpkQV@>Hdow<iKON@ltdx*6A#;QU%3E%4MAvA<iS
zd#n{=6!3n2BuwLKS6`@Ae)#H$*i9#;ZuQ2uaMAsn9XaFf?J4&HyIz)c-)hEbYqx3G
zRc4e=uJw{lSM)6_hE0N3R_8kLb-j-M_E5VwGlh(IXtY)auy0fMj}JO_J4-ue?u)G(
zw6o0$CRjx?<2WTn3D<JCk=FTb9`0|6I*D;7FZRwo^$eHm);RIL8dHm2+!-GEV16=u
z9Q0uOtp`u<3GTd;N8YK<Jz|VDy^5xY!=?_i?*`NphZ5Ol*K$5%&(;mL>Q(fN2Y2!%
z>&Yc-Z7pLyumbBV?dsUsLww0QHsRlB${6a}H>n+CP5;Rh@T^qG=LlwdrgQq)pv{mf
znoB?b*Q(I1S8)D27PhJ`&yoZwXZzB&r07t>@F}MqGg0rfI!FH|CcDOW(dgyWpVo{=
z-@hPnQxwb6CjuR<J8D{Li1hcB<EquR^g_Qjn}cjr`ANjZH{p~u_b;`0`ONv(hMxN0
z$1|CRen5#)d>Cpy+AKV~G;a;DoXYsRxi#Ho;qt~Qe4`b<Q7ioIxpU6W^EiJdKtKBQ
zxD`=f3)YfzgdlZQn>Ad4-r!KJGXlX?r6UbQYzV#tU!gj!++~ZfEWgY&nPtTe^_n|E
zf*#RtM|^eL82Z4@rZv61Z(HfFm7p^BqFTH52oB?3LhK6;ODy1PmKSSBTVRlx$h9Cd
z&5*$%r0z;^9zIGG|2A4lyg?V8(Axh*mCO!0Ag*hrpL?h@Fl%4$mwczd<4<3|s;e|~
zD6j<Ta}+YE0z(5~pJQ_vQI!0#S6xR2#OKWJ4m_XKj3J5MdWAhRr~21pM{)d+Qabn}
z)+e@J_)F_5@G9kCX~U-ab0?_r*wb9y?6_DJ@iWWr!=%9V#}}FJQY}+bk?`{wFo)Ci
zmgQt-)T&p0u&9sFX6(q38BAh>97V;?Scj;We+OZjf4}p(KklfD-?vj&0siyto5sll
z0<rt2n}9m_L3QClb>FEN=$`L|8*=dVM)*t#t6-C0BM>rmm7o^(PW_M&MUM?q!ot@T
zj$`2$+N>{VNe$hfXtQ5~?{u~?irtb30h8D&#L{-cobR2>HvAB3+T0!G#kJYxgY27G
z9l<^?5)m?|WGfw4`q&nm+(5~Vc}8Fk-3pZ?fLmS|e$?V~|8SVo+U2$p_LnikPq)6(
zyJpJbQ|RY>uj2XAV3eBdA^PLcyL{*xCUf?vIKwq>QX3sD>pW?CZRU6%vLkKbj~RMb
z-J`9P`9D86JOFE)SW1Zfyv>NbA)g>W6c@~sarL^4Lg=GVmXO@I-N*O^zQ1_utNh;3
zG#nv00?m}}VMB-!CnPsWxXY|FFgev<8Yk#5eUqjuD}}bM!feD^$|0fE$b@kOmGv%m
z`IH)+8tEn`<dvFP>(RNz@qUphyxmd*=n$qHbfy1>4^Q^&Dtri6<jPHr36rEc*MPMh
z3}6bQ%C7X7*Gu&Bo1P=zQ;2%^dhq#aqA<{=7LasXDNx;l_{o(s*HPDh6YUg?Mxz%l
z16d9u7a=W$jX8LHmPZUe6DPo2#5X7`TSNe-q;7G1m8;z<m-$eemgnqSGp^L^#{rh+
z>fr@C3j><gPhYtr6Y_62MNuppIx_j`m%#n^ExbX;H@Uw(_I9gnXy54(4VbIYbj)AQ
z9vyX-?;NeUfF%g1Rr!|}4K#{>B&)S}&Q2;AAO@6QpD6mfOzaG8`8go}kJ1CRV*xKj
zz8XF<&CcTYQXV^?ri=^cOcNCXoE^TN`|i$6=)_N8Z=<{rnm!-NF-3N&#J=#)6P%^G
zW&)N?@9I_2p|J$C^z^{vS{2#CAB7Y_^6eN9NfIBNvGdW58aYCIHWAWuTO-kjSeM>o
z=S}>d{Uv<@W2h8y3O+WrGSPygjf^WtkJq0sgQ&%GKR65eq|_j_-XSm<0&FVL2^`R0
zcV&H^%XoR~&a%O|un`)f7_Gbkyof;8^Lw3~gicNCwuzrDkCoZY8l^HEoI87-Jo<v1
zRhFYVv${;JIhR>-PZvRKVO$gL9c#^h`q@jne4((y7TgcI_PyZF7*;eQBBFVDWrcNp
zf+ii`)YTtz|Gih8_gqj#=Bf-s;~#M*-K~pkyvLAs|AS&!RX%vP&B*8+4fy!zSKyXM
z#+&e3uL0@J`KeJMklU@9cM>iZo>4=|Zq{$Xy4;DZuN=Sc3(pV2_8`AK*l8EAIuo8N
zWAUDM+bZr$bsZqUttGbDuKa!|!34sY1=4C6U4x$+*>hws#8HrBlnaX=2%g0V-Wqac
zMS#nRgJv$CZ;ir=r^$e%Z-(Cs^ocjzri^(IduPTsns@|rmM&yhT_KA~2&~?~-Lds~
zo^B>dm<gloJhKt-;7OS4$br<+oNkwyM8A!E@dSju>bD6xzF%YYNFI!*>^^^g=DG+k
z`D|>DW$Hyt$QjI;_u}i(2jyw^?d~#a9mQHM;^nlvqu;=ujn6&up1@*J^wcFIbiwP0
zyK1Z5c^;#RKB~ZK%YjFK-Wk2B;y+LS`sTR14>xjg45<4{%J~KYA_lgk#e$?H6PW*J
z;}nbxV;=K_8yr44qNRyIFQFp8b%ZZh;~Xb*Rccq=fM3GSq2%n1-^9bltc~@OeVy{a
zs(%Ip#2y%D5!SQo!PR`py}o14mn6k{Zw4#~jU^I#jtk$&Y0#QYgD!JY(@k{iBf5t#
z=EX2WLV6V4905w_ygY~vja=OH12i8VB%2E)@fW%%&@<^sO_%dyoKeKOu5%@K9DEAp
z|9ecS^U@oDPdIV|a>_Ld?f@9zg9^98hVwssa;Q-(0#O~BvVE;^<q4a9dBe+&8#hqH
z6~8fEqr@E0=HHtdItSDVl={80lS2*`a>8im30r~H$ltWVWl!c~FA3M~7x!?Dif-o}
zrAL;{nCI@eJH28?Nvs(%)6H~oSVzf3x+GHBC(YQwz91Ida{a12n_#}w&uL*zwYhhj
zFA)%tIBbzBx0}9wNjR);F9iG~m0!)G*1F!?Teq2_AR`Q+G6yWQjp&9FYRV2yI1j6;
z^kj48ZkiPs{NyqJ(U%7Idh9M^aK3s~+wSh9q^?fuSi;EcPoXtNO~Rw%_{F?<#I24b
znsca@q7xz*jT@1%bJdXzk%@}F$5<J*s+M{`l=`P5w;L@%hxwZ{6<J~FZUhK#j3Ogj
zstpd?M-G52amSJNr2C9EB_JYy@9ARCu2g}8j;CPxa+K2?%X{+`B#FPtUW<{gQS#M*
zfYA43C=~i~)%Ed4T3j2I9ilkCzws}y(YVGbT{1mB)V|;?cq&M6d>>p#XHB&~)tQ82
zv}Npl|Mi^^mr>DS_B|Ckxwf_^O}WAA1s8k*xI-+eH!9?b0jIe_;wSDy(kYE|fF7r|
z@?z@&W#=Nd3xta8d_WtDK8q;om?j-{+ZZ*BKTU1p#gZcvgDX%p71GuG&=|(zuU48!
z&HGQqj^+@f44lMrJlQLc`}lCjND-l-(=t@=yEAJc85P5Z+H<lMB?#=Ld-L(+XDc>o
zas1xyJmMzY<`&CsZr?5}24V?u1jG+>?w336CP0Cs#EgG~@A!g<%EQb32w#kreR8Q#
z*_ARLG4EF1N#2JLL|9>n$c9Xfm&@+jFFAP5Uiz|q0S~w(!sN6C!?Yf;UUfb+%l8-t
zlCqmphD<h0*-7TzYra2V-GW?u@q1p$*wP)uMX<+^p>~2@s>+D~tW`6qHalFox$lZy
z>H|)-fj#<yN=qky`dFx(9QVPOsFtSmxvYl>4?$ewPiN7zm`OSuVqXvit`;#Fh?lL}
z4jPao+VTl_JplnjfTQuP8AN{!lf!`ST9f}pAIyqP*n9Q^)uZ@*$<a_}m>zMOC{=@F
zDgm?Xz<x#CAwNk)7<t<G+rwZlUf`&>{(>G%{SjxBa<9lQ{_u4t8Qheb7%9h3n*1e+
z^|;QI(Z+jV_l&i&ON)x2BQ6ggv(f_m{4DH@a@E+J&gddcw!>{LQib!wnreeQ6$1)S
z*4oL|ej94r;;3<B$p!+K?X<S8yksX5Vt*X=yB+Wbd{3vam;t`7gOFSUt}3bUb0cBR
zim#9qiV(2h&48m`lxK1iH12?2Gjqs))Gxp0m1Oe-y3kSZlUn|xL<1FQVTF9iZmEKj
zOe;dRqNvss?mo@SQI;k+`vOyNwN(t4te!Yu$TsApod8a->(dXS{&L4%t2a^vgJbXc
zAqBB<afABP29i)BZ1~~jmS~j&gubyp2D=c{($r`r%1nSHSliszQu$EJ<@uaD4?L>t
znX-(FG5Cwh?%L>v7gRRh2UKt29R;?(V+k(?_H&NtLgcIb$#I+FBpn%2U=h@di+6i~
zh(Hmj6;}7(WRZ({2W2jkG-?1)QJa9J^dSdGPM@;=F^6)u)0{MEh6esWu)Y`7VtT{`
zn$pA>G~v?lfJDJ#IBZG<4c+Hx+E|j_otpfEEdTsg073+l4y(cX_kgPhK=o(rLuGoP
z`tD0qYp_}sY|L~6#RipW5Qzs7yMi8hR<E~MOhV$%I$@wi@ph%tE1EOxV~j(lAw(;$
zaCcrd8~SIF_(-x1Qj@C}89x!y!a9h=wCGQNCGVw`Ys7_WW$!(UxY-KBaW38S_f0^D
z#o&ULViE#t{wCMJj&VhvD+y<nBm^YE*<8>}6Z)t~oBW!{8}LiThpYB<+4)SI(ybWc
zGZfwpb}opA6MdcFOghgfs%ZC7@)@`Hnb>-dsZ;(z!GdWpnrvi#@1Mlt*J`;RN-M<j
z#`4ek@|ep0-W{)4F7)GgYz3H4QmZpKL#KXggwmeTt*y9VA@chkas7EL|D*o?cUs`W
zW!n*ygfqM*n^KZ(wJ)Sv4!{}Bk5sq9ai)hYv<+re17S$3iNDGHKw>NJfog#NP7^Y&
zS16F6fXu=k+x3CPS1!L9;G!&Rxcg^9+Ldzpe1p(u6}4mCTnXRKQR5CUf}U387Trya
zq@-QR^10fu_YhbRsQ!w-6{B%S*klW24@5V%D~Y<&+y7gs?}oSULH*q4y7B(uGs!uJ
zag)U`Xr6_1Go>q2PT#?SDx!IT%LSAk+P**tW)Nr4DUbW72ILpI8Ger_JzCFary0xy
PaIf<wNaIQ)^xb~}u;dF4

literal 0
HcmV?d00001

diff --git a/images/load_ext_buttons.png b/images/load_ext_buttons.png
new file mode 100644
index 0000000000000000000000000000000000000000..ede4798c8aeeeac6f874ded0e6aeda526c62c509
GIT binary patch
literal 90301
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

literal 0
HcmV?d00001

diff --git a/images/LEGO_WeDo_Extension.png b/images/old_LEGO_WeDo_Extension.png
similarity index 100%
rename from images/LEGO_WeDo_Extension.png
rename to images/old_LEGO_WeDo_Extension.png
diff --git a/images/add_ext_win.png b/images/old_add_ext_win.png
similarity index 100%
rename from images/add_ext_win.png
rename to images/old_add_ext_win.png
diff --git a/images/bg_hr.png b/images/old_bg_hr.png
similarity index 100%
rename from images/bg_hr.png
rename to images/old_bg_hr.png
diff --git a/images/blacktocat.png b/images/old_blacktocat.png
similarity index 100%
rename from images/blacktocat.png
rename to images/old_blacktocat.png
diff --git a/images/icon_download.png b/images/old_icon_download.png
similarity index 100%
rename from images/icon_download.png
rename to images/old_icon_download.png
diff --git a/images/loaded_ext_menu.png b/images/old_loaded_ext_menu.png
similarity index 100%
rename from images/loaded_ext_menu.png
rename to images/old_loaded_ext_menu.png
diff --git a/images/new_ext_menu.png b/images/old_new_ext_menu.png
similarity index 100%
rename from images/new_ext_menu.png
rename to images/old_new_ext_menu.png
diff --git a/images/saved_ext_menu.png b/images/old_saved_ext_menu.png
similarity index 100%
rename from images/saved_ext_menu.png
rename to images/old_saved_ext_menu.png
diff --git a/images/sprite_download.png b/images/old_sprite_download.png
similarity index 100%
rename from images/sprite_download.png
rename to images/old_sprite_download.png
diff --git a/images/open_ext_files.png b/images/open_ext_files.png
new file mode 100644
index 0000000000000000000000000000000000000000..337e77dd244b7dcd7a0356d042ee635560db7dc3
GIT binary patch
literal 23126
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
aA?n~XKAI_|e{^f{prxk&tX#$F^Zx+NnBT_$

literal 0
HcmV?d00001

diff --git a/images/open_ext_url.png b/images/open_ext_url.png
new file mode 100644
index 0000000000000000000000000000000000000000..52e34c3062886c9914f2fc268599a88bab3f0ecc
GIT binary patch
literal 34050
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

literal 0
HcmV?d00001

diff --git a/index.md b/index.md
index 31e39cf..221a8ba 100644
--- a/index.md
+++ b/index.md
@@ -5,9 +5,12 @@ layout: default
 ---
 # Contents
 
-1. [Introduction](#intro)
-1. [Editor Interface](#editor-interface)
-1. [Writing Extensions for Scratch 2.0](#writing-extensions-for-scratch-20)
+1. [Introduction](#introduction)
+1. [Using ScratchX](#using-scratchx)
+   1. [Link to JavaScript file](#link-to-a-js-file-on-github)
+   1. [Open an SBX file](#open-an-sbx-file)
+   1. [Open a ScratchX link](#open-a-scratchx-link)
+1. [Writing Extensions for ScratchX](#writing-extensions-for-scratchx)
    1. [Adding Blocks](#adding-blocks)
       1. [Command blocks](#command-blocks)
       1. [Command blocks that wait](#command-blocks-that-wait)
@@ -21,41 +24,59 @@ layout: default
    1. [Hardware Support](#hardware-support)
       1. [USB HID Support](#usb-hid-support)
       1. [Serial Device Support](#serial-device-support)
-1. [Frequently Asked Questions](#frequently-asked-questions)
+1. [Sharing Extensions](#sharing-extensions)
+1. [Developer FAQ](#developer-faq)
  
 
 # Introduction
 
-Scratch extensions make it possible to connect Scratch projects with external hardware and information on the web through custom blocks. The sample extension code in [this github repository](https://github.com/LLK/scratch-extension-docs/) shows how to pull weather information from openweathermap.org, get input from a USB joystick, and other examples that demonstrate the range of possibilities. There are a lot. 
+ScratchX is a platform that enables people to test experimental functionality built by developers for the visual programming language [Scratch](https://scratch.mit.edu). This experimental functionality, which we call Experimental Extensions, makes it possible for Scratch to interface with external hardware and information outside of the Scratch website through new blocks. Some Experimental Extensions enable Scratch to connect with physical hardware, such as robots or programmable devices. Other Experimental Extensions connect web-based data and services to Scratch, such as weather data or text-to-speech services. Extensions are written in JavaScript for the online ScratchX project editor.
 
-![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/LEGO_WeDo_Extension.png)
-
-This document explains how members of the Scratch Developer Program can develop and test extensions using their Scratch accounts. Membership in the Scratch Developer Program is currently invite only, but will be open to new members soon. We’re also developing criteria and workflow for making polished and vetted Scratch extensions publicly available to all users on the Scratch website, which we plan to publish in 2015.
-
-The UI, workflow, and protocols for developing extensions should be considered *alpha* - and subject to change as we continue to refine them and act on feedback from the developer community.  Members of the Scratch developer’s program are invited to ask questions and give feedback in the [Extension Developer’s discussion forum](http://scratch.mit.edu/discuss/41/) on the Scratch website. (This forum is currently only visible to members of the developer program.)
+This documentation serves as a guide for developers who want to create Experimental Extensions for Scratch and run them on the ScratchX platform. If you are not a developer and have have questions about using ScratchX or Experimental Extensions, please read our [FAQ for non-developers](scratchx.org/faq) *missing. If you are looking for Official Extensions within Scratch, such as the LEGO WeDo, you can learn more about Scratch 2.0 extensions on the [Scratch Wiki](http://wiki.scratch.mit.edu/wiki/Scratch_Extension). 
 
 ( For information about Scratch 2.0 HTTP extensions please see [this page](http://wiki.scratch.mit.edu/wiki/Scratch_Extension_Protocol_(2.0)#HTTP_Extensions). In this document the word extension will only refer to Scratch 2.0 Javascript Extensions. )
 
-### Editor Interface
-_A demonstration of the interface and workflow can be viewed [here](https://www.youtube.com/watch?v=PLU7enk1tJ0)._
+# Using ScratchX
 
-Scratchers with access to the extension development UI will see new options in the _Extension Library_ window and the extension drop-down menus. In the _Extension Library_ there is a button called _My Extensions_ which will load a list of the user's own extensions. The first item in this list is an option for creating a new extension.
+The ScratchX interface is very similar to the Scratch 2.0 interface with the exception of a set of features for loading Experimental Extensions. You can load your extension into ScratchX in the following ways:
 
-![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/add_ext_win.png)
+## Link to a .JS file on Github
 
-Extensions can be in three states while editing them. Before a new extension is first uploaded to the Scratch servers, the extension menu looks like this:
+ScratchX does not host JavaScript extensions. Instead, we provide a way to link ScratchX to a publicly-hosted JS file. 
 
-![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/new_ext_menu.png)
+In order to link a .JS file, you must first put your file on to Github, a web-based Git repository hosting service. This requires you set up a [Github](http://github.com) account if you don’t already have, and push your JS file to a [Github page](https://pages.github.com/).
 
-When editing an extension, the editor will load and watch (we call it 'connecting' to a file) a local file. This allows the editor to detect changes to the file and display a reload button when changes are available for loading. These are the options for an extension that has been saved to the server and is still connected to a local file:
+_Need information about crossdomain.xml here, and encourage people to think about backwards compatibility_
 
-![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/saved_ext_menu.png)
+Next, to link ScratchX to your hosted file, right-click or shift-click on the ‘Load Experimental Extension’ from within the ‘More Blocks’ category in the blocks menu:
 
-Lastly, here are the options for an extension that has been loaded with a project but is not connected to a local file:
+![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/link_to_js_menu.png)
 
-![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/gh-pages/images/loaded_ext_menu.png)
+This launches a dialogue that prompts you to link to your Github page. You’ll need to copy the link to your publicly-hosted JS file on Github and then paste it into the box on the dialogue:
 
-# Writing Extensions for Scratch 2.0
+![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/link_to_github.png)
+
+## Open an SBX File
+
+You can load an SBX (.sbx) file that contains a pointer to your extension from the homepage directly through this element:
+
+![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/link_to_file.png)
+
+The same dialogue can be launched from within Scratch by clicking on the green ‘Load Experimental Extension’ in the top right or from within the ‘More Blocks’ section of the blocks menu:
+
+![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/load_ext_buttons.png)
+
+For help on creating SBX files / projects with pointers to Github-hosted JS files, see our [documentation on sharing here](#sharing-extensions).
+
+## Open a ScratchX link
+
+Developers who have hosted their extensions (.js file) or sample projects (.sbx file) on Github can create a ScratchX url that points directly to their extension. This link can then be shared with the public.  Learn how to generate the ScratchX link later on in [this documentation](#sharing-extensions). 
+
+Users can then visit that URL directly in their browsers or enter it into the homepage element on ScratchX.org:
+
+![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/open-ext-url.png)
+
+# Writing Extensions for ScratchX
 
 Writing a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:
 
@@ -461,26 +482,68 @@ ext._shutdown = function() {
     device = null;
 }
 ```
-# Frequently Asked Questions
-####What is the Scratch Developer Program?
-The Scratch Developer Program consists of software developers who are interested in new technical initiatives within the Scratch ecosystem. Members of the Scratch Developer Program gain early access to initiatives such as the Scratch Extensions project. Members also have access to the Scratch extension developer forum.
-####How do I join the Scratch Developer Program?
-Membership in the Scratch Developer Program is currently invite only, but will be open to new members next year. This program is for programmers with knowledge of Javascript.
-####What are Scratch Extensions?
-Scratch extensions make it possible for Scratch to interface with external hardware and information outside of the Scratch website through new blocks. Extensions are written in JavaScript for the online Scratch project editor.
-####How do I create a Scratch extension?
-You can learn more about how to create a Scratch extension here: http://llk.github.io/scratch-extension-docs/ 
-####Why can’t I share projects that use unpublished extensions?
-Until we have an approval process in place to ensure that all extensions meet security and quality standards, it won’t be possible to “share” projects that use extensions on the Scratch website. You can download the project using the file menu, and send the .sb2 project file to others who can use the file menu to load it into the Scratch editor and try it out.
-####How can I make my extension available to everyone who uses Scratch?
-We’re working on an approval process for publishing Scratch extensions. We’ll make an announcement on the Scratch Extensions developer forums when we’re ready to accept submissions. Keep in mind we’re likely to choose only one official extension per functionality (hardware, web API). Here are some of the criteria we’ll be using to decide whether or not to accept an extension: 
-  * Security
-  * Ease of Use
-  * Quality (documentation, design, code)
-  * Requirements (browsers, operating system, hardware, etc)
-  * Content (age-appropriate, copyright infringement) 
-   
-####I’m having trouble creating my extension - where can I get help?
-Publish your code someplace publicly viewable, like Github, and then post a link to it in the [Scratch extension developers forum](http://scratch.mit.edu/discuss/41/) asking other developers for help.
-####How do I request new features or submit bugs?  
-We would love to hear your thoughts and suggestions. Submit them as issues against this repository.
+
+# Sharing Extensions
+
+ScratchX does not host JavaScript extensions. Instead, we provide a way to link ScratchX to a Github-hosted JavaScript extension. ScratchX can also point to a Github-hosted project file (.sbx) that in turn points to a Github-hosted JavaScript (.js) file. This is particularly useful if you’d like to share a demo project that makes use of an experimental extension.
+
+The first step is to set up a [Github account](https://github.com/) if you don’t already have one, and push your JS file and/or SBX file to a [Github page](https://pages.github.com/).
+
+Next, paste the public URL of your JavaScript (.js) and/or project (.sbx) file into the URL generator below:
+
+_Need to create this for the public!_
+
+
+Clicking on this URL will open a Scratch editor with your extension and/or project data loaded from Github. You can now share that link with the world!
+
+
+# Developer FAQ
+
+##What is ScratchX? 
+ScratchX is a platform that enables people to test experimental functionality built by developers for the visual programming language [Scratch](#https://scratch.mit.edu). 
+
+##What’s the difference between Scratch and ScratchX? 
+[Scratch](#https://scratch.mit.edu) is a programming language and online community where you can create your own interactive stories, games, and animations. ScratchX is a separate experimental platform built to test experimental Scratch features, also known as Experimental Extensions. There is no login or community component to ScratchX, and projects created within ScratchX can only be run on ScratchX. 
+
+##What are Scratch Extensions?
+Scratch extensions make it possible for Scratch to interface with external hardware and information outside of the Scratch website through new blocks. Extensions are written in JavaScript for the ScratchX project editor.
+
+##What is the difference between Experimental and Official Extensions?
+Experimental Extensions are extensions created for Scratch by the community; they are not managed or endorsed by Scratch in any way. Experimental Extensions can run only in the ScratchX environment. Official Extensions can be found and run from within Scratch 2.0 (both [online](#https://scratch.mit.edu) and [offline](#https://scratch.mit.edu/scratch2download/_) editors), accessible in the ‘More Blocks’ section of the blocks menu. 
+
+##How can I make my extension Official? 
+At this time, we’re focused on building a library of Experimental Extensions on the ScratchX platform. We plan to work with developers over time to bring many of these Experimental Extensions into Scratch as official extensions. If you’d like to suggest your extension be highlighted on ScratchX, please email us at: scratch-extensions@media.mit.edu
+
+##What are the criteria for being added to the ScratchX library?
+Here are some of the criteria we’ll be using to decide whether or not to add an extension to the library:
+
+* Security
+* Ease of Use
+* Quality (documentation, design, code)
+* Requirements (browsers, operating system, hardware, etc)
+* Content (age-appropriate, copyright infringement)
+
+##Where can I find example Experimental Extensions to play around with?
+We have linked to a few example extensions on the [ScratchX](#http://scratchx.org) homepage. We plan to highlight additional extensions in the coming months in a ScratchX library.
+
+##Who can make an extension?
+Developers with a [GitHub](#https://github.com) account and a knowledge of JavaScript can create and test Experimental Extensions on ScratchX. To learn more about how to make extensions, see our [documentation here](#writing-extensions-for-scratchx)
+
+##How do I create a Scratch extension?
+You can learn more about how to create a Scratch extension [in our documentation here](#sharing-extensions)
+
+##How do I share my Experimental Extensions?
+The easiest way to share your experimental extension is to create a scratchx.org url that points to your extension (hosted on GitHub). You can learn more about [sharing your extension here](#sharing-extensions). 
+
+##Why can’t I open .sbx files in Scratch 2.0 or the offline editor?
+Experimental Extensions are extensions created for Scratch by the community and are not managed or endorsed by Scratch in any way. Because of this, we do not allow Experimental Extensions to run on the larger Scratch site. 
+
+##I’m having trouble creating my extension - where can I get help?
+Once you’ve published your code on Github, post a link to it in the [Scratch extension developers forum](#http://scratch.mit.edu/discuss/41/) asking other developers for help.
+
+##What is going to happen to the older Experimental Extension tools in Scratch 2.0? 
+We plan to phase out the older Experimental Extensions platform on Scratch 2.0 at the end of November 2015. We encourage everyone to migrate their extensions out of Scratch 2.0 and into GitHub for use in ScratchX before November 2015. 
+
+##How do I request new features or submit bugs?
+We would love to hear your thoughts and suggestions. Submit them as issues here on our [GitHub repository](#https://github.com/LLK/scratchx/issues).
+

From bf7c7ff1a88b2c1c1f68f09d6a1dcf1bf79aa691 Mon Sep 17 00:00:00 2001
From: Kasia Chmielinski <kaschm@media.mit.edu>
Date: Thu, 7 May 2015 16:49:37 -0400
Subject: [PATCH 37/47] fix images

---
 .DS_Store                 | Bin 8196 -> 8196 bytes
 images/link_to_github.png | Bin 73681 -> 39222 bytes
 images/open_ext_files.png | Bin 23126 -> 37877 bytes
 images/open_ext_url.png   | Bin 34050 -> 35433 bytes
 index.md                  |   4 ++--
 5 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.DS_Store b/.DS_Store
index f37e27ae0485c8c69b050e11ccf36f46c15d3d12..59dea6c314159d20dd22c01bc9c47270cbc59a63 100644
GIT binary patch
delta 20
bcmZp1XmQwZPLSQwLPx>K*l6=rL47^|NQMSU

delta 20
bcmZp1XmQwZPLSQ)Qb)na!gBLfL47^|NX7<K

diff --git a/images/link_to_github.png b/images/link_to_github.png
index 52515ce297b2a673f01fac008f6eb5c120515190..a6995ce6ab67a6fc572b2dde967fee750aa625d2 100644
GIT binary patch
literal 39222
zcmeF3byQs2(%>6{OK=J9?(R--2@)W<ySuwP!8Le*-~^Z8?(XivT>{g&_rCjh?|W}D
zGi&}#FB*z{s%oG8+f}vq>9bCU%FBwu!(hPx004LiaS;XJ-)7*u4+;YKTj4(31NaBp
zMqJGv0DwjL`33=`regvCnB1nq!t(Ma)(+P8Ce}6t62ig+Hg?uVrWS?(fXhOutBMk;
zWwoPY@;5k6V~BnV&hV}DSeyjHU4|_S0VM(X_%EMAppoFj;|M<GgoJ^JB7q~J5rgIs
z4R{mYd#$?9c-zi!IgXn<UzHVWUR@q&EhG3K^7FE>Asa%5gvsh~s9{d>@U)oZ?fSgJ
zu6PBCbLn%dN-QR(e*3(zAuIp@98-_!>l3eg8{_y2o`C>Dhyk~dJ&+<G1jB%O9RV6*
z5FZ9O0CGQcB{U!a9I$5O;^GE^*bn%IdyWnJ3Q+fK{RIxN1cyP60?45Rq@>6i2LLL#
zKmoLr1SB9ntmr;{Z*Vcu;lE|P5|~1O%7+An(gN{ueD{vg7vNV7AUJ%+cNKb~E__~1
zcW~>|er&=300`28x_jSFD6T&*<Pf1ePpQ5F3}wSfkptEs1Z3ZK&2fMLm;n=Sj;v1r
zfOJ6LRfT|$@*@e$_=ID^Gatc97c9U9L>?+HZ2{oJ02oNaTsNx;Q{IR3S@oFWqiG*7
zM0;S?OMicnD<ODhG~#Vz5|eObHljHmd+lxGXp`K42B>)TY1lNI?zqh{M<uRf={txI
z8UQyc+NM@*n_mi+weq=BmxQYU)Q1Gnh&aUHd_UZNo4fIR8Au5+Hk=OPgAZVqhH|WY
z#0_@^>vo@e8b`-8FuPWNg^r1O)L8sRDny3C=|kjjWTb<}w*ItWEV^vlZbU|;oZS<O
zJH79E6_@>YQI6$>vpO#eMz;3x?K(CbNOcAf#ZQ7nW8d)g2yi;A+N?bhYNn}o1Rx;-
z1Q02{xIKx~zrw{tgm<tBVz~v3BZ8fIZ$|jOhJ*4W2?@&bZfT2#L4<SA5kLkL<PrHs
zts{U+7jn4SSWjCPjlFSSPgNFq_!yd7`J+gZg*X+NHgrd%p^Xca0D_1R0u%9?-}6}n
zSqteHSqt$k6iPs^&Z}5Nu+VQl1R+n0DcH?m5CK0pS8-}1&*-;VD*U0vH8La-Z-rTg
z9@p0<fWCdPH{I&_%3iUgV_<-RYv9iIMB2R4z?l8!_#~yfp^f%DbiR7!M{wWfrg2q0
zP;K_5`1HACb&LLRRZaRy|E(|LE4F7Ny`~D-IlxT#@;9!^_n&lmRk7Iu9Cb^dZOMQ3
z|5&;MCWr`+gb1zc%`s4zU>u+HEarG$3<?1puz--fBq+c~LfV3gn1+PK*9a9G`;AC-
z*lT$WF-7I~<ABrC%bXux9z)z9pa7_o3~vtya)2csU|@p3HQCLlfE2KB?d_o;2e{>X
zmCk`3(<gp^)CmHB5&&Uag8)GUhmHXUmj{;_0~cm^Wo`q&I1P|N1Y{$E!-)sM&A~Lp
zAh>6PQDs9!bx3f$+RaAe%El;bm%$7|!t{qu4svFI4L^M)h=|<bXF~`Yf=LwkMN|pN
zQUsq-*aC^X3*}5$D8_^Ysb8R$_)eTrArwbYmT))5DG#H;cS#hF_+uX&Q!q_7=0Jp9
zF41R};sCSUx1Zq;{O)rIO>k0!c0L7~aDE79`$TI(?}maaNIvGghXKbx)e|1750lJh
z<j1L_rOMFrt*V0O3u;L>R^@98KvT4g&PnA72hwhbX+3CJxcWw!3ji<Jcpcn@)C<|V
zy?pKFOu_^GSyYD*3S|a)2IUJBUI3yH6Je6PB!_Ihc)cVhp)?A5s0b1LyP(gaH6(7x
zouT_(pc{mGC}&J(bhcr)fg(iEF*9+O;;%`#D1GCliV0X_+{AChC-bZgsMI39NV1W;
z$L97g_T_K6*|Fc@-Lc+5qHupiopd9EED$JADj+K0DtKMMEj=mCPl1E_CJe7T5LtF!
zlCqFRp-drDVW&vx0IT@5BQa}4W8eo_Ua1z@j65&n9fL$;Hr;DoSpzx)zIKn4JH`th
zSlDouaKdm5DNrfGLCQq0L}Qv&)dp2GwNlkrYSn5bs_LpIm0kw=dLQ+e^%lDld)^N?
z`5wJqbax_iGIc_6;&MlKM|0<XAik!@(ZHd?d5!Z92OQ@Lhn-`^CXOSYbC}~5r#(ls
z-L<`}t*!>L2AKwk#$v-keVLt%JxYUNeQAAX!$rfW&FW6(_WIVlUE58G^`edajg+-+
zmweY!7h>0Nm(dHpEzJ#-b><D&jm6>FKIiBY>NdnSLT^NGJa3d|sOLC<%r|KQA)PFN
zl5h0{bQJXU?-<l7KAaY>xf5CuYGwnnd9p8r<O1I5y6TdzJFMq+2zO|Uh=|gN=!sH^
z+>5S+pNC<E1%=}w9-(I-Z6Z%%z@l&y%n)BE_6RfQh)xWcs+d%7bZjJUgl>p+S%*KX
z5?A*)4%f2EnD>xUATJ=dBSVthlNgb9lN^ySlgLT&#p=aPB*G+6eZ-2nr=lf3qH9rX
zRKAadYl}#bP8~8$DXgNYf~c~s`dWps6=Jtwhh!JL6}0`%75+~Cj_QuveEe&wdFKq?
z2X|*&-HegOJ;$$yc$5s(n3N=x>F<-3wv=m>mkQ>JZ{JBM^h=p$P54aE8^UjkZ*y%k
zqRFC}Cs<P9QrQ=u7lRZl7b8rmP7O_0O)pIGm6R(ZD3rg)pI)1&n4BvbFFaFJl=_%G
z|CuwFv}n7~QT{NNt*$oL$@kh3*DtD4wpO-q<mM{%5M?Gy`&mLokX@)w>t+}t1zr&Q
zfK7V8bUgPEcRX#ZaQ|T+e<q6ok^K|)6jn1sJOdmHkJash_z1<)=k~qa$|}ar+nh6%
zk5^<VWJxlNim;PBlZ!^_MrB3`Mx#Ts$-&84Y*}B&D#YvREhH*xDwmA!`Xsxkz8%C*
zfBBl|Sa5}gZG>%{CYgp&dtM8-_?mlaWWlO!S<#*H!Q|mRq)mn0+zG=m#U|#iiz%^f
z?q*MMWO=$$I#W7CdP6!p_bfMkBW4q7Lqx+sBU$5hLuJEVeTLn`fz^T5cfR%Pt=N6r
zNyRbdq3YrAt?eDhrNi*L6z9;Jn&=?8vQc5}H>;?t*lA$wqE-hBL$xWbcYgToqs!$h
z)+xsV<@w%cb?5wh{Mb6k^5~~@V+^MPYtk`V^0s4#IxTA(YwUz>gb%_-LhwRT!mGh4
z0m?z1uj}B-p`WqV5p9X|NGEu!D8q2JF{bf`-{2y7lD=gjBi*t3zA(2m7g~R1OKMvU
zhuw4LLbAf%O6$u_$fis2j?GqV!ywK}L3yIipl%D65{Gh}Qn={6s7X<~Fr^Szs(13$
z!~;_obFGoI5tbodzfjd<^?em-m3>uVovH<ALqZj+-eIZbz+zY(t%dXIN-S|)HL0;#
zaCg*X!<UALB{6PC=b7&v&VfgbE$Wue-N)LlzOMdv19$m%gWw?G{_aZG@h57OaCFU@
zd1^{6N%ib*C!L-U53=a?sD)^9M|F#<c0Nu7C*OqncjB<~5As<J<Ey%=LhTmMYhn7s
zTF?d)vJ;4vdz57$0}+n-Zm;CmvfZbHrXyL2SnpV+f;(SF<5hA@C{SyvyT!Y(?C+Iu
z)iwI+FZ9adV(?^oKkkO^p`egw$ZB!sJ02*t*m#bcUOH^-r$A%{tuq%GFJPfzMYEi-
zZD$2mhZ?VDUU1)>HV@ym!Y*K7rRAq0Xl*qn&-&Hm)ehAL)ymem)-GGtS)Ck?9o4%?
zoK1wvo{bdKWtQbwNjl5kNXmT}O&Y9BTD=Lnl)bV%#y-5+^R_YEOjuO0EYoT;@+$TI
zX7Xvbaph_R`_Q@u!3?2xWvY3eDUZ?NEU~9FypGknZfU%6lI;uglC5*+^07O_joV4u
zO563fgZ5#hhu9_rP5danb5|BdEROpf+pWz}xwy<n%*FHgQx@xV&*saN)9Qs?yU{c<
z7V<_i8S-E)jyB9Rm}Ivbrl;+5hY{*TmHhH<tt_|P`vUtO52M@Co5g+S$`h~V(I4N=
z*4M=5qldHL_~D1$hGe~sJhW1%lQEL{D?hc4-E^M~R(F5y#@D`Rh4$dS(|maN7WXi5
zh~Gb$w|$;v$ItCG|LE3;{Iv>M%6JR}0C)vp;lR{61_OkX17;Zjfmb&-v&Fhl02qK(
zpB2k%=1v(XNf8NTY_$*xAEDd>=B5gg%J&s5Yx2888*Y8M9chC%AHKam&8dhHkHs8A
z?%pLKBE`t7Hk{uso*5`NS7v$NScv?Et2{H8^0RVzZnc+*f742UV8uH3CdEg!YKjY$
z#I(}mMb$aB#c*y^t`Sa4n-Pb7haWp-J4pL#hgW04-%DC3UF<8hF+9n9nB__P2swxh
z+)Z5P_D@Gb+WW>oCyi(6CvJ+vmAR~gWs4k>NKV+DFUCU_S(>8lOT2lVGLgbxb!;$e
zDKUT0BIEs#ilZ>ni;G}Se_}DG+`vswPo4D+v9-5tti|MqmT$}IO(dH0Q8{Nt3(1$M
zZ0VBp_ku;LpFOl#9V(vX#ja9PQ#--M;><jwux3g*gYevKAJ0QO$*bkSXPVM$%@}xc
zmp@OCIKO|yd3N2oXrpVk_Hw8!%r9fDqs>{a6h1^Q{a9q5ZC>SGUwC6@f70K2@DxYw
zUS`$s7Jtqr<N1Cg64D>TIuSm9^}NZ_Rm@OzkM8XFv1Rwh9d9bafXBf*k0mT}#a-j6
z%Ra*R`_5#%ZRlCMap<UFR$Dp;&;EnZUiY5TzSOSi^}c$!QyZIS%Xxuk&=b0+`jza>
z^3=lwf)l<3zB^y{=!B6wFc`czjCp6-+N_>#{ceSZG0y1W!{3H~)Glci^|(<RxINo5
zULJq})Ds$gh6&PVcA?J>NESFJc4y#J{8BVCgsldu3OnaE-)2i?A83ca?K)i8kwrE}
z-$jl?I6+J%B!!Bf#PG41f|gK`q=^K-^18^cRIjPZPck2?#I3gH%Z$;H@0DaD8n)Ly
zB$fti9K#6H8&*Z8(XW_a<LYE9O>1!L3b{<U@2!`PruIB~w?ATsKYT#2m*X#2I%(l^
zY^6;rv&1_~%ke&c#)A^<(lLWFr*OwK=5PjcCNV};XCZ}%yhDGWvx;Cu^rp+EVdU-S
zRwEB&H>7jqII_53iAa_Xrb)0U``%5fukK!#F{c&(v8t1Q)~#@f&SQ4#IJ4RRZXZ0;
z-2nz1#v3*A<Y-<+y;<M83uF{|P$81(%ue!7qua#LSb4bJGWfAX#*733<@G3ztE&4C
z6EV%n%ErwE^6QKxSE?4iof>Wb%{MJ?8^}fqwyVoWmU&k_vn%iVx+fBIW*%!FuX%C1
zlc>1Nn+}==-D<U?_OFhr583N;Y?aqjmwc8S1F;YM@7YU()2%s|*xIUfRkzD7d9xqB
zAjCjk5YyvF@icO|ot;&ZKlC7HHAb29Y`R`=-}#5ae(a{-D8SLClBt&Q_Hf*FoJ{LT
z`CK=1lDGQ9&HGt+S*(Y=Ma|>-es|eE@uKT46MQvro?b%Rix%&;_}=kR{mQu~ZWrNZ
zdn^mQ&F%fHHYjJfn;y=b>r$EkVGYU~5_l%r){&YdWN}vG_qwq<Xhxd`#@lPVsGAC#
zwVS%9?=O~71i-EW`~t&8-9-7vz`7%6MZ{61Y9)A+K-6qGU%8%qjc{B<lSGxH`bv#Z
z98u&Y|4<}2jXDuGJu|_me)6fw);~8hqcz{xH@i5tp0WDOuU~)ibv4WdDy)i>A$8bv
zz2nDWHg$GxaQB=au)%n}2a#&BUL!qp$Yu41QgvQ8SkZ8D2=uJh=qIy$NuGo3-4<*&
zDA#HE+E?XJP_R=lL=cf+vw<W5sR6cuGJ))3TW{S&`bBBQw4?i@zeaR!(lIk_ux|2`
zPmx2AK$9*@jYu&{t4Ujm=N4Y%ulCO+n5N$`A1XK<pl8rZsdLvETCxwc+ub``^iTI^
zthySh>{%5pE4qqZyn@|=F}kV2IHs^$kXn4u)fPL8`tcg__B9VR=LakWGL`Gv=2oIF
z3bp5s(?$Mw!Ft6RW>W|kIGOxR8tUE-<{5*G`}*O%<>_<oOt<msKYAu>;dhMTuvpW!
zMq#pY)75#NzYBR^REBeZ(EFgc0JC_=#YNA%_c$kW99#co^>8|AsqJ}SzC?I-MH8c5
zmp9q7+R)^<b|E8v{mGr@CKqqXh2r_Mjl-G5*xbXJ-|hz#eC?W68gIunnTy3Nd^_W#
z-CPU|FQ_kH0FO@ykN|-xFp6VH8%;2q6_^-rcmbm~KGC3SeV}VOulDl5KS53aIQ7nM
ze)s}lL_PtyPeI_f1aRTn(VGcS6?8D-+o4T@1u=uw0(_tdBtzb8_;(S5i{nm2Mi5<4
zP*X*J_~g6yz6Rn*C@W_$8LA-qPIs{qWlqKdeYc%`4a9}d3&dNJ09gsDHDEaay@Mq-
z*yOD=*$hgrL^=tq0(w#4Whjl@YoggW^5m}M$7HjV0!q7h6G`j@>8l(zCjFt6p<x;e
znphfkwb@GaO1cWyYE4}gz48s64e`y}p*KBuaf4arVcY=^ujH8Md(?->+h;qh2l+{3
z2q`G$$Wdu&$ashpXb#B8=-A}2k;}CeDPk%1$@A%Hsr>t-2VW0lB+#p;eWep`fB#NX
zLN(=6^Jf^dp#wiGyVS-H*9#6ATUYK5(UyDT*ptszeR?%Ls;dUo`&QLX7o1XPB?gCD
z>Q3B^KSaeWa<df+E=ZF|*)?xy@n&0GS~@+;EaO%+Bn$6P;6(hG{M&-b0*A%AM7=^@
zho?m4GWVb~Bjb}o7Qhrn8lW1gS-00ZS;{SBCqJ0YX7kj6*7Ev`2HzNdFHEwavHyHp
zLdC&ir&{iGsyZPNbzc*tB15-Z#%gV1YQ1V>`f2g-Jn1PPWLq#Ld!C#8Brr-fvVi|8
z88uxtZU4#UJM->iUH6<drxZH>@zd6Aenm%974VY=9RX0IHBj9c2(+<R*r$Fr;=!OC
zU@~Kn2<y0h1dk!edcL=WrsB|c=x>CK<dLZYQ?q?dUc14y1huw*PDbAG%hwIA1o@6K
z5{<q2&V|zpEsJ;z>UDrchgt_L5&d{jeZrh%I%$6_s5on0p#fnP`yJvP=SLDn%t^I^
z6I2vQLPNh|3EI3?T{d054!;Vp3JqgrJzC?=`HeZU`HXo;j!TXYoYNem_C>Z|?G9}b
zPB|{5&&bZ--J0E9-DW}M!N9;?LyJOPz^)?pqfaCKpqr6dq&@!nR?Sas!+)z{3Va_X
z#j@(1o!0q#bH|x}>JTbBs@Md<yFw~u8CA`9og$M`)Phaog}OgvmT%m?-={+G1yR05
z>scmaHUiywjeeIXJcGl=S6leKm3xlsc$H&g=w#!_ZSE)`ILA13_EU7S^+Ex;*W1e;
zz=t(oor0JzW25U&NH;lfIfwe3n+k76QHGEYKQ<^}O$<$H8yFc~SaUWFdpzt##Vj>w
z?z@^ijqpx&5W64Ulzz9S3#Iu;?X5oV!0>h9k>NQOL985?+l}a1X?%Zz`K!$CsAda;
z*O@xDcCb^S^-a`Zq^G`$8pM$G_hwEzb;J7m)>HA$&zqQBEBx>76m}!;o7C}>_-|<U
zXpKCn)u>dX?(^#!pTItWvX2QMUABXO5}<{xaX54mCkv}0xppB#zjY#T>_gikl@u_1
zXU>97E9^eTj)`I9BdQBosXhl&78JY@eAWwQ)$z7NtHYBBe>_Q5>`{Dza61k!Cclqz
zi;xVuz@Y#sjA|RO&7B~Nt2bk4We}^!*+DhpmM)W08or$A8Aj}{7+;-59g&vN6d61s
zwQac#yS2N6kJyJgg{*;UhB1O(iMoyENjoD-jUuPINmePSAQ>i?svJZk6;C{%I8#-Q
zA|Iomq{yUrEkB>VP!eUTYMy91yqEl?d|6;3d^U^elFdy=&)ThXsVk?~ti>^{v{tjw
zzi5-W(2~xs>}HvnH^0T|fq~7|+Nyy2!5jL^>sr|E&U<2*91s1PO|XsefcZQON>|h3
zeUy}k>Z95!Yxh)p!a9T5ndU9OypCaa=m)H8_xKp8rU6CjtJeyzWo9mMIqfg^Di=_=
z<@%>rEkdleEX;U!-9fCaOl&RvuP2junvxsoHKX=F9<;elKQELYZu?WQLt446crmBj
zINy0)`)eaG<9T}GTx?A%W}P*S4wGSNeNvpE4=)JTR$NUU>1yMBEW7zpjgZA(Hq`OG
zd=!5tb6EQW#RGEd=f?WWuXpNw&g~~HQfWzEPoF;|s#@I^omC$u9hB=+KT?BJQv=T0
z&58lQ52LYPA!e3-8IpPx69(dStgd$VuBqz$f&y@jx@Na^(t-;B5OIHN=LGl&-o?^B
zujt=-FS@qXE4(8I-gMwdF;!A^P?eG9(zmvx(>1WxGo*8|v;p39004OSU2Jsq%?%w0
z^bCznt$2w}n%am6ObvL6R9IygWNd^DO-#kz><ks%WR>*Y%=I}9i1_(ncwD%E4lE5F
zbO~H6Ev)RhTzHB8@XH01e>T$-5&WUzV9rY<__IR-RT+5#VQV`>0#-U!T73p4Mgn$D
zI!0Djc6KHj0wxAV7J3FodPZhiMoumk7A^(`g1=rwd@w+X$IifrOF`uAU)=%!<0Ue2
zaIoQ`r+0RCrgLVdv$iv)XXNDMq-S8FXJVoSYS7xdS~=*t&|29O|LNo(enbrI_3cb;
z989gP2!8t2)w6bV;3XpZ+0oyxzs6;0^LIy9_J6ShQlxj$wV`LEW1#;}Mh5zS+t@hT
zS^RNo2Kw}d7KWCFRu1++JI4QLXY-F6J%5}3OP7Bi{;wSa=R`*4KO6t!d@U{iW7qZ$
zqE0{re<A&sZvSCvujFcDNUvaMZ|!KOZz$>n918J&8oh(5(LX2WUp)Oh@?X#0(8ct>
znEgERr`aE&@aGKi0LRKDY-gzJU?>87^8q7>m6m~pmYG3`fs>1gg^Q5^_%ASyc<BF4
z^PjW)hYuNR15+c{7e0V)*p(RBxL7#37&u<~c%k|4K7bK#pzEOff8^z*?!Wo@V?5S&
zO4imEe1B%mKkxkkZ~gtu5&{YtU42ulpEm?4UkvRpqZj@R^tp_z?JRX2_)INzjScB-
ztc-c+|JnFL^Y6Ig61KLmwgV2+kdK*%{y#PUM=Ri6N%=o-O7e-A+S^#@y1q1iarA}t
zACbx>VP)^2Yo%`}A;Jf2pffc!;9_Oh(`V8%(xqi#W!0x;;b7FG)zfETq2**VVrAuE
z<kU0Z)ca%HGBPjC|A%W4YkkL`+4h%fga1p{FU<dkYdJepV5QWxc%k$2?Ei1O_z!OW
zM_1ye_72u|t}o&q82x|LLPbN{e{KE80SnVVYMPC%oxS1DjO8WzN6P+P1plsaKW+ZV
zd@f!6pVg4hUf0RcfQSBH+WvV`f7|_KWcvR)eSi9YVgBFya5gct`YXBrV`Bd4>JP2|
z?!?~O$iZ3H&QQ=87!m(xnf0gNe>ME?9q60rS{WM}@X`N+-9H-s-Gqn!=YnHl`mb~M
zXY0RC=|6(}e}(|h&pOHl3?JZNbpMz(MjrbA(e}@t|I}Cg83q=Pf9SI_F#uomj6Z+>
zW%}~)zniN4?@eDG{&&-VS}I$aI`A?5)!V-{zp(mQ?EkDoiokt|As-tnD>Ew({l7Q=
zyM?@|i=l<8h$%4T?SBR`BL~M{M*n`~KU%8&(-Mg0rR9qwe_8%HSugewf6V2dt-u`$
zaC1ce_wMLlr}^*v`Ts2Zb4dT69lvz<yOWnRekuRP^-DxA6@KG-N#mFDZ(P4b^ittB
zu9q}^DgVaxOGGafe&c#c<CpSpT)#y0QsFnQmo$DU|Hk!8L@yP7<9bQsm-261zeMy>
z;Ww_AG=3@n#`Q}?FBN{{dP(D#@^4(fMD$YOH?Eg7ekuRP^-DxA6@KG-N#mFDZ(P4b
z^ittBu9q}^DgVaxOGGafe&c#c<CpSpT)#y0QsFnQmo$DU|Hk!8L@yP7<9bQsm-261
zzeMy>;Ww_AG=3@n#`Q}?FBN{{dP(D#@^4(fMD$YOH?Eg7ekuRP^-DxA6@KG-N#mFD
zZ(P4b^ittBu9q}^DgVaxOGGafe&c#c<CpUP78lGvpEm?PW6De941Ah!#KE@__#`5M
zzPN%60AQI60N6(X0COt9#~%Fw09OqFV3-5|V9o;oaM{Sp<lO)Ou`vk|K_!=k?-|a`
zn#w6RZRSUI_YJ$XTRR0yms(H(=-&dOQ1d^d3JSc_{SKZ{8DW`ji?jNsmq|aR^6)b=
zRTzw4NQij(e%|i2o7=o&i}!bXYbzl?XcB?A9}ga&H|f=b3+6v&s<Ub{N#AEV?=uf#
z$Y$Y0lbcK4iBlp9$(Kxz<po(`QshH@LiF*wfA(+ds@Hz&jSzL(`(tDd2~?TC?x_S(
zzAYGw+pp3c!k7>L?McPM!RATR0~azOSmxn62b&R%pS<_cf*3{sVttvvatR0wrDIMd
zrV!W<okg}<WnsyNrriU5X1Af%iZtQ}{^NWeqf3re6&FcD0vLxw7$XVF&Bh%?I^_yp
zgcy$6z<4|QjuV-RPA(Sub3Aw1>NDJ}2E4LOz53T1`7ZG)IP1LMKfs^HD)gQ$F>ch?
z`Wvc=Q(k|Ue3InH?PG-G`Vze6l}n7z>fq4XbpfKJlq6&nc)lUr0HYqHNyUmE5d4X+
zGtm7qvQdG8M92l_qx>g^Ue!u5ehT>kxRpk+OGN4bL<6EQ%6_U?aWJ|5FJ)4sZza(e
z!=VSXz&ddf!1O=#yrbUt$d8g}4Ic+7(~tH-%pF*ZMZn*)Zy&%&&ZuM<N*;Sh_d^t4
zT_nWpb*?p2HxhsUb6AYxXvs6~Hs}+l*~*Hi{gkwojDpSPRw*co3<55AZ7yN~Oy0dc
z*UnyoeQ$xssyg(_EC)WXp8yp;A$U~ChC3ZHm=Ng39NrV6*hyF7RbBEXwZR-AVH7m0
ztPe8bx-gFa1fNKVJ_Jw<2tYt0BJl`86a%@efYqXMmxy>H+r&76_C=`9M*Nm|iI^dg
z{lI;#Va*+izwh8n@69`*92WTOeF~&j8{rQ8>^O~jwu#F2%2P)a{?u>m#1z8<rdSj)
znXqM%M#{0<LIium6s=Z%1^(xqPjJxBFo}Dhd6tA<U?c@g9jOv1t8G%rH_4dmLm}ed
zbk4#DoX185Rt#WvgMP407GHghyqq>Jr8Wlls0y0DpWTRp{FKn+2%YJ#HLxjy62Frr
z;<{t2YB_0(ohl$1uuJTTaX=Lb`se~f`k`{cF`g`T8f*SL;A|w4q>fMUi!rv4<f8~z
zvOM9La7WvcywE3Q7^vO?4tvV^&G+xp*zohkVxs)tmH3<-&+Ol5ePl|lBp29+7zv=<
zB9qCjUlWPL#wWeF^b`?uJ41%Q4GM*lz(;;EoSaS&qK{Z3!NT;KKBS=GeC6<}<-=Rm
zuL4A{j3dm%*SGcv59o+x{>KZSz`RIgpSCV2Mzv%owXF(uJB3YJ{V`;S9_8y0pr4sy
zGzSrMzshDmFPRs~riE*j5=w0^)AeD*TWi;Wf1#Qv+hD61^KOTqEB$Edy2e(cfJZ;>
z0|mbjb4s6JTkL_~!XfQ?0D3>#22z)gRvm*+K8}!4Cq}<}HViedINBS@KIV23Jw^@Q
zEW#CkNe{^0y!qtlG#0LARyw)oeHB?RQ;K<~@hKiZ3Qb9f;0Wt&rHJi5C0wQ}>A+3w
zw4Dx3Fch@+Z696iHmIyH^N-zSpUFADcLPWHg^=D70<D0j@OxK1dit1CjR?DxjfqK2
zzHPk#P4HR1##!B<0B=|2H~XqkqlPxy`BMeby)-*ni`k$w+T+%D29|+^ezNH9KlJfe
zp})OnP*Q|bgVBz}CLlyCi`4qsSIUvKv4k=%*)XQ~=HN6~qH!~KT5@YQOWL-*2s7cp
z-oXiEE|aLNeJL-mFlSEdEOg%wLU`?VjUsRtGE-c}hYTzTj*i*lPFzP&5^)+V1I?z}
zWkM=Xxm(T%lkW;ShgY4k82nKc3n~R)@>aND0IKE#8hI?C`{TSg>O|SGVg_an>aNUG
zgSlgvc4p>Qb-2t2xH;wPK2AP}uzuU*Sf96=>koYXiE_^K+W`>$NlCr+?vAO8a&i+$
z!M>>riY>9AEehXK#$>(D-mG!0xvvuhB0nKgF-sDD$Lba>)R#+-vPzIw;1j#4^<c=`
z=z5E*DZaxB{Mpms>0dwgO5!x_zpQ`TfoLN1&OUpiz0pr<L_vd<R!G?3#&I{F1Obkl
zqNc^@Q?L=YppDreiirKI+cN{qP<UwX5C`WbKWsUL^g2*NrDfb(js4?XhJ1pule@*o
zi1x>b%2jTfk-bf&!ey1$WIcS%8A3$gv8*=12C5U0y!V_u`0=nRvL)>)F5iGh$$Yhh
zxbC7fsr`zNi%+B=Z?j(X<%XzWcFz*+@SKlNFKY#F-5rYXvja_6C_4cTH%>{+X|Pbn
z8Iq)Y1{XrU7-CtqcFqEy3B^vHR&yR2s8Nr<ozIik>zKsANgn7DN2ZRVKz}qKnTio-
zTVlraL`vUF<rOc|N1f^2DhV$3p@`PLB*{;69(J}7hNcoD?;pN^lksBnCw5t7YB)~>
zaCwN|Vk`<~hNoF|Nw9#yvR&trbGH%|Q?865fpqanM&J+ez)nyuZg2s=P>`~T??Hy>
z6z%;cSiCM#^O!oYwuoYV>2N&Tpj>i+S#Nk?d7tl73^|D$*Fb5BW2(K>0)lSnK%}7a
z@DOt@Nhn|6|2Dn=6523(9SixXdmjU@6$ym+y!lNSUCb0X^wHP~U$#^ZSG}2cSiF#^
z9z{{0RX-4iKp$1$gmk<WAAL5-+C9u7e@$MsCjKZaQPsm1_a``%JUD1zO^FG;+a>*|
zpaX?ji`sdeO}hN)NYM!`Xs%77aZw9uIt7^Ual25ym$(5Z6>UF8Q4z<%Jkfd7d1^Qh
z%+Kli2moL4S@HL$CSiqIg9E(J%pxIb11m~*hxunkW2m1?taf9T-HhkANBENBTiawz
z{BWf9l@6~(`)+}b6}qTpgv(LKsYT<b=Ckw&eT)?C#Iic0os@2-oL^s;D)bu9D9<aM
zOT2lQFBJ)?1gGq9^nc8hj|NsSy)|<#H^%Vyl%E{*vpkYOCCl`>6jUWo*9*-bb0)Ef
zx7)D>SXIuV52+qal7{m>UpM>b<ppJ8i`1i=eBjU_T-T29QK48C_@Eq-ohcB!3h5h6
zo26VDCr8Vq7K7|Cy|y4W@Hm`HdVKJ;f1VGK24Y?vK#fLo3Ft11>mB8yrTbwY+or8T
ztZ&v;v&;CN6-A8}<;}sHI$DR2UEyTfI~CG0k)O)}YEr4tK19dY-b+Ie4!(GtdPApp
zsRei|m%NT#V!Y?Co$I^2ubDUE-bnQCCUvJE&-NJdLvTZ{jO(9m8=J$ah7FVAV+guy
zbjDvb$~=sFK8mAOAFAaDXWYJJ!6}jNz(?*OcJNm{c^}bE$3uLMli;o(Z8!R<x0pXZ
z89nLo;T-d$KB!821w4XdW4xxQxyXzJpH_<sjkLK1C1qycJ<D5`g&bsI9{hR#tFNu+
z65kg>-i_p5o2i5VCuq**iiojBGIXmt8XV1QJF~H>T*prOd@E#dl~-{)9{nRdeYCya
zTLxA-H7<!w|BD<E7GJF0MbxYA)ya=sNwSO~2cVify-v$@jFvqNcEVkCJZK_*h8*$0
zJpW8VPm+wJFv|DVww;m#r9dyfN|2*XRu;OZhh%kG*M43pO{(y1y+g5t_cVDCWH_h%
z!zvtS0r>1G!smtHE>?J~EYFBO0dlP>LYj6AU@`qXMS+hdql5m|#A5@`Ly$nZcYEem
zz@Ks~Z>uMm+QU^bp|v=gP^attR_QKzUU^q0Dg3qjr)X?BJ-F*Q*Bv>Xy=-SPlE-y<
z3otJpL9<T(JT{&%6uGHa@5~UU3pj}=+)vw$&C)L)K#iBwH>TXfmZnd5%J=vP?!I_D
zio<O`u<+iR4=n+x5@GV)#cw->T~|X01Ku8Hc?;G!W5^ckBJk&e@_@q!=_p7mT!5zy
zh7rOd-(Q3u?`capDZ%8wsjsAnj9!)LED$@5gV*H(?uj~!7APJKu!#Bl0-9RG6S3PR
zSZ7j-ujQ@td}`>D5uwc{;P}cVbNfE<>3Q2}-F@2UC?Y9hMHoL%()N7=!i)U&y>RZ;
zsiZ4nebHOJmc^9QrV}Qcl{6csVa$9XfgxMuS;&aSnTu&!^yo;A8c|j(8DBboQDQaq
z%IfcDdm&=Els651o$R^wm6-jG(ah^B_^;NwJF4b^*@HYn9S~oif<D1LqqB02c0baF
zXMXN*DT%hOs*jx*`NW<B?WBY%w~LFjO%yML(Vl~p5B3foOGZ!{qsjB+YA+r`ZXH&l
zQ~zenZS|QD+*gH+1PCoD?h?xPqZJv`RCk`XXTrK7U3UE~OTZi9k_4pIre1f#BG|Y_
zHlrn~Om!AVmTmyyStOJdOIRj;_Er0$sp<s)lT3>z{yXse$UN}~Z6{?g6F@DUy|cQa
zzHUWve_Ys_hoX&gIN-jEwAY3aKxrDJjhy|KV6=u!);bkCO|(yrm$To`kBEB!!zRK!
z6!X)OR)!YE=?1*`Y>w^)N*8xlK8rr|_8s{<^TThU`GS59%Q|iEw`Z3_KuHfCY7V$0
zB?As~w#CGcHN?y&JG<PS2@vb|ch+vk1mK~c2V$=IB-w2hWlWqRdm<5HSI$YkCiV+<
zS0y?%J1|=j`C~*v9_o8y>`%pfWpX17kHsfpst7k(bt3B4l?QWgI(VzY9$)~heqob`
zApFR^(OrnOq82*jp_#NUMsVzz9nn2Ea}KI*bRD&0W~7&rARhRJBBwbLpHX-nxPkkk
zKotJ5$^<0AH)MQZP0mvTA(D6=-p<`hgo2XsQ)l}7ZlW9anTgqDc*sxUlPAvDxo#C7
z%!VvHj~SatT`9(an{ZJoIq|(D3|%upV0|DI`g>3RbAJ!qvegp?2*6aXULitO3;HU+
ztg6tvK8QWH#MBOYrc>Y8xBO^VIS{qnLPUPbcLOfpYHagD(1T7lm<BSE0|{8mp287Z
z;f@MNSq`ZMjPbN%)9fM*W`qd#tN`FeT{(q{8LA|jWCB&@330v%CFao1{yu(BRYqlP
zgmoJt=<G#5+F(5O*ZY|(&{2d|>Vy)gt_!+|I0c2T7L5-<m^l5!`5a)_T+K|`!>PO{
zuZZHLIX~dI2Hb~u<}=7d_BfbHOGds{EmAN%OE+CQ?+NeEL$O$x2}DG0n4NJE^4WBY
zmsBom+rU|Qyuaw*hOsy~?wz{YMbx?6v?&uQ(jdfQ9Cvh;PXQ=M!gRyrE2J0@y`@4D
zgJ~Bp3pi>Nfy)>i)$ZTkEzK+R4r#XlS+sqFMfpief<<qGIuLa%M)DIjR@sR!C?)v5
z0ca<~X{IqTWIk%XWP)gQ!C7`)OBCniqU%<Q3}A0zJR3kkVCmMyTJF*XnHjGDX9U~)
z+#}U+kfZEzSm=Dd%Kyv@bON#k1N<JMY3Sys4i($Sj+Dpi6)_~CoWlh?$7%32SH5k@
z1gTNY{-GjEi@D~E2RuzNrt76*txSxVy#R3LknUWI`Ei+Hr*Rg}R2&8}-**R`IV1#5
zu?9<9rPdrt%7rxgW)C6|K~;}WqtO?g+AHC7q}~s;vxF=e#?B5GeavZ`US~8$UsU^Q
zNBHi=VB!arM>HGa+gk3-*enjWI<ub9I~zcE)2jmHT5sH(uHnw3<h;;URY*49p&oEn
zmP_XMq?=kcyIo1ZMQz=U;{SjkBq`9fsR18|0`2hMte3X1Bua^3uH^JTbfd^0W0jCn
zOwC$3GiI|q(YuJk%Nd7CDDGafNel`isXbCCnhEL6$wOgu&?HwW2FRDpn<z|hGx#04
zvKUUVkZeK`Vp1hm(u7+-bv7k4w`AC_ULw^xUsdbOpcb<R$9lx38WMx$#o1yhK(i1Y
zAgjetzZdV3e!3#I-p<=Z2dyyLWJ?^%8d)rBNM^;Zvmfm=cNsNqm9^JTeZW(bYE@c~
zQ>Lyz8-TsLeSTnTdp<srPMs66CzFw~f5mKpK}lM67%SUjYB{2l450v3)r|}!6KWE0
z9Xbpbxz&#@NrKGi(D}&>{GoXV#t<S1R{Y(kN<s;s_YmDRT+#+!F)uS;s63NWKAnWr
zKpaJWFl51eg?ytXl1*Ej-t8{ZYBi2Re|LP3FzDeo!1HWhi2NB#!!E7-iDBmRuZaVR
zRJ3lX&_^<R?uWTu_V#6b2ogf<jz~-PlewUau$LUROYSE14{rxQVxRJ4P0A&YPTW-k
z)Axq=9Bz^8!PHcmIKS({(=4$&GAXNDqL<cyB5hOu`P}l@)djvpR%7V9=|>m03)#3c
ziUz$DB_>%KGrM_Ca{C_2K>){d1e$78@5!-ux(8$Or+J~+_E;R@c~D_uZ~(9<Os95F
zG~lM&P9QruT%A2YX6^)#R;#w!u%*>H+Ks-Fi$q$u;ThpHWF)7_kdu2x^!C_$!!t>Y
z9=V1O4srA@Ns77H9MUXMk3@URZ!+oP>_(%vEE8nJZ8MnjaEnyKbDy*M$!{`wf)5F>
z=v2SclC_C|z|ZUyxzdjGzErgjgWro8Q0MVIe2NC6_d=D$oC)9K5KXWr*RMp|9o@3@
z&GF-;zQ^$lcK!JVbMJyf=i$h<_VeNM?KUsM<V1Y7!dG!}eGQi#34q5#VcTXcKaWsX
zgv|p!UiTFb7Bl5S8negRa8k9!xCP(EHoo1&M#|7}GTgU)a$4Q)4bG+Ky$@7hKe0IT
zpzA&jQPvntNSm62e7o|5$!FS4Z;VJQcZZiNTkV*A+I`J;J40RnbZ&pU=`Z)QgAQAN
z($MO{x{F+TPlqo@+7IpJw*v@Xkyd*qVuGA)xqPnDlfcY~YAJJ+iK9*gF)_E?IOKn1
zC8x>k3^Tmoc$hMLT+cQ>J)rB~#2DH5J}LJ}qv(9x`wsnvr#=W6n)R7-&d*R;w;MON
zUG8Ot?@P|`SD#7S8cuA>nor@%ns22g^I`CxcCDG5dz4l#b_Va7)XO%CuGIH&2Z#|#
zHW<lj*<PJq23gjy6u7R!C&h+{o$+K9vRQ48@bd{}muYckj_$Uec@HJ?B{VP>oL+Dr
zZ`L;9<!O8sC({EArLu))d0**Atdh@E;<6A@s`zI#UIa2BDdH>YhHb+r^i@h6-}7ZX
zog;*b!SQ(vPB$MNgx?-{Mpxz<$LvTSgvgEZQ@xUNf2a|I^gelhzK@Q!y;${(ZR7ch
z<P$m!pSSVO%!z<;)oqw`D1Byx{>05EYvm3=I}9&Q7?KLnpcnXnuO5Ba=#n|Q?CllS
zJ7c;1eKHzy?Sa27{N!;%tM!_{&G7J=PN5&Hmp)UfQb{yBhKV5^BrE~zHf%QClSoCg
zDwSQ!4IQJ5FIK41Pkq%w6{<Ze%PnzaCHtOaek22dCvwv*`RY)~oDDe1Bb{>AdhRN#
z$+kRCDL>pI+DoM_TQ=d<ov+X2v>zx}?^m1l4)(>&us$w+sHEBbyw>wh?A9*-t=uyM
z?+@Zjc%w6(XHL4lv&=*T{ZtVirh@7R$?Rrc37dsbDb-3B^gE$9dEZp{Qp?7dl6zQQ
z$ps;TG}O5HDleYJD1g0n%+L^m4V%IY5-id%9K4nV(D7Y}oaZx9Yu|YBopql;jK2Fi
zcFB7<#ghL~e?kMwH>PQt-KR9eQ{y?C{xr4DJC5Gt!W)DE4wnQoh|wqn15(Te*LujX
zt}cA`0xh*bcZz&s95tNF42qwseP=keV>;=}MsfJ)+JwCvA$sI@6|OfyK}F`HXO-qx
zzEAfER=XvuO_5RkD0g$*WrBBn`3h+7R!Q0&c{OH9V?*rMQ^>1yc2JMKZ{GmQJcd)6
zcfO!B?68)k@EdbQSzZj?({^n#B3D8MDkR`PZe*^>*j;sdJaw{H+Q>qpsDrYSBZYq_
z^bCZ88+dn}QDcE;jKhyF1M~e}T>wU~izP%vT3Q(Y;!3?%s#YFra-9F(_t5o6pz(LI
zi~8OyMnj@m&BoM2I{xrbln)g&;Tg-GT{%X3`L6ljE<BMPweL8MzpSM*zmNEFJ(o(W
zDl2f?6GT#W5-rj1z!YWKl(*5o8>EChYinw02GAKCv3j~0fvi8+VCLMf2XDSukh%pf
zhKb@`BzTcyll&bSH+&u4yJcI;>{{&;cg(K6<gEk!y~Epn)8rSO^j;*VILaj+``mSv
zhQ|2Ak#E3aB*^P8p2(BAH|sRq?>IGnq%t?$v-)PMQzX_u$9_!?l2s%_llF0eTfC~@
z9gVg>x4mdM{i4X>zHOUs|3j?TB7UZTWjrJ_+cfWRbZ%nGr(mDw^cJFc8q3~TdL5t7
zhIn3Mt=rUmWQ~Ka(&RKzN(8?3;!eF+h)w%`#M0sV^?1AlK3d#UUv$lky$R|VfBbeo
zyt-PoDWp03(OT%0x{KQnHjCbNJB_FFEw|e5-$B5DYX)T2oPhH)LqRrk9QFA(l*4`O
z0T92D6_6RL6;YK{2JWT@%6RH6DKy|Bu}&#Uqo>39I=XyWno!$F-I?E<?MSC{#>(sY
zo8tF_1APjWwX?74w>Q>5(z)?n;tHg(gp;oNDxwgU9>$n??l0fEK~!1H&kttdd8L+n
zJ*zyP#eQWm#HzqeDtpq!bKg;;QVs`haVm35vRc=1fZcT58#`}s(6KJA`;yO8o2p}^
zlEo_I>Z$RZ&T%<8-Y}<AS9x8$t_nnMYupuldMI>OD4ue07&dacg40Wd=vGKLd0N%v
zx!ii&2>JGQ<awo^{@5!-iAu0*EP4)c>Q=mj<K}VJA^fuII&3_mpqY3E1xNwtBlAN2
zA%G00SDzt`T<<{I!jwpb;vLQVkX~YGlYRykg-@zwaS^>HR?_3_$=y|!Sl9|IBq)~%
zyPs!hfUzG5U&M$eIdkDqb%zWCL^iR2Q;%yOh@82bgV>crmZF5LndJVNQbCfYH(!-T
zvHJTxU!R|97fD8#{vMY<v8!34sG@M31C_*ABgS;v4L9G&v6%_fJZyuD<i?SJM7Y%W
z_+r+eYF7st{fPi0;5OA57Ffv|vyoV31`?>oO#+~Y;o}FC-`a^vcYeD;i`vyYXvgkh
zaCjtUIn7g&A9uBzDCn+nkAmrlexv>1vU_|~G=E_qqr~b|2BiRZ&6oJY<7UYna<;@6
zh3ABG)A3??nxjWE_sR6~p{2a?WcTjS5--b`r4`}&Dh=}}ns}jh@#CpjB)(Qe)owXh
z-u0F1iT#b}*e>aj)^7Aj)2n`tB~Kc6)#xx!Z*PK8`%kO9)>%-Ma`du$`Ov^S7mtHx
zop_Hsvyira96`=Y99Wr}t*99!+sEFJ)oL{yCONRcoucG4UXsA|qopED*fv$!Zni|j
zs$hZ;*xmW|!P9i0N{3I>^-cYCf6Fwx%g6y$<*co{_N3ENB{-QF)9aGg<)&DH3V{}7
z0r8+RC<YV#1Q*AEFJ6mRV=SR$*G+GvD{OM{SXtoUH4)+(UXxVIP1hBNCUXUqF~(E-
z`0eyu+Ar)rz{rGD`i!*FSvS$8#+#&i^n1=INEWlEX;cOrx&f2hT=7-w$t1tRC(e&T
zX1+-jW(TO$tdiSQv@)h}GKFSp2C#;ySPIEOwZZKDD(wS|x;S@SKXemLyA=Z8D3YCy
zuxoa#E}uh`c^;Xu_-$LHl4VgF9t@uN#dz?p3Kua});LE+d~Q<3neD#d391ISYCQm5
z@t)iUUfB5->ZXHXd$%I`DKtnjp|1~mdo$yHTm-H?bigIhS0SHmhX_ZLnme7|?mi6M
zV;_Y*7gfpZ>#`-r)isw@OKskqvHOiNP8jb(FWxA-Q@E|u*~;uRiv*o^hYIjprLU#=
zo}x+`HXajznUnb(sgf?Ns2`?R<fp&~yb!pQC{6e7IfDWVv`diY>K83}9}^;0f$JR2
z24{GoVbf#laqVf{;iRE4ySNKe!Mi{`H+p-_8WggtIqEKg<VB)laMeHPa+5}<J5m$6
zba@YZ+qbF_dh+0K1wTH|EdH#6P6$@JImV2*_3iStQIXnfc1>Hh6s7c)cAU)JNp21y
z=V!z_Ay;RZ6Zu4Ttw*X6)yibnG$$rkJy_ZlmJD9u?+3Vf3f1F|@Pl^y*qGT(-pLkx
zP}S~UYf>jB)}oT_XRyY09XXsz#mW#t_P{Hm{bT$BYmVTfdIJS$Bk9bL0*RmP#<1d)
z6*R$;!#hXT99fAyEG_<O9{GE3aCB8h2|DL>&P`LhE<73`gNi<&1LKAxj$E5+)0L0+
z6)~`X0}>UH0fJhFIBH}@$Mbxc&UqpQC<w9hOE|bm{`gK6AWTUfv-3Ok)uF4TjNy)y
zj}6-gD%BS4a2~6>&6A1x^RJDwssdCpDtyRithaAPnO&dL=sR!FJYRK6n^|t0tUS44
zeY6FZbl~PUz-Pr5378}(sm#DDxjbi`0NmwQTjAS`R}vtd4MZ*ez%9#;4NtUCgCwx-
zx4a^DX^lQ~y@ZPbE*SaM&M_L55e24G7HP*%x?Jv%y*=AD=T8-)9}*OlXw#<2=?yv3
zHXpJ1M@BM1R@^s#?qmzqIP|Gbya%@p6m0R-t5Za12H;iFJJEK_^F9<+T0BWxwcJS>
zIoDL$nqzb}@L0DU2x-}m6v0Iq%+E6iY`P5XCwCdIIO9^wX#kfpf{cjqbO~m2Gwj{W
z*7TzcPvESFib<C>eU~odcy@pZWK!pT7-Ny3LfRbqm;_w0u;*&4f%BqgL(-c<PP<co
z$6S9Nr_92d=i;{f9(^QrAYD!Ib|LyiXF4>zVJ%|w=YmMw0E$tn)n3Z3-JibyalSb>
z7&pVSc{4S<{<^9fxUm@KZnWj??%IJU<FF<rZa`jadT4ODf>|K1t<W_mKWRSJD{I)2
z9@vH%wOHy2EKy-FH{%BGBzuYmcPnk2Ai3QkR6Qs3euknl@OndC1%J`$`n;80dmyEd
zW_`ffJL>s%+`9f|{cFUQ6iXiRC4%u8PV}hP>F^gGFC<TYVv-!P$wKKZ^0qq^Phqu!
zuXT3kRjxcwLu9gAtv<jcFH+h(zmO%>E{=;3Q)TmpKv8GX@LG|CIOq^7FTc@j@Zck-
zPa7;zDb-mnz?C*L-TGnO8h=+^a6YDpZ8DVCU~(1u<wIri;0S+Y`#Q~Gox?<Y)WvlP
z{aSIj3S%5?g{$$XYHA<hCQ%b{Y4E!a$b+E6`YwGk`+~Y^gB6Fce3&BDcv1U;ocLb&
za_-=S!Cm_c*7BWcW12#5n}BQRNES8{8(s`(mV(XZ&4uukS;kPahK}IXYqy<I3vv|-
zq-c@PA6_d^U`^V>Y{S4B%jjO$KsT@ZB{c7!R~NlEZ@!ShsP<@=4ic;K*egx4?SY1U
z)1TC{f|?N4Z3^scWPh;IGRaxX8Cpf_k}6e!k?;I^*0v*VeoM*_SQ>YnYA&+V=)`7g
z7_Z3D8P9kSG<}L-S8jHsT#x3-k(eEyu6JhbuZsqOA6+TZC^u|JV%Y8!N%e1sH(x|1
zRTx|=Sv8)6(s@inljM@stz2>?(kJ(GQb%uo-OZF#StTfWPqPsQE1RoO?eZL%bnaWH
z@s`O*zDy})YN1aeeE0n7xxs(9$xV&L9g8B1mb-C3nJLzsPEC{yx5U_z3Ye%t_M{8y
zX?L^H%?Z}en@tT@1=M|LgP1`*O=T@11wp8_=JtcE<wh$J{g<z!7)o0bz^lpZ2PPUk
zHZ*5rBuIfQY;c3I%Q=Fh+b+!X3P!5#n15DKLTw7WrRIH&n+0Z5^ZwJD6F1`U9cjb%
zAtye&3+z1;>zzb%x(#5~#D<C82H$A*_7Cnb@>pp^VJ5tVI!%zv)>!Y#hrL~;_YSCQ
zed1}oxmdkOB4<DQrkLj9*2%UJOA)>^{K?t|Y#TOg8_SvZmgV_kk-ysXkdE(c8()D!
zrQzwkdLL_Gf;(P+XG-FWDhsUetc%66QRebWKZ4c6tLMk7EXJ>;35CG@=)jGq@5$5S
zjYEx`&Pqg)hQmyM1S*vS!p>eYTWB||k$jO_`^slW@cAoVi`i}l2Oj*^NB>p3Zf<@t
zl@o&S-O)U65-};V;nC+!{V&VSAEUkZAzAWJNKhEPp4XVa&rNq0w%zl`m!QvTx}mds
zpYwBGq_%CJv8FZL$4z(X13!eix$xIs89WbU=Cs~s3bJ#p3MBej6x8|7N#AQeIDc7e
z{8-n#4hjq?2r(FO%6>GdEm%@%O<=jE_qt)@yB%FEkS}J;FHLcv8d1b{B0ySlo7{d}
zRpA>*qvQSfluc7<5-&DmvHm1Bb6(ATvRm?OPaYfMJ4R|an62vgS@pFWZ-y&{$~QX=
z9&JX3xK2Bq57^jq6{X>6eCKF%&HEoka*^ox4n=@_Iw461ne&8`AE}3Ym*we>3ry&v
zX(Nf6Ka@0*CRJ$k%+#4jtrol8pZDA9H#D<^KgPAWZj#cZEVgs=|Hw+Woep-jSbo3a
zdL#;kTDysZ9zCW@{P=ksBU*H>CjX=Nj}gnI$I$0BDgOElsS(Z;x#mN&^FZX5SHgQi
zBZaN!`cFrTZEI887k3+CD+9pwa;;IYA9_@={(p6Km0?kSPg@Zsq!y6wE&-KX>0G)&
z>5vqp8$`OhmS#x-SvsU7ML=p1mJn7#mhM<Wc%R?L|NCvP>pa&v&&)Y9bLO6Vo`nxX
z_$N2bB)blqEYQTnwe0Ddq%R0x5{}5Q_(|#FR%dCjS(i8(*Oye9f3OzIvr+bCJiOl%
z#f&pDSjp+hTV}9)p8L`fOt)1I-_@;M06d{SAMIG9J6&?pg&_b@)oM6yY8A;<=?>J{
zzyH4e!gP|=DHl_SZ)oVx@K=?Pn>{yU&|2rC=ON%QK`X%nwi2yAuYka84N5nK5qxm#
zf~%}G;BqDJK^`&-duhls)jLNY+|iBrCFrw^!dI9(uA|#e`e)qfvWf4<F5i5!rK~Kh
z$3`Bzn?}c2rD(E~;L;)4XHv>KU1LoC)9saw#iqsmjXe|gh(dzHV3|H#n;#jY#KQGh
zH(d;_{MBido3Z@1q4`m*xe0KkdQbtgaiRgT5a*sB`@Z*)CihoMzxFI)>Q$x#mqE_M
ziZeo{lci2?|8%@NWiP1+{jAl+I_6*y%3H^s{@sJ`pyyr%z+7dKUYnE9e&9Tel%@ZK
z&S`={=*=1d%gyFkiIxw%GfSM7PBglZyX{BFQoNzML;sBbqV)6^ZoZt?^keSFnaOqJ
zCcbAU-;wzvOYojge!l>SGcqGg|D}@hjRLU1#(}i-M6B9oqn9R5Jldyt#4-iA)>f#e
z&16loW+njWk+$kIB7>tKfw|1m+VjcGl;eAsGN*-n?|oDW`R&c{N}R3~9IeM^q}?+q
z-E|2Lnp|IrMjoAOE%%3ntOn<Idx-n4TvGMu0(cY<eL0h*PWb>(ahPnk^`xnj!7k89
z`u<<?;pUQsAESMKJM_Nu^rMLL_C|i@*j2I?s=pi!SD*pI(Fg<-CZ3MP9YgbENHx**
z4x>5o`k!CVWhAl3_5$w~^jClD1cSO>Wo<bKbxA$3`Sk+P)P9j>04Z+a9w?jR;Apl3
zusAzalUKpv;vQF|_eU%5ug(JDR(8YWbjWg3xcg3{|Ls^b9Ibrs!`r&=anqfg7W3Hg
zM{N%IK3T3HL3q*a=0}n+qk?wmkS7=_1j~WnG23apM>ie%v!bql2R;}P{dh+Eq={YX
z9+rnW__jPcWDo!I`dd2=@;sL6yOnz=gGi~j5H}A)te`FzVpdxHB?Bvk@Ipru4m0+v
zN{zK?dy!N0Fmm0WAKkr!o%@O~=mzb3dV^Ece;Gva^T2X{v)~rfcG={2;AO~{J1_-F
zsuXpJ?hsmOu8jsT8$pe9!X@y+ig0gMf#kb1Jdeni$#qMk>AS6houvioNhUHd{nZ?e
z*Y(aglcz^r#UFlNnEg8=dbhALt2`+9=5&t;sIY8%<+qrCxwClm-xGZcIdTlRj?Mx5
zV@-b8@Ar{3owRWi8@m;!m+0({KK!@FKry~=Ir2N_7IPtea@u(($CJ}L#a_@Y&zCD1
zS$<k^npkv~Bv;j+tFe?L9Y}L(r}=ld?LO54b;AYRY-kX8;6=`(-t}F-pnVEpp;#sL
zIjPQqRp(RyhM`Wb_cmgrZQZjT=^~<-EE?$;@5Ee89^e~FaQiu}i}?5uPXU+^e7DKn
zgfh}P(%Zxb_Q@|ebT~Nqi|sC4DoY?=qg8uNEBTAnzfH~2S(;YcnYqP?UG5&t{?h!)
zYXuvgQ1ZUGYVSN>9X_M&9mWd4&}TWHm)Dl3Mi;Go;_#jj_vZep`*_kQXg~Vf>hZY=
zps2C_1^S;kQaP@78$=&HQR_msy3xP%PSeV9c5{_lN%W_kM#`wiuWRP^EM;5ZtL^+%
z3Ur^G#<7^E%9zqMQ^vA^9A-RGR<R)nmXLvEHsb){+)35p%6z|}%8nQjgYSmdIk<da
zGU2jW5Fs<6;RXiOO5s9@QTq8Yu=OjcaMmlC$8vxC7;?Pw`&O|Cx5XMD5j`-z5d{Jb
zRba!@jcK_vc=Vk_YBjb4-bxI)!DDQffS2U5(BU$G^?Yo3Q6R%y?~=DGAQ`_aAe{%u
z;TyDG`K`3JCDx<dSj&|HsNiI%torc-7vCuOYM>NI9{AfuLBTZE%$U@K;Uft~<}lmn
zg&=AqAtK6bvXZ+%COvF5D0Xg>V76Kj{)Q!8lO+;BNC0#FKIL649B&F!2NFir*%H%Q
zt1WQSE-;{U6$cB#lTY_E*KTD^*DS%!QXu+^KUfL^>Ojs&_G|$_Z@LhrlgIzn1h0A%
zvpw!i?h4^O%)q_L0Wvg_U9Df;a^0@>avM9Ug1#}0Nx(6n-m+PSGw=)VGh7K&jr~Sk
z!>7pICzr_Gv4bGg@aZknA`d$p{do6z`S0C;KLK}d5@~h<{yHp3zSW`zWSYF(L65no
z4oZ%lj$C&~rr_dzEYR1sm^7C5ZFULtf}@#RdSg77i@Q7EkE`&K!gp_eyIqO<!H0c6
zeiV(eB7H$X@+W|y`eWB;<?P_e8fCCAPFPs$KK(Defd2C?CLX?UaL%ZaUtmkl_4U%U
zJLnTJ=I&tKbaKfop@o5t*6acQXMu1!<<Vmon&8gP!srLpS>r$jF~8nH#P|0lmBAR^
zUOHH5$vHu)4V-asY~&`@MRke4Xd=9bLLZ~6!?jz8Dt(<o_UYNTdLazMJ`OGuBrg&r
z5mZEqH-(2ZIKQ=S#6MWroFU<$cGnu9g2~bPZc1ohyoxsZy{Y;1)sd4l;m4jyy1@q$
zsH^D4@XJeoeUBEAis2vME_)f{E+kRHzv8Ll!^J~x8{lYAB2+z>q$-=`(&EJ3Uq$yR
zQ4#sG=(F~0TaRzW#(M&r{)4=0ImtU44Fj@Xlc!a)dyo9ed8>tar^Ja*-|#YndZOKk
zT^m?djd4+dvOPkpi|3xn%RzUnNk^qow%XBV|7MK>EN{DiAj?ULgPJ`aS|PP{<!iF0
zoNO~HSoe7X#FGWsaQ)}Ypt{9n7q{;ih3Cio%gp5QzTUX7C>2ZyIKOB;QhH^?-rq8<
zCf*Db?1__#Bbk-SS8<e1^4q=m8AFCMaUTkgE!gKe!A#4UpP`FfyF&pWCQTsA!jD;d
zasa7Oz2D@PPKa9*Hv21T`B&6u@&-MPH`{h`o<>u?7Y4Es3$HWM%$ew(MwA_f(Q;3i
zMj1Xoyn#q_k(s*`B^EegA@T0G74H|2DHeV_jmA>#`ymlBR}AwM7=}^rqn}hmZ-;eU
zio)IKGSHC`(sT@TOYRP%WjVs$q~QbN0D`Go^=nEv(P_NGl}q_hCJC@2z(q^=f&qWB
zbWAmpy|qJYZ7Bw+8mAnSjjJKh4SrgVud52c3i{8Vn$2MO=D#n^&^q)N1(v4?u!8oS
zx|X?~8&F+6^iZ=HIvPc;4X3>!s|0A64p)7Dx~|#MTSx=k+5F^jL%(FDWU?5G6T`#n
z-){}^HR@uc7}KGuxDkie8_`pv;??PPt0I~*enkD%FiPbe-8teUZ@!4bnVX$9?KjP&
zwT4PujIkvmjvShec&wr^<`bbOI=U>ToGEidrp0M^vCTYNL!fu%F<;1aAW??h4+TgE
zew@GXSbGc*RiFJsn<;<XriRqSX)7yHC$m;Ng>tYDc|=ybc<#TS#A0s0gjFugzWOn^
zNstW`c^W>C5Qm&Adqk3cmCMOpPZ7uxyU8g30=A`|JlI;hKuP~}<mBu3pqrEI4ENNO
zOj<P!wf8-9I~ZNxqW{_09r($QFAO1c<^k$9?$r?b!~V)|n?s>IV)^AW=|bkTefb*l
zscQC7`gl->X0tsn0?teqzc{%4Yq27IzLla>Ou>6pBI5n3h&t0^H+7Jr)v+Tqe0eaS
zZB^NtNjSnxkz3Jf+R<;C&A2wKnFo-m;6p|Ik$%E0Q^SM?*Q@VanjE3KrgLg3xEZ8W
zLwpY4E89A`0RGe-ddRR6USfa0o;E(|5|T;nZGMzt_0!GLw+7a)k$Sm-5&++s`3NE%
z%vd#^Jae0E@uGRhdn2os<@8rK*W}}WnHEWhF;x;A5yjeH1m7Fe8d-R7fRC!lC>!1#
z5HOf@=3I7dw=`=xvrs3yP4AEaacww`-Sg|sq}I##qu6&>@~+>7*w95EC8Xl?vL^mw
zhMK<qTT#Z0hlE6VN%R9X<+Qrs9oPBh?mSLWXVwA&mR>}|e?0J^G)QMy-UrzLhDPI(
zIjQu)xysbhN<ie>cdU^^mFt7F5Es9Q(KE$_{4=MncdVIJPhWTjze|?R-iv$cMn(wf
zRI-|`63fBUw_}VZO?z``IEB^izmXA7EwwH8JIZb^$`C=zsAw2>)_wgv!~S`xgbf~|
zA@<y*RzQ80n_uFw=jUiYG)G1Sb3~a?AoW~?qu6u3AJ5Gq#S!w&u9V^S7V^O1(yw^_
zpbBQ-ab|w@A3>;xTD~reOUoic(uzkl*>dxVqu-8Heg)n;EwQ4gmJsH}Hesk+ownH>
z`)IT@fngpAP~-CPK0iGOx#c*#JwxV*_+yFo+yxmHbR<}}MD21<fcO3EH1ZTgjAXcn
z05EJ!58y7`B^GViSllva=X<}*RL%4o-1w4CnJz#c`@Ph(`5GG>80{CdOi`lKRCvrS
zi<bc7zg5UR$$zF0&;~<aS7{a|x+(~sgkzMjYYnaX%}~rOtIXB(r#f~SdyTJ-OYzps
zCUtYb(I;QlW$=HdnseOmp+2kUD%vh$trg_CktUL(3m^1E8*&3aN8_&jRgM?B4H~qR
zJ-vs|^+Q0KtgR|>8+A=Z`2Nryv+?xNO@D*VB(vEvicy6G)e?GP@$vEMn|ZPdodSvY
z+b}(-*Nv#d&A8|f0g1?yvvN!WHWS1pC}V!Yy9_BEV_rLT_GiCrPC6pb$=Yq!U@Ov!
zhOzSzD&aA$d<6IwX0#!!@iKqBskWx5Kr&pvS~&L=H{Fu$dY0Mm%PnL0xAUj6CvU(i
zU!77l*|+xS%cf=~JH}tfQa#D@@v+GTi&}UxOSkWvM@607jtf&Zx(8AMh+FTayED#C
zCPm4kg7#zbzmBId7tYLcEwLwG$|0x$J_5iZe;8B05{<DlnEt{8iDgt{s>Qea@G184
zE@d!_^SDH%<lk#Sk4Jv7Z2g|oHSD>Jx9l3pD<Be0yx$I3D8bkZ=RUeUB|j+#EYayt
zZhUJ6w1Ux{$7?D<l5yG}nciK#R5g&4?Bz--&h*$yiuB?GD9G%>ERrU%=gvbe4oWrT
z(7R<VD<U6+?*tGnq^Y}&`;kHkw}QsC5qZu`D_>Kya9oug!CT4`oAxIVmQFM_yn!rR
zVB^r$U-JI&@I!yAS<iX;>-o8bf&RC8DnqRA5bi)d{#8Y@`|q&r-|ndYj*)`YX>8sV
zLK&rc_y<?|>-yv`zC89*^wDs1QH3_&%*x7lvR#o^ZKVaSL7U6!dA~*>aNOJ|ozYcl
zkkfMwg{S~QrE9K9XF0ss7cW0is;yVh>L_80<_@Z~G129neOGo{OZ;VA2@`tMoiPBo
zOQB{NHqC)3Wf}Zxmzm=dyfS*KLUT5`FRnP#p_&~6A)?)s-v~RasLQv@kW!xngnfRW
zX(i;J82@L(0tD;t1L~m?sePiXp$`+}xFXXXdJ`*kI${fc{9${=<^$&h&#PQMJA~ad
z`jVl(g2t;;%sx^CuqWp^m54Mvddtgf8V#GRD@8~}kCstyWalR#ydtK)Ukrj-_Ig>X
z0_t_+K0B@j@B>gP8^w#OwKmsv0WFsj0OM{l;zw_+Q)t&1OJD|-2xge9w}Ng$4p}IK
zzn*o?Y;7~HTHNj0pAl^e5<WtnUo8||t_Mg(!A{drzqP>B_CpANiPnp^Pns018ysX9
z*kcIK(&l?8s)EWG*?Zozrrs5_R}lnoYXJd+3RGqQ_>astNQx;!r~RhX7W~xJ4;d9?
z)O-Cu2(5`OOAO-mIVWXvI8sA30b=2^SXj0iVDeTi-b|9&gGq!6PdZihOp|p+bql~n
z4u?Luj2-l$I8m{rq|&79bDi|8(h-Q}-Vj%X*bA3oF5r}}K^H!*ndQY09P~Tog`UwF
z-=BS>ie#>Sm1WtYS#I@DUg*me83Jxip<Hjg7`yT0QEU-}Y=0r{g8>%zz3L{RvctKh
zM!J5D$dyM9puTqgj*3(jPA+m@F?hTc^ph4JDNMVXBw2AvC=tkD9Cyy2TYCX{96+4O
z`a1>H)NP^%uKZE@Sf5N`3i99=h8mRQjmB~q26GldRaj;`*FbN4Io4t9?w{|vkjf}G
zdZ5+ElyV%7Ez87wG|q*9hfN)^9?MwNWorMhq^`GG+vO-RS1>R(h&aTaHk}-f|1LuV
zsY&>(=7x${%S)9pF~WcQyhMmhnpE-EWz1}~Z1K-z1%UY;G~Sy$IOSB%^f^Lin?rRb
ztT>b40G$U4T9&EFB2ir(BE_AQZ{qQr##R+IpEil0JDv^C#Ge~Yn#-SVUgj<@L?dTH
zAL~9*j3&qLE-VnueGT6w#YH#=qlgg>2K5d7TL&|Nm3L1>>uz#)pX6$PJklgL{wHdH
zn$=>~K8M(oR6QGIWDRy(!Q_6bJ{YF3nVyzx{yM#`<6UI)kD<DdryeOj+5PcfXF%NP
zn|(Tvb6?Y?=VRo`@=Alq^?Hxq9mwi41Mp6f4_xY!7!v6YG^UvB%@fpAsJ_|j92HbJ
z+92t_&33fbxgall4(HKe5VaB1F^Hv>gbTL6-nIN>6oV?F-OmX0GgV^Wxtmx(mMyGz
z9`COVd+z_YhN{cAV33mWf9z6576k}~gjudX8W%(gbd~*o0xDfz1SQK}0*SJ;mqt1{
zkMI)@arLTx20V9tS?<W)fx*wA6q#GXV|I&Y6cnxF{S7tBsJSubBu8B4BXaGXp+>c>
zN37y2|3rDe?wug5OlFO|s_kP)aJW~df8sJ>qC@UP=cLZrI!>M`1-E>qjwOx5kSG%d
zJw7MU;%3KZl$;+MW-K5HbcWEf45kvfwACv!O;u`rP@FBl#@rr}FeiZtaZ;M>)rnLX
z)~M>uAB~PV4FxD>XA*(dwB;@?&soYDE`V0K@T2kC=bu^2NbF)r1agl$th!iy>~KMA
z<vNZ50jaQQnl-47qp|TZQGIbRh6DFlb)e5fSF4ijoF*cKzH}wuSwyYHn9weP;8lWr
zSM!lXGK5V|Pj5!{R14Kr`@U!i_uwf||6N{AbXkH{`2P@1B?PU>um@D>m%QOatgL9V
zk&3(ZAMR1F$+QX4(a`j_y4d}Mf>bX^1YQRO25#@}+AKCZ;?Sw3fo8=13^A7L#%5(@
z0ZeIgkb|Qm%(&M2?OZ5rElyy%AP?<YCKmIc>{C=Y7z~iI%^k0A`|$sy^eICdS}#$|
z0AILSwNbZ9K_riGb~NRv&iPH2cW+-ex+$-tql1cu2LH7X+pSvoG`;*qR?pphT!YN4
zo0;!kr&G)5_e9ze^r;PczBPF2(#MQ)*d0=?yDHO#8{yxF^9h*K-k!6<QMXDT3ijs7
zQIC>?$ru?S=dp5=l8ESrt&ngt1s0IqM81lvtH8j(K$$K#Vp|CKK|n;5rp}Qg;<5;3
zEv~6~%8Z@Psa4U`L}rG}5ppD5YIPa#UcPRXi1U+RAcAnM64$|?V}F1A^-zZjhI)ZD
zfaw5@)S9#*78h0J<sW@DB|=>;ba?Yt>Bn*FRU}lgy12Ng7l1PhUi%_YC@m8c+VJpj
z0%GFiW!}8;1NUz_2A?}S^AuQQ_4LSkWfh+RZIdCg9iHX7u+q|SeI7*{oAozwiX7>%
zmX=IE3C))|Y!va+z_wNC_g@B=Wz4r~08>U;X>*asD3!j+0-mH!pDPVbpPQR&2yAO^
z1_mINGwOvB)DH#(?|4?_i8X;%rrNe_Rdz44;ZuoLSCpojnp$w1OssAk@RBU$gYI<3
zCMGK7x?kQlJy~jP;CpI@9F}-a#;I9WTbl^zlQh;c{-<?A%(|FEu9A@vWg$9IBW2nq
zDk>^w$oc^}{$sjfm|=|$Po}o24i|a7%j>g0fKcvK!W1_*Hw*3VtjB)&v1FVG1fqXx
zie#zHwbHm2F+UHfHMCjo@FtH}<j}~CfbRmdv5M%nmX-#aVImRN6?K?4Ri`pbstj&l
z)^igoIyySmR@=8WA)WB2pVq~k7aAWgwQe6CR@T)KPoB<q`M+v0eoj|E<q+)t!>$R~
z{0fb{Co=N#1JF@Wtin-nQI%dLOS!^~P=#he+~JLohzOQo;DvMC5Q{4J;^Jb=@VZ!%
z{C|&MgW`wY)LZsZ^(i-L+y8`yIzCZs1WuB81;==vsH^i@VwPc!sO!r72H>Uc9+w)|
zk|qxi$4D{Ucz_Oq^R1|Co^Z;53s%s<CDUBf4qnNJ-^u*C4y39#6Qreb)RVT4V8%d$
z*khZMjS*#iA|1$uygJ5a{HZ0C(vLKoS%-58fea>Qa~;=Llcz+gxQyhh-e!y@V>B#-
zynQ`sx(vTeFva@0cw`(?3k$Is9zP-YptZj;fG+*~pmTGEUS`r~5k{(j5KsyKm%!O0
z$B)$R#yf7b)Q@!h@PWbep24F(Iqh{SBn84|uHW$<@Is52jFZQBzbW^!2-KXT#aK91
z=O6#C8>Z`yAVyL|h#}my&2x1Gv`2K#44=tWA3X!Du}5M_Futs?l+$O>?B|tnv#%Q(
zM(Qu<Jk$##u+d^RSMBGm4^~v7?0OF$>D>G-Hf7z5qmG%T+Z~RkUpaw97FL&Vb5uo|
z$Vd87Gm$vg@vQuNm#L)ZwtqGcW50D!*rhZRk$hG}?MScEt`Z!RO-!v<-|`tV=acvT
zbqSpV-d;Fjl~+|J_=N)3Z~3m@f@Q^<DnWw}m(p;`&l!2aofuwY*aIPV!QA!uaPq!?
zL}f0+Y3Do&y(8f}V>aEWpceF!DweI5j@v9%-*<U3%d5DFIIRV}E$jRAHJQ~a$@_hc
zi!Y^HU#_`|E65cE*zTVWz38m)&ft=7l`D2g#Kp!kl5M;z{mc8a+uSj$4)Q*1ox|x&
z|Jfs9Mm@4Xl3ypq8{CMF-ju$wMM|NENyPtzza2b!T4t!GK=KTWvR+~+zx|z@etqj7
zt80>H_{iv7VumS)7_@o@2`mEjsFg8gyYwkbkY!fvF3%_ffw7bYn16J+hO~^0;H}h0
zvy%=ff`xiMZp=9~H@}nU7MzDpnyJMy<9A#;1twnd+nwaYuaYe$FVS?03S2$)eBX&R
zHIHgurQL1~QqkKn&C**IZ+gz?hc9WWv5<H9`b3}#3X7+4ISlmWW>J!%^o%<KoY;LR
zhMSLp5fRc+Wt}y>261_IO6~9g0^C}19gQQ%1bXr<F*CWX(X`1abtCyetJdsA>bfLW
ztJVr0Ri(-n{OXG{0yDNlKBKPaJ3ed}N<O(L6)ap7N7;op%0Ech_ZqDr-t>0Bhnxn>
z44<xitL}O}OKbKt^`#)9kUu~o?R4Js2y?k^eS1_Uw(OssOQ}8qTCy+RO!p+0lbJr=
zuDd=%2Ju<I=-0thFKQ87mOpgK_m;s)Urg?oo=Vx$N;Pq*Ht{<MVNZYFINjxWS0JPR
zf!{x0P!|23mo&)TCbP)vwR)V2R0or)vg$fcCHvJ9C+}?|a&_Re)bu5Le{itKed|KW
z9==fD{KnN<6i-obGd>}B-!T?WewatS+NJVjrX&oc2KyAl@8|d9?`$ntbUfif*kPUe
z37m5*f4S^<CDJ|Wd68BfcT)okCYoI*qXwFT@beh_JGSIZ!+HV@Zi&u$xPIoSB|B}<
z73>qyHknW?F*KB}z9J$Jx6aG&ICJ&8kqTb-SxgGuwsniy5K|mRuYOUJ%Wf~E$s^hI
z<j;G`5b|1jv@&~$x<Nv!ovB}WQ<>{E{;*Lyes$qmZVsr&{X?9I9qrks<V23c(bf7o
z+j&5O2`-(HyM}Uvs5cbK0y(B?2x6f35U<r)SLP+7;+n`UKK-Yc=Ai2C5#LuEzs9Gb
z)@pS7B9lkoG08whpjR)htCXwb;a86&>nU9f%hdTHwVVI?Bin;rPiUIp6n4U!I9hw<
zoPz1AJY_YY9dU6z%>3!ch25~a_P^6ST8Wq-C-;15;;*J|frYO-&EWYUR!97uQ=px3
z5c+*&989JjdPFYj1tm8XJ5RzwEjXo4$z*H0ksB}`Fq~0U^UP70_MFMY&bn~C&_mB&
zQnX*dUaIA)PdLs}w~{ZN@}pNw{@6?MyS$(#y@PT{SUym}!_#2KBVALc_DbT%jd6q!
zXlS2@qsYK}JORI)i!R3#L8)Plv?(uba8ttA6G>t6zO(io`Y*c`ZFEgjT7rIeJa)u|
zY=<4XR5k2f(A~F=bAZTxNyO}iEl?-sj9C7ws3wLgkYrjqO*yGLq!7Ff_4M{n??b2;
zR}n46MR07@V90}HIardfjxaB325LH#6(4eH3i<DJ3HdLfqoR2+GU?RhLgQ4HV>0Wm
zBG`m>GOgb~f3KX&JeDjHD9Er@8(HUl?M$F?a#sJSXT;U0QtZBv#WlF>XWay(@n4*h
zsn+p?GOvDjuc6zH?5E4;aUKi$kH#X$7<o=}2o3lPoR0P)9i8C)DfkxLGz7ApMBS~E
z_j`?)-Y_xW{Jb?*EhGPdcj3~7c~8hu3#O}~pzLkD&`s4f<0B>UIeOvi22~%uFahi$
zV-qVMRaO|Dsf86Y29t{qVkYVMlfL_YUdGe(q$*Lkq{A}49Mh|3dqD58&2v*$`s|uc
z(Ks8L`)3tYgp|~_dRrQmmev_<%HQ>Euv#QM8i)RX)@KAtBc<*0?9i`ET}?j)@z~bH
z$|3Aru_*pte=UL|eBU-3%5ek=a`a4W|5O2;2yt%MuDilz-fmgli5@i-UVhhJfpM&q
zx6wcON+?W+R35b~iHeXmWb9)2du5QUR&E|>hU<{5GI!qYhhH%${PFjG2@Fb?{(EkB
zjn^Rw_wM{{o{EkvA|uErTrr#*N&*V~W=472fm*lk<|ngGODfwC5Kr#Jk+cRkD+zmH
zA<NbWkZlWo-YNp@>PadU9Bh|FH@{zK52Ro*4*mMPfs`cT4|8;v9f=HC*t1lHlBN@M
z#%a0Mr(!LZq$NC&{!Q(iHpTGF=J->}(eURC9B6y8BDTx<VMdtBG?V(q=VjERpO8I~
ze|Bttp~vDo$BxPSM7KBi913g-7hT^fu@GAE(rtu=VXa%3jnF^$rSS}=j3uOYY#a0E
zG+wd+rtt8ZFg%ItKq_DGJo`th5PDF$SkR`tg5U5Xiz-1Y?m^!E?h5jGoE!mnZ61yI
zs$L^89>ME=#bsu5{ziGr`(_1lT`nS_d>?JKTljX&(J6oQaI~4aUR0XY;Mn)e+^5e$
zeyFak5AGokY6^+0V~eZ<bkTvFoS0!k;ns|29TD~Y?_#oz?b{?BME;n0vg8ZDc&Unz
zuSH;&SwLT4`l_BJF}_=m)Rh`kBeV!*_VqkTF?v2P*^OPT>B0JC60~O9U&uXyGdvJJ
zR*uIW5W`Am72x*2S)nrSj;wB#HqPDv0cZ^pnIg+lNS9a=h3hUfP>1gO5kqaeo8@Aa
z93ke^&{UIW_PR4hv2-ivdqTi<73bB;WzS?}c2`!#ccIbK0sTLv#yQV!{$YZy4^J6<
zKPQPRAZg4Vb!{&^4?=fJvt^GV5F|z&8I3OrG*5dUg;<SOxUi*hW8**5z1#X_3&Qjy
zuZtCv%Rv%iUMP_wecUB+xHk%agCFQ=(c>x;Z-CFA#!|WqFk|=V5}XmIjG-N!AuzQ%
z9iyIa2BHZgWHh=hp)jfIz<?u#`j=9JIuJkRBMIWMMwu%}6)09|7n^LpHQeScWFOb}
r54Q|gNh-ka<_2&UVeXFm`v(dB>HSzcA6^090eYaKsHp&#vkdz`?+!7?

literal 73681
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

diff --git a/images/open_ext_files.png b/images/open_ext_files.png
index 337e77dd244b7dcd7a0356d042ee635560db7dc3..2c724167b72b0bd0385a90d4b2cca3107dee251b 100644
GIT binary patch
literal 37877
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
TLy-KtQCk`IO1@0i#P7cV;Hx;i

literal 23126
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
aA?n~XKAI_|e{^f{prxk&tX#$F^Zx+NnBT_$

diff --git a/images/open_ext_url.png b/images/open_ext_url.png
index 52e34c3062886c9914f2fc268599a88bab3f0ecc..952e5427ef66a33bdfb3510ae01f2b388f476cb2 100644
GIT binary patch
literal 35433
zcmeFabyOVN((pY&5?q73YjAgW3+^^(aCZp73Bg?h!8N$M1=ry21cx9K?3<i(?z!Ci
z-23KvzxDnZ)|yasSJm$Q+qJ7}@9tR%Q&Nybgu{gc004;6Qew*B-(SF=W|-&Te~FJL
z&cMH5?WMGw004OOpPy%d)O2hB0ItbWR8&dH!p_;w$->T_SXxw+*xu33%+lHv0B~O@
zOEgzi@xbj{^|JHy4}^ls4P1eufq0f1NGK%CGY2F6Rw$I2yl_ql2fwqDnDm{g*bCv8
z_z9!|;hLWj-yz<<MWFr0qxm_zib%8Tczzk#YqV{5$;o$@`{c24>~Vz=8E}*+#E_JO
z@YXs-8I@pTOj=H62jvlffGzZ#&JZq;+fiRt73yvlWd8yM@HXuVqEQ#_agj-U1D^zd
z1`R06!8hUnI6?p{(FZYP0CGqGGue1Y3V=Esz*^i`nFXK@2{`=jU<(Ow{l?`63D7~s
zBLKX;hZV|!g$j2Dd}9LGI|l8`0B|7z_@<;`2yb^@00g=a{9)cEA_JzXs<FZV79r0%
zcrLTNCm(xR)sARTa!Wk!7ytkvxcIFvdGAb5A2Y3s-fR%$1B8Z@0wo{;cz~h-?U&_d
zTHg-8z$S(QD7i#2a5+1>(%){uV!}dnQ)wn(^rsp68=seo4Mb%a_U2gBwsTQYOB^xo
zNEWh6nU`?OqYY=RwM5JX!j2~NjAgE+mnNSMWB_W*mBdR}3uxYbbsHW{8K!(GXQpJ<
z6Rcn+t7?uC1{pBjM6b}wsPUtOe|wVpvP}~=XU549IBlK~u34K&1M@!hdzi8x(V8$q
zk1&EgF`;n>PP%`|OGY&a02F;Jql(ldYdn6YE(3<s4NG=6TV(a8I65IPL-V`qwq|%3
z05MOlv^*Nj8VBHQI2F4QS%)+SpxQyX+5@WNBOrYOt@vf*CN2^Hfc$bCiet|oHQAqi
zE`YVcAL~XKB~X~WM+A)?Kw=`qL2U?I`j%Y@ruQ>+ohbBS(7h6*<Qg`cC|-KddwYzg
zbq>C_0@#5`ObA4VFNIM^MI<#t35_E(iCsfkyTrYtiOC_tBx0jqk`u&`(3(J3A<;<4
zM8la7DZjr9PZt{{O^PAhBAkpuAhC;Kqz;}`;&>CPoip{CVNkStLep6wHIhN%VjRL5
zT{}`eJ7j|LJH01H>xZjs#tBpeCffXf6vHcQEcg!6N)viS6~mIxq@@TYUEeCzOVOLd
zE{!Tak8wdn25qh#I_Nhj>EbJd>O|-SErynKd|gYm-*w=0xNk68a^oYgdt2Y_wE?;j
z^XBn|Z9_2#uIS_3U|h4?d~rqu1N9E6Gki?}hJqZG1$GD)54IT=G0;^6+2}2k2szqi
zsH>QrG5KpDRW$f8-ms7`^H9#vfF4D1+JWRPIXFs+IFsDkT$V|aNy|yZN!Cf~6yZ8z
zuUN7H(sPz`v-4+;bRZs&Xg(Pu<x=XEcug5fQ^dS<WyMAz4=E4HJZ1SJ!f9?*SoSP!
z1%8=Uv7-Xte9H-I%V#wnY#27^N5o|ru2EN!3I#fo_j?1*6h7#!iN28!$q&*2dFvlL
zXHhImX9}k+CL6NPwBt%Gvj?VhKc*CD<$LH}H0{tmPca&RF@(V`!A^*Xi_q_biR*PX
zmSCw)!Al8APD&Z84b@K67S<*$gDAV#-mQ7Ai9Hm7(ScSqQ;GDM;q&u(s5*?au~8GO
z>Zs4nbKMKt3#>JpwMlO@-egT4Pjx!eyWH?7XN>UlJ0I_Prx<euaf<VqcE|sq;mr4*
z&L}=8pqqI$X*1qhb}JtB2`e`#uU@S}>m)`%VO8BP@&WCh{|DB019?-$%T(HQZMMs~
z>D%Xp{$;{7osI$b&u0-N5I!J?B5ViqB97s-u}m_bvktP+vh&!mnGCaBF(+at;bt-W
zc24Y^aw#it@A8??^>mO=i<wr9<qnxlPY<$<I+s}n?31yE<IK{Jlunm+ThA@cc_)J4
zE_g0(F-_ph#e;j1-YdM1N>opTO+0v&_9{zfU;C`=y!2Zsq4rdnPZ^euhSq8o$(+4S
zm9^`l^I}e2c^yt&Lf!0<5-%rj*s^VNrsa(#;grc#asK7P)S<^!<CV+RJrWNRDv}jJ
zDuKQtXI3Vk&%yW6{Z#@zg1pEV_(WWm+(F!BE^k~s53CR9oy(ouwnf}vUA2xTH_pw1
zml4h)_*sves&vg8%iWIb?{{{N^X*IA@Ekea6dhK#SB6ZTJ~iMqCh?sTJ`k4hFYpO?
zHF?nTM|nJKo1P?WyL>qS$(5vRq`WXga!>PwZ@Kok2HATnd;4DPU$CEH+^B;D&R8$d
zL29@BoAakE9w8nT_XPJC4<8<gAo(EGpVz!F_9yWd_tz8F7IqNE5RM9v510x#co!n7
zE1DQm6S5)NEm|LZb&d!U@qOjTHOy~qItQ}Xc9(M(zlnocgb^15cS?P()TWwnv@ZEo
z+A=<D%-t88n5dl698Af3ju0lQHwxS71rrJrbUD00O=fr?Qm=RDWz;hME%7Li0>&(A
z1&$zN8^;4s#85<9#9-rlPePbR-1j(g=~n|iTQ^(ZwqhEEo$AL3(sy|(>{l{C>K93)
z?JYun{?466L8<W2@KFV8Drm|`dEOXeaK%t$MR(JBMcrM1b)<FKn5;roHu5XXq|mH9
zkAj3;e#L8r)kJ~#^|aTCXEJESMbRw-2qQ~rAZ9w21H+kQHsOV6`9XyN0h*~;(}7V&
z7VR46*HKFf`qU>nhmG#H8%E*{IXo{0QnIFUOz5@;t!S;jA{RgCW-SdaDavjn;TsI<
z(&~8Hq#RWt4rOjb@7`D8*XuU40D}g?+39|0oU0$}1eMC@eXU%ucIo`qc^7?`${x?I
zW#wyd&`@V`bn60ppbd`ze-8iL7Y3AFuJlRi^<49c)%^;QgP@G>;lf&#(QfdGcuo#o
zZ)C4&uK_0<r#@(4zu-Kpk0a0K+rnX;#~5Z8=6oWrj!*qeJd^CX%=5aDg&EaBnpd<w
z?LO;QL#C{QSH~X@m5%o4qNwfWE!&)iMk_FIFzV^<>F``}4i`QjY}!s7<9Xd(O`otY
z>9kxAjm2i29K+Ags+wx4)n$DabbFkFJbS_8xBj54Q)Zy2dw=xt(9l5Mc?6_=y|5tq
zJcMI5+oiZEyZZvkjR=-+QrXU+y+XJk`-U1{jlk#3YOumBGKlDaYm{H#uWO^HTtXfA
z8hx^+)Utv5Q)2~1QQoe}+(4vy#Z2ESzAx{b*`&IM%<c5fRQwclLI3Dh299M?eLGK@
zuj@ykQGb9_*sg6xmQ&k-$W4$eRsdt>!In#A<Cag+QPu8toJNC2YDJTtP1BBN*_qqy
zDqizaQ)+p$f!+Sqp6yY}ywi{1lMmILkaqelz3ncSSBH!IZX3r-M;Wt=ZW_+lApZSU
z&TFTWD1k42p?;d*L(d8iD?2xf1+5<}_M8rQzY@*)9Z3(zy@2fUPx9Nj1G#)&qq(=7
zXWcZf9m~k7M}$UpX-~d2KFzz^-Ye;9XMU_ZsJ%Qu_XFL#*l;<xpMKaFnOppD@_mKC
zTX55-UuycxCh|OygdnER<gMyO%5CF?Y*&)`C)qZ%_C&vG(9941yW8%{!%F5xArf#=
zi2xX{VS8Ku;@O@wpwt!+-sdg|E;&tFrXVBSq92Dh32*^`B>)mY$Xh_jM4%(n8*tzX
zkOzdGLxx^LPWOu6-vJ#bb<_J>3r7GqRh5-)umCZ<w|1>S;HMEFaJBf^=Uc!LQJ)t#
z0H6S2_ybWG<?u)E<>O4$Bho_+L??mU8wmh_E5%Y((^*qqjt6LG!(e1$XKc#gZetI=
zJOF@C(B0k$Xl3e5Y;0<7Y0FP~(%eo;Y-z$zs=+SLByTTjYGEnm>1e9rsh|q<v;uOQ
zkO~UG@wxMW9oU#U8xgzPSlc@Bxbu_#;g<(2|2)h{O8ke4vlTz7@XrQ`HRY9vMeQ6-
ziP;(0Ujdm|n29;L8JOAGIXPMAiCLJK*%+Ca8JSsMF>~{<vGFi55&!i=DgXzT_#92l
zc$CE?{%Q{V7eA?mv$H)9Bcq#}8-p7wgPo%}BQrNQHzN}ZBMZwbu*NGV4_jv=_gA(~
zWPdvOhaWLhC!nLHy|bmAE%8skM#gq7&itgLKO6e{=dXU**#F&-t<zuZz!VwXjqDkj
z8JHOVlaUGVZyS3TN9#W>%>>A3YHey`YU}I-wqyQ}cJ}{RXZ&scFHQb^`oA^|9us-_
z|7`q^>$S1@k4-x{i@Smm{Dt&in*E2Rld6ZkDWkHflbwqr&{W(N+!eC_)O%-3vwsfG
zzj*q2=D%LMsk`NWG5dMuPqRNl;m;A`1NW6j)X~()*;EYt5dcRJ`zt24SFB8`%xpX?
zOgv1?;6K4}#K-t=n*SW-KYYmBnOK^6Jn;c`!>P*5!NbPQ!@~O1#}mze_W_Q06C-D%
z|CN`gy8q_qkN(&>s@mCE3;a22{<-u7uRMRw5@Kq3BcP@2&-EzHldk<`^u(VDkjKo<
z(Z<MGz|zLZ+?3JY)|`*=p9i04{vB65qITAHj^J*Z3b67q{-?wL(F(jMR{C>IEFfm-
zWN&Tc@znUq*(cV2L@JN8t&_8nEzne2OaOd<!P3%%$JmIC*$4=pz)YsB+^^V7!J}$y
z3LXb;CU#aJE2oJGD+k9P{g#)1YW_c5i`fBPe$KYPT$}t~x_)B*KU^z1T7omBk@XXu
zpI85X+r)ox^FNxBvUGB`bM$x;_u%ONBNwWeI{fR=f1I$k{3EB?8#y|e{+zM=r2m+*
ze<#7ebKFmxKW09U5%6a=6mT+fH8tU5{Fh_@yr{qJ{xY)s|2uqt`hQ~n-`jArFtz<_
za{tGP`KPNtwEnvjCp$A|HzP+=VRLXq{O@MgpML+<@V_?zv@o(YH#HGp{0F;#9Qbz=
zKE|In9Ba#e9lJk|{_BwbBgp?}2=M*Pqdeg70e8mek6~lxWBeb-{@L=M`kFt(z}n>x
zeNGl8@DC&N&wu|ieR}%eO||~drcY1*yXikI)od-D1z7%S?cWYRvHF?p|I9-w;JU<A
zfP<Z#m7S0A-w*%0g_5PaskNq<C3wm^{S0Jq2mdnq_cQ;|QtO|V%v_vLEuWnE%ks~`
zdQwCDF_wQG1y?BG;)wC@>gZpG`S1Dj|5*5Em;N6+e(LUbBTs4kQvQwWmx!J!{KoZ^
z#xLdHxPFP~slsnuPig#8{*CLGh@L9^#`ToOFXi93eu?O*!f#wpY5Y?Djq8_)o+|vt
z^_0dh<=?n|iRh`qZ(L7l{8Ijn>z9b0D*VRvl*TXR-?)B>=&8bQTu*8IQvQwWmx!J!
z{KoZ^#xLdHxPFP~slsnuPig#8{*CLGh@L9^#`ToOFXi93eu?O*!f#wpY5Y?Djq8_)
zo+|vt^_0dh<=?n|iRh`qZ(L7l{8Ijn>z9b0D*VRvl*TXR-?)B>=&8bQTu*8IQvQwW
zmx!J!{KoZ^#xLdHxPFP~slsnuPig#8{*CLGh@L9^#`ToOFXjIuF1UYw-_X<+{3Sy-
z@V5#5>=N$5-$Wz^N-4_&0Jc;BfKvqka2)^u1o8j?E^z?BVJQH>W&;4AYXKuE*Z}~E
zKxr{yRriI%R<~q54UemPo#sq|R*T%%IF}4siPl4E#|;4=o~aOcDvC%+!GOACrHKQf
zAfD;3pddWMGY+WyKzCe6u9Fz(i6i@IV%Wlr?S6WB_PSrdiG04Q@&mc7+3IZG!6bL}
z7=u-X7yrH1Mr+o6Qh9dFQm)9v;B$W{;XoL_$#IttO~odZIGoM3F_j`_CZ%t4LL+j-
z4ntA0RUNTmAXL>xEE+{n#WAQ!NhJee0IB(gybM7(L8OqRj$)yw5K^$h#IH%y$V39M
zL}7&9q9KY0!Z3aaB}OF`g9<|-A(aY*K@}zy3xz==5fO`qK_z`B7K(yOE)w{+O4s^$
z4hdIhG#cs+%<7AMG6+}}A!6Y~WYo7xLex^(Z;OdBFp3H%Zp5KHKB18bx!Ax!K#X+A
z=AN<Cx(~d$6AKrLB2gnSdAq?)?fR@NT6`$-BZlN_d_0QJFl>-TmSPDusKP5;o~2d+
zC+n)5hMWr7(=3n$ZP0?5J+nZmWwByh>Om6N%_f*x5f}QJLzK!Dq>WZD=I35YWu*S7
zlC&|w_^4YigHQ2a_V*Q8l5*ZU!%bmssB^y6CcGjR`T{_`p>C5D?-wD)fX0#Cpqy-A
zmyf3$Ga9BvJ6IO=oaI5w;C&4d)e#zyLwL0ahN0kUEEQ%?55d|uceouf!V6zu2?v1^
z8DwAjnRGYrk~xqlzDW5&;&rrH`d#T1jeM&3n=wijovc3mLy2M@WmeKyF(~f&6cUuS
z5aWc;sRc|ecP!y5I{_$#uCNd%?2AaGFvOoHbkl@5v32Y@dS|#*?K~rjZ4}84N&Qno
zrO;5f$SFg1b2OphY~JJW-QuP<g%v8Gu6tm7-JhFdLki#BC@99!_CU0Cfn>Mxd;ew|
z)_7n~58USd9I6abKPj&{w5Yj3NLHx`-S)#<+Dl0xnU^J@(};bTneXj-ioAX(d{@R?
zl@pI8C;cJ~wNHlseyP+HA>#t`&K>S6Z90rTsV<)Qk1g|8kk1em@8EiAg8IC~Vg>cJ
zB}GsBMQg+3DQlSBuUu}z*oyV|I*T)+HWs$b8O_~6c~Uf}ZFsH8p~O_303J-+rr>qf
zimtKg3{6LT25E1s-bx%DXTnAgb5eXfl7KyEaKI3}LKb9e>&MJgw49`$23k95`kM?V
zL^Q>wQ#ouCeGbsYLy2H$g=sFrSf87a4Tm}BLF=ickxQ4h9d&#;=HDTR*#%JSdi!c3
z$k0{W$S7fOEAZX6tOULm_p!yd#5YOyR=7Ai_DKH48dCTqER%|#zuU(&2^)<%-ihT~
z$G;a$#iuYZeqrzMX>eppZq#bLXwt~<^|?@1x8I4=Tn7A?J&0`!vjzl|a#4o`k<zOV
z<h=EpRFf0%@5#S})$^D3sfVMR=iDImcLBE&(hmHrn+A@|3mVLFglkDqM3^XwPP6x!
zeLd8}S>LDy6AZ{|VTbRo^{Z?ZFp?_ON`;Go0iZ~QmpPrOe1$oQy2b{fRh4g%P06>_
zFh$Zrbt`mSXV%}`C8D_z*#j)(sl6S9(|3|T?zKYE<cXc>mP%JUSfxe{+>6ty2Wqqx
zyK^YWlg;$(hju)ELUh78M>Ke+uV3XU`z&itb8AH(3p$kM9pf<k&BZ)(;_MsU$=tI|
zA0$|Le6>pSwveP@rF1SxU@m7%f1$L8STwq^Uju`}y;%B>#H!uB+C}_wsG+0?_yD`(
zy2gsJ?sE#S^Jj?p@A5l@>DFF&+1OgJC&w!#8{}=YrDJizL`xtv=OH%wAc{PfLdDP(
zhvHt@ihkx_ygsc!Jib||{!lAT@(fyWLsnC}%uzi<LPgGKI);yZtICB<2=(K8rJlmj
zs(23^#u@mnSRwFSUdt<<fcvyva|52AktIi{<-@ivWbbA%L(w}vlTAS1jo`;Ajzwe>
zR5oiwczF@D)r=VXNt4EC`fvS^rc{YtCtpoK6gh8Ma^XW>mD^DN`e`@#Q%@W?Pyxzl
z7Ciba_o>#%&k&l?L_20Ndp%a!oR)TWKN3XGKuOEn_d*54B6AAr^d!Y1*9G<QcGNLv
zh5T4fsu4t5E>Se>Io-4j&G`n-8xi3YF~t&wlm_VB61vjL7~Vdw)6?>?6JQ^|9*Mi|
zkYDDnLE2E3;Ia`4?!7)GC(1NB{m|>6`b=E${DU4vlT57k=C*h!j0npMGXxSc5Gv|c
zPbdlsoWE_`8%G50*qZ07{I5pY(M26g3BTWrJ3+f{LrgXqDn4`FmPs!DSiN?UGEe!~
zLhVo5MZ7`9iP?DZRyLs=pI_<bomWD*w(WCNRPc<4#h|D-J}srQWP)DRMce(B7>#cg
z!YA;VVJy;G$VX0C1FGq*5!J`N?$zPQv+W=UF;KIjHMOI8y<|qw$M+i8sS$k5elK%`
z)~#wp^({~30UnCVdGHTF%N&tNsu#K|7jlFscXz`t{g_#UNyr0Sg+wsC9eg7g69$+!
zqy(zkz8vW>xG?)?w@fy)3PBmEgi=38la5C3MkGP;4>3;CpEz@!=XhAsjT@rc1Mp3r
zoW~%FFF3{e>ELb>nCfg*nSD6Y%F?n-VExvm;WQ3+GZ)NcIQLS8sfSMSP0Thf=!|~#
zXAXb+CXbj8xh%QY7dnpNM0&JX#lvZSN0W8yEDTZHQ#Q7*VJ+-gl$AEbf->CD8}`Jn
zgq{>$7Xp5uTQuaW=IM6a+Tt7{YHC;5+IUF`G%&X?($EcUi}`g8wtaeos*f^xqX@P0
zCx>-&IxrStAz4|t-`$6%xXaUWo%CB30%))uC`w-N+n%`2tH4;WVW^&cn<B|8&Ylym
zS+ajg9s%R{PL*C<xRxLyrtR~CXlT+U3bc?e21eEQc{E{c=@&|Yh8hBE25$4-^~)rm
z;JsnF8Trb8<V`LZ#DwSN>_|@Z2j?(E#KicLO6M3O5O!emYue6TO^yex3DE$^nbqv2
z<ASNyg`_9d;;}`}iDc359wup5_<IdIkf?8Bb1A><84;hdb6a3Qqc$YpXBaVSh($}i
zOQ(hk4&!zPRM$f`mqU;E?0ZJ%J|9E!vL?9DQp!6UNMR;FofD3#VQ?RN`3ViZF-LsY
z{FZ=C{NsHLWxz|?a5eIYWhCWby$v$(-N?u_bT@i$Mcin|QcBHdASXAFc8@`(t#NTj
zFtM1Ny>oT+!$naFn*3WW_4c|CAa9?7AQVIVfJXei=V9e~MpnwNJV#=}UApq5(%lt#
z&HSi3hYGcd-^MfCsMU9mjA3eW9-;!I<qeD9p-P@l`EYQSy*eHKEUAm(_gyxoIPz3i
z*^46w^TJOFF#<(88mNdOFG;r}ed3E$;z6rC6@|+eA4qfXwW;gghj0uDi>p;VkAl)3
zVlD-7j&0`?Tp?@xtgTav5Ol=JqC$=p=VXL9BOU3NgKRU{T(juIIhi&a=AabW@pGW0
z!31opx=Vh?IR)~SM+3`u<z7``8T161F2Onu=J8FK+59)RZ)%j01iyX7L)~(TBW?0G
z#weP<VN&QOZ&Af4zMTB936(v>Ssv-fQx`4L%PC*X$tPmGdZm$}ghNs#9LX;|%vHJ4
zI?d<A7>-v5;n_;AZAd9~G%t7b;{~cnV6!?nX`DBeXg5il&GHm;3cPzMlR{3#(YnNm
zo(y?gWZ;CQO@bvI1<rQJx%mMosuh0G!#h;n1X&R`VGS%W(1Ndn1ePS1(d&Wuhh0(P
zc>CbdE5as)9p-{4)N#UMA6tU=k0MeeoMm$=N^w7XSqXW>c7JS6j&z9FOf4bY`9(@l
zOFE~4gB{N|L>=4I9c0?@RlZRDY|d7a7^*D=KqGykDSPCEY#c$@6IC!67?CR}79E#B
z-V}DKJIR~Xi~Y^i`3&^3fW9NDpi9qA@0wlFu&7X~Ta1(`7)hyin@0KQ;I;0HRXGU?
zBJk8kjFnOorKPQWP{1Vuare?(42<eW@@Kyy4?j`kVNt(2<sv21d<(;?LjpxDqp3l7
zvnSe0er-!qYeldlMdXi4#<V%nAPL3YOAO`9_u&*@*^3kX#Ipa5?I$h=N_AO0TX~?x
zFuYJ9W8tfqP@&+Ag*-8uZRT5EX?*ug&1>6;i2xz@hw+tA)#6a%f_yIFH#}|mBz#d@
zZDr(5t{eGQ_N*>kwIdB`M!Ve|Qg8G9PsnufMg~8bN-{~@j!Potn1^%?3du`;qpVT}
zV8oD-eko#97!;d8Wf2<t@G%MrP4LvakcUQwn}DC~a}Yw_i?*nZAddIbBNkcUA@qY_
z5vP_SQ?KL=j7Ncj*>9H;j|-PUnF=jE0iUdLm6?`X-;#LwI{bfC+W%4gKdt!n$#Ubr
zSnMtehN35q9DoFbQ4*7AMTFHbdhp2O*rU<LE)3Y#15x%;!*fF8%&^Qzpvre+hLTVq
zCI_HW^9fn2LeJf~Z0C;jXW3qEk9)c5BGXU=6Z)QT5&9C-jTk_Eq=qXl&WU&XdhSg$
zcJW#bT69XmA}ra}+u-?)f39ZL>!1!cmp~M*a>)VL(0&AGdERXemOQz@q||7}Yj+VC
zKEaPlRZ4G7_=0n2`)%a#XFrwG4)9jA0md#o)`}1jqPCg816eUlKq<7lUY)pH0t%a(
zIhNnvQ)VAE#9N1$kOmhAzAw^V0qlv5#c#?)6Gv~sQ{>BAujQ988iF<&lk+<xuYB%K
zd=#rZyA@&wxKi`eV-r3p%g`^Hu9psY??BF~s3bgt(csYo8d}7UJs!NOaU&#-lWFO}
zhTco<stNl5h=|xe3s`HA(x9OT%IQtmW!(I9(uDi=_(AyC!<hiFR;_;v7knZY7V&Oq
zcSVs0b(3!Op4*D!=sE1yl$Vd+=hG~0%6B&(Z}hH?PqtSd9=eCK*fGYgrF-P)7mY3=
zcR}-Zguwf&)?9Q-&h~AzmFt<IhJ*FmyNhc-|MCOIM&b-*r~#~33Td-_Nss5PY@9P{
zZFa>5U0MYrn^_MR>c<|3+_7QU6hoa3ddB(E#E|&?;wtQD4(Mu#c<492LIbY$dPL%=
zJ;u+2^U1^-zP*&i%s2X23`a5aoJ6We4&h#kh5|5#{2Bkn*oE-Ba;qNTx*b0waS~(B
zK5f2{Qk9K2qtI;kEq9CjJ0d8PSY|WDw7?uf(4;DAc{21+-?fjk9#uxfW)mUE7*<WK
z(mIKIit_Y`(K~s<+F#KR^x`{W<b<jLq_QzLLn1-qGH#Q^Fq_g#XhE1SSY2g>o6P9_
z4i5ZL$(CrWmxD85b(_ZXNXjy7^4&~qb;m1X{86PO2Go^Kik$l_9t5)`_$9@(%u_-d
zYJq49-b1d^l*ZdZox(7}chH;Q0B2S)?~BI-6f48NBPNFFs!X0)5YuxBPPRmm8rVvd
z_-4hz6)DSL@Ufg{q<1%cG-uxCu2;jiW9I6<hHd7fCG9KuT8x~mbF>~;-AUNE>o$;a
zD&E1~-nY%g`X%Ydaq5%ybruF5FPbd(vD(8Gx3{~^KazQh!kk%z%@r9Pram@iM|Q^0
z^WO*b04e?B=juddMPDJhd<7%F^+Gb9=g7}i(a11ci5U2fh!8h~mBL<tICi~v$Q^p%
zxz`jPZ<^3|;h>w8zku-JvKEG9kDse&+=5U~BP{JXE7q`~3B9D^Dhewldz=i#9v-%t
z1)JnBTci@1-mGN&<)PnAeb#57B2|hi+U&(X5&m{f<5W?(jDx*>VCI8x>=_qpe%(j7
zAh4{U!xR^Wjw@YoPH(^!Am4ly$CyZ+XbtYMmI_r4HQb9IFK`AhndBi=G_<&^;CzYq
z_r3v@o%n0NS~hti$Brb0CTVO27O`4=6GIRMPn?K{Y}BS7&l@kx`zP2E-fbK1;ev94
zimZk+R%GbSm{?+gekXv;aw7}cGIZRcGKESjJI-*FVVktTO^-uCrnffD$@!7-RV;0p
zL?4Ub%6B0lNXRo!HgB^DzIh1v$79@X_16n_l(`8iSjj?WJ<ctr@cXbNWj05+=q%98
zD>Pt(o(U7LV$-S*xF&P9elUeMhdBLYurij>t|N;gML%S;f44t9t5$8IkEgT93;MFi
zxY<>mbaohQQ=?#QETY2S{Yk6s@{_?uT1b}gEPHwLmYe`6)9OpE3SjB>i*}pKklx`5
z!B#Q6!frK@FJ8&4o%r+E>Lf-nnE_;9S7gDaO%fCcd9}|3Nn*omkes?*mv%f!sveh1
z%@rYjpmhSihMjBrG{FEOZ;;C2%3|+vq-}ZI4ZW(G>2>D4_qJDkB~TIhEcpyVhjcoI
z)7mSufb;NU9c_>$c5-kZVp7>w_eoRg@yfH6`;-c&nMrPM5bFtWDw3bC+5ykcbu$5A
zGD-8WUm@55wDKF1d|Yp)Pv%Z(e>nX>Z@`B4)<>_^`=I?~%gu_D)oKvx0aURPVwuX<
zXv<ono+&|@V7PqZcA9W<|E_iUMGAXkN_zunB)!$x=thD5z1^xK)tJqj-POkjGPY@r
z3r>SuM%&vX^io}(w5XPQxKUmwW)YaGM!xp8M;c$}TTy&$?DcA*7XK1Po;ZWmNAf93
zMZ<v>oSV!sMZbF#!Mp8%hRl%sw&%44r7}oJ=JOL1-J@U{`nBovQ&dw+N|GpFX1{hi
zEG@N^AH3Gkktanpcc$+j<-aYe7#N?_>>vMvomPMH%y2T0@*Qy@LRa|I4l7%1o{t??
z?N=NDP@7fCoN71Dd$V&;)M}t*^4)o6|IPgszplf2%9498_f5zVa)aYM1m;NE==c|E
z5ttQ+ksvwi;(pik@cw~opPjMH@ZzGoZx2+KtF!Wp(_t;wKi)I5Va#5{bhK!xG~T_#
z0MA^qJd>I411<Y^+jEh(ISIoq-7`5^x2GTOz8_?*dp+JTGw3%a=WN?w0}u8NkIg3o
zpWFHl_3HYp!vP3A9r+c@R)xJJIRU+~y?tfPn$<?UBbQ(AmL*q5&&8{?T7Bu<_`kEM
z=un;RavJpa^x;}B3PaSg<CM3#Q$%jAH4zRa4R7Zp$l~A=ZZ61bI9`PZ9WML5UFG}E
zHm{31#iRs9z9FGS0asWebIwWRNw=F-8<^Q9oat-JTA4iHwd%=z;xQETg}Bf?Z^awb
zSi|;}m5C4B>m}zS@!|9Zkv79t*AhZ03OQUW)>2Kj_t4dg0Bl?wQPg*{Q}Z6Wo5Y)R
z;Rl{KZDOzEWe(=fp3SO4(-eiS^k>fZEDGF@-Q9EA8G&=okA*jhjF}_ibV(4On?I#R
z9tRvA9KTpg-+nLEWBgKf9lpvs4f%1o{^ko-8{W5$6!Ix5_VwFm$}$`I!UL|LyY`1<
z!P^77)4f#r!-H>-hHtD`<5ItUCMeio2MxOUjeaG%lO)t@efGBR2QE2dBuT{TBli%N
z{nuV|$9>R{7LyfRIEwQ%;`yVm2N4U5`>YPbdPLrZyXz*>v4=H*B42&L;;~N-A4%0+
z)?-7$<L&zwjeDgO^m<Hj$^#pqQGFgyq}UORlt~`{d7HQatTH%hKkwUsmi-;Z)9*iQ
z)}3nDqNV#L2GiV{%KKFg>dxE79_SuH)vG!CxNktq5!-O3d^Uu#J7c+;v}f0kKY%N@
z^M1RJ%dU(7jdGqi>5)qec5}&F0o%JC4bal8Zy<0HJ6OSmGRSR?l%gj)b9uAehXksP
zXpQI!2WNpEz^Us%_;{(9wZm(0$K_<MU__s`>sG>PjQisN7m3T3HZh0#Wq3BKmPQ;&
zoWkek5-iavCKZQNJkbC;9qPaUEy4ina<Os?Rwg!y)is#QOZI71)53C@L<$9d&Q*6D
zh%ejk@$qpHd0i4;oUM&xr@6Y0FDbp>1zBu!1)`9CFY*#-Dt7GK;BMJ{h4ng4+K797
zh@CCLnN(una!|lCB=WvB!VDha!<K%{Hv**Y@n<(PQ70yL8bn3z5qbp6)2ey)_(@;!
zT&oH$0Id1)5Nk=-{KBgp)Rk4o`gH<lcYs;s!XhLu!=ltd)7^~7{NlOD?(xEqP0zyc
z!o8C;w<DmU22oI~o<m-~ii5Ai7*Ni#$b7pB`fg~|C)p*<^*keM<%8)whDdXH|FpC`
zz}fj~(!~%!G%%xg3$U;)B}<6Vh&<t85_%km`I-V16#Ky_b#ru?tR=~x=p!whFG`;n
z6ojY-^I$HbiIOXM;F!KnMs{}jbG_M9zNiY{6D+=3BdSZafx+ekmU#DKqBXi_BB<2;
zDSZ7Oh?zwTstdBNA{opSthS5akFH%e^I(r)G;G{WX|cKS0CZfP13Poi1K`Bh8W_H+
z(WK&updlhgv9Mrzc4oSpu^Qa3FurC_NY3_0fyp++%^n0_P*{WXFdHo-o|IO~G!O)_
zn<<d>c#(9HXTs}!YWMhIK`zzqakHOxCHpMtRbU4j;s!G$IJ03SRP}(4fCuj18f~V(
z<`&6N6qU)Sz*&##aU|7MnZGdHZ^7Yfa%FAI`JkW4R-8jj4&^^~YEjo>_!2Y>u7j@l
z^>X82o#iPsYLb_nztCCWdd@EvsNY!a@npPs4!Yy?9o}fP0Vj%}Qcb>)C^GOMA9pzD
z#rC{b3$m_LiizA;g;;b=Rub@QQ|fYEg2Q2d<!s!8(0abS-leMYwF)vXYhQ(`%DPj|
zx84l>(>x!it}CVsJI;?6Avi-A<7{Oc<@ckCzTGp+8QzaWS)`b((tRI3kDVFqUIhS#
zDr2PXIwWV=jhlRR$)LdC&yqVIR-PSu9diF9AIzB{>0^Tt(5=NF_~;BE^nJrWX1(AN
zh|Lc?vwmogYR}M`qIzwhA-~!woVi>B-+$>ow7u)NEpE=j#nLCmG1jGJvjiG{L+D|4
z5tF@?q@~8k_>l)47u2X5GY`J%Z^OMIMbeVCL`q?&5B>>**L<q-n-wdMW-C5Nv}nxe
zBv674M*=U!Pao=AVZ~qHWbqPiovWFjjvg==dwEgSFM(iy+pr5P+5X6_7xHqR&IBc#
zhif1o{^4Yvn5ZRZim1|+FR>ujy<>u{_7nHQoYaWbw6*B+V=sY3(~Ai=-OfSNi-x02
zNz0Qxv)&Evy;M)JQ<j8?YTFBiCgks|MR{S0tKI|$^>t3030MGd;{4!zjiieCk*r@B
zUo95tgPF&V#xl7qo*2AxzO1GNS_ug!@O=>n!1pk0=K14!kxT)~w$qJ%$0sXJr$sxW
zO`lnVzJe7m0v$KEDpL*f?PM(#?VGOt71UTZvntyQTSBdBaKTRtKTRWwqV_s8g|fZn
zS{ltE?z&~$n1KuEuzi9oSese#c#0HWC#!ZouHMVOPfq07k5QN^QK`8l=<A4;;Ul^w
z%kk*4=+kmimURA5ulJhU_dZe2U4PGu$e=U+Y_9|tDK*>b%XzLMrLpz$*UlfWc(v;6
zkqmC8oA(5{0uP$N>zbx~w0MKia;xN~NHH|J5~XmZuIZTWcXq+$YAu>cnO;9oH|<w9
z$0|*Z*|c?V=NoD>{F=8F0*ikR%?{Z~OL*DQt;fdvE56gYYF*b(xbmh``h58}>qmYM
zir)7x+P6*wesGLxwM9E6hGZ79AJm^$H@iSZho(sKW$7mphZmzn;pD0~U=C;YC7CP2
z=e_3WAM?FnYCF+ru}@Kb2VNwAejwX{Ye#pwl2Prh;_Afsyh}=7`-9d7UnQJXO>R7q
zS#~*5I$5Sq##R=^?+)N>TX$jK6i?~;oN4L0u4FT7-7l%zw%$6l2nE9fwcylD(ZEYv
zMc+%Nl2Og!c<B-EZ~U|8jeellK_Td=-`sayu+&D?bP{&_sW{)RHK2;=+D{ooNz<_Q
z)14Gp%r}$|E!C-;)z{|W;odgi&bO364xM#%V8!~~P4hPHrJM47-|{?mU$e}wRWMvU
zMyjhlp-KtegceBL{%pTvvNM(%93Ok-vs~kLWz5SkrIW^O(<vv>cg}ZpXl5MTS<H%+
zT?98~yCA+gu4xekBb;q9p_#Umz70>U#h~MQY^r?#Rm>`#saua>&?RpEiUh`c=D`;$
zfDA~V!utVKoj<WM(cSc_c_<gfy-m@_CDjz(%sBPAF!2yb3}Ou4-StAjOwQ71uty>j
zbk8tjV`Khf%WPDOgJ_CLv)%)1ap8JODQ!KXx7zYep{d`P@Qj^}xdpwVtSCDj=15L{
zQ+S&{NnQPkxjmbr8c*kW5UXWj+0MXj-Q>jbn3n7=lid%Kx>~m?OY;}R;4*@?I$ypk
z=~-GG|JW7(GTV&0!&McC9GzL+ZcbR^1W>m*u4~X8-dkNXm^-(+++UsM25cq-uS3t$
zIWUJ)2g~_ywc2fv_f_AqVvSM8A@!Hq*+W&ggu;+~!Fr_%jX7os)V5*`&l&ewBgS((
z?5)z<U`7{5P4`*g`)0*zy|gfTq36R@-oG(Fr3t>7fJ9=x9@I}wD|M&um)-a(UA+k^
z;vaJ(G@L3&dMVDmQy02>JFT8q)t^AT8Gr#5D>4B0sm8yD$tCs-yD1+$TB#5Qci)?}
zY8`2=`5*9!9{W#ntZ0kG(w$lKuiT{|Xa<t#>4#`4%$^U3A?T^m#9Q|{dN|8}DyI}h
zfkKEhiBVS0kT${%i7+C8N<3mpq{}ISJ8K9t<-QRXvQfh&F|;SIdG@Aw61z!)LxWs{
zJ~pDiaFm>mFqf%**pyy}9xro4NdZkMPWp8f!MXT*XBKeDBVB32nmR%j_>m`$+%^@w
zuVdX7y6e#+A1BB2x=k_3yYi*P2KxsSQi<W|Grp_|-Dmv{;6-FyXfO7_&KHcX0~2Lf
zZ$V-WYGYnoif<V*JuvUyu2=H4oq)G?NNrPZSUT$T&V$f=Q4Fzp_Qmk!RZvN5f*ga;
z2E@{fogv1qyKAsl3+i}$0$&zwC3^^fVuOwvh$({0<79fqhdi{EWrF)1!8=%Lv|3@4
z<`+TZ&pukI7R1HVhlmXDh_u2(NR!$I)9@)1I`M7=qHa+$oRG0;^j|6kt=S2ltCu&N
z%K2W5<F<Xz$U=`w!_YXO;~tx6OJXddaq1!W&1?5*yl9<<N0V%vvEqNE1L?QDbMRmX
zexc*4cSk(AuWggnpMl`%g?0Q6)ijQxKq-e-i5(OxpRMWHo!ceJ#m=k{J=@xR>puF}
zVUIb4OHRlt)dPIZtQZ&vQNb(RX9-SH7!`72kuX&7IkAh~OSM!od3V4H3Yr&!QSa8c
z`1?y<O(d)bNI-EX!n^~_UeZ4D3346hqKE{pREogPUPP4~u^#i&X<u2jMWR5gUeK-N
zpIrp5bgeb;^}AzOv{|&~0Asdcytz%ONWU-#8d-n`1MLjEd{+(5>0vE^I!Bkyw7m-J
zxZ&j>!xv}LzUB&@-WqB7ioNR!m#_8KAs0zwo8j;Z71L(z+VS*hVI!AI-uJ!J8U><Q
zwBTwfMK$)ib(=I_!MfDjj~)|s$d$`RACFVdM?iT{rfYp-&6BVgoW`v*D($b>szAzO
z(ZDk_IPv#GqgsQn3?60Mu6v^{9^1~PA09q&D(fWVXl8y%JX*UI<~~zWr(FZ@KbmlZ
zr!=#Z3~L=h9~%VCP`eY|fGY~+-d7W4`c(EH>ozGqv(q}dv4Xs!%=JqAx=qrU1hsib
zU3x0M0&IicfRBf($P`&e4H)b_u1hixvp4)r<smlB>0Up)8F<}rKsn-PpL09A!7H1@
zBmA?L^(}ZHG9tU$lJg}r+qBtd0<75!aOo44^8BRfN(9_bVgu^+2EsaYf#$&OzM%@K
z(K81ZexlcnbzWjJ?WVl+DT{qBSXn`vKepf~TB_pVZjqo8E;Q@j=hJ{)deEn{2kEwH
zHYyCjtzwY2Br)kx#w%p*lEL7~1fnsKetEz2rh0*rBycUHy&)=V`H~vmTyZ<Vt~p&~
zKw?&PBVP+gbMZ_mkT@ZN3<}%;1Fs#9pKCWo_IC##nM6G#%2cj$og&^!f~5Bv3>#y1
zzN`ac5ya6ErWah1qO>@Yuc68hHgA2gFWC{naay;zk)SblW(E<WylR?4Y$V^LJW8sB
z5hTY#&+Eb$B{E=U!WLy|K@O}u^*~Zd$VH$#*<fa+&vVi9UhQ|__g<ySkRc8-q1S+6
z^=tjSDcR(`3f`!}?-zX??+7aKFSm-9;YclxmI;0)*6-qgk0m-QRe)9){%#Y*l_^PT
zi^4fV22oPC8Ox|uSWKKDx8~{VVH{!-nG{eLd9dCj@CgV_&x@e6kce)EO|{uj{(jRv
zWIGT#;Xn#0uOyv*XGpp_%skniYQDyaNU-hVwe@0lWm_uv_T<nR4&Aa@d;#8Eb2<Tz
zomMv!nky`luXr5M;vN)hRr}(N*;ww%?`9~-st{y3c(+}~H75(UCRj1>KrWB}EHsut
z&F1#}Q3L4T8rOz<=~H<#D(=7DHe64bf7yB80*b9}c$iEmEbglJ^Tgu4{%*f4Zf-xo
zEvuxOAUR{b!HFy=I>X?&&t2fq3te!Lce2vgvR}63-A!?K8+Agi@%iS4w_?NZ*fXB^
zv=Q{<y>u_|aBiyC@BTy-0U^p^XR^`zl5s`e2}pn}(CBZla!bCaO4;9B!JW1J-VE3$
z2i~KAtiQi<C}yP*I2$cV=E^2igV&+_upPdaI!LwRgYn)>G0$XvuSp_XbHhd>y*swi
zCO6K(*3XbVpc~k7J%SahKrz=+9dNShN(8>;ZUhgFkzhnsgZCyMon}Aj+V?3laGT@w
zio_W3H>B34Ek65#C0oNbeTq!v$6NO5L+N78d+>VvmPQ+CR=?pL{HSgqDHO6mYfOLE
zGFqKSEQ!a@{i1q37s4>jh=LirZLDj7Uda^)XmII!v6ngm-b%5{ZMKUhdN_Y3a8_PI
zGtVJ-Kk~^4ck+N<Mxj{GRyMJFxTs9G`3*Ptwyb8(V0P4(F<0K-G}3IDG2X#juHD;b
z<JGu+Uj1|TQ?TVo|6DxnA)EQ?@;myMx3`3TiQFnWH>bSiYZL74=JW<z1R4h5btN`3
ze``#oZp?ivq+IHFM}T5kftz8x32EfEJKy*3o&smbRt<;gradD}1LqI@v#+V=TTWgj
zF>$4DA4|>}&2z}^$bHJI3~rpFsx}_b&95oVwwNDITal6H>1-}<j&AcuCG>nlM&#R{
z_L)CxqLQz;xXO2tF!jd^k6Vo0%JyAi#nM&G{8Bo&#&^A<igqTh;E=pXga?N&<L)bi
zj{Wy$r=K2uqJx|k3NvPdcRiNeLENQ0K$7~Ed+ZOF?BIPM)Gu$RFy+j*EiXXFioOBB
z`8&{UIq=axfbVJ;6TDMKTLmKBt<VH?j2(N&3&HFt*!__^s4|zkg3HF@7_}{m!&Mlb
zf!}ev8ihP`_Z75j{|0e&cw%bk9wFF##^UR75(h(0<h{6k<J+OxCRJ|8TwsGn)VL2f
zW9O536-l__dkL*sCn+kQ3SFIFW#dLQtMAEyS66#+(M+`4f^nhMYUDL1*BwFr1(iD9
z+DyS_ed?qcQ(k3$Wo01h#2u!4JVnq4O{Q_?Q+9bc)r<}BID#g<(uA<xcg@oEaNlfq
zg%H1geYV{zn9=+2NY0`-ub4+(ULGTIb3!$(bKE7k+T+UQnzgbqGwW{00dp+#UAEPd
z=NLNp15D@ed;WEw+&qgTq*yLil}FmfhCT9NLMe_UCG>3g#I4HLidQ4u4L3Ze@&a@}
zY-^R>#xoLkP;WHPAd5A;<pv&+(FmG^)C6aiQ70YO3nIZ*@B^&A?=zUA`WzwsGd99%
zUAFX#nI|To94%^*XW1-neJ1MknZ5P4jUjfc=XmAqclh9EFJA(KaT&PXU<I3R9l%w^
zA{X!sU%`MW0Q?Y5$iCl4@htD;o-xbwT5UK*AZEqi$gEbLGTNvfTsFGdKj6IQGVc{R
z_O?LOd+}VeJukz9HNUE2m)MH)q<juy-z2?t*~j~U>U!MGK6$5)XH=IZtu34Wl3i_j
z)`SU>VD>_~N8W^(MjITgwWv4G3~t-&tG!mA<>uJW5BBmkdvL<<%54s+6;!vj#&xbU
z+qQU9_!FJ>G#w@MOokGNWYcCCcGvNHU*5Kh0bU>>O=xQLatd7gf|uiIFR~UoEaAIh
z?GNm-496bySNt~fye}?@HkPyQDfQQYd$`4<*h5&<S{!3GEAonu#P#6q<!+#dau`zv
zMM9_%E>Baw>S0K-rIJR1go;{~cv_`5>Y}5&?G(dv$^M2<-jUy&V*^A#S+7ow=r9@#
z<Yy4v-5vKgoZp$&)N)*uWi83qr5iT*Tno%tFLj<|E(j?;qWp~2<ovL5t7)@XaEe>t
zeFcHTfRdEanvA^cO!0X6{>5BtK}aJjRR98SK@aeGei3>Uo>6Tk(b^oLgD4fpLo2SU
zU5wCx!$9r^#-_K|tpJDhYWKY&pX{Sj;`#*s0eDq`v70pthVZNn^ojSTq~bo*O1*3?
z?xZysJO|F}R~zyszbMRheScgiCcpfe;+T^iU^-vA+z<e+aeq!-e<J()Ji0T!s1B^c
zRBeSSwn7Ce2k)%alck~JYD_0k<50tO<z;RxC8xdzLk2%2_(?`#JT3U00QwF!a4C<C
z3yy@rqN#VqCh2mt(kea}C8N4hHk2O_AOvn^WWn3%{o|*abA==0*x2~n!v~Bzb^^|j
z;GK();0#;ewx9mlTeaf|8T^p$v(n4C+2yeh8tG#ik9W(~OAmbD1-Q2TjB1|HYtR`1
zUgO5ycFVznn)UqGXW?B(*A@AyaEp*f3(Z-uBeN526-n%4Hk&&KjM>@Qkv_{l&d!$?
z-<@<C9lydAPr`!NFK+zj2oysb?=a{<8&s>{$%GzCC3o!Q&F=|XI7^mR<B?w6qD)O3
zHk+9abG}48+j7zYErpbuds>k>6)66^dHcuEUkg0o`(64USlSlmx8;Wqyg~%8F<oe-
z<tc-*4@ws&M-%ljbiD>--jqyHi>yzW*V}KVjY^=ttE}XU-2Lo+%(gR@-nDkBIp1uq
zo{mz!%UoZU;CFNL0lXvtKi5qGKSEZ-#wIlV8ZN$M4{CHK-0QEyC-i;;iRM1lICOKY
zctV=ScwRfUGW?L~%fRJ?y4rr^J7Z%j386xzxYhWoz6!iaLCMB>wzp6QE~|Qscchsa
zzZSudJ?QAW*)YD$3rm)M?4b5)_GFgNNX}+uiUlXv_!JeYm=TQm1|MX+x|7~BKFqN+
z1)h|x-FA<7#KkM68v2cVX`l^z6km0UIp>jC-!vwryhW~`VRG3~h7oOj`P5fl7-bey
zN7f?(euT)Kx!U@Wb?eAfx$qT#RPZ`?bfsK>0sJ6GM1|n~MaX=em!LjMex~^a1xpbW
zI1)^b@-tM;V-LUWt*?Jgv-im=Yv#2qt}xq~mIg28Y?^s-2!~YY=fNA!(J&9US1;xl
zR-|cBCDqifh_E|c^vr5&s~$T5I&LnXYg^-L@!Y`GL-O3T(5}Dl&)dS$m|LaGwXd@t
za4^@*6B+4zDbW@DU^wc)>+oQIx1-bOj@WRh+=p#ieS)JgNH@C&d>aR6Da?^f2^)Eg
zYrb=YYyP%O%eYicCNJE@tdos`c3<ovhY3{-c{Q4sGRgVElyN)e?H++&@!XhVUyV;J
z_aE+;v2jkbu*I5oU-2WD!-Ll}nG2sY2##)3xNC#J&l`^KmT`S==bRccql~b>BS+fL
zc3U~{WfeQe@)GKfbY@%U2_0POe%@s6_Fb;_K)yB(%HV-uDRNKV)<OEb{hoqPPzV)H
z7$sV!@AU5T?M8za8~6b_C_74Dg*_G)ebKd24@(^8r8o%=CtZSh=58FLIby#YnX_7-
zoN@4|W?Lu<scL_?`kb>6YGF8x*KXq2`mF%jJOpz$xNv7qq+7c+lCCI*k*O0Ma8*Jf
z?rLk!BvPsoNwPwLvUpSI8zCs^ZlLZV*F_0!v^dGMP(dAnD_@}E07KqrOj9~SRT?Kn
zv8m}gmjX_!s8Z5J_!_9&l~T#i>kc+R!g(_D<1W^m5l2!q%m^8QmVv?w{dt--<7^4U
zFiL~F>Mtq01-H3^bAnxsD^1Aq$TK2Ts;sU1;rSEbwzY{rRO&vPg$F7}f?qSilBPiK
zk>7L~>*uwcT#k}sk4Y%Jfrktewhv_v&w2Z{LvUI|LJgWF`bHQ#4h9cf%G-c61|znG
zsg@!dP3<+U<#jme>HVpIsu~JZJXwF0vh8h`zv|08YxKbT8l(!~S-|)hBT8Yh2vg=1
zxiFgkZBPot=2>d@!Fqo{+~z*BNN`?lh+zMXhiW#;7eG&po?zEoBlo2n)>~oCMS%zF
zkZWq*C8X$cCHO3?6*p|Xq-|!nevdnDHE~#{{=r#+mLGO^+HdCjz;A~XZk~CfZGry>
zK?7Pl^K<~?B(lLNgvW$~<l}Po0ZoF`{ta(TELoEa3~C>x{$wcL2|4NZ>w_Ev&F^{m
zD{S9Pj}HoeoXUFp-8kVlMV?n}vOf$n9tPhi&tkqyVoMJ~v0%jB?aorM|GrA-TXu?1
zONEzXz49+F_lKk$<7*8v8sxIU&kDcV=I+|?xjbeM1b&*!1A3oOJug-ha-i35det@2
zcaHp_-n+A1<J`Ky>@42(+p^={pt3A<uF~lyjq0q(9HuWHY<Rf#FbM{9fiI~qUl6l1
zVBL#Y-<KanUsIICrS)7O=wy?vh8P18nEMz-ng)JVe=+B<sgrZ_qeX?odFc7QOs;Eu
zvhbeGM=nc_a6PdxB()|P_%YGSbE)MXPV_=`!ga5kFlR0a<(x#vpRa8>+tcRpiTt<;
zLy%#Pf@vA7RQ?KM40{SWtsF_5DE7^)(VGQ)`GLD{QJ^Gp_}U7d8!5yJt(PQY`Xh^w
zaQac`=VLm3#B25?1*H^Z?@B81CEb;pg5PKdzfFd%<B3{yg;=PLTJ%Oz;bXTRn=)E5
zrSjJy6S#I2-L#2qJ5oU_oPo$P>T;J*3rVs;_%SbR(4A)ZVUE+ln0{o|@W<WY*GSDX
zsO{W?_pPVZYzPp`LN^cZeW|>$iqgItT<PDL1e^5FFs-28G<^MFf|U_<%0Jv`8?Le&
zm*z&<rz9Az2PIA+Xbug2{W>B*4`%ff7m!(f2qD7X7LGOPb+QXjP!T+}LP`iABF1;A
z*wgX-sJMeo%^eJczpAQ?$_`VVJBF=1x~D5juhZk2@ueq_Ps#n8Gztze#FsJ6aG}^Y
zt5Oad^ueR;NcXb=$uF*1z56gsTucAILe4xI%IN>&Vaiw=`;cWAyNIEZY{S^MF@}hV
z2E~LZvJ_bdW6e-ZvW=w~TZC#1$(m9KNtC@9WG#yFeZGHw&-tD6`|~;H-g7_CXSw$|
z_j$iQ$OvheW1%3)$%HO};o*YmSIP19T4^y35W!Nck5eLb@g&kH--pQ}#S{hE4FSPK
zckX#8J*Jzbu76fuOi(z_`0N|CwuIu>ni22aH|VV48*tr>T0fT}*YEs^Xp=cOSEzQn
zr|vIVIlrjA-5UcY1VxfN-e=Y~f+oQ#W^$-t(Vf=>EI~OP;8qta;}9E|aCuqjbJ2+x
zSG~sVIwV&w?=;yMg8_vjaU;511E44P={Whez|$~gTld%tW5$GiiC)o12@m{X6Aeet
zI$2!)gJ;RSl$vejEe=u0n7E8@ld@Frs1K~v^j3)zpz21RiIKB=$Jl?naPIf%1E)+F
z=CN{-X-)X4p8lJ`)hk>%;_@>tXG?rJk+H)sWuDR5RIt5os(lITiU5WZ6ea{@3n2D`
z!lTQd)m9GaB{!VATJqUUcu=AFwgEklv!j~M0U|kd*3zqh1!GPknYYhw7X8Y;iou_?
zE7kEAMV_>;seaV`Ps-BSY}25IWq#x71N7mJ!Kl&CYpX;TWijxJMJsvdjL{!q;7K{7
z+vn)cowOj>$C1opT3=9r**iY+L^~1FW!o!S$YFwP-YS1qXC5MTgJ-ad7N|Jf%=0w-
zILS#qML`^Qiwl!=Z>mk&`^m#URX=<pdKP(Wna612qqQ%1dNkz1sLaQ%rFtpG+;J>d
z(5;4m7xeD)&pzB4zbh#JA+&v;XW_~zDq&J07hfkA$MFTFzDUFEyYIY`j;jBw>#{wH
zwlg%t);KxDD|2`5Y94FtckoQd8KuJR$$o8>IfY9Y(G_pbw;1G~zrxxe`&-xEe6r#W
z##^z9pFjFgUXXk7DqR1;>~b0e85_JtO57w!+#`W2^47_Z!bQP(u7lgWh2b1aihn*K
z3;(2c^RFT|1K8pAm;VSdL-~L}4(W0BG^d8Io2W_vLooZd5RI#X2Pg{b=W%adsSb)x
zLLATa&MbxDEoygEv4x0tdSS>>60RG{GK0*FHpRvsG#xGR1L9a3B?1DHv0U6cv|shc
zQwNK;8FKn!)R#g%4Gj+~VLAzz5n-m!X}+wl=273Zg)85CFYIjlM;x4${}tF{<MKek
z?VK<2Sn_In7b6!uXetph#SoneRR<^~HJ`3cy{RHWZqiE00<nJ(7w0~0viA8l1OY=g
zr@;CgNZ_VUXlHl>rAki3a_vj{*pM~Efx1WpYz8%etW_N5*JIvnh+n`^bUCKe$*Z48
zF3_&5swXQH75gHa5spJU0ErpJ-~W?**S;ic5^hMsnW$cTPNC~r7Nh!H@NKsR+8s(B
zf(K=vdaK(z8vy*ouQ{G4536#PrZTT90=24R7{Noe(J0gO)~fh8F>0`>w#pR<GEe{3
z`ZCM#Ov;8qO{#V__`~E!Oxr(Xyw9;#f7Nz@KD%*rp?)%p@Ay4de%3>J<z}3_vc0?U
ztsmU1qIU8?OY>d>2s5%duY%|NHMG;A&g&5><TB#JZfEgRGLbi%8$2Ed)BR8>$S&*q
z*hSU1QQ2DAs#f1+TPLdi0CMXK2p=s4@KKUg3^tYAE~Yyh$na8S(LIq1km+ZS7Jl$q
z!jDy1ejjiec~?#FOVZkzQts*BMsr6B?zhNhKr6Tc{U$Dtc7icuj<^%e`8)<H?VJ>3
z(643TN_7*pZ$nQ_Ed}awFv9{xX&2ullTA}d;aGwm$*KHzoDAUO-lY%DK%Edf(o0><
z4p7A5p6~NI_Px*(#_GPump>so&XQrJo3n?dKR@0j!eFf%k_Ra6W=-O`h$GGU>SRYg
zg$}Rd^zYfl4Y^YTzK`v>q6110Y!zkjgCn*13YvJ!Qar!3v08efS`-AJ=$f&{Vb;E>
zOQpJ^N&Y-fPAEAwdu#tLuxU_y55`THAa&2sox5!=z<pwarI;vZzsc9J9qB?VUu>?t
z6|yu#4)Wu9LzC<wvL-)ku*MA}7zewZ(wFw4ftD&`X9upy`CP>m?CGW{FbP+pTYI!w
zmpCyVx8YGkjB1*LlDw0GY~gXEI_w5SEEbq}_NF*Ma2bzn<cyUN>s)$nK2dy+59mMY
zyPhpZkYE5u4Kq|dspTkig01NQnxwMLl@6ujx^2dD9){_)UzzF2*-N$6odCGM&$@Qx
z<yMv{Zw(`LYE=Y8iPH*=?QRczUZ8i(r7dGNZyb}~4i(q~5xFSlC4K-M^$OU&AgV$1
z%2g;txh`o$GxeVDgR(`U7I7b{x2;NiAIU>~tD%_EV|q1Cz_4|6VC&|nX4BTi^wLWb
z(rp>A`}m08i?flwvDs{?f6q5ubJva7Y=tsr%xmtS0Wt%|E@R}DwBbQNV}N|OE(1Tm
zev(`JKJ3m}?5RmnGOm$yz|`Ip5(h9s451({J6B;qrAf4y5cD-<v;LFlrOHg0i$m0I
z)WE-?WA~y+JKHZUWKML`t^rE$)J*k=({|ux@~2kuvE~p;<(x0Uk;iRk6_Q%_2>7J9
z)~PeaQk*krMXzc~eGSS_CoHDQL=@pC%Z3sZ6;7|*O^ytf!JI{VoRAf+x$j@X^6NR-
zYb^H7>o`U`n>`*yoEweQedlBq7EnPL@rEWCq`*pmdIe7VhJ<}IkJ}W3tGo49a**S6
z7w!71+CX!)#o@*-c}6((yLkvpX->ypaje~t`I5G+(()dumM*Ze0vO&aX^=AUOspyf
zuk489X$?UXs5?Mbf-EGoR=?4@|LApg(CJAn4m0H9FbR7*?E<Mmbn~)Sd8K!AQ|Wi}
zl-(b%pscQ-!gL+mfznINP^lP(XsbUW$WHs)D|=vv2CM_3pc=G5mQunQysj35BUbOI
z=c4Z#=2E3%G=!|~;~rxiRgs9<+n_6w@ke@YzU{5^%#`W|V^8mlWj&)hj-p4lBojeK
zMJSLVK_zQ6w7e{SJ!zk(cMjZFXUPbmUf3%wlIhNoeN{UrV9#k(q<TARbtqPZus7Lw
zQ9c9OxcV=T!G?_8kSq^^_?i3ho>ySkHZLhyTzY{bnE%$lJcGVpY;g|}YKz4ibD?JP
zzKqI+CULUGoJ<uixzAmaf|$qyu506i2e2Hp6QyYdjr;Cg2`Qa71(4{L{RFb%KdnqM
z;>+LWh^HHY=&*7+u{cl+Tf5~3Li!m!w^yi)r4!ZMB5&h-rxGgsz*UJPV}iu|v6Q*b
zvp!B?J~LF&u6JSVcJ(N-BNnWmi*FAY5WLh{({AO=DUdj>?(iX4f$z&>lJjF*4FM3?
zh^Ztjl1d7;p1l;kI4VZ-x3uFK@%K1ETLzi)&NBS!GO(Ri^iLJR_-eh*Fo<P2S|IMi
zIiq&5D>8l;ec5fCO-V<3G!m0s=@RCDD^MY|*{&4nqVbz1Wy-3Z;R1Eh`Fb8MlLs?P
z0*9~D!VctLms<TwHj<Gxdtk!$PM6M7%-Z@ZAP`~3H+Z|r9n(a04ch`^Y<eO#r<1nI
zR$L6<0=LFffB$q^DK*2xqiYY^3I%U0T{?dL(8j>&cg!MB(c;EU>CN98`-XF8JfjBW
z;07j%PSF2{LjE66IkBrWWBt8^tVyD2uz}1p&rs%Sxs-r{2?*S}3^&&QJy5BYU9fp(
z4}hF^Ab^z2tu5rL%lX^C*-;fkh9-&N`7q-)4ys>^RFL9&)`eNKl#MF;<FZ3d*+P^u
zWo0@EEtl*9VA5XP7k$M_oXQ;>6TwQ^GLDh}7X85V|E8q>YoC(QC8w)qeIXlvmBZCK
zZH(VM@opFW;qsF)&0iv`HTq<1H3V)60qyMWI-L}yT0v$N9I3~q$aWiRafCVR4Mw#}
zJIE=@<1=ipyHME5^t>Txd1a+*H~ONx`*4^6g-allTNcDJeE9P`sXQ$1kDijhWygc~
zDk2B5P}0-$K3l1@d;G$7q-0-dbF+xEGt~_;>wB5beYz4x<;o??r>U%0AJn{Etab9Z
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

literal 34050
zcmdS9gL9?9w>Fw&!U-lecWm3XGqG)(6Wg|JJDJ$FCz{yyx94}xJ>RLi|G>SeO4Z)|
zu6`D}d#&|8y~7pc#NoeVe+K~pftQpJQ33%0H3k05Lqh^be1naTK|sD&SqKX&ND2!R
zDmdDiT3DNafJlTVr$DKooS={Nrc2TbK<h{y%f<l^1*DEaQHuhj<G`UwhXp|D^8qz~
zG!c;mO+-@w-)p4eMMY`U)lp$rF^m-zmWKk$!n#25ce~xTbKJJ4+L?QuX0o}zt|q*X
z-a+#=kHSPG>u^EF`c)j_T5*U0OcDNHc!UB7i2g)*4sDbGRsB5v=Z)t@_`LEr-o|nb
zznv$&z~TK;d(dBCiZQ#z_KAvok*2U}BytcSNck>X_bPL!7<pBMVh{z|tV0gWn@mHD
z%-&`l<Rqhbhx{Of3LLl&xF82eP16$l!}(4W$Cm!VapZ^v=MfFe>^TF%oUn&4V`G)2
z&*0-?j9*OTmpi7z5@wDZ4oW#16V8Y{;FJX<)9YVO+@EeF<dUX4`GI7ly5}e?&8E&X
z707CDk{XzeB>E{3T_>LwF{#f%(@g9`yp|~*xIcO|Qb<A?Ow);Tyj0`H5z<X=P6<!E
zeIv~3ocVGu=$GP}M8@mE=pSj!hC_p995V>5$7o7PAm64Q+N946CF4|_s#c{th7XcB
zZM3JeLKdG9b2)90l;C-KLQ9+I;F2FBm9~nQMJ4^`eSH&Jn{pD+X?)nwK7N~W`tRd#
zu#+ov@c)7c5TwX}Lk!Wao+V&T&W-0HUG-@;uU1FI$Q{?uCl8s?hi(6Rhoy?1!UiIf
z-J9O~G%#@D1VM@P*Anapi1i!juNNm)TV9Z(S-1JqBg^3#kT_ycd&L}Tq|&KH24xHy
zLQoBre5zUSj^EH}`5o5&#P$$5zcIjnAtJ)4g3*ORjS0Zb_j%S~9sJ^{gF1&A%0tEd
z_VW)32RybQY#Vruzt$fFcaWT4x(p!OzmTqBqJ$BHLdy{Gl!BWGeMV6m0@C7`4`5z|
z1r<n8;fDl;B*3aeTZB9m_*CHVf-Ca%@|<Q#k0BQ!cmrPZh>m&h(Zuw>SAkglhP(z#
zgK5;~=K$9Q9qF_BBg28S4S~^Tat+f4+5^55K=8Z!8pj<K6dFrWs0oQVD7=jrR00(_
zGAuq?f=($ciKtnEc|K-S*fZYX02VSd-v|?vIf{4~3MFFKa9N+t(A6-4@n;(3B-$je
z41p>59iH@1g^_GMf;t-;7*43{$X|WfdbCx~^PlJ6&Oshg5JHvvvG&gG`PwA3!EEtt
z$uAjd5LP12`XBbiZrr=5wo$Kwe*AX2E`P>-7kr0#7k$@x2l-_7mzf2qBXvP5f)g3Q
z=EvD*+56k4UPmy<B@v&Z;Dv#T;5*Pdu-9j;%5=%%62>H&lL#lEPzEIltjkaVmJ(_b
zauWFB#*FbAcs(dJ1f~HP@$&JtiEpEN6t}1-5!@!6qC#t;<wZ?O_=<cA<tpDQs97U2
zq_#w>OLR;4N_|uEC(<VBOx&3=jirpSjW5T$l1ax;CmM{^#!bi3$8+MlX}M{{lbGY2
zQujw~lBnak$ybQkr3x2lEI^x#*X7n7*5TLlcyzY~wv}_pb7}o#J{!FG@$%2+w@$QQ
zRXsUBsC)!KOZCfst4b)0Dsz<2mNOJk)V3)w$}kGoi`;Y>)*=@e=MAb#DXmvKYnE%B
zR5pY#NvGF#3Ad}h)ZC_x^Ps7r^+?r7WsiSLuC0LkDZeDL)Lju>F|){ENoFa%G`|#6
zrt=dgr<7sF0pCscvTNZEzjEM|>{RgdY%#Xntt{5k+|u1Dj0M3`dl_?CW!`y7W|n5Q
zE042Cbj5KQ*&NMWXVG&?!MF}nG72z^HXPQ{(GuGt@>b?r`q&neFIP5=p3RkQ)<L3E
zVq0bFZ<~1;mXoq=*!|$i>KXeG{wnj~{_*Yg;?)Q;1acR010EY568<OLT1a{bYlwVw
znHZgzRn&OYCC+|S`f&JgX!KRuZ!$Kr8!}R|R#^jOEoJ``gN2%x)tAS+;Jb;xPicyi
z>ZTT^tfoGHrT%{Y)tbba+M%1(LTuK*3V4Lrp|z$-pc$vlQ6JZO)wHd*Zt=D=F&t{9
zs_(FqZGLRnHr_J+u+2Xa`s^o$C0L)eLEo@$wP;MQYi>l_SYAh1J6RLmz-u@&pknxz
z&Yiw;QU7TBn0c;s-pjGdRm7F$`aCf=$vAh@w*Ln(Ao?zP82Os*oW&t0p6!{9H9a@Y
z&-v70-f6EruC3d4+HtE*t*uudr2$igQq^jUZfn@;*~;h!^#p%ejUN`;DqbUATH0k+
zW>$aXM2}a?QHx!RWQTL*vR%!mPQahr&BtpE&z7n)g@4n0xAn(sD0UCyT<!d+e`iqd
ze5VUj_q@}6XRlQHJ{3BZ1@ae&>+halX8s}mR$zWQ5n9-7O~xk^gcErWf){=Fe}49j
z1o8*B1)n2$AX}nR!Pvki!fWBH;<2G$BIOWl<J1!x3J+FGG)o8?E2HvJ(Nq8|ozssR
zJ|-YjHfUxvw!8c7MTaABsFzg9s(E^)T+z&y(#@@%-S2OX?Xp1Ru*_IO@SG@2gU+UT
zfBOtL9im-_Jj=a%e^#oOuD-AKag?_CI0)a+-2~qZfVm0Q|IrDM7qaMAHxw{5*)vvh
zSJGi3;^cbCQqWDK=xWe(av46Qi!Y}TU+f$<nEGTTHsp5@{hrhSD5m@g%F2a@OgzRW
zsh8oTDY<@hUw6-p)dXiCHlmr>%)Q(*en0;1foF>6rnBLB@sPRlWTS7x(Sfv%*;sFr
zcv*5T`%Pn8<7cL1CJOsk%aEb;XG*NrKr5S>m9d%0lil66Y9etW@$|{sWn1?>)Z~u<
z0xmc8D~`5(FFN`s(;QJ<gYDMr&1`nRruX{ekujb6PA<2NOTGrER`Iq{uiA<23U5tc
zQ{S(ip*QUBm=Ns{1W&c=euef11}C8Npkw~qfUkm*Ku@SA+;>%6z4yGq>Y~fI*L=Lt
zVT3z`9o{|9q861xmfHI>`G8z}{0F{u1yco8cQ`kii`9wSy4%Oxbbd9pvY!V(WmLXX
zdsPNh)TnIyR3lL1@9BiBiC=`vR`=bTmW)l5Z8mKdKTA5jmGf6lP_Fe0|15rM+Bs=q
zo@8z|dzitmC|x;X6M(nE5yRfc@yY~bc1*wISXsGR*L*F#uZ*K#q$J!$9J%Qc>Wua<
zcrf1WnOBy%JS%M$f42Ozk*5>a?(s7@NuI9sRjbvz>u_z)Uh=)^Sa?XmL13TWGTyfC
zGV!X+A1EpOWY63=<+kC*vEA6R?J)8yZMRZf3GSqGqu;t~bGzVs`>ckN#&>oJb>%<T
z*j{*xd$PY)oG)~XUBHj!AM=dx$#|2w)Yx@;I5O$Q`O;mn+VJX`DXiTWy^bXR*!*Po
zD|)}NA$%i!FxjQ9R$B^G4Wt#;6?W65_u{=4yEpabIFet_4c*4>=6y>&)59Z1BK~$Y
zcty5z^`7^df4kowYg6c7IKxlshfOf?QT5t>3VSF0wsKutJG{`l+lwZPDbM2f^!Dk@
z<l(3^h~!jK4H7_xiv#=nO$wwe9%NQ=M<yZtW@G_$%Kg;>%x{Dl-;>K4ltSFjKm!Ck
z&jVbxQ1zE4JP4Q$D6|7aU2`+b7ZzpxvMO`qXmlAXWmeYvuUDZiMi3O<#KisR#6%Rd
zveglgCf|&k!v#LEUz$5GizbAvwKh;+SYIHYO<;YIvJLCNCN|qbMcr9lR))*S&W6sw
z*v`;|&fUfy*w=!9@VIjUKiZf$8xXqNSlc>rx$^@4Bf$my{BM{ZK=>aKXDeQSx~u}B
zu$`j`AuAmV9Rq;xJ0T$<kE5|Emy(Fse@_Q~;{}*IJKJ;7)4RF3(YZ0x**TigGjeir
z(lap8GcnNuC1{;IY@H3<X>FZ|{|n^*!4WZWGIF%Aceb#zCH#kLU})#!%nJbgQ}jQ7
z|7E9%yT$+2Wb5?bZUG&n|M!HRk&c1>f3Sg5dH#)ZDOk9hSgVUz*qGQl0d?>(vvTnK
zNB;ly<o{~?Uo$oS*Gy*C|2^}6J^AmMJoNt@_+JkFSG4{!3Je$DcOLrx2|eHU0W5MP
z5D)<nNfAL6chK{05Bn@}&%ZBVKg;^3zL7`-{P9ulk_<<7X<nq&sJ={jvv1|Kxq41B
zGBYy8t<QnKn%1rNI}ajf>pF|BTe%2N&&KQYX}M_W+)CA~ek+iW+9SpP1G5bd6VPU-
zpR0$?R|XA6D2V=>YB3X8eZ}qI$@p)g9p6=EIz;c|Mlbj34!^$67Vq-f5{mBI>#NNy
z4<}g6FXBJYGU#9s9riT%je8>T$*AQ0Ry3-Zwirh{G1InI7H4%i+dbFCU;EG;|D+k(
zq4nPl!COyiD@#|XCZwtwx=1#g5UJanyB8!q94CI)Uj7sOodzv1TaA~!OnGRiuRr^J
zgS!*VD%K<9>(76~oIn#&wz@e-ra@KJb#|^mLPC*!l=yxV|BYl1j_Y5K^jqmNrHGM%
zA`&ZQxsv?9hoPcC5+KX%XEk0xF@krt|09YD)+e^iU%m<_KJ@Q9s5qe&qP^jCM!|K|
ze+-Tj`W?Pz6##UT156|27m8B~TA10$e?-YmYrp*`0LEBga+4aWggJQsQIwU|jqqP{
zO`tg#%{2VoU4ghj%M2g6{$syD3elgzEE9;mHHUv1feOz4#qt093c|R-V+7cU8PpZb
zzl9r~QD+)_kRGxrXq$e#;z*>d3MlqN8i~Ftv(iy8;NUg|eD*Br>BSCpaMLa?nFi}z
zpr2W{x_dREJvwXl{T5*3Z#bGlVgN=FTq9J#uVL|(%2dPd5ciB4gD6!sEKFK-aBML*
z%#$GpaM0JEhUF(bX#MTO-~F3lWEQMf=YXD|d}~;TF!+|`O^az{D~qP$89b7k*D`Of
z+30^_ef=9LE}OcN!{VbM;!TRWy4JDfVLHu<m$|aK*W0u%=87sYuCeM!@a8_R%A!%}
zjKIN=NVSRPs33ENX3m=y(YdOd)I|2lRl~o^RzBu;pxE#57r|5k{2c<J5P>)8@hWkV
zO;*2lml-_(Y&(<sU?Qk&oB&DS{dA5UUIOnPUUf>BrrnU*w7TNLlD;6ucn5kjwObCZ
zKUCl^l)J#btt%?<IASggn$}0O%qp)-K)kb~r9-?+v~j=Q$oxY}oA2DXJYG{mBzctp
zau~VzA3@-*dC!ZR*?%iQb5o;lX*tBH#%LFk<CS<7B*P8k{mHsa!&$6DqT~CTM_Rk6
zB{MAqG+TxE&mhlI*wM`gq)1P9<6n)V{-1q9m+6cnkj1o_0D63PCH%V8x1<rohj@zm
zgRFIZUUF=Dt$f^YpsD4+-S1HmH+}c^XYnkfcd-M#ripG0{aZsqBNIH5^UUUY(xf8a
zgcMzN)80gBU?2na-FbS3D{$M(cLJtrp!$PDLN<a^y6%b2;uoSv!?h&_W!&hr^UaZh
z&xTO^^Y*J{BQ~!&j<qRzwWp12o8q*^IOOl}1E#;jlENlwy^Yf@_qgjo`%G|hpb~E}
zdkN0=y`d@V_<HM&JCf;g9pMi%XHf&S9Z5+ZYV*NXwHmfG*Z9e(9*r}2(I4Rx(GEB>
z*i5ivCF)Vd`09t_sNGkN@RSN3*fECzk1}N6y>v06K+kcFuCWbui@Ms>Eh?p1VBnSS
zcZozbNK!LrT6Of}v@&?ZTpywFk6))pF~Pv4Qy+bPdWsU5*$iH;H})Z9bY8be6q%NR
zze+)AjAP{_F+;U-j35^$T=;kTvFCVtb!R5q9dB)*i5xU=JREXOM9c;xeyOZ3n7~Y7
z-XB04BZHFvl_^LcSrO{Nlt9-C&GOC$RDU*%TSSZbNs3}31vRs?RC8Bp9-UdsoH6B&
zhfV~HewKS{_pTTd{(_B4_tLpbg)qESJGbK_S-wA37ZPt0s@%31>hyLu_Zy}Z1g@c!
ze$F<#0hiNN6qS{Sd8*K!smxU<-i`Alvh~`1ktvI6Xmh^!`#AxgzZY=HUvl*C66cZh
z!6Y{-E(`!;`UW}WMiEY?s>DbX-SaEFoM7n!zr#6EDE{8C)?s!wmw+?Bt;&+nsOQSN
z*FiRorl0%`f_{|rdOU#MqzC54r$~ML+?f{nEzS7qMpu_r6Ot<l&g%1U0YR(Fni^L7
z8=%||Fb}rNE`qZ6&3Nd04C)d!Rl}#QA!5Jrh#8r5x;a}iv>Pz$IX$p_Rlh3dxk^8-
zH>m1rHwD<gr9GWHGEb8l=3BJvG;8*Kd+Yt<iNyA`!07K#JNoKcp2%rTPKHekCnfE6
zIEYR1vDc2ePR3~2Ncty-=XHt<9t{pd**$Jp!TYpaiRCs&Zw8*?<3r<mHdRqJh`po>
zKiNa@4<ShaPv1G~ZVsY8ii+uPlga_Bk*YMG{E|`p$_TAwnL{Nc$GNzn$+L=xw51gE
zb!Df0*Sz+f9;coWzOFetou_tt+&M}aK1yCUmS(Ld-uyH2LvCPbUUa`*-n?|OT3;;*
zJq=!&DhqY2k}`e11dF!VsBZp6!%&BV((#-hLH3~wM_aYVdOI{cRqC#lx?i8Ed4#ke
z{<seBGOPD-eY#xsoE}n}q5S>Em+lK-e=;hC2f{CuP?SCjV%9ua;E*lM=d2}|hUvFX
zMy=7)%B>>A-@=KQ6oXEU3M=<4^O|pc3rtCx<x%cUo`@iul0zMDkn6TP#cFD;eG0z1
zIw9cvT&1e4G%Y5r)rng=AM}>z`1>L$H|e1ZO7{93NOLfd<Fg(dq|k0H6-g@l-XMYH
zQ2<S!tK_wlr*ny0S6Kbw+TbFfd8<F0o|=rdo^hK-5-k)6B-3W|?ZVPxPgc(WH(uFe
z?0Gij9ZjVM!Pk_t&Nh1L{F#=Lwg*Guob2P2R*sTYj_MrvR-6;AfOJ}F_qX%3B3Mdj
z!zFx;5%Pnjx7|bCw+ScSWg=k?zy>GR;|-_7+tiX|B_&-`5eXvArAsp72A$9AQl(GH
zuV^pndUa@mL8P=r+YLrq=Yuh%G-$9jW`t~snvYeeklzA|ma>MrjkK)JKUOnWUPVXC
zv+!(ATJ3T#>iH|L;t$^`DetTbY4%%d9@f5Gy0|59=NkV|c&n#4o%3lyE-ZHbr5$^L
z2LouoyI3OGM|xP^Ouuy2t1HGD!vRsVZ3yc4dDcw6?8_OBN7PUa9V%=HgGQn!sfX<&
zjbq%3$#c&zq2qA|xlr!98oFkU1$NW|(!#Cq7Xw~_nK>K)OzVn+x6jXloUiH>J*^Gn
z4GywVazlVzR3zc1+arhx&W0RuYPPW{S7lGpK<KW<UItbe(I_5i)w@xFn7L_!CvJl!
z@~qii7+PaRA7G`}0z!JXO1wC%Q*vPe7$FnDGkM#BLbOZ#ELjYKj=u|SJ=e%1i*>G|
zr-NCgOGI@_s?R)8k;i)Yh?>EXL=1E+a!4C(;Thqd@^gR@14}S|c$gnP3TRkKZGq+F
zPU#*LuCs_<l_CoSk;4QD_n&)W@EYkN@1I=Ea~N+KuNQ3v)O3`9K+2Uu(ox(K!=5ZZ
z5tFzyGzoQ`lI5<erExD9Ssgb+{A%#`&U#>vh7XJN^~nZa_x_6i$8(}M0SjMoafqH?
zlA@r1LVb*wxm}6*6+hSLv3XtaZ7f;$je6>sJFk2tA<<5Hkda>#tx*)<NtPM6?o8Oh
z!X!?n<R@veEZaXe==8!$h5^jTV?%D5Iz9^Vm@+x;h%i&nnScX&I*RWL<yWXIiWM0j
z0WqSd&(y)=-4(2i^UCeMJ4Is@z0D=7f60`KCa(tR{bpC$sp3m>{aUa3tQg|EHU>U8
z#0d%QOJ6S-IKc*>;fD7eO_LG)aw6DO6b>T&8fXmkkmqU^ix8_eMma;h{k0vWZpM$t
zk0(bFgSkK=-J@xaZ6c)Q<da`NPufKv_2}gxHHys3&^D9UWW%;b8tRx$7z;<tjKHP2
z@IU$95bYy5-^NL-oCXgP%AMcy>1g6U-<<CDAC+YL(XCqWi{Nhd4!Em^LLYa|7bf{i
zG_4+Uo-sbsIgCvo9jq%0=w_n|!N-{E53HI+4FHmc<{^aOes%5iRmpwly)vZEFLnL`
zC3MFtW3b>^X?F!_%y)4?KJZjbMpVe&8d^%`Gb$q&YANQfIRJ(<Q+P^tN=Vz@s`cL9
zRii6Pg!XcFw4eT8F))BZW`45Uq53C9<=k$13$Xft8S`<yWiat7uGFBHWKWTCabwC}
z8d=ZQm?`6cq`s*{Vg@9jLh=CB9)e25y7IbD1$4_Ms?F3U>mzzPsZ}A3J`#y`4fJbn
zz&`(yH6MU}9tEMNvLWV6q_?|V!{_=EKHfbttWzoFmM;FGRvLM&h&7`=3CcyVM5mDr
za>c7VUoFM`747Pa7ezMg3s}Nrz=69VJTLiZM2O*dGBKNqrTp5e8Rkt~Gp<ZiNh}Fk
zIwa}qE**aiVV~K&n=D-fMmGI{{`0L_eVaxzsUeBT#5m@wv4&fHS!QF}8GEq<>#vrq
z3HGvuU-y`u$pXHR-)|Wr5Qs*Vqh9s+rWvVzeMo#5X)LqN9qr@#E6JX+#9*)1a!n)*
zdCO)_T%Wt9Vo4Gz=g}_Hq4u2xO{`pr;o~fDrJfC*SBIG262RDq1NL%9MDq0Y3D3v-
zu6Y(Dr2=W=SSK2?<Cr=l^C%lr97EM#-Y~qHA;s(n70t2cmv@&5Bi))XO>Rd3FEdtJ
zlq`qEj*tKw)KN`S%GvI9xl`^VufV&w^3A;uNl62$7Wx!^%2m0eNYkERS+l0wk2S(H
z-}DqLGE-=$@UT1B@1bu6&WD^0j>Jl0mhM`fH#@q=@F`3qd^8#X&57v|(N0%!#?c`)
zf|2Lucm>B%VAT`asLrRd%*~p(dQ^=5K~6o?1%7Ai9~Y_#9edAT==V=n*-`Q)$v3f&
zdU*b*z`~}Ba)}KJT~b%O@`?tQGRC5pa<Pzr(?e<1E>$E0$CSdf%%F(z^<v$cJ<npr
zV!)>MaoZo%5+fDXC7WV5>09uSLUg1WPxn3%QYoUt!{19$RSQSCe>}j%mv`OKi!#<*
zL0k09vsRv$8;1nU1;ZX4Iy>PW9m&TeeDeNPhy6Lzb<o}=wt+!?#y@a<oI-JZ;+V8}
zx@r19S_(+zsNZR&&N&)H(VbW*gVIb2Xlg7S$4oS)g4U2Gq85>cD1bHUxBkKsKi5*V
zPW_wkrjzs3m^baL(955{|0zRqlPH4JGqFRj)aT>pR2CD>&`3xq5?G4JBkNB^<X`O)
z>1hY|gEYO&uQ6D^6b(Drh+J5OBew;oU;Q}h!{(6UZ?AAq<{R>q#m9{am$%9l#b)ev
z-=m4`+5fdg@KU}q0(k=9C}-AF6xh~>;GCsb#?gg8JoW-4o>ev3-bBFPFaYOlC)l~E
zWbl;4KHwR0W=4m|q1zt8Q{DN`2fZt-@{|(kSOLoE-?=xc^H#z=s2Fn*o*WHx5Q;fO
zXA~#`!dqL7?`@@xPa4k2%JmYyDVK%+G##6sLvOcBrn;_oHq3HAKWfz-jA`Z-htnxp
zud?~<XUdhpsX`tZca*>!K}9ZAF5wwkibs3R@l%fRs@a(h=UkDt|9<zQZ*arb^ggDl
zc=8pE#4x#5f_!*9_}7Tk)NQFxk%r&os+Yv;ts|0Cvtg1(6LesjJqO8;z3h12;m&3C
zr_sfy`o~Pc)S1PHcdi$I;A?<yl9O0YgF;M|yOuJQam)iji0SOs%+Nk^&`>GSm_9;0
znonA{n*<_*BAOS@TeHj&YLMC{5r6B)<bXMMxw}>)nv~gp(uBV}FC7Z!MC_C_co<!n
zON)l$S#;EeK`2QdI5M(<%_z2Y1eXw94}={RZNm^?h)RumF=i+n;MjZk8|p=n$T7~b
zN?0jG+=OQ|VRX!^b0{lu=<yFz^fv~N3n6s|eiUYqHRxm$HtJ?R$iXfF5$UR1QAs2<
zQmd$xRp3U^lnxxD_+ZM`;JtiH^}NsEO<~SfzkP);O4<c(DGD%KMtRhF9)5f%{oC>M
zC{gUJxIhHi^g(BfBKQ&oeywV(U&2-<B5_7&jmNxN()Ecju*i%qZ_F9}-5QN=4U`au
zwq<T3dTeM?2#2JdmQDzuskIukvy;6C57L73$MofK>2DT1H{JRHftL~!zp4&EZN4Qp
zpe$Ri#M9G@EK@*FccP10UZYr9Fr){`suvau#J8vO%=40jZc5`b`NlLIs;hO9V$%cN
zcCf$O4*<5tiqlwL<6un-G3eBmma{Qyjn;&!u6iqCHTr`2OBr*ml@V*6=;(E3v~VP_
z1=QH2E~pa;rcfva90gcDn`swCValev@79uow1M(n-JC|6-Yq<tM@E*w-XRA&t8_~z
zg4FDOvV2ZedHvfpUjeg1JdvqrXRu9Cn4}y!Q*(#FLPfe}c0<7esPPso+yPtgVz*~A
zJq^@rc-3W<#5m5f<JeGQkGrBOs)ViS-lJx2=FDz;jv=@dU9O6=n2{Kb&|cKe?03hn
zM}<<Ks%PU8h1k@vl7WQJz{IUbFBcun?<~?1=`tvQ($&L+NSECY_nF;ZPB0^)Kj{B?
z$J_@f%#u?-Np(LYPkm3hYlGSuiaj1Yp8C4mm9rRStj<Mhg`ZEvu&nL<E-PU0WJQ)+
zw+w;)7z(f_i>+HyVJj|35u@&*IVx*%2X=Se|GK-{(Zd&yK`adRtj2APyDGE4+Kp{{
zTbIOwwKA9na{$B4Sj+DZxF<M+6pabEz08HNKaXaUHA+1yR=V5v_bEjXY&a3`@P0gg
z`^T{XTQD4)uR{cA2HwoHzd37nCaly^0O6AkiBx_IP^^x<MeUNZmyBx;0<u3cQ+OYA
z3uvG#X{A<Ua(zzqHcACIhU0TXBHv4hjw}Gkg(Aq1g<*BsDmi<9VzaS;Rg5{%Xj`|q
zta&V=Hmf-(<l3M##+%qIN6k-^-Gmkvip3P@)W<)kdZAxm0L74%JohdAgH2(+JxGm<
zb|vL%_#Qh6847!2NTcAuf{`x3I8!SKE+llI?O+{?eld3LIkkpB%iSR`9*&bLI@?1h
z){?4Lb1)OmsU}4gd8a{G8DC5*Jx$P<AYEFmKs|dX9FQbUm)kP`N^GDcDYzYtew&{}
zFv-lt$d9=R+)e2fIz<%l5*2N`U13~}Uf)b{^sS{bllB|$&&ebD%^gGaTF?|?jz$I!
z9lJmpY2Su46>aj`1|d;bHhJyB;kV7aomzMaUIaTRI~+)zh14g3UA_#Eyvec<`S46&
ziGd>cBhWxncr&#IX47@pk(|v(V)Y`?Vmx-oIQ4H!n?huu#S&MeNi&t~`kr-&S6g+c
zPe*Lf^?1^8aHdNj_kU{yv!5As76#G*9m(eCJU<qiWr>VMs8oD!ZD%t((P@5k<`@e;
zUQ)txyhhaKG~c2SSgk*x*`UtyUOuWlIiv88Az}WbLo54>2thcRap>|zA0|W%5Vel_
zlMUd_jEGmXCBJF<aaEzajZ4wtu8@IZL~ls~Y2w6iAZ=n?aJIr$z>4{ZQr!3H7UyJV
zk_=B4(TI;%wYO;L@I5>+Cu>#{^B?I1<Q6=r6dt|611iflN>|R7TMQ!~RA?0r#OA9M
zkTRd@XMKnBNzpa3VZ3n2P(2h~U-QuPxX|uzqjo0fkD;T0N&OD<_w!1+cwSzqw4;Dd
z96Ohln#Nhh1*HXXis+KUyl7S78kL-P(Q!gYT{L>+j+Y~N39>(pC6e;Xs&6fnzkvOB
zA@A&J14FUfb<uys7Z-Xp!Wq|(VU!;Lt=$|VHVq{RW9_OiWaq<ve9mWM-hTktz&5d5
zZ1ak|VWG#pAqUnAN5nT<b#XIq=&|`v&$6?r&C#c!%{3PqkYqGK*EMW_ZhVf&sG*`?
z5gpgO5)Q)ULZ+t|{{u=0r1?Mup0r93p}B3X$Su(M43A=i!s^{jn;%psQwAB8H&mw<
zY5JLPXvVWhr=;vf!s-HDx~j+aXxaM{vcoggOvYM+<pw53klbg1<(~f-`T7ltDJl~6
z#mG=f&!YID&Lr7&_p&<6=%e^BV?Dc0P-AYuFW8d+H<UOlRN_a&C@e{Oojz~A&43@k
zWR$&zH8Jt~{y;lMYR)<EG_e5>XJfSp4}ae-dMcWZ=S|QkJDEk{qNkaPmL8|-JzV!R
zbmC7)<l?@JkgD)=XzoyRyhx!c!{81y*X9YT6cgO4{mcZ)n&K)$x4#~=6ORAzx_;gA
zc^&_5aMVy`@%ZS1M;{eRDaO?mPRmaEL$Mj7z^>$;ycG2ibvS8OW!C*<u}B&AzH<(w
zWH~!0$gi9*aP1{fCR^^xn!9R$yny|x9m%36y_h)xlIom5y47hKHQ8(t$lBjR02j%d
z(!x&;NXU==OEXR-WjuvI8b6L67^)*_$u}o1uo!`9;38x(iymUR0Iw6gfead_p458o
z0uaFw5{QsRNi|ajr0fr1ftlq+Y5p_o9|H3~1Q|sSF+AWkg5JMtgw%w`BWEB&);|QZ
zh;imqpg}JIK!bXcn)plqA;19<IF(g$6#p570W|2YxafoPAA;FGg!F>jsDB3a{4?nP
zH!j^|jg<rAofZO35@D#y>s3;%-7#xeFVyK<xJIYjZo6XFA~#U_Al{(`?wFEBJsx2r
z=8>M9g059SVO!sy_VDneAupfX+~TG#trhCx{IE%j;JfKVsDK)~78RjXS)OAQ91O9q
zTVC7CpET7jy)w*8r{|l+TiDOnYSrj-c$A~SOV?mjdU^p>>!V+L$(NLjNRy>z;$$|1
zIlU1~y;9ZQJmC5E8rmDVO{2@OVmea=P4M;xb^e?VyS%W0!8enmXd7u&Q7CNZfwx%d
z@9%GKEiPWVWo@IDdD(H8mSEgpVfu45OC$I1;bt*p=iH|2ghTr)(NS1>NN(7O&BnS(
zi_@8=R-<?P&zW?aV$z}I`E^sZnytD(arq4>sF;o2#G`68H2;7{77yr2R7(D4pYD%F
zz0U-+%D$-746SwR8Gob4tDcAK8-&h%yIDVNJRutNMlhee-KTI|NJyv3CLj~Hj`G8<
z4lDU^H=Vs&%fjU$wJ{~F_x7FcEqI2XQ=6~%EB9-8`}I0Z$Esti|Ld>x%qpz>74%3;
zv)elVN9$LsPWv`0AAf^K^v92{J&e%W#7|S;Wm|_=NA>QjEVpaJ_V(Pv6D}8JVWnFe
zEqw<2M$hxPoY%?ANT~eBli$7CV`3{G?q}A7onu5={UrKKt`WVDZK=&p8`=G^D8M4*
z7ldVYGTNc4s;Xh6<=?fxp{nbdoj+D%cQ(yvPi>s4`~Er>XGC<VrKGMO;cu8*snONX
z?-ebLVSDWd3ak3PysB*S89kY&u&TSgb`?df+fTj1rd|l;#F8DGCx#a-l~vFD9BKA_
zVA^<8$o{x-(;Lfd$x<HV@w=pX>u3J4vCqx6E~9~|E&~_6!Ln(g7R#eN&~IEYifkg<
z(&X9$&sUJs+Bu@@>(<-s=4w{O_!4{>1>%Ujd^5U86@DV7JTY2J{+{lr+g>!xR-<8R
zQcP+<(S0==4x@J@m^(YWYQ5v<5}Vy_za*6)$?bGg5%P{f;M`L3{&{r2xq_WpC4G_X
z+AYwq+Qr$}FM(O^m?$>d*;3uS^5kup?Lnyc7miU)LRyy?YOHW$c_WJ`8diKP9_7JR
z-7i~bOI1<T@`s(K2{ro4s3%<`X*2L*MMvvAjq3H}POVy6m`GkZP+;pM^6~ZZqjjrF
z%f!C==C93;{5>qTT{AY_VN}#lrL4GIqNji;E>RJ35*?P!HVa9l*{PQ4F2bDnL!XY%
zgbQvJGqt4>%8@l@>I+86WalnSZKn#;)tKnYi|!8>4}bY-#Jes|?D;BfW7fOBK}@3D
zeD?QAAJ-4Ok8|-01Bc!}vF|YW-^?i#u+J+@BCQurNtY?;-BPPiJa;USxY1e5%Zpjn
zT_x~1kO|$k-JD(59!gA4w5OJ-D|vVo9mb^-PnRl<t9QL=8v6P`vlnQ^CA?<m>>WiM
z$(1H>IR)Fu=cT2+ysmqISG~bj`X7baMldXtxfnRu;w~jcNB&O|+{p>HrsMHS`74GR
z+71>qKHol;^R0H;)(RkZn9l9Pr*|5BgOg!1FSk)8brn!S<g&4ZNkVBv#8(!py0mQ;
z%Zv%R9%}SvwA&2%-F>dwMrP(eEDs6ydWyDt__!<Y?En0c$zZNjLMUiYpo$o{ie}IJ
zHY|ZrnYyyx)!t~LQ(SRP!>U_V;iwbo$dMm{&_hy3yTEzJvRB|8nV6IsY-Vj?#a^Xa
z7kfY#ll!wg#%H(7-tM&jr-l=)qoV`-CB&mMQxe8={Eo9rCKr?1G$nM2wuvwvmIB@`
z-{xHgbl7`-eCdk#t@KMSr(baEK)5Hj@=VBnG?!Y@OcZ*jb9W|ox_x*2^d(k;7a^OH
zxLWG2{SY9VfQ!XmLbLbu`z!rX;6R`h{ApF}D7o{i;eb8*>zik^BGaG@o_f8pfjR#G
zl*~Rmr|=}}QsclZD-~>2&59dAS8&qH#ZMpceGL*H%b0sg35P=L^O2G1G6z=bgu=m`
z?RZBOhxfih@{8v&r+h`5t-A4)iS>{$I=yaNuSbH$-0s#Lxv}-j)YLRon&!3S7LAqn
z&6?^Ki9w+uf0ddtLA+Gm=Tk4J05sr9g8=&-*k$x_`v*5L$ie)4&2N!zqP>rGxmpvs
z#!EJr|MMWo=gX|~q9~+=LvUCM?$GKGWQ{CgD=)_EqyQp>xLhO%wp_Q(dkO)c(}dsS
zjrgQy#g^#E?}1t`p+v(d+A`|O$C>2#TJL$%Rjbp`;rRKxC>6ZpJT4;J&dW`wYx(Xl
zZ~UFQM{JK?+56W#MovTMA+*%7hvs7W$KjJ+bMAM3o)2#J+7`W+TeBq&GpKhxpCe&j
zwLsjS$cu1sHqlg=+R8)lzp)5!lP}VbonI%Ns&0=7Topo<N~ID<?~Bv2E!rGE!>^%!
zGH^u5XLak_S-E>3+(WpC*!X8T(AlZikNWOo@YgD?cpIgCJm!2mWx?)e4e$mu1SdTa
za9ZqqjCHz-A%Sj1Km!zy{)P+qU4~b;n0!cSb-4F%<=)1z+w(d+c6E0@p>Vr*>5Bi@
zRwCg1vh#g!`RHr?@^2+V@^2DBg4<9D#b4`E<x8@xL_Be=__pUMjy86)EiQh6f}|Bm
zb6HkHr^T}K`Q&$3xr=>7uhV>0uFEPV=J_}m-KQ_u8@ze~xASpb_i-KlLwIm<wb_<J
zSoz*jM+_pHCOoE0DnywsCgKvJCX2{4q^fZ#ufVzO(z%YSaOR|zrD(x23(?6y(7=3E
z9jdVSFw&C5hXzh=;MlDSGt9PTPa5Xrh5vJZhr+m&m}TAaaJMnmw#6=jLCQE-6vj}4
z2x^)M>8+%h`uyqZz{~Z|>YCyqN{-3V@<WR{y2dLjdc=W)t`dyj)z{m0*^$_jR!`k}
z&vkm}MdZvyL=U#_VMb-jQV4&~`<&LB&=HgO?^ztKblS6&jYoKDo1Q8^Xillfq*hBL
zKr}FFufE5N1v^X+Qj2f{E9($WV4w+CGdwLrk3NoE&Zd>5I*e5LftF|%SDXr^qmg_r
zO%qpKus^Y7d7Af$-X83_5NSlJb}1B96+J#~c6to$E_kgk02T4!@hdIxl^4|XJT4Qg
zaZ0W>JNiRZZ~X6f1Qta}3FeqEJf(<jdY&g5(j}th3N=ZLe$B8Iw2y_YOGvr69-SL}
zSL+R82v<6fvvChNcmg^a!#fGsUXDkmZ<z#LwmW`4xnlkob3_BRk{ajywecjo#faKT
zZICNN6(a-#FNMK9q9bo-i-d8^gFKB5fS@7KI_+gdoYEchlMtG8v4<8CY{Tl&<Y89L
z{{HioIK+`}+c$e6{i+j=g8)i8$?<g!{oLfIFL65`ntjvR92H_eMFTGNs-lGljEe>u
z6KuRWLUp&LhE;-{9=bt2e14~smJOk2IERyu`i6FN1e#GiNigcjX~Dp^jp^u~wxH(H
zU9M$DnCMH-1zGq$YU_4v%l44-qU`yDSSh2CQ-XB!s5qi!qe`wEbk1|728mN`n%?Gy
zzY~W%CQXd-_oF3CkNh9(J8g$arbxrS!Aw2GXLM4XtW<(bzkc=E-}Jw<xNI@GltBy-
zlZ2di^79!!G)Ngy%?Niu?mEPVqZT?pyhi^LY!o7k$1TGl?RPp#X?`>rf<_q*Z6%nv
zDKNB~`W|rDZvVL{pz?#d7p|0FCUL01ig_HAnyW#~qVJE84;8vAX$A2HDv^rPt){a(
z17VJb^;zAd5Z-Q&F$ia+<+6;Ics9sq{0*|>Sj4)e*Jn8%_V7xOaJ)Pnbf{Bm4fudT
zJ~X~XaQ>(C48H+J&34@neoi#F@O!Hn!=yX}1R5+#qS9HqxMhh^Ns+d9g$Ew3Fpq(Z
z;=Wjc&$6QjjM_~y>e~%x8DQ>a`R?38!5AMj%&7^;VXe?UE|!eHP!}e|Uh6X|y&$){
zY?cPRrCr{6um)Wuu-3H^jk{2%u2WwTC=sWd<u@FAT{@f}oa7biBDXtcv(7hu&86n3
z%2)<hFWGzT<SXCS?Z{0cDn#C&{V<{J>AniXRxke8Ox&=E<^qRq7eX;xrmL(k#MX^n
zgfBd@IXg~Kz6<dAD!p2#JaH7^Qt*J;3^msEq(j>Y@2VGIQYa1?2!bymzg)_9k~`)D
zCT!t&jg?t@4_QJ91|y1G+ojT6{%x;=A_?x87%PP%H`$r&oEpj<artZ%%0($D4P<EN
z&MM{c413C=a4YPZ-q%mTPVZ{UAkiMmNxI5H335|IU82s!c~eRp=Tj3vv#jOjagsBi
zOUI1-&daJ?j&w2%$xEf)hjtuRO651PEBxrRaxcUW@we0SkB<@202nW&`VnrnYM6)b
z^SY$%0Zitqi!j-5V28X7(`P^V>?910*a#9J=f}wt8fU-amxraCR|nsgEAH}8%#}wx
z&KEu2&Io#qssXA|-{FEw@z*f9JZTKX_>WMTMxp6>1%Hp?6X5Y7<@l%l$@Oxqv`Ik%
zsW-w@Sa$aQ0iZ?I<z|z5)L@}Mermp}yinx)8pR3k@DV#44x=QPFO^CCA<sR`Y#83%
zeso>u%%F$=M-*FEcoJAbuvM)48!dnO6S6q-U|UbUS0G~jF22ECKpMqtgm6>>XhbE`
zP3(R2S$Uo7>vU&vInJBABQPeK&mQ<oB-Dqczv;Ejo7Z-|IS{Itsw;-q4?3`jhQBjs
z<&sv~kuW;RG(ubN^z9QtVul|6qT=)9OR)-rS0ncqb|?s+j_bV-+P63WN4<Y91Y~B!
z#=>lz{#n&*mRU#)rd6fvV1D5y>gM?FQS@!M9e5qraR(^6k3qzW7zO@Xy8)GwUW_?d
zc!pWJjnG9=_qh5*`2F7M4&NpP%VU&&2u2baF+7Y@$|;yX2%d4@&OBist^6BYJKM|g
zTq9eB(QDCVRkI`@qUp~uHnASj-|C1FvwN|AEH8l!w#3o`6@d6(WKIc6xB1tf(o1Uu
z@O&}HX~z#;r!SYWvFn-ht&&b=$xyI4o`LlO*6wA!b1=%!<6*yUkK=_iUeTKg*6|+x
zcD<9xu$-LYd!cd$uVvqB9l|jhapwDrX5hhl)AZ*hkS@AQs7s;J#D6y;rK!4C=&))S
z);ugHQ)H~;s>e4gzY&cFza_rT?wwPL6PmvtiXYirtix9#GuU#Luj^-AB$pSp?2;d)
z6e;y5c6^+~GFZ*_<uAY-XF0&9ZH}BhEgoZrNEuXlY(YwSFhANl;m&FlaV{bcI~;G`
z5I(HC4y*Dod=pNHSriDBfD8~O^St=@5K~_hLBTUB=0Zn4=u#ra{uGmT(1<EF(jUB8
z42_M+fhnE$k6tox1W`opJXG<K>Vdwk6T}Ao3hjuK(|IPV*V--&lL#9(YoGL#UDIzd
zooJ5Xf`ixpj#J}6i*=k(&|LkxkdzDKAcNut%fc8CK8kiK)xmGrbm!244yUoxB*>M2
zlNIsI@r;w+VN993OmUp;le>EPja=-L$A<q1j&aA_7Dm@OM5|~ByF_(-KIz#*Yga#?
z!JAYu+#V8{&$X2jv-`a;Nw?fyNHiW<J9QULRa?Z8xc0}1tZKy~;<LdRt=`)^O5a%M
zp``D%A@g|*SKL^~S9Z<Y-yGpq5%efGo@_XhsKt8qcyLB(P9hj`;z8Kxu2Q%27?&z5
zWjaM@+(XRWz-cbc0_AZLz&)@^_{{7vA!5Q1=@3Hk7CmvS+rNJvMDsp&m{P@Pi3h<#
z3K$OowxZ8}$DbEGkdJbUjb%&R`Q{+OfHTD&(2|rgoMJl6tzqZq-z1K*6JrZWjYwTo
zG#c!MW#Hv!Ve0cdv0A*=TB<y6scjRSEn2+zOd~Q+m*ZeViVb!dJUDvM(%d_KwgeEZ
z8>AP|N+41quwfr=kpVdDyW+}JXd7%T4$QshT<ZGuJgjPcp3Dd+be|txz&P9rmZ6U}
zZPqC+?nS2pNL~X%+*P<<&KhW*CMpIjU!QtEaNNAgp?o)^zFRa&qpyazP}^cb7}zjr
zm{$wE#bkH07&w+B1|UjAMQkgMZalF})c8hG&YXa|@#oD-?ghOC@_z`9a&z6VxfDn*
zoe*B>bMO>Xe0O$yhchDOLJ<o$0aU105lS#35s4iML=BpVmzS1`FP|La$vaPebnUSi
zi<u?;P#xN!HX}w6o?qxVgcS}QbQ?vPq{o~fA7reha6Co}E@5hT8HSDBkc-a2tlp!j
zRa7?#7GtJGVW?>{r7KOcNcbjiuc}JV{9eE!i~_<}s^JrBUZUsu`kuIPZZL%y5#ppS
zZtl3kYTdcfq)mb}MF)2?wt^#EEJRRbm{7)ovrMxx7%W1l?>uw-L*e9u7|NJ~Xy6M`
zR$!A34Qpbr^Sg!D*+5}mAL_!9wv^QaZmbnj5rtz2G$e~A%}M+GI{#O?xCnTm_>#zs
zqzB0Ybi@@=oVg}P_KGE^ae9$I4SF(KEz_Y8mT5#9(FBB3v4%7=Z>8Lyw_8&0vl%~g
zznhO0VU76I43D3H8u<bK!XpX4;>&CfC*L+F!9Y<zd3p0K=V?W*N(25m`o!ck8?T>o
zgA_LUsCAC@Ii$_dC@%F%L>}C&HHj>Y+_)i(PMR^DH|yV4Q8LCBopGCFJo_;FQ|ol+
z0P?)I7T|KuS10co%;<M6)w(YCi@}IFE!xb#(r%g!9_AJ7e^hHyP1RB#hYudoDMrx;
z4P76%@!Vu#VE@4+ZP!JM3`a=Csfmm;3nBa*MG`4CZ07Rx0egm_G-M+}3vpkp?Y=I;
zOAf``8yU~xZ<UJ29eQjabInSO3436{3isN@jhMI8NEU6VNLy>sNI43Wt4zwRl{Uqq
z&F||eK;)U{L851VJT@kjC}7h~JPaZYaf(K8jl|WDwbL@{WW{6GT#gruK@+p)E`pom
ztv4EAAPYU6rWCo3z*|_ncBvpZZZc1!=ev_glMTB|CVB?T9+`dd;UtKq)NT-8>E0QP
z8mj%=tob8T$?e5BxUv6(aGO)=z>h|flq&>jMHdTA+7biYA|hO7BY14(psu@yh%eIB
zAV}dyp@@#jGrvZ7xb*P>2UfgnTGd?^AOaI!gc&Lv%&-Cdl~0uk#SH<jIiLFw)*_T)
zc3?z4Gz_W6pYJOz44>TLqxj5d4-#EOF<K_>T~a5p{Hi^{F(l1lI-ARllVx3r)3OYa
zBiz-RMwwItnZ-Co4lW}V8#KsMDLP>35c-{<w$&6Jmy7VG`mQO6Vh%G7e^8Ee)2WV5
zT?J0QT%Q_MvspJAY@of=)e?Pa9>U<2IeSQG3|e#^qSm|x7xpEp1=o;_3Tp1V3|1*I
zA@AF&X=jhCMI9H$F?YysXZ(1+^l&e^18ffBbW0vhE^4!%B9k~Ou9-!h$fYqn&PqhT
z2q;M4ebNz9!ZG2@(uq87#-sl*48#vcH4lu;tP*Q2YbdsdbWt_xG<0C7%phakTWLBe
z*YzM+4j*-(HP3sh1u^-EI805T68SG-7;d`wgk{I1BF%{gA8g6@k98!hx*cNd8Ea@(
z`AMWPj8bH;KwryQh2$Oi7OiD+{Ai~eoSYo0wJew3YYDH-(MrxRou>FxrCRbPfuc&r
z#1(bx)LNT**u`5V7pqZF6&4CA@(ImeG#RIdX(PtPp2mdp7#3C7i4{-C%T{jN3#jzC
zJl9ZdU@4z&S4nI|U#CmnS{nXgY#hDqflM{p08gxJyvxlPD?%omn|^R@q*1`p(o*R*
z$kZn(VDHmDnz5Ze93Az0QK##r*4*<dTS+fBL<XRYO;7Zb1)wU(UA()JNr2n5Z^nON
z!5^QcRFjYGP>lGawmCyx$Q|oxWc(y$nq9npOx-I{bW%hKSD}!0tt6t-Ok8bvot&;+
z!%;dHo66z$oF=kcKjA_z3dY2ad3iT8nt@;%;W~A`5{tyW{+@O1_#X9aP}>rAi&~_6
z-DH@rM&Scv8ot~)bIMZZ8$zg=Hi;u`N)fmu<9z;k88HR$g^b_V$nLm~5bgkZc@=~n
zn$OX6Dv5>7No>srg*nn@YOW5yl%Z%Sh<LA%h$`f-^CRM_ZZOFFNo*>n&61w&VgpFV
zW|5g7S7Fr{zX`1ADBd$inBwQI)m3Qu;b5D*s^!n^c+~J-I+X*6Y_dWmIIOzhv@zw{
zQ=&o@njJS4ITQ=1puz59^#|Dm$*?d(6%m<tqlmR_T4D<t0#G~*zrtdPb=-?q>vuXc
zn!nII=)|wfdhe?(R>P~R)hP91R@frUZ}#)qOXqpSE@pwn@p5HzFNNLsybh|4LzG@h
zXY>s4>FJ8Oi`j}i#|CeI@-P9kiha7Oc0GE#I`llvKbKz{7?OfkHOdGoi{((*juF!Y
z1PU629$7{y2I<}N7HT#~naoB-_jpIdksvHW;d{4gPqt;chls{RV5#t#`yVF^0Ywom
z$T@4xv@GZ~srbyW9^y}Xyx@qzOb}KqwDg<yJf-lxiSlA3B7uL5JC*lxip*SXp_i$j
zu4WCDXf_Anq<!tWfb`S{i9YO2LYhn;1!yUK^e1bzLtnd0oq%C~KoII_v9i<>Ol32X
zPglut=(mO}{<qZ<1|9q(2IWK|`(=K<VuMSZj%6&3Tar5HL(!lKh4d&IdT8F)XeUo+
zJ^SD8&+$=EA^S4env`qNNSFsh6bJ>c0`-F&ll{yQgPiOin#9?|SJM6E3nIm|8AvaS
z12_Yobjha@$D?$5?R246ltcLhO-|T~MdahOA05PJg1>b<B4YBH=ZH5M8Noh6*&o+N
zI<CxEgMFJ>Y`yV0too`23u7YH(A=sJ*|X-NsRH9E7gLF>U!swuJ@F1ZTc2>@?jYGn
zQf?S05kB6PHv+!3>R~~YQe5r+V*K1~$5cE}qH_P6*;}2S;iibK@u(t!em@T<yzhWM
zF0Vm?_)VDXyC=&_09tQO>O$NWTfzNPZI{{CNv$t3_77Er6!;?}A92_PkrA<41I?N$
zliNN{bu)E_NtwN#IM`gtQJCXMG<7T)bA^I<#0gwdRj^2&Ekw?IEtRgD@ep-ILpzIm
z9)4l>Y0z&h=2afJ=7?Y~;n%-UP(`x^j1evGv%KXuosuwa-GpyO_Th!&!TawlMm^Z)
zVP4D^uXDPb=(#EdKSrJgxx|;^&A-tMmN668vM`O4N^N3TrF;I0nQ(FU-HWk^Qk*gs
z!<iBBV59=%=63~QjX21LMHCglF(G=IINO~H7uh+%6_VYelNwXg@Qw!GMK+}pJQ3@u
zPb3K+{}$?=FO#a>Bsf<;_`V~M1gtv__j7Kz;zu*}2f0?rzG68iB=dI!*#nIYE<cmR
zmII3nKRh6BB>-2Wgp0kMl8e2^SQdecHrJ)Xd33Jdf7nN^3%;^?#N4On^Dw_ej{h<m
z<L9{BB&m^wN{?uwRQQmLP8o>Ze-}0r{D?&t!9JR;dM+2s@8L9K6dx@fWoPatgvWxl
z=7BPB-Z@SlXK%O>>5cX-E?^ck?2<&D#N4+7giB3Y8oo!%?9or%cYb)q1fq^e#qEpS
z2@M$a54k7OiFN8xW!an?u#32rrt3cA&yzz%yAt%Aso`I>c;}OHaeNL-?Jr?WlVARy
z^8WF;vaf3cMq}HyI=1a}Y@6M&t&VNmPRF)w+eXJu-ksn5y#K(dQ*}O^FS}~*xz?Nm
zb1#f>jcc@(JWU-!yEw7GN2PEg+{#`j4)J7fTaeDG$ra#Bn{RBgc$6Mn49C1jzq&SC
z8yvK{{zk-;|D5OPk6Xs7xQgMW#}qi0Y0;tobMEf)T~xKB2gsgwVJ^Jm{a2Gkf$X1|
z#C(OGz*v}+JxFq@IJTg&apLj$osR{;NQh$Vr@G(VEd-XoE4%!y#DI=-q_J1ExU(6)
z)3Vy%Y1yWekKXUJtTq7nGPM+c;{_;x6Wjs-P%@jvt`Wb>)>gv-iQT5;$m8+vOfv=`
zPuxN0;cNFjgBoCl`bHC8{qH<+^LL)udiE`V2QWhuNvtc&S6w3!bJ|~}s-`BDh>2y3
zNka@dLR;cgnJo_GWvvbaIgP8EV6|<YVqKbI=GxC|ipvtW(=%r};&sNWJ{i1m;V-=L
z_`H2O57wk<q)nP~NGtXlc~4lge1aN?7o$t6cuBGgzDuyHUk*qkmJw+|YnYbEcS+J1
z8@Iz#*muVhFwzKSI4;S)ChkA=Sdugdm_8gTrQhH80Y&Q{QGZL3i<X$D7CMXfxYw5$
zn)Tn-91Z1%%Ubkb`P3{+;OsyJ?C==uFKj>0q_q;<3Tg#?nu<yZ-d(>gEU_yfD;l+@
zIrO~x03q(|>89Z<wU<%Lh?f`2rj>}C)v}K<j18qycrA(j=Tk>R&zA+cjplbReZmzI
zsvjhmOYy-M5cb_+Z1$GNlXKM*vW95`Z=KmW*8poH68Lve96^0@UrM>`B%sa?*H{kK
z4YC=^_bSnyd<1X^;C){DY<ukwmNekY2VKrmWc>BEd+wrFuez+rp5u4bUu63l-u^I#
z@BF*9{P1q_?Ir|(n^X}>8qsH;^tX9*NKA2(>rAKEt*=^)@6sbtShQ#AD@0!rmisxf
zcW}ufsV_(R_+2lE0028XuwqC+CZAg35uV4l=q4FOmke@2>#}-cDCMLV_IMKE?WDHV
zticyI`SGScCD?V<fF}Qe#?o0wb|!9>`q)9FAZzJr>!R-FJ%OjMden3c<@g34xAJE@
zP(91jmI!6vqoCDWm(k68O&Rq%WUT}dkN18cPHR8-i>FG~P_Z*jW20(b=l!Zgfa7rk
zd#tJP6cydfPu0Vs^FO4qQ-0<j3b@&NOI=nMYJJJl=xcgZ9%@Y<MzAFnYs;54k9<}(
zm*3UaX@GApl+8hOK93e6iqXbzIp}M~b_MLyypEso_+0M%7ZM}2>jYYc^$W<CO9WAv
zf7yeLF(?1R;MRz1vuw^pQ<pSuZ;v{v=UauSv#)zwji=|vP$WoQMpk7_pEIo8uwdHu
zlX4^fGS9O!SvGS~GCwDES!<zoKQp%08%Oy|`w>1RApLe^omgNi<gB`)(a>5X+YU%|
z(X+je)jBQ!^OH#sBB&}UJ4Q@p@Oi=6CNHXupK>!;g*j<v3{}tRxh29s@l~1km-Nz4
zE#B(a1h~hzAm#bg^xEFd(6j0UWYw%bWJIUj{<g5HLoGMIpbQnU-A^Z96Y}y|K?%o~
zT>*a$biwTAZWunGOT&2;>`bTOZJ~GHYa=X`Sy@T;5Dc%;CcpGbc8N0AraRjSqJdxY
zdw6eATBS{T*h}YXDs=H#x#{rD-LB@?g3H*=Zk@^P7`gy#_8?C}ZXfmw137OUdfzFC
zMO>E;{_0L<ckw3J^;-KR@nn|3&C?D%Xl^D%)r~lYH7G^Tq+f`fm#AP;{9Vpjd<`B_
z7AmF}5S3qN$%`xc?>lrnt}j{^WR~|Y<2jzJ7Z(%Bk{4_)kA3Lps6Uo1=O=Wvmw(Uy
zjPncal6*_uUHsBO852@nz(M|;nye5J6%4DM{<LF_EV}jUZhWd?@8Wfo#yBqBt&E>{
zh|Bau8tyM2u^LQ>J={oaa$aD!))@D(XS*vG4PV=qjp`KjJpH)vw#KLsXROcPXo}#?
z*{J2WDjwBy0O#(~)E-e!q_}+G3ju|e;4ptWofc^1)49vfM<zO2#R0biguD4{+6B1r
zT&&FsG(vBR%w2==D~Pu;NV=TYPG6z%Vf|~b34CLvH&<c(1*dh}FgB@0lX<_M)h;b`
z(YZzbaXQrT@3`))Xr7~Yk)mcD%_G_>NYqR6P^3T_naK~CStm+U-tX=zyNJ9P6xJ&9
zR0%u{sAUjS625H;P3*8R+h6RjFRik~*dQ#M#0X}CJIKn9|2|%Ibih$lpKRJMnF5bD
zx^AyH1M9up1wa-O5CsZ1`|Z&%0=?f>bTB}CL^wr0<*l@BwGZA+LhPHi&KK5p0eNAO
z)jITLrOg2Dq3DwXP^Heow#E5PK6)mB{MTNy!1~5*V<lvC`y`f!9c$~<v8jCnQOf9f
z$D&Ydyt0ym9B-gSJkd<dc|zA`KA!~m-?%Zh`k0X^M$Y*S`0VYvZZZ$LxSI|!(-#|9
zBgwb?1&Y+ieC6C<<ck^mC1)bTuuLf@Z<sk-$kEm_LnAL#vzvObA-hvK99H5|<Y6co
z0w_i*n$?#VriX@xGZn5Cx4!>w;%ZtCej`tq=d2h?nBp4+)uvG&bb9Y=y|t%o#}|1@
zp+{`SH5yjp5Qsk9YI}md)IuNS8J9TQbcVJQTM@iAP+t~kFNH5?T`al^)LE9t#+-R%
zEYV>q4qc#bLheP)ksn%q&Cd6NthKlVb=G=z>n?Lqp8d5@-;?KX*KK#Gbur^Nw*571
z$eoCpv-%^#wH-gnxv%MoM)a!td9bA4)b)II3J{09J62omuN&%qxyxx3aXtotm@Tfc
zdUyY+_MQx10n$73L-2Xr<WR^4fKUhz9TzSbimz5(7>`3WH+6SjW7d?I=5HG%n04%|
ze~P_zR>M!{PMWm5tgSk)Qh|Ss`8+#3K?YTGQo6q2DHLBPwOSt0(y;;k2v~!DPiG5d
z6sH(*sE7I&4E0w|&7@?^Dz9>5xUu~{CC5|7b7ylwFBHGYXVB>F3^pc2cVK(XQE*Au
zu?B_XufF>@`6(RdW6?Ap2DgQajamQ7S-IxpOuA_^-Z&(!lZ$nUqo>5M-n=t5dePOB
zDAjrM6M;&oZb9Xidy{Nde@f1J5%Qq@da-VetF<o`(n)sPqZ1Gir_MJQfHoms4Q$Ha
zkSXgjaZ)S2G0A;s=c|QU!mh`zkqfV$QYB|Z5`2cqzuBlRKHCiEof-px9Q5R4BWCtO
zeM69}|0!*@%JJRZw1AE0;g{QWzkFYDN$kBj*|}oO*S@O{_ZeNyZH~KD{g_!A{v7?z
zFe^yzl&vzp`{OKK9{&4o&d1EuC}f@FgZ~u%IbMYO!>w4J_vCyjxRji?kQ;^zbGKb9
zaqL?uN7j)(H&caQnFa%2y>UzFa<zt$rKrXIGvV)+si}^yD{WtF+Ek%9#3Y*{obhUW
zT#?kx-nLi9_w=$nrUNidLQXxx;B~OU8~pxLbyvbVN>`g&O>}a@=hs`FH_%aA-S&Z{
z(LQ7Kr0&<<43fzR!;-zW`jpG%?#~XoxWx`dksZYO%A??7HO;h?z8Z`_ZjRfEJgUAw
zbQrujKQFI8CmyMSlcJQ4$23Eex=>Njc9{;g+g!>jdtly{n!C*j2@{<1h}jV2p)Q&~
zPZ_}Ka`(g7!%banp$zXtD*mudBc+SOzs$zgj99p#n+~ce(_xFX3*;m<PRzV0#=*c}
z<#H$5e!Rp~$+!4T%Wk5={_1Z-&+8Qj@0HvYcpr@Es~-1KXOKERHq~AHIi%U_mB;4g
z#=|6%{xyE>%@fJl7b<a#JU{997X{iN>~<rA4D#P+yMV{MUQ*-Q#u{?v)9_;LM~3h1
zA{A_(j~pk)pU-x}Zv5y$hru~to#^H5_hANjLflRv_LuqVE~9qDEI74G<|M)=V~%Tq
zX9i!}5ETI|#Uw&5(wDMLpBw3%xQ8w!EM{gZ82nw}q(S>6fv3E?g3roCJSIo8v9`a;
z_^VH&r!~9uCPPO(`$YiF5EtWeU>*Vx5_muF^nFH`#(D&QOP7kQ{xBMP{hYt<CgA4B
z9(55$fx8_gEoVtQw>X`p1BAUNpyx)u?n(rp9<ui3a=L%(yB#5qI<hr+jC%3-N{NTw
zYE~TUl(rFnP)TZGp(Vu&mxknl##@Clm|cGs7#1?E@s+%}0-m&X7w14Q%Z<cNiz`F>
z>nxt|D(g4v2rTgG3lVLSXlumLv9qv2NYKlV%}3N3V6Qr3qF39Jq%U)P?;`vo`OA1L
z2}gzfEu`RhRvofo<VC_8_$tS+Nt`PoLnAgLq$H6>fYl2{0CxnaZLzPKJN7_AYxr$S
zUCuT=C%C`M545q={YDgm4NZ;bp8+HTAbcWXvCu6~0xw0FB9H?QHGsc5_7A~Zjc3I_
ziI0+~U-`5&!B>{aOQk};+-RA<K54Gkj&r;hl0!K?+qf68EGzY=Jq44QNP}DJnAJx>
z_OZWqeBV-L$@|&wBjx%q^lK&*jGi302dRWCv^n%rRQa_<UeG>gZD(nwRSUfY>V75t
zE7UoLP|9Xt9x6XbbGv%MX=*;z^r@VxRbBE5ByF?x5KcK<p+J5Dq<!ItqYdP7+^w7l
z+<b|YAZV1F1S&6lA1w8u=ipO-%q3Cw4%1>akA6a|QvW&yZ2sjcz5WkW^Jz%SS0xc;
zq6^nYg4#(-^)=rj&g&A>B7!96*ICMvi<vOT*-Hs;G5$~&yza6(H)-bw_3oP&LBGS>
zC^A+p%|<Il&L`iG<?c!Za&lC3^g*j&$pl4YhhYooO`KJPJ=tw&pRd|_>gzS4C<C_(
zJ~xt!@~G}$1mJh`@t<aa&ov`i2#)*ZgF+!Cq`VaRAk07ci{-U-`1wC(SP0_>-_AS<
z5lMTN?%{%F<$vikmP_jU-i+?>{)$s`6CF0rVVsCi%D~~kIQD%WC&cz3Xgfij<HoL5
z8@=^BE-0AIE9fXsI`d^+M>O4x&J@DHvnK)E1T~^Wcu}s9$)GpS=UJ)3iifwp{)I}G
z7^mhw;~Nc({f=wICCAx8hoAl{$x^9wEE+(gLMklsAsE=HTL)&Mmkara*S6F!5BFBa
zjvk@oZtfs0jGfs~wPc)))EAPJ00N(vV$;`zgug?r-@DL1Evaa!`h0P;4H2Wu1VkJI
ziGv^X6Jmi&oYX&VIh<c&IKQ!YAL)aCjV8;ct)Bf)2KOJdzEa~B87JT~Toh2wkA6$S
zk+}}qFQKS+Y?e!wxkl{X&X?Za9Z_DdTb)wlXN2FTGDNPscKwRs0z1|73J@oyjPz8v
zXJc$!7ms+H7`LpqT9GHzCXF#Nu~b>A^0wD>0zz|6P&zqrJ<d^PEf9v;&p@$rrHIe+
zzb%iz%`dpQHn6?(p7uedC||Yd`6mT90ayI<BJYobs#)WtS_}5kT7QV27dJNWf2V$j
zVqikQ4{_*WRTH?qo^EcVL8GGk)3+#-HU3T;(QfqNHR>WcR%p-U6&1l#?&o1P!ePd6
zqM#^%Gj}<GH}R0o_6klp$t9FFf>Jx5xo+5`z(>_g@S1d$iRN-WEw@g-7d#F;=x;cX
z_CRP*#vw@OQR;QaU#=dK2m!ij8Zoj>8hTsvd~?p)(ypHLu6ZB+dB^rUm0Uu%=H0Y6
zS|;g`ypAGeZGNuS_wj1jMbN}m+%(9sN~?AsfJ}uhL86<VovjMZ(3r7~vlhp-wzC_a
zsYO3L?9Fc{*=tL%Vr16mguxXP<~%<;gcE=LdF|Evbu@FA`=O8FzBsC-laD-#a=I9E
z?I!s$1JM_*!|8BlRBD_ObjKWbfbeU92F*WSLBg?lAae%FBB&ZZZ|;X5<W#3PHUL-t
zkU5p$RaAn+#SFvb$PX5?l$Biy$;pbX$qL0GE-<2drxHDaYf2u~{}6nVco=aMB#A-m
z1mHF_^w^Z{esuD^9`Fi5DOP0A<mBLVj+U0^`+=VVBbzAV@dvGjs4N$rghvvl%EiBd
zwJ@A&mNUYM9|inY^e?sb2YFmNt%7j+5)D~}UY@5$tt6S0CJvM8$!uua&+&&EvNYkX
zJn`V7VB<p@lsqLQ%qJ3*o&4Z&ClFRSZi39*$vpcFf)BxlQ8lhHjL|v&h1#E^h}W9Z
zhFh7ddA-*H4i2eS45hUkp<r=;dSc8G;>g+%>)^ALJ&b<dI5^vJBJ?H^^SkX~kq6qD
z2y>W+^G(q$t#Ibm^|gr)5nUjU`Ylj-f5wLze4G_MYQ{akk&v*OWh!cHoI+Pb8LR)i
z@;Hiv-_>9g$G~>CdUZd&Cic074YNryzI|WBolDjZNDA9ei^esoR^+!Qcr5R4EA{*{
zeOjNg08FpGSq^0wkhSRz47-H<E4DwjEtI`elC=H?WyyJ8HfX4<D|efpxNdlCFbsyE
zsHn4-s)tFNRDyVo1B1Wit}@ovW6x9g0Lxx*Px`RLP-*F>GfJk!Cb>$y9O(G-Ng3=?
z0Wy{Yq?~Z(IX78gz@9>MXqu(nmFHV1L|Y?&;kIvEx2sW?2sBHk#7~3NCTXU|#zmHZ
zttS5yAY=_Jy>lGPMZ50ji~hP3YT*Nj<m2C(<FUQ16*<9vx|qKTI<J&8(6p#9jy&Ja
zg%7|AZ!<|KEOL?X<isTb2zTkn%j-@bZ8>6<P*CYN*ql}3;Yl_w^ywht8*9jzTQSS_
zy~4w1V(!3^P;8hiQiL{b5o_U*a<j>X?U#aX1TyB^d*z3een!+uELf~z(&Pg!<e7wU
zzf?+Hj1oeyRhB|^l<uGA_YaskO};NQ`gJh~%iwe5_YvlNWIw3VO`(5T#l0&irq?8#
zA%#s58G(?z?g(b#qf?M7a}!Ko#)IWL<Ii-ZRMh^}sAJp+aHOx`o&CsBZ0Ke1+WqBB
z?<jl^rga*;IR3|(Q1|VRWTJ7-X5(U4v9YDIRYGX6+fifqQfR(v{=S6g;M@QR#onQm
zm<ZCcw_Y-70q7PY9LCD^dq{UOsFP=GFcC8uR%XEfn)+C`(1cf!xNY}il6inHXbCGa
z`ZI6**$RC)-tbSS)b3oUMA-`E+g`ju$o&Z(N_gB4LSDOno$rq!dG*3g>uwJAp>zmx
zMyL0IUyAI{Y*gmazE1N$J&m`K#q9B5XE7E|eLrHl$u_lT*{P@DNp|A*jG~xhM#ECm
zlYXY+W$he2B;|c{<i}AvKq6C}tPLcx^br-e>K3GX$;wT*Qn}MEE~AHp8QUmhwJn#U
z=q6y$T8i}#Tby`{V;p$S{nB^)9pb&~*j{Loo+ojwSoE&AmUz_(8Kb!v$-G{!kk8=d
zlHy%>?o|neuyoK;wjV~S+i6wnqmM5c0gVf`9g|!=I!FBJ9Cgo4;mWAOK>uTwZ+O1m
zwi5;ZP{8NdRFiFzr06gnxCv}LMG77=CJV=>OM9A`r-)G?_}F5KLz}w~3=GFQ3o89u
z<h_En!8@F{hlGSUVuz?m#Pcfb@-gvB4Ads>!BqynTM@(SK%-x3)cvGqTA))Io)@{V
zN^i?sVcN^W#HH`piC3-suK#r}9n+*ph<2Lq;om=Z33BX@FcQkH*FMxH?|JS);3u#;
zUV0E6GD{mlxp6A{3w<gj|JYXDb&g<0X5ns543gH2fx^_Ur@#8Of6rT&sx)wdFPvU2
zs;_Be;_jPF7@Zu*^6Ba-jl;ECR_A^bh6U=cSN-FPDy)Xpra<NUy6-n+6)btK6(|4t
zcLrHt7H}-6RWLvFbF<c6muj1o#Dv6es`QR5?~p**{3!<w{I1WOpebsu#x<E2O<Wlh
zy-diw_XJ`*M=rSSkxMppjV|Pn>+t-r`B5_?+xiWFTimOU0XN?5V0@j$^=v$vC|P^L
zjzWkFV5Ep;=U)IrxsuJ~DUdmX5TE4t-Y%cj>MH(Y-u1GcE}d6vM?ldx97|XVG(Z!R
zgr&91Ch=xuAtOWA&&JQf5>8B#lw4EGb<50xXPP?XDx{CbCF+5HGY2OPjYv&P1($Bg
zT8P*!wPyffs3W2?5_Qfo`lly>UrV^D6qzeFg^@{gm?;f}fxEuh!tErK%uJstBmBoM
zoB-)Crkc02s%hxD*)6alZY+t1orv+c-Shm&TY)ditiOww4Ha6rCGwQG&vQ0JO7_Ww
zMp%>=BQh{_fcRJ~uX#n~I22*Np+%`EydRGeyhcG(!D&n~2`^{JF1u+D8T?f*lwTg}
zv@HKPt3L#EsMicJqs}pB@KqwiE6=ebt?3_@=<N~Zk^?wy@&m+wVtUYr@(l<gPEl0i
z6#vWz1i@hNQJx0Ij$2zXXBiUVok3|h%S9}nB?(7l7LaK@xvBpNrAxlRq=%eqIO&^k
zp1HaI`h^9Kyf6Ei#tWXezb<$jlP<7qtVVtF#0y)1%B^ij495iXLlmZLi7ApqbIK1P
zc-4c&WR+AP2%6#yiM#J0b!q*Ko`vFvuhZjvUs#y1LF9bubsG7&jD+3Puu8$KnI5Vm
zKSrBCJ)pkJgaZWWZqq%i?v0Dr6%hOf(B;tpg3KkV_OJclsRyU;Vn^=8e1U-fUk{~x
zOvEeUEuh4F46aQyHuS+Xl&dMuqtk>Yf28O0J|<1p_!p`<oG(VBUDAyWU&0>9E2=qs
zvL~8fPyEJRDF0O(t!C{qbLDpARVKFy3ZTA%vc%ajFoc=<<Ku!ZbqT~*T7=gB<Uxlu
z^F*S%^xKR_rAitb$HqUI508qzF&aQ-X1&Nxb8*^qmh*{8bMoOtI_EiQ_PUq4;o7lK
z>y_ZVRNXZ20IOzy4;s<DiFf@k@(bgZS{QV^#>K29AlB$b!WqSN%(s|@75PGZt6l%l
zeZQ7rRgmP@AtirZoiZft(klCHjrN&8hChOHAOhD$MjI*v%&~%mxDirx*sm9be{)<x
z-pyC7m}h!UT|ThOi%RtY7wHbtKNlsd<D#9Z5pxLi8J(iE<rYJB_f=f9#@Qbn-7pT_
zOYtLlhXrC{dPY!izAV0+Wx(2gt7)#ET^eTOVux(iJx5ij%`6*t)?;dX6Pl^>)3DAQ
zEPBwKT-AKurY*Gs$k8e_4Nc7vwP&Mf*pX=JJ_Bjh05qX<260Q<bU%Z|@z2}5b2{$d
z?o(7W0OgzL$&+v|84gC#l$DmVIOke5IxnSAnh_Bb@yiVXqiG^%rOYAHuZ}SfJ|rtq
z&hTRi4)`>Rh$l$xM+}YmN0w?X4&CH9jXV)h4FE<wwySqx4OeUj1};|>=QHJ7e5xPK
z(WbZyY1OrT)$AE}OWRuxxU`QMh$W9jnXONh$rf$YRw<h2!IU;!Hi8f!1NsX~WR(nB
zQXj}PC#P@^#qAz(jr{j+ocwJ=bd=})xnorl!_H;O*Ry<5ywazu@(ZJuA#QN!@~Gd`
za>8~|jy07T{-U)H$<t6|c(zM@ZzN_1VOOmYmGXb3RJEX56b2$qdY(1`#C6z(q~j!&
zk=5rW%+B;$CF0!!dsVV|#s-pnYSgOydvwbIrkLGak7{DZS-t|>qy<j&dghnXOP2S!
zVqd)?Wq*y5A0|>!Y5VpfoP{u2a^7SPHneLh-e!!bo1rPk95b2e(18EAPoG&Y(ZGe{
zFq}IUz>lF^m23Xs5`B{`H-=Ffk^D37{I-zxN8Ttg(mv{wnQr6nz}r7+*fx3RhVD{M
zB>OyZQ;j*$Gr_iU8WqCh5Dytjq_eU!R%h0wc{Z;oySxTp0E1o~LXtLshmA&s;1{HK
z8-oMFbasaW`=y1i=l_v&xZ2C)QPYbo60j9^g|D*rAk_&Vvl`>z^-mJ0{xee5n)9oK
z!+}C?uBm4utsAshEi?qs0YX1T1P>PA54&poM&ev!4rEe=wtA(msPsM!_9G+>4TOR@
zN1E(x{)y}4QXyi<DG>AnpXXAp;<A^;*HIkUX=$*ImgksWO_Q#P1exUlx=$Ir_TX?{
ztuWd_B`2T;7K}5mvWP5x&T&|nQqcX0Qab1k#8S6O@vvrVudX`5Nwhr2e_^;5)2O_A
z^!(T~PG8EIy082tPnYC%P#p4lfH$uX8j^=e9<N?;8Y)@d({Tpwjg_~Exd7L=cE-+V
zGpmm3Xygz5qV1d_In({V#rzYJhmh~@(D28J)=rk=pl$3qrJI5woXw8z79EEGT0%|k
zI5UlvO>*59sc4=<P))&p<KTMG4e9=^YH%8mUUD&zpezS*c+H|&w)SIMIQQuB8%*0P
zY50t!C;mg+@yItp1b-PV+rnz5@BpOqX8m}m*WV^(H}5xQn)?Ns7j2Ll2KGW=gYd^y
z2g15FD<FoUWZ^hT$9YpAB*T3H6SY&%I=OUtd-#(i5SKBfyh3&XZN8DmiK?NrJ@z9c
zq4|<fA5vL7CQ?4(S&#S&?f{Cu%|H0@sD}eHnard)y_ywrspqjZ{BgcUm(9QLoI<^m
z94pNq-|Yl$(_7qCpUXCaD3|GYoD~YHG?yx-GCY-|`T9tSEz=QD%Sh&b*vp!D=q@jf
zMDsqDikv8z3-X^Jky>3jZL5T2ucgGB3v*j0{VnWPff%*+c+9Fk>i#Z*4n7ki(#SMr
z)sU1iVS!>QSS{b9ENpcSdnOtI)}%y2R&%VY67tBFskQKBnZjJn<$=gYE2CI+8<W38
zOh#SBR~Wp`Zst6x^_~kL7Nor=(QGGwkf=I%ubr9EV&~1Cdl%)8wLEXj@{csXdMhJ0
zi9^5NY%9@fXLVp5jK3SMx*f4`##pORIGE{jsCXDj-|Om4PgVoaRr--LWFdICa|aUJ
zk}x^#g=RuJeUV7<n0f^7NtXyONW60Oo(3jJ_8ZuVbomwTR|N^#GIY5aJ=@`F>0s_%
zF8t$i`a_}<nq!%=c!?V3j5R&SV_Z#cqk}LIqMT5dR{Ql}hiHPzEqlv@(*7CGY`OLB
z6pLYn)h;2@Wq#$k8eYSw8ohb;JmWeFYDK7iFBVp*K$dqu09Ec7#_omABy#kOG!}EM
z>LVZAfebE^=1i-HTRAZmMB_w<Tr1fwbBJwgDaUm<$B=&dgcIe5>x?e*r>mOVnIp`h
zz_Aw^>)tHN?u1iBqD*dUegJ?T$mTRF$o3})NfOz=u8JM3{JF_6H{cQ2fQnP?V$4)#
zh+v?2jvm8i;vub}RRa-mh^Av>ujv`<RD#D&7Ti#n?JiyEJ$NLzAy&l^@a~7O!qv>q
znQr13!78t%gh4GQ5gIoHYCrRD#PVNPNX6!>yf0CCqEXo3Lfx*^`M{rZ3*=Tk#A(Q0
zK@TwpH2bRi1-gn3S@(d-a8W8rQeM{*Zj_OTH(}w^9|yA2igR{TYhq_`0X(LyN#U`?
zhhS<~3OJ&$i?(#!#qtLlWaE5G<Pu4@Yc#OjoZJs-frk-AJR_x`qk_XE5wSTooqzD3
zU5gAu#I+XOdgEo`&v>P6dl4)NEAVOXOSCh%X}OodOsOo>_D@xW3FgE}5Ar0AF__{N
zKTgyrf7MZ8lkXBmD3x(zOi|i)vb@rkaVvY=78ry{49hIh@W<#a5;B6*i0c}fFvj6B
z-_BB1o6gUl@zN}m;mw{LZ-`d!3?qC~?Ut42Lf}`LA*))<l%IH$Sm4+T2Pza2{}8bn
zDNqp6gu;zCazkViI#CqX&id#@6a&%4L9szhR{0wmZE2`WiMGmQe8Ru$6$d1;liU~s
zMiR^_ZJMQq=cX(-tfXlujfUyHNR8M{bF3*{V>2?2p8y5#?IqYhTZp5PR(T*SsgN_e
zZUN8X{*pL}<}M`26h-7#zO{N+>E7AYka9S3mlEk<-0_SKxec>?sWLoIW7*{VVs;*T
zn6;pgT^g8b0>d3tO<YH(-p`Pr9KFkuOoxwuv+M*^=o4qA!>lkGgsSGDg`gHh^T+uH
zDOm@RtArJwM~Z-au7yUxXYrNLeOLJcp_3&Nzi@+&FV&%(({W`ik)u+(Ql?Vh3qoT^
zk$MrTP-b{{L8Q5>cK>BzL@G<hBV4+G4lmv#^aL1H_=JL{vC4hGC_=mc5c_bp6_NT6
znfr~&$pEE?K6ldNBF`T%<-C7AL=vM||5)t-Pq&oOtEJ|Gg1xuO{by<cq;-BXER}5c
zyDd1_q8kkP=c)nXQ-WQB2?It1OLzAK*S?`!Jr0V4N4z6QM$x0pu&9EfHE_7K4p?gY
zX(1N@Mf8&_v0c$p?wjPOC)u&Lfx<gZ+l85SI?d9^WFv548SuTY46$O)5k&%lKYu&?
ztbd3I^d#emZBA^`BiL(-(-oIC2ockB@ya2m&#BGkVtY*hr-ZFk&Vn6Kr%xl<p>zmo
zfjZCc-_3RcbF$%mvdedjRn?)*hsHO)4-hBUXbg1ATO`d8T?v|!H$@sYLR&)OSYa~i
z2`9VZjf8@Ez%P`4iKnuhlf2AE2!|F)BtJwQbEFF9%VfMq%u70;B)9x^P~>Uwfap>t
zGJ9vveS_C&aecP%$1CqWr9wF$6;|s5%mzzJ!KrXZjh0Y|5$9?MD7DA?_E3TH2rk)a
zZ0uLV6%3n`X4OeI^6mg@r8!k3o37s=#W<J|sY<vpiBT~yv!dU1DBU4eSN{*JO5sDy
z5=;b=k#W)F5olJ3;9W^VPB@mh7LGixAV5@F1ydu28~6&kb$?bu3;T4UU+cO&2~_GY
z61f`N65BFN9QFP|l<`bpM7r|9HjQ<bLN`0D`L6+s5hO}7B|laoVK7Q1qH4tv8ctKO
zT*Wr<c96`vW+O}}er~tO<y`4;?&u0fN!R-*vV)U*g<z4F$S!H$!)!@bUQ&d8QMYQn
zxT8#>bwLMG`y;Q+8cw=a1{AbH+Xeg&aY|(FU(Q=6*9FL)wc;F{{+<VKCv#Nf3#ywu
zPA($xvL5`yzJEO`W_6SfB|fN>Afv60PPe{MUK|_Zd=cT2L9`kzO5Aysg!kM|YL%uR
z$ul#po>PAevVyP`S*=F#T*+w)H<5?c+k@w0Rnqok6T*#pev`Q*dKQ<=2rmA+{!!LD
zjLxS}9qN~@nQ{Omb6Srt2~7eLd_)RepzYz7(YG}tKR&fQdhRQPFK%0NGJ35Mwms8-
zYGOxbxI2VqY8X#QWX3wPvs+R?@&}wxncHl4X2G6>{v?(ppWvLof2GWrHeo4C#RLR@
zSG1-8^nf4k4I4WxG&FEg@=qvbJl4z3gxJr}{ecb#3Y~7#$^IpJN=9OHC&uPT2q#c(
z<A2A_f(2wI@oouc>HmQLs;m^V+9l0fIKxpgC}KMm@<J*S1v(`g6wwf(O7ZffA}K19
zITW)zI$cAV3^lYpy~$Uw^v9-%6OGfcd8I(=!G{C~4gN6;RUEEl52d2-D^QFwn~a2n
zE1Xuq8P*ERl(2V(0M*bf&?xu;%ZUC5Ghb){=$EJ~4pzvveQ8-9!buzFPAm%by#(k*
zvY3p?=m;8#6xw2J>|LeCz;LXaU~-vIrZL$qKI^TlJa#=X^bIL5;_;8UARu@pkXLqO
zm=U-@AQyTa{7h50uQ%48y?rJJOk4G0D?;y*#EFxe1`?^HZA|WiB!zc7j?LoqPQgMb
z#M_)-!B8HN!<~ng;=(8G*0<y{tFwwbNCT%~Y}-Z1KmR&C5P5Gpn4N(J%Iet(yU=c8
z<y(~MYxHj3r9fJyW1Ym!H_kJNK^cq&?f2lZdY{pIxO?oimev2j>mhka>C>JjI)$Od
z(zL&DGmZ7p^%dX-(5A&ik9T_0oC4#g;1Cq6jfY2B8i}U<tQ^8gamJ(7j-w{iTS%Xy
zrSxFQ3?Y-Oky3Ucej-2y0b_FDjM}eNuWy}Uu(k1}$J2J-c`#T-3^|EP2A0%>Z;*<n
zrfoy|Afkc!%a@bD5k}LsNxj#~TB^!AFh<lWxYtQ+Yf5rIODDzqBJ<}owlQk|uR=1(
z{BYQlc*(F5?d(M@7JeEO`eci?B6d~!+0+F91{(%t=~<lVBu3I)JICnKCf_6X(n)jC
z#D{qc<|0Xb(yehj>Cl4W-0OIUFY@xUibaVCa%Yo_^<axytV;5lKK>!6#e?3d!AX+W
zF^ATy??fr9cXXXzO2#8cvcvN+0T?mgy$734fUUDzdDjy%K;*V5A*9PdMZMB9@6<I^
zXZ@f@B-!8|ll-5x_LId4ZT__zIavH^coq!4mFAP=b6KwZLv|dIoTmI!Ab_KZub2H*
zDi$d^yQT8LpCqWHEbj)BRUl3pndO}I#gCZNQgCKv4pj|aSzn^qZnNQ9`V8HO95xM_
ztT#NNDYVdk5Gt*hGPr^^f1sALg^1TkrhkTIQ<2?C$&Q|y5YBtw`jYqnS{f>i7+rDB
z*mRCJEEq}=^ps=%t!^GNz&Y}QiD(=fzCnkZEr<AI7DcW$9(GuisuO39hD2moh*lC}
z@b~>_@GBA_oIerjKN%#$<M@!ilK^Of9ZlL*vZXCFaoP>aK!{t~U#A!siQT<=QuMB2
zS%N7Tw2+nJV!V_ZF2Ai2Z*fg%lh~M!Il)P*(r-H!wH5<WoQdMVWn|cu|8iA}5=T4v
zMdliX8`H<3Mk`2F{v!};LX%Phskm2xa=}USgJq$_9)zPP%sTf7+%Cc^j9(7szO$<)
zqb7^BC@e04sZ&`UjS>0CLoh5#kmnZDlPVbHBOhIWiuA}%G?nu%tk3o0-Q)oQpZ2<I
zhJ?h@_Z)))vB;{#Map#0nD{*aM-JLo2UH73Y__KtmN%#^-^VmWh7^1gYg87z$_ito
z^;U>)<ZQf%L?5CINvW1PNim*WHa0<qt3V2^R!=*E!Zx<x%=VCBOw5yM_L~tdB~6x7
zsea(r*bt8lC104cNuStv1k7;AXa+e<VMa#OtRQOc8B2*&+TbP#+nq$+1U`8AASxPK
z*2|=in}A4ISj33J&5sbnJC$j~O57+&jEamqDK{*fx8~sFrDm%a)tuT5Nh#%%HjXs>
z9o~5Ow_hJOK9AXoKg+M@72*r5OEA8i(_Nfuz}wQq%t8%65>{POXc9t-c}Rmh0_`*v
zEsAjQT^?L77B)x;HM0<>+#KSQ)Mhu84k@1Jorhg`bW;!d3ULS#sU1Ey_!z_}<uh-f
z?15=6DzR3u3hgnS60Z9(-V}Tb6N!;WV|D-=Tc{p34RHVwgFo;?A~%MUr!%dhdz5qa
z_mzXq(L4?H?qub;`M<ayFA^BhQ7s=cBAK+0@_(RYJmCNTYa#LfwI&#QIldn4=on}#
zJ39tv3<k_6BY<$~fALjr5OB3zPqfg0g6_6@%&MKU#`A#D{1$jPxIh7@wFE$%^*ivo
zKm<gLiGdN^twC$neJ8P9>!xEH9v&VnwHoIB8>aty@B1hqDA8mG(V33$6yqVnNc=d5
z`?H$=x9bT3NG#)ztjrf`JtE;~p)rvs7bOCaKK<{89>}R6V8Nqlp5Xb(gE|_qbL`Lb
zB<5QHj=28~;(#f+)L*fg2n`27(?z5W#Mm%FQoR%Yw<n6h{6~!By3<0rifl#oqg@p4
zGr9r%U;ima4`Np*&zPnY`EmBYAFu!rb7+wx%KtP6v{nJMU7+vsasF>2ib%i}HjwxZ
z^?z&Xd_R_B>UX#Or#>oxIL*B;_67R?omg%nA>yz8=6~pS=<kjZh9mD_|C{H3T-eM1
z*O(>n`~8*C#OHq<Q4%5miyZ8otGj-yX3+O70T#1B?|<`*iUAgJxOu1mz}x|yUktw`
zfJ@8ypZN~}z<J)*=hsC5q#j@|Mvxom9D7X4ntc~}`50$cS8ZEc+m(|Cdbv9hz|2ID
zNG)qQHT&L0T(R>L=5dpvM&JQzdYlHZ(lAxUtTrt1wUOIY`vV)>+k{Z9MMZ;J+S>h|
zU3XcE%z7?9LJ~XvME^V_T0eZ|Hy|CZA-(58tb0<>m>5EzR`*qzJk5k^t*d^nO~55M
z4u!RLc5dR};sy-rsH&PC9v&u3lJ(JVAmXTWcLQv<Apk--{gle)y!932@DC<n&F`;e
zP0!Rl#l-}AeLz*#V@1T<1<g1O%PT83`O(yroTa5DthPOaUdIYFSAp0ersH>gfyj=9
z#Kh<BncpPCuf|~v6%$%dZ0Aoyx`H3-Dk>VxX>e)|D;Lfd$IFq2YYYe9J5dmWXolwe
z#bn*Db8#kRcEe=B=<4hYM$17{Gff&3n~tJ86(F4n4G4z^?1cu8P47feq}GJDx3_=l
zY$Bjx1Hc2Zh)}s)91rG+KUvzPT>!j^8mX%?M<TngEZ+okHYAKhAqIaxnbR_bSi*|+
zziSxq{NcW7=YWwuQ2yH}|JSMFbosxXOauyWw>gk#ci?|}Doqr?ahG86+W6mw8vz2r
zjxwGS^m#{#?g>O9LJ1YCmlOqM${S4}jXnP^fbf7ma{nYge0}vW&Z~64JJK{YHCv_~
zadi8*Aw&W|=@Frxb-L-4uZ?S0Ky!9S=jz@K>4x|9vg$ka=w#4VNb8N7yj?bakHgX-
z)6^_w3-P$rPxH6T+J<Po$$lMs-==3isTvpo8RXSzEIyns(`oV98L5w4%+iAPM9$C6
z&DB__nf<*|A4da$lDP|?=+e_RiJ1&rue(i69;2;s%Tu#F$8A_7IaNjfc>F2y_ha*L
zqM9eJ%sh4M9I(sD*XDQhBq0EpvxS93^g3W%=GdC#O{1wT7z|7n0bUjxh6OZmC7bx9
zj$@A;-7|uQMiSG|*Rnm~D6a_wj;Hl9gcpRmCwmG$bHHB@;pSiyC|*>Fh$(S6{SXmS
zLsTV>h1May=$a}3O=ypMaBy&!ck0-&;R<>f4IMq`{Em+Xik*Wa#F$vD(%k2m^Q!lO
zEBfi+$1B~KM9c1szy@i&=-jfpQ2NgM$yUd)M)f$`3ts2(%1O(;<=fkZaIR$F+s1oK
z@-S_Ki{^-@*qE<N)4EGD+{*I92LprjS~@n9wl;D-<}t=9;jhVK8zx6tdw*4oUt{%K
z&5sCLX;}Puzt>Bq>0aS_OV*dAHcNzWC0i@+j5;5`zAm%YZB^aThcS;cF~+JC)`Z84
z7zMKod*DQn3J@r`f9E3t8h~zjWte|~<;ZwF+Q&;phB2i*3pz!PVjW}PhXMZ)aW*rc
zo<IE%_n%w;CI8{$qIr1)CA>T1c&ase#edxFyL`>>^=S0r<9RJs|Etke+8sKs2JVte
z7mzJb$o42pINmrnPrAP>o+}x{lY?edU%GZx?F0`0`1p`Y3l0uG&|L9D#cFD5(vp@Q
zufv44D=99v0<fjuxcRR~<MW`*M8(9c-|P=3NHlt+{!sv*A)D^<ev71p*dqsYFQZf_
zoSo)>qrFK_b0V!2TJ7!aB_lL-mjW?Oiv`Ud6mLJ+ZgniV-0t>$u>)MhP&jOCY~+T7
z^g}{I5^iodHHU;X`!InrZi1UTX!XT>kVr3!j=0zLa%vGFjxG>C9HA3WFERq|mPl;f
zD}YvMk#a1?w5pe_)P{Z5T1S1T7}_Obmfjt=Gdt@_rVwDZNLj$&ystAq+RUfKl}z|)
z|8=irHri6#I2fr<iI>2-n0jqZJsn@l7r_3hS;Z}B)`&3Lv@Lt@QR(fPO|LJAY6aWz
zRi`@S=yZRx%kMBjU{pVte!k&8B%nnaAhou#k};4h1qK3T(k}v1@h9@Lvb2=m5$6|-
zZiZR;=NA$jj6wyX?RWeavVeZ4!+e_H{QO)xciNTLdTd`TVaoMvxCN=kD8Ig*MQV6m
z7Wc+*E<7(BbHZ&S0%GC-{QUyh!PB$do~g}#Uz}NPI-^>EUp*LvM=VX9b(ivy;<1*<
zQ#IRR&EtxGrG{v&mdzX=<gf7bc(O7V1&lA*-`8Tlj@)gL^`l5{Ut8}z^sjduC=Q-R
zI^$!6g>_9KY{V7`dS=W&e;bxG19To=Co(%pC5@fAKk0zKnuLGc1r36YX@j4$jCtP3
z5%*-4qWP*-0VzNfUM=q7gHm@$2|^+PW9!je>mNAl3t}T;jDYY&-X?+udO>(4+W!9i
zvu8pY@mWrD49GIli5|=gvd67K5St<8mC-hZ8~8Y&N2U`&^$c>%t+!`+og}N4k-fvR
z!*MLv|7rA&0)99rT!|=Tp2&8^kf&Usx2CB9`FE<)262T9uKi!-AzMc!rjTy<!^^5X
z_w$YTT0#qyn^2(7x{kf#uZcCfo5x5B^zOBI>Fm2lKx0^+5&(^Slq3Fwi<QLEYq8_F
z!Bpwg>?ydX#Di{2s{!OeSvSRXhw7U#$opN!L!{|o>$vGIQ;PIUi4~^X%K&B#NDmO2
z0v8rAW^VsExqzS}V)_w&3xZh)*~1<%s9rRef>a4XSHhJccrJ9H|Br00OG6;+eL}Uh
z6H;970)!Ciogz5Txs{P)OyafsFZ9?D7cPXt&S)o|n^tBtsuR3PD(0QkfOfE^WHX86
z*HY~Ol-zg@2E?Wn3UtaYTHB|-N%yz=DTs44i<n=`wNf-Z+=qN$%6e|?ezKA#T7I^w
zlKTz0ow`xh36vY9@C-cG`WtjBLACCl`UW;jLHiqdgJcj>Vue!nmq`RA(p8hkKzC~=
zI=5<g6Fq1|+`PaTME#r)?|%3>VVLb)7c2XxMnKWLJxTCL`&_7XxxCg&IU)({FH=KI
zL}5>v>}Q}|TLRH>)5P+dIz+sihSIo&ECgpIIgtrnN|@W&m@`iuQsg%!duR&xy&h}{
z!=iXi+Pgt6z>S_};61V+$7(qT^MPAqaYfAhtC02G3eScY*~3-kR^0~gwu9m4ht~D<
z>2;O27MP)(1V*DWk42Z!2GfE0F6?f$IsAH4)4)d#<zHyls4hS@Jv8wAbAF`%K#YJ;
zL*s^lW$JsPJN%-Y9<2gN{0>J(BvG<~d^$8Rsa^+ngfKyN+)iflOh;a4@G>tpH`YzB
zx9DrkKqqv-urQ7P{ev;(W5^jD#~L|y=gZ<dvW{P_;+*V$yID!m1Li7rQS}Adua1g%
z{38rbd3f`9&gU+ujSS6G$7kGr<03Z7e@N$&{_@~PB|23Tc0Otgw6eWOc*|fN;i7HO
z&6_U2H8^a~)f2X<0N1WX+oMBgUS6651gij2!K#xwk&&7zDfrW^zaORtS`d^8&aIsi
zzJW<lN;eQrW3ktq0`wPb0WTvN*&acS2<vFBz%NM;t(z_2iLFju{&|EC@+kNMSp!-9
zlai;LE@p_K>t9<4rYGua;qw+T+~MQJ;{(S4xTLy=nDjyV`T0eQ8E6<~%&4)CdIh1+
zhMM`dbwzV$`i}9#pahIM&_V<9r@<nG9e+jG0A^weZ^3Q$_7Z*oXFuxgSZhRV$Gg$?
z%o$7{&f7uMo$m<$p{Y_04nQGz^HX4NFrzDMP$MAlL}(!(CW;q7gi}G7mRc|bjf9v(
zGdDmzGVto?=;(k5#F*QJU=FLnNvvZku+tfk6<&Wpv8<Zujy<UA8fY-k7I8K~@Uj%2
zjLaP7-r7PIg6#~1v%7!=<ek&&^{<oOpujc_ABpZzZx)+ZhkrZ0g|;V$33-J<e4gM(
z2bG^{<MYuLRkuvml;~g9>zR$qqE>x41A&^v_F+ZVw}qoQO`9;%?*}6kp1+nm@RK7x
zGMf}z*VU5<sf;nv89wXI_=}`^ShQe2V5<gFl|JawXZm5k3MfDsw&<^!TZ*#zUv2$f
zW^q(?5OSeYfl>YuUjUUp%V~gUaM=OVB?S1Tdbt%MSl)v0_DJCff}8lkl4c#+AM}n)
zAK*II;Ke+%Yy<z0K4_tel@kDbAWTF=d9(^D5MJ&E&C9>SW&WDx)AWN$^>&y)zh&nP
zCP>wnDcxQNp99Kx<&AozlE^T$ECAZFPD#$|+~Tv`o^9JrIb<V@Uw$KRZFX(k+e_y?
zemYcilz#LB(zSvGVQaQgwkZ+hFXa*3S_}`r`%|?}F4U~}k1}!ghoG;lU$%1pez~oN
z0Y*;65Xgk8W4RhPOrk#$(Vz%8s~2Q75FAmP#7}~qQC9=78BPQ+e*#lU(BMF-5qa+(
zcsnNd<5;jl+VKLop=__jJX-6W8xX;>0{k<2_Av#_EmrS69{1Lf8A`QiK)Bx7absSx
zM82{SqGOA2dYoxmn&&=>bve*Q@(vc^;oEzu=brMe0g=#&mBvE}lh6|bNt%vcn$1S~
zz9T4&>wlg?NMU3xF2&WD%qZ@vseDs}32lsx?jen}5UYX_Xrecp$TJ4AB+#_YvYeX7
zcEY;L+F<}G?xNVyT%s$N><qmjmdCQQL$w<REx*>xGXcZ(o)Mvo9WNxHP7k0r&Mo49
z#-6FbJZr`@>_m`Mgu^E^v0xK}OS7}~`X~mbx3w!Luv=bh1gvuODptSlz7z}R_wLrH
zh=v#GM|jM%qhwD7#MD)T-RhoS6>w23LXHl+Eul9)U~kpJ-)~>%;D6Bkkj~M&*7Laf
zY45?+wcTCw7mqKLUA+p3fG)epGx!T}tfHD1CJ-b~a1|YjG35iTvJ2F0qUYJZV`p)h
zfLz#LA$J2tl&WCEd<S~%Ns5E_s74_-8T~maTkxsLX7DJ?X)~R7A-u)e@P?rsMxG@>
z-7v4mLm^i>A<*i4k|eQqYsxK>0}TqCTF)QIaWE(U#DEG3rji33Wa9iXa@b7-u)rQV
z)sIx~RSeg>pdf%CR5b)>JJ>EBg4R+YT1t%dCxo2!Q|z>WIfVTmas@@ir}syyu7cAf
zPL%+o)yeCY?#Uo}^#U0?idmuifb)@HR4PC`@2S$1qrTow{7bOqrFthWJ9wM@LWY3M
zZ31@?8iDTTGxMo%0g5M;_dHtl%2{n2=-cXg_{fyKYR)-N@G|%xqx_4--vS=)cl?*%
zirlw9U3BKQfC@O{P|?7rtKrL<VVWwtVR7&PUBj<lXxfFp)q1w8na7+mUE0%D2(Y5U
z#}5PEsW=JQ+eke@e7(DbPo#VuDg{lL`w7-^5oufDzm?g1Z(B$;D=m2jkY^Yd>s8pE
zjh(%ER@5K+#()BFUSnSv>{yCK<O<g84@3$rDDb79{!PMDQy9tFvz=<zYDzqneJh2~
z0(vWJh0S(%*}Y2IqrEbaX+S2RGll>|C}_j%Fc6kj5vy)k{N#R7w=al5_|L)$K`>yc
z75@swQoilq1n~Uw<4e@+_ZT`gl0kJ}0){REz}#zUL_Ip|#~k9A0KHX91^rrK<h7i*
z0IvA04REJ*&Ni0rx4H8`fRCtof6X2$5TTV?1AN=)?PKipEy4eX3k4sO4cEt4{G0fn
zgvDrf7_g(sX<6gi{_@|NApztuRR&`0H-1d>-(~8|V9;-x67B!L5wn*U_j6o4smHW&
z-Q~-v1C<jL!13SWh=Ugwn_m*D^RqvuN$W0OtVQW%bnxg7(TmOhcW$Nr_W>8L$KFpp
zyvD1Y(>b537gk$1?A8sk56+`Bd37FiXc)FldH|ktEO&qyygcAu`L<>*QxrC`Ym}RO
zk15@Hb=8&}v>B6{^cj;ldUq?&bUg0wrCDA#rI(wXH17I2TNOAM|0j<TxP~oL%Jllq
tNQ>^vvUB_MEalQBi@~Z6y?y8x>=Cik9H}e6_IC?tDKR<GYGH#v{}0JCa`ylL

diff --git a/index.md b/index.md
index 221a8ba..fcce2ae 100644
--- a/index.md
+++ b/index.md
@@ -60,7 +60,7 @@ This launches a dialogue that prompts you to link to your Github page. You’ll
 
 You can load an SBX (.sbx) file that contains a pointer to your extension from the homepage directly through this element:
 
-![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/link_to_file.png)
+![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/link_to_files.png)
 
 The same dialogue can be launched from within Scratch by clicking on the green ‘Load Experimental Extension’ in the top right or from within the ‘More Blocks’ section of the blocks menu:
 
@@ -74,7 +74,7 @@ Developers who have hosted their extensions (.js file) or sample projects (.sbx
 
 Users can then visit that URL directly in their browsers or enter it into the homepage element on ScratchX.org:
 
-![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/open-ext-url.png)
+![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/open_ext_url.png)
 
 # Writing Extensions for ScratchX
 

From bba0d1663748d23ffeb832ae002f6f4cb68167ae Mon Sep 17 00:00:00 2001
From: Kasia Chmielinski <kaschm@media.mit.edu>
Date: Thu, 7 May 2015 16:51:32 -0400
Subject: [PATCH 38/47] fix images again

---
 index.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/index.md b/index.md
index fcce2ae..a0937fd 100644
--- a/index.md
+++ b/index.md
@@ -60,7 +60,7 @@ This launches a dialogue that prompts you to link to your Github page. You’ll
 
 You can load an SBX (.sbx) file that contains a pointer to your extension from the homepage directly through this element:
 
-![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/link_to_files.png)
+![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/open_ext_files.png)
 
 The same dialogue can be launched from within Scratch by clicking on the green ‘Load Experimental Extension’ in the top right or from within the ‘More Blocks’ section of the blocks menu:
 

From 074920ed56df0eb1693861fd1c7c5cc588ec09e1 Mon Sep 17 00:00:00 2001
From: Kasia Chmielinski <kaschm@media.mit.edu>
Date: Thu, 7 May 2015 20:07:32 -0400
Subject: [PATCH 39/47] added FAQs

---
 .DS_Store | Bin 8196 -> 8196 bytes
 index.md  |   3 +++
 2 files changed, 3 insertions(+)

diff --git a/.DS_Store b/.DS_Store
index 59dea6c314159d20dd22c01bc9c47270cbc59a63..77040ccd7dac4b3d5ab9d45869ea8f8193e5ddc3 100644
GIT binary patch
delta 16
XcmZp1XmQwZNsw9B!eH}NL47^|G!+Gk

delta 16
XcmZp1XmQwZNs!sd*l6=rL47^|G$sX%

diff --git a/index.md b/index.md
index a0937fd..6b53b65 100644
--- a/index.md
+++ b/index.md
@@ -535,6 +535,9 @@ You can learn more about how to create a Scratch extension [in our documentation
 ##How do I share my Experimental Extensions?
 The easiest way to share your experimental extension is to create a scratchx.org url that points to your extension (hosted on GitHub). You can learn more about [sharing your extension here](#sharing-extensions). 
 
+##What is an .sbx file? 
+The SBX (.sbx) ScratchX file format is the file format used to encode ScratchX projects when they are downloaded to a user's computer. SBX files can only be used on the ScratchX site. Other Scratch environments use different formats, including the .sb2 format for Scratch 2.0 (read more [here](#http://wiki.scratch.mit.edu/wiki/Scratch_File_Format_%282.0%29)) and .sb format for Scratch 1.4 (read more [here](http://wiki.scratch.mit.edu/wiki/Scratch_File_Format_%281.4%29))
+
 ##Why can’t I open .sbx files in Scratch 2.0 or the offline editor?
 Experimental Extensions are extensions created for Scratch by the community and are not managed or endorsed by Scratch in any way. Because of this, we do not allow Experimental Extensions to run on the larger Scratch site. 
 

From f3a3c59879c8249b13a7df7896ccecad1b7de370 Mon Sep 17 00:00:00 2001
From: Kasia Chmielinski <kaschm@media.mit.edu>
Date: Thu, 7 May 2015 20:10:26 -0400
Subject: [PATCH 40/47] fixed urls

---
 index.md | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/index.md b/index.md
index 6b53b65..fbfa4c2 100644
--- a/index.md
+++ b/index.md
@@ -500,16 +500,16 @@ Clicking on this URL will open a Scratch editor with your extension and/or proje
 # Developer FAQ
 
 ##What is ScratchX? 
-ScratchX is a platform that enables people to test experimental functionality built by developers for the visual programming language [Scratch](#https://scratch.mit.edu). 
+ScratchX is a platform that enables people to test experimental functionality built by developers for the visual programming language [Scratch](https://scratch.mit.edu). 
 
 ##What’s the difference between Scratch and ScratchX? 
-[Scratch](#https://scratch.mit.edu) is a programming language and online community where you can create your own interactive stories, games, and animations. ScratchX is a separate experimental platform built to test experimental Scratch features, also known as Experimental Extensions. There is no login or community component to ScratchX, and projects created within ScratchX can only be run on ScratchX. 
+[Scratch](https://scratch.mit.edu) is a programming language and online community where you can create your own interactive stories, games, and animations. ScratchX is a separate experimental platform built to test experimental Scratch features, also known as Experimental Extensions. There is no login or community component to ScratchX, and projects created within ScratchX can only be run on ScratchX. 
 
 ##What are Scratch Extensions?
 Scratch extensions make it possible for Scratch to interface with external hardware and information outside of the Scratch website through new blocks. Extensions are written in JavaScript for the ScratchX project editor.
 
 ##What is the difference between Experimental and Official Extensions?
-Experimental Extensions are extensions created for Scratch by the community; they are not managed or endorsed by Scratch in any way. Experimental Extensions can run only in the ScratchX environment. Official Extensions can be found and run from within Scratch 2.0 (both [online](#https://scratch.mit.edu) and [offline](#https://scratch.mit.edu/scratch2download/_) editors), accessible in the ‘More Blocks’ section of the blocks menu. 
+Experimental Extensions are extensions created for Scratch by the community; they are not managed or endorsed by Scratch in any way. Experimental Extensions can run only in the ScratchX environment. Official Extensions can be found and run from within Scratch 2.0 (both [online](https://scratch.mit.edu) and [offline](https://scratch.mit.edu/scratch2download/_) editors), accessible in the ‘More Blocks’ section of the blocks menu. 
 
 ##How can I make my extension Official? 
 At this time, we’re focused on building a library of Experimental Extensions on the ScratchX platform. We plan to work with developers over time to bring many of these Experimental Extensions into Scratch as official extensions. If you’d like to suggest your extension be highlighted on ScratchX, please email us at: scratch-extensions@media.mit.edu
@@ -524,10 +524,10 @@ Here are some of the criteria we’ll be using to decide whether or not to add a
 * Content (age-appropriate, copyright infringement)
 
 ##Where can I find example Experimental Extensions to play around with?
-We have linked to a few example extensions on the [ScratchX](#http://scratchx.org) homepage. We plan to highlight additional extensions in the coming months in a ScratchX library.
+We have linked to a few example extensions on the [ScratchX](http://scratchx.org) homepage. We plan to highlight additional extensions in the coming months in a ScratchX library.
 
 ##Who can make an extension?
-Developers with a [GitHub](#https://github.com) account and a knowledge of JavaScript can create and test Experimental Extensions on ScratchX. To learn more about how to make extensions, see our [documentation here](#writing-extensions-for-scratchx)
+Developers with a [GitHub](https://github.com) account and a knowledge of JavaScript can create and test Experimental Extensions on ScratchX. To learn more about how to make extensions, see our [documentation here](#writing-extensions-for-scratchx)
 
 ##How do I create a Scratch extension?
 You can learn more about how to create a Scratch extension [in our documentation here](#sharing-extensions)
@@ -536,17 +536,17 @@ You can learn more about how to create a Scratch extension [in our documentation
 The easiest way to share your experimental extension is to create a scratchx.org url that points to your extension (hosted on GitHub). You can learn more about [sharing your extension here](#sharing-extensions). 
 
 ##What is an .sbx file? 
-The SBX (.sbx) ScratchX file format is the file format used to encode ScratchX projects when they are downloaded to a user's computer. SBX files can only be used on the ScratchX site. Other Scratch environments use different formats, including the .sb2 format for Scratch 2.0 (read more [here](#http://wiki.scratch.mit.edu/wiki/Scratch_File_Format_%282.0%29)) and .sb format for Scratch 1.4 (read more [here](http://wiki.scratch.mit.edu/wiki/Scratch_File_Format_%281.4%29))
+The SBX (.sbx) ScratchX file format is the file format used to encode ScratchX projects when they are downloaded to a user's computer. SBX files can only be used on the ScratchX site. Other Scratch environments use different formats, including the .sb2 format for Scratch 2.0 (read more [here](http://wiki.scratch.mit.edu/wiki/Scratch_File_Format_%282.0%29)) and .sb format for Scratch 1.4 (read more [here](http://wiki.scratch.mit.edu/wiki/Scratch_File_Format_%281.4%29))
 
 ##Why can’t I open .sbx files in Scratch 2.0 or the offline editor?
 Experimental Extensions are extensions created for Scratch by the community and are not managed or endorsed by Scratch in any way. Because of this, we do not allow Experimental Extensions to run on the larger Scratch site. 
 
 ##I’m having trouble creating my extension - where can I get help?
-Once you’ve published your code on Github, post a link to it in the [Scratch extension developers forum](#http://scratch.mit.edu/discuss/41/) asking other developers for help.
+Once you’ve published your code on Github, post a link to it in the [Scratch extension developers forum](http://scratch.mit.edu/discuss/41/) asking other developers for help.
 
 ##What is going to happen to the older Experimental Extension tools in Scratch 2.0? 
 We plan to phase out the older Experimental Extensions platform on Scratch 2.0 at the end of November 2015. We encourage everyone to migrate their extensions out of Scratch 2.0 and into GitHub for use in ScratchX before November 2015. 
 
 ##How do I request new features or submit bugs?
-We would love to hear your thoughts and suggestions. Submit them as issues here on our [GitHub repository](#https://github.com/LLK/scratchx/issues).
+We would love to hear your thoughts and suggestions. Submit them as issues here on our [GitHub repository](https://github.com/LLK/scratchx/issues).
 

From c498f089fb1c0d6320ff3ea677c6eb51563ca658 Mon Sep 17 00:00:00 2001
From: Sayamindu Dasgupta <sayamindu@gmail.com>
Date: Fri, 8 May 2015 16:33:03 -0400
Subject: [PATCH 41/47] Clean up section on loading JS files.

---
 index.md | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/index.md b/index.md
index fbfa4c2..46ef6f3 100644
--- a/index.md
+++ b/index.md
@@ -7,7 +7,7 @@ layout: default
 
 1. [Introduction](#introduction)
 1. [Using ScratchX](#using-scratchx)
-   1. [Link to JavaScript file](#link-to-a-js-file-on-github)
+   1. [Load a JavaScript extension file](#load-a-javascript-file-hosted-on-github)
    1. [Open an SBX file](#open-an-sbx-file)
    1. [Open a ScratchX link](#open-a-scratchx-link)
 1. [Writing Extensions for ScratchX](#writing-extensions-for-scratchx)
@@ -40,19 +40,26 @@ This documentation serves as a guide for developers who want to create Experimen
 
 The ScratchX interface is very similar to the Scratch 2.0 interface with the exception of a set of features for loading Experimental Extensions. You can load your extension into ScratchX in the following ways:
 
-## Link to a .JS file on Github
+## Load a JavaScript file hosted on Github
 
-ScratchX does not host JavaScript extensions. Instead, we provide a way to link ScratchX to a publicly-hosted JS file. 
+ScratchX does not host JavaScript extensions directly. Instead, we provide a way to load a publicly-accessible JavaScript extensions within the ScratchX editor. Currently hosts for JavaScript extensions are restricted to the `github.io` domain. 
 
-In order to link a .JS file, you must first put your file on to Github, a web-based Git repository hosting service. This requires you set up a [Github](http://github.com) account if you don’t already have, and push your JS file to a [Github page](https://pages.github.com/).
+To create a publicly accessible JavaScript extension, you need to
+* Create a public repository on [Github](https://github.com)
+* Create a `gh-pages` branch in that repository
+* Clone the branch locally and then `git add` and `git commit` the JavaScript files to the `gh-pages` branch.
+* Push the updated branch to Github
 
+This will utilize the [Pages](https://pages.github.com/) service of GitHub to make the JavaScript files available over &lt;your_github_username&gt;.github.io/&lt;repository_name&gt;. Details on how to use Github Pages is available [here](https://pages.github.com/).
+
+You will also need to add a crossdomain.xml file
 _Need information about crossdomain.xml here, and encourage people to think about backwards compatibility_
 
-Next, to link ScratchX to your hosted file, right-click or shift-click on the ‘Load Experimental Extension’ from within the ‘More Blocks’ category in the blocks menu:
+Next, to link ScratchX to your hosted file, click on the ‘Load Experimental Extension’ from within the ‘More Blocks’ category in the blocks menu:
 
 ![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/link_to_js_menu.png)
 
-This launches a dialogue that prompts you to link to your Github page. You’ll need to copy the link to your publicly-hosted JS file on Github and then paste it into the box on the dialogue:
+This launches a dialogue that prompts you to link to the JavaScript file hosted on Github.io. You’ll need to copy the link to your publicly-hosted JS file on Github and then paste it into the box on the dialogue:
 
 ![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/link_to_github.png)
 

From a02b3e2b9499b63aaf61b8838ef426988445cdf4 Mon Sep 17 00:00:00 2001
From: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date: Fri, 8 May 2015 19:06:23 -0700
Subject: [PATCH 42/47] Added crossdomain.xml instructions

---
 index.md | 30 ++++++++++++++++++++++++++----
 1 file changed, 26 insertions(+), 4 deletions(-)

diff --git a/index.md b/index.md
index 46ef6f3..ea728c0 100644
--- a/index.md
+++ b/index.md
@@ -50,10 +50,11 @@ To create a publicly accessible JavaScript extension, you need to
 * Clone the branch locally and then `git add` and `git commit` the JavaScript files to the `gh-pages` branch.
 * Push the updated branch to Github
 
-This will utilize the [Pages](https://pages.github.com/) service of GitHub to make the JavaScript files available over &lt;your_github_username&gt;.github.io/&lt;repository_name&gt;. Details on how to use Github Pages is available [here](https://pages.github.com/).
+This will utilize the [Pages](https://pages.github.com/) service of GitHub to make the JavaScript files available over &lt;your_github_username&gt;.github.io/&lt;repository_name&gt;. Details on how to use Github Pages are available [here](https://pages.github.com/).
 
-You will also need to add a crossdomain.xml file
-_Need information about crossdomain.xml here, and encourage people to think about backwards compatibility_
+You will also need to [set up a crossdomain.xml file](#user-content-setting-up-crossdomainxml).
+
+_Need to encourage people to think about backwards compatibility_
 
 Next, to link ScratchX to your hosted file, click on the ‘Load Experimental Extension’ from within the ‘More Blocks’ category in the blocks menu:
 
@@ -494,7 +495,7 @@ ext._shutdown = function() {
 
 ScratchX does not host JavaScript extensions. Instead, we provide a way to link ScratchX to a Github-hosted JavaScript extension. ScratchX can also point to a Github-hosted project file (.sbx) that in turn points to a Github-hosted JavaScript (.js) file. This is particularly useful if you’d like to share a demo project that makes use of an experimental extension.
 
-The first step is to set up a [Github account](https://github.com/) if you don’t already have one, and push your JS file and/or SBX file to a [Github page](https://pages.github.com/).
+The first step is to set up a [Github account](https://github.com/) if you don’t already have one, and push your JS file and/or SBX file to a [Github page](https://pages.github.com/). You will also need to [set up a crossdomain.xml file](#user-content-setting-up-crossdomainxml).
 
 Next, paste the public URL of your JavaScript (.js) and/or project (.sbx) file into the URL generator below:
 
@@ -503,6 +504,27 @@ _Need to create this for the public!_
 
 Clicking on this URL will open a Scratch editor with your extension and/or project data loaded from Github. You can now share that link with the world!
 
+## Setting up crossdomain.xml
+
+In order for ScratchX to load your extensions and sample projects from GitHub Pages, you will need to put a file called `crossdomain.xml` into your user or organization repository. This security file lets Flash know that it is allowed to load resources from your site. It will grant Flash access to files on your public repositories, but will not grant access to any private repositories. For more information about crossdomain.xml, please see [this article on Adobe Developer Connection](http://www.adobe.com/devnet/adobe-media-server/articles/cross-domain-xml-for-streaming.html).
+
+Please note that the `crossdomain.xml` file must be in the root of the host. That is, if your extension file is at `http://user.github.io/repository/extension.js` then Flash will look for `http://user.github.io/crossdomain.xml`. This means that the `crossdomain.xml` file cannot be a part of a project repository.
+
+Follow these steps to set up a basic `crossdomain.xml` that will grant access only to ScratchX:
+
+1. Follow the instructions on the [GitHub Pages site](https://pages.github.com/) to **create a user or organization repository** and then **clone the repository**.
+2. Instead of (or in addition to) creating an `index.html` file, create a file called `crossdomain.xml` -- see example below.
+3. Commit the `crossdomain.xml` file and push or sync it to GitHub as shown in the GitHub Pages instructions.
+
+Here is an example `crossdomain.xml` suitable for use with ScratchX:
+```XML
+<cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFile.xsd">
+  <site-control permitted-cross-domain-policies="master-only"/>
+  <allow-access-from domain="scratchx.org"/>
+  <allow-access-from domain="llk.github.io"/>
+</cross-domain-policy>
+```
+
 
 # Developer FAQ
 

From 86477a32f4398830bd8355e8708cad6659804081 Mon Sep 17 00:00:00 2001
From: Chris Willis-Ford <cwillisf@users.noreply.github.com>
Date: Fri, 8 May 2015 19:17:53 -0700
Subject: [PATCH 43/47] Added URL instructions

---
 index.md | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/index.md b/index.md
index ea728c0..dab4992 100644
--- a/index.md
+++ b/index.md
@@ -497,12 +497,17 @@ ScratchX does not host JavaScript extensions. Instead, we provide a way to link
 
 The first step is to set up a [Github account](https://github.com/) if you don’t already have one, and push your JS file and/or SBX file to a [Github page](https://pages.github.com/). You will also need to [set up a crossdomain.xml file](#user-content-setting-up-crossdomainxml).
 
-Next, paste the public URL of your JavaScript (.js) and/or project (.sbx) file into the URL generator below:
+ScratchX can automatically load an extension or project specified on its URL. To do this, simply add `?url=http://...` to the end of the ScratchX URL. For example, if your extension is at `http://user.github.io/repository/extension.js` then your ScratchX URL would be:
 
-_Need to create this for the public!_
+`http://scratchx.org/?url=http://user.github.io/repository/extension.js`
 
+Just as saving a project from Scratch keeps track of the extensions used by the project, saving a project .sbx file from ScratchX keeps track of the GitHub URLs of the experimental extensions in use. As an extension author, this means that you can save an example project and share that .sbx file to give others an idea of what can be done with your extension.
 
-Clicking on this URL will open a Scratch editor with your extension and/or project data loaded from Github. You can now share that link with the world!
+You can construct a URL for a project .sbx file the same way as for an extension. For example, if your project is at `http://user.github.io/repository/example.sbx` then your ScratchX URL would be:
+
+`http://scratchx.org/?url=http://user.github.io/repository/example.sbx`
+
+Clicking on these URLs will open a ScratchX editor with your extension and/or project data loaded from Github. You can now share that link with the world!
 
 ## Setting up crossdomain.xml
 

From 661797432cdcfc605bfeafe5520f95e0fa83bb3e Mon Sep 17 00:00:00 2001
From: Tim <blob8108@gmail.com>
Date: Wed, 13 May 2015 23:03:17 +0100
Subject: [PATCH 44/47] Fix discussion forum link

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 43d55ec..4bfcc55 100644
--- a/README.md
+++ b/README.md
@@ -6,4 +6,4 @@ Sample code for creating extensions with Scratch 2.0.
 See http://llk.github.io/scratch-extension-docs for documentation.
 
 Questions? See the Scratch extension developer's forum:
-http://scratch.mit.edu/discuss/41/
+http://scratch.mit.edu/discuss/48/

From edbedb4e1277b975b1d9f07bece2ec6d3da59291 Mon Sep 17 00:00:00 2001
From: Ray Schamp <rschamp@users.noreply.github.com>
Date: Fri, 15 May 2015 10:00:38 -0400
Subject: [PATCH 45/47] Update forum link in FAQ

---
 index.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/index.md b/index.md
index dab4992..4d2b05e 100644
--- a/index.md
+++ b/index.md
@@ -576,7 +576,7 @@ The SBX (.sbx) ScratchX file format is the file format used to encode ScratchX p
 Experimental Extensions are extensions created for Scratch by the community and are not managed or endorsed by Scratch in any way. Because of this, we do not allow Experimental Extensions to run on the larger Scratch site. 
 
 ##I’m having trouble creating my extension - where can I get help?
-Once you’ve published your code on Github, post a link to it in the [Scratch extension developers forum](http://scratch.mit.edu/discuss/41/) asking other developers for help.
+Once you’ve published your code on Github, post a link to it in the [Scratch extension developers forum](http://scratch.mit.edu/discuss/48/) asking other developers for help.
 
 ##What is going to happen to the older Experimental Extension tools in Scratch 2.0? 
 We plan to phase out the older Experimental Extensions platform on Scratch 2.0 at the end of November 2015. We encourage everyone to migrate their extensions out of Scratch 2.0 and into GitHub for use in ScratchX before November 2015. 

From ec1a2f54be22cc0641fa96b851383d6390617705 Mon Sep 17 00:00:00 2001
From: Ray Schamp <ray@scratch.mit.edu>
Date: Fri, 15 May 2015 13:56:53 -0400
Subject: [PATCH 46/47] Redirect traffic to ScratchX

---
 index.md | 581 +------------------------------------------------------
 1 file changed, 2 insertions(+), 579 deletions(-)

diff --git a/index.md b/index.md
index 4d2b05e..292b642 100644
--- a/index.md
+++ b/index.md
@@ -3,584 +3,7 @@ title: 'Scratch Extensions'
 tagline: 'Extensions for Scratch 2.0'
 layout: default
 ---
-# Contents
 
-1. [Introduction](#introduction)
-1. [Using ScratchX](#using-scratchx)
-   1. [Load a JavaScript extension file](#load-a-javascript-file-hosted-on-github)
-   1. [Open an SBX file](#open-an-sbx-file)
-   1. [Open a ScratchX link](#open-a-scratchx-link)
-1. [Writing Extensions for ScratchX](#writing-extensions-for-scratchx)
-   1. [Adding Blocks](#adding-blocks)
-      1. [Command blocks](#command-blocks)
-      1. [Command blocks that wait](#command-blocks-that-wait)
-      1. [Reporter blocks](#reporter-blocks)
-      1. [Reporter blocks that wait](#reporter-blocks-that-wait)
-      1. [Hat blocks](#hat-blocks)
-   1. [The Extension Descriptor](#the-extension-descriptor)
-      1. [Blocks](#blocks)
-      1. [Menus](#menus)
-      1. [URL](#url)
-   1. [Hardware Support](#hardware-support)
-      1. [USB HID Support](#usb-hid-support)
-      1. [Serial Device Support](#serial-device-support)
-1. [Sharing Extensions](#sharing-extensions)
-1. [Developer FAQ](#developer-faq)
- 
-
-# Introduction
-
-ScratchX is a platform that enables people to test experimental functionality built by developers for the visual programming language [Scratch](https://scratch.mit.edu). This experimental functionality, which we call Experimental Extensions, makes it possible for Scratch to interface with external hardware and information outside of the Scratch website through new blocks. Some Experimental Extensions enable Scratch to connect with physical hardware, such as robots or programmable devices. Other Experimental Extensions connect web-based data and services to Scratch, such as weather data or text-to-speech services. Extensions are written in JavaScript for the online ScratchX project editor.
-
-This documentation serves as a guide for developers who want to create Experimental Extensions for Scratch and run them on the ScratchX platform. If you are not a developer and have have questions about using ScratchX or Experimental Extensions, please read our [FAQ for non-developers](scratchx.org/faq) *missing. If you are looking for Official Extensions within Scratch, such as the LEGO WeDo, you can learn more about Scratch 2.0 extensions on the [Scratch Wiki](http://wiki.scratch.mit.edu/wiki/Scratch_Extension). 
-
-( For information about Scratch 2.0 HTTP extensions please see [this page](http://wiki.scratch.mit.edu/wiki/Scratch_Extension_Protocol_(2.0)#HTTP_Extensions). In this document the word extension will only refer to Scratch 2.0 Javascript Extensions. )
-
-# Using ScratchX
-
-The ScratchX interface is very similar to the Scratch 2.0 interface with the exception of a set of features for loading Experimental Extensions. You can load your extension into ScratchX in the following ways:
-
-## Load a JavaScript file hosted on Github
-
-ScratchX does not host JavaScript extensions directly. Instead, we provide a way to load a publicly-accessible JavaScript extensions within the ScratchX editor. Currently hosts for JavaScript extensions are restricted to the `github.io` domain. 
-
-To create a publicly accessible JavaScript extension, you need to
-* Create a public repository on [Github](https://github.com)
-* Create a `gh-pages` branch in that repository
-* Clone the branch locally and then `git add` and `git commit` the JavaScript files to the `gh-pages` branch.
-* Push the updated branch to Github
-
-This will utilize the [Pages](https://pages.github.com/) service of GitHub to make the JavaScript files available over &lt;your_github_username&gt;.github.io/&lt;repository_name&gt;. Details on how to use Github Pages are available [here](https://pages.github.com/).
-
-You will also need to [set up a crossdomain.xml file](#user-content-setting-up-crossdomainxml).
-
-_Need to encourage people to think about backwards compatibility_
-
-Next, to link ScratchX to your hosted file, click on the ‘Load Experimental Extension’ from within the ‘More Blocks’ category in the blocks menu:
-
-![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/link_to_js_menu.png)
-
-This launches a dialogue that prompts you to link to the JavaScript file hosted on Github.io. You’ll need to copy the link to your publicly-hosted JS file on Github and then paste it into the box on the dialogue:
-
-![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/link_to_github.png)
-
-## Open an SBX File
-
-You can load an SBX (.sbx) file that contains a pointer to your extension from the homepage directly through this element:
-
-![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/open_ext_files.png)
-
-The same dialogue can be launched from within Scratch by clicking on the green ‘Load Experimental Extension’ in the top right or from within the ‘More Blocks’ section of the blocks menu:
-
-![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/load_ext_buttons.png)
-
-For help on creating SBX files / projects with pointers to Github-hosted JS files, see our [documentation on sharing here](#sharing-extensions).
-
-## Open a ScratchX link
-
-Developers who have hosted their extensions (.js file) or sample projects (.sbx file) on Github can create a ScratchX url that points directly to their extension. This link can then be shared with the public.  Learn how to generate the ScratchX link later on in [this documentation](#sharing-extensions). 
-
-Users can then visit that URL directly in their browsers or enter it into the homepage element on ScratchX.org:
-
-![](https://raw.githubusercontent.com/LLK/scratch-extension-docs/scratchx/images/open_ext_url.png)
-
-# Writing Extensions for ScratchX
-
-Writing a Javascript extension for Scratch 2.0 starts with some boilerplate code, which looks like the following:
-
-```javascript
-(function(ext) {
-    // Cleanup function when the extension is unloaded
-    ext._shutdown = function() {};
-
-    // Status reporting code
-    // Use this to report missing hardware, plugin or unsupported browser
-    ext._getStatus = function() {
-        return {status: 2, msg: 'Ready'};
-    };
-
-    // Block and block menu descriptions
-    var descriptor = {
-        blocks: [
-        ]
-    };
-
-    // Register the extension
-    ScratchExtensions.register('Sample extension', descriptor, ext);
-})({});
-```
-
-## Adding Blocks
-
-An extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.
-
-### Command blocks
-
-To add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).
-
-```javascript
-(function(ext) {
-    // Cleanup function when the extension is unloaded
-    ext._shutdown = function() {};
-
-    // Status reporting code
-    // Use this to report missing hardware, plugin or unsupported browser
-    ext._getStatus = function() {
-        return {status: 2, msg: 'Ready'};
-    };
-
-    ext.my_first_block = function() {
-        // Code that gets executed when the block is run
-    };
-
-    // Block and block menu descriptions
-    var descriptor = {
-        blocks: [
-            // Block type, block name, function name
-            [' ', 'my first block', 'my_first_block'],
-        ]
-    };
-
-    // Register the extension
-    ScratchExtensions.register('My first extension', descriptor, ext);
-})({});
-```
-
-### Command blocks that wait
-
-Sometimes it is necessary to have a command block that waits (e.g. if a block plays a sound, it may be a good idea to wait till the sound playback finishes). The sample extension below implements a "random wait" block to show how that can be done. Note the use of the ``console.log`` statement in the code - most Javascript methods, as well as [jQuery](http://jquery.com/) methods will work fine in an extension.
-
-```javascript
-(function(ext) {
-    // Cleanup function when the extension is unloaded
-    ext._shutdown = function() {};
-
-    // Status reporting code
-    // Use this to report missing hardware, plugin or unsupported browser
-    ext._getStatus = function() {
-        return {status: 2, msg: 'Ready'};
-    };
-
-    // Functions for block with type 'w' will get a callback function as the 
-    // final argument. This should be called to indicate that the block can
-    // stop waiting.
-    ext.wait_random = function(callback) {
-        wait = Math.random();
-        console.log('Waiting for ' + wait + ' seconds');
-        window.setTimeout(function() {
-            callback();
-        }, wait*1000);
-    };
-
-    // Block and block menu descriptions
-    var descriptor = {
-        blocks: [
-            ['w', 'wait for random time', 'wait_random'],
-        ]
-    };
-
-    // Register the extension
-    ScratchExtensions.register('Random wait extension', descriptor, ext);
-})({});
-```
-
-### Reporter blocks
-
-Blocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).
-
-```javascript
-(function(ext) {
-    // Cleanup function when the extension is unloaded
-    ext._shutdown = function() {};
-
-    // Status reporting code
-    // Use this to report missing hardware, plugin or unsupported browser
-    ext._getStatus = function() {
-        return {status: 2, msg: 'Ready'};
-    };
-
-    ext.power = function(base, exponent) {
-        return Math.pow(base, exponent);
-    };
-
-    // Block and block menu descriptions
-    var descriptor = {
-        blocks: [
-            // Block type, block name, function name, param1 default value, param2 default value
-            ['r', '%n ^ %n', 'power', 2, 3],
-        ]
-    };
-
-    // Register the extension
-    ScratchExtensions.register('Sample extension', descriptor, ext);
-})({});
-```
-
-### Reporter blocks that wait
-
-One common use-case for reporter blocks is getting data from online web-services, where the blocks need to wait for the web-api call to complete. The following example shows how to fetch the current temperature of a city using an AJAX call to [Open Weather Map API](http://openweathermap.org/API). Note that the block type is _R_ instead of _r_ (which is for a non-blocking reporter).
-
-```javascript
-(function(ext) {
-    // Cleanup function when the extension is unloaded
-    ext._shutdown = function() {};
-
-    // Status reporting code
-    // Use this to report missing hardware, plugin or unsupported browser
-    ext._getStatus = function() {
-        return {status: 2, msg: 'Ready'};
-    };
-
-    ext.get_temp = function(location, callback) {
-        // Make an AJAX call to the Open Weather Maps API
-        $.ajax({
-              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',
-              dataType: 'jsonp',
-              success: function( weather_data ) {
-                  // Got the data - parse it and return the temperature
-                  temperature = weather_data['main']['temp'];
-                  callback(temperature);
-              }
-        });
-    };
-
-    // Block and block menu descriptions
-    var descriptor = {
-        blocks: [
-            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],
-        ]
-    };
-
-    // Register the extension
-    ScratchExtensions.register('Weather extension', descriptor, ext);
-})({});
-```
-
-### Hat blocks
-
-Hat blocks go on top of block stacks - examples of Scratch hat blocks include "when green flag clicked" or "when this sprite clicked". To create a hat block through an extension, the block type needs to be set to _h_, as shown in the example below.
-
-```javascript
-(function(ext) {
-    var alarm_went_off = false; // This becomes true after the alarm goes off
-
-    // Cleanup function when the extension is unloaded
-    ext._shutdown = function() {};
-
-    // Status reporting code
-    // Use this to report missing hardware, plugin or unsupported browser
-    ext._getStatus = function() {
-        return {status: 2, msg: 'Ready'};
-    };
-
-    ext.set_alarm = function(time) {
-       window.setTimeout(function() {
-           alarm_went_off = true;
-       }, time*1000);
-    };
-
-    ext.when_alarm = function() {
-       // Reset alarm_went_off if it is true, and return true
-       // otherwise, return false.
-       if (alarm_went_off === true) {
-           alarm_went_off = false;
-           return true;
-       }
-
-       return false;
-    };
-
-    // Block and block menu descriptions
-    var descriptor = {
-        blocks: [
-            ['', 'run alarm after %n seconds', 'set_alarm', '2'],
-            ['h', 'when alarm goes off', 'when_alarm'],
-        ]
-    };
-
-    // Register the extension
-    ScratchExtensions.register('Alarm extension', descriptor, ext);
-})({});
-```
-
-## The Extension Descriptor
-
-The extension descriptor can be used for more than just listing the blocks offered by your extension. Here is an example of a more complex descriptor:
-```javascript
-var descriptor = {
-    blocks: [
-        ['w', 'turn motor on for %n secs',             'motorOnFor', 1],
-        [' ', 'turn motor on',                         'allMotorsOn'],
-        [' ', 'turn motor off',                        'allMotorsOff'],
-        [' ', 'set motor power %n',                    'startMotorPower', 100],
-        [' ', 'set motor direction %m.motorDirection', 'setMotorDirection', 'this way'],
-        ['h', 'when distance %m.lessMore %n',          'whenDistance', '<', 20],
-        ['h', 'when tilt %m.eNe %n',                   'whenTilt', '=', 1],
-        ['r', 'distance',                              'getDistance'],
-        ['r', 'tilt',                                  'getTilt']
-    ],
-    menus: {
-        motorDirection: ['this way', 'that way', 'reverse'],
-        lessMore: ['<', '>'],
-        eNe: ['=','not =']
-    },
-    url: 'http://info.scratch.mit.edu/WeDo'
-};
-```
-
-### Blocks
-
-The blocks property is an array of block definitions. Each block definition is an array of three or more items.  The required items are: op code, formatted label, and method name. These may optionally be followed by default block argument values.
-
-The full list of block types available to an extension is as follows. Note that any operation that will run for more than a few milliseconds or will wait for an external event should be run asynchronously, as described above in the [Reporter blocks that wait](#reporter-blocks-that-wait) and [Command blocks that wait](#command-blocks-that-wait) sections.
-
-| Op Code | Meaning
-| ------- | -------
-| `' '` (space) | Synchronous command
-| `'w'`   | Asynchronous command
-| `'r'`   | Synchronous reporter
-| `'R'`   | Asynchronous reporter
-| `'h'`   | Hat block (synchronous, returns boolean, true = run stack)
-
-Each block argument is identified by a `%` character and the character following it specifies the type.  The types are: `%n` for number, `%s` for string, and `%m` for menu.  Menus also identify which menu to use with a period and the name of the menu like this: `%m.menuName`.
-
-### Menus
-
-The `menus` property is an object whose properties define the menus used by block arguments in the extension.  The property name is the menu name as it is used in the block definition(s). The property value is an array of options to display in the menu dropdown interface in Scratch.
-
-For example, the `setMotorDirection` block in the example above includes `%m.motorDirection`, which will cause it to display a menu with `'this way'`, `'that way'`, and `'reverse'` as options.
-
-### URL
-
-The `url` property refers to a web page which describes the extension. Ideally, this page would describe each block, give examples, and identify any hardware or software required to use the extension. If the user clicks the `'About [extension name]...'` menu item within Scratch, this is the URL that will be opened.
-
-## Hardware Support
-
-Scratch provides its own set of APIs in order to allow extensions to access certain types of hardware. Currently, Scratch extensions may access the following types of hardware:
-- Serial devices such as the PicoBoard
-- USB HID devices such as joysticks or the LEGO WeDo
-
-Extensions that request hardware access are required to implement two additional methods on the extension instance: `_deviceConnected()` and `_deviceRemoved()`. Both methods receive a device instance. To use the integrated hardware functions of the Scratch Extension API you pass the hardware information in the registration call:
-```javascript
-ScratchExtensions.register('Example Name', descriptor_object, ext_instance[, hardware_info]);
-```
-
-The `_getStatus()` method of your extension can be used to indicate whether your extension has successfully communicated with a hardware device. For example:
-```javascript
-ext._getStatus = function() {
-    if(!device) return {status: 1, msg: 'Device not connected'};
-    return {status: 2, msg: 'Device connected'};
-}
-```
-
-The value returned by `_getStatus()` corresponds to the color of the status 'light' in Scratch and indicates the general state of your extension. The `msg` property can be used to provide more specific information.
-
-| Value | Color  | Meaning   |
-| ----- | ------ | --------- |
-| 0     | red    | error     |
-| 1     | yellow | not ready |
-| 2     | green  | ready     |
-
-The details of the `hardware_info` parameter and the `_deviceConnected()` and `_deviceRemoved()` methods are described below in sections specific to each type of device.
-
-*_API Note: The hardware API is still somewhat experimental and may change in the future. In particular, we will soon be making a change to methods that return hardware data, such as `read()` for HID devices: these methods will take a callback in instead of returning data directly. This change is necessary to improve compatibility and allow us to expand the variety of environments in which hardware extensions are available._*
-
-### USB HID Support
-_An example HID device extension is available [here](https://github.com/LLK/scratch-extension-docs/blob/master/joystickExtension.js)._
-_More information about the HID protocol is available [here](http://www.usb.org/developers/devclass_docs/HID1_11.pdf)._
-
-To let the extension system know that your extension is interested in USB HID devices, pass an object like this for the `hardware_info` parameter of the `register()` method:
-```javascript
-var hid_info = {type: 'hid', vendor: 0x0694, product: 0x0003};
-ScratchExtensions.register('Example', descriptor, ext, hid_info);
-```
-The `vendor` and `product` values indicate the USB vendor and product ID of the device your extension supports. These values are frequently expressed as four-digit hexadecimal values, as indicated with the `0x` prefix in the JavaScript above.
-
-If a device is connected with matching vendor and product IDs, Scratch will call the `_deviceConnected()` method on your extension and pass an object representing that device. Your `_deviceConnected()` method should keep track of the device object and set up communication as necessary for your needs. For example, this will start polling the device for new HID data every 20 milliseconds:
-```javascript
-var poller = null;
-ext._deviceConnected = function(dev) {
-    if(device) return;
-
-    device = dev;
-    device.open();
-
-    poller = setInterval(function() {
-        rawData = device.read();
-    }, 20);
-};
-```
-
-Once a connection to your device is established, your extension may use the `read()` and `write()` methods on the device object to communicate with it. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.
-* `device.read(48)` will attempt to read 48 bytes of data and return an ArrayBuffer containing any data successfully read. Note that one packet of HID data is 48 bytes. *_This method is likely to change soon. See the API Note above._*
-* `device.write(buffer)` will send the given ArrayBuffer's data to the device.
-
-Your extension will also be notified if a matching device is disconnected, allowing your extension a chance to stop communication:
-```javascript
-ext._deviceRemoved = function(dev) {
-    if(device != dev) return;
-    if(poller) poller = clearInterval(poller);
-    device = null;
-};
-```
-
-Finally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:
-```javascript
-ext._shutdown = function() {
-    if(poller) poller = clearInterval(poller);
-    if(device) device.close();
-    device = null;
-}
-```
-
-### Serial Device Support
-_An example serial device extension is available [here](https://github.com/LLK/scratch-extension-docs/blob/master/picoExtension.js)._
-
-To let the extension system know that your extension is interested in serial devices, pass an object like this for the `hardware_info` parameter of the `register()` method:
-```javascript
-var serial_info = {type: 'serial'};
-ScratchExtensions.register('Example', descriptor, ext, serial_info);
-```
-
-Your extension's `_deviceConnected()` method will be called for each serial port present on the computer. Your extension is responsible for checking if a suitable device is attached to that port and continuing on to the next port if necessary. Do not assume that the first time Scratch calls your `_deviceConnected()` will correspond to your device's serial port. The PicoBoard extension shows an example of how to deal with this situation: if no valid PicoBoard communication is received on a given port withing a particular timeout, the extension assumes that there is no PicoBoard on that port and continues scanning to the next port.
-```javascript
-var potentialDevices = [];
-ext._deviceConnected = function(dev) {
-    potentialDevices.push(dev);
-
-    if (!device) {
-        tryNextDevice();
-    }
-}
-```
-
-To communicate with a given serial port, your extension should open it with whichever options are appropriate for your device. These parameters are based on [Boost.Asio's serial port options](http://www.boost.org/doc/libs/1_50_0/doc/html/boost_asio/reference/serial_port_base.html). For a PicoBoard:
-```javascript
-device.open({ stopBits: 0, bitRate: 38400, ctsFlowControl: 0 });
-```
-The full set of options available for a serial port are as follows:
-
-| Option         | Default | Valid values | Description
-| -------------- | ------- | ------------ | -----------
-| bitRate        | 9600 | Any valid baud rate | Up to  The bit (or baud) rate at which to communicate.
-| bufferSize     | 4096 | Up to 8192 | The maximum amount of data that can be received at a time.
-| ctsFlowControl | 1 (software) | 0 (none), 1 (software), 2 (hardware) | The type of flow control to use.
-| dataBits       | 8 | 5, 6, 7, 8 | The number of data bits per character.
-| parityBit      | 0 (none) | 0 (none), 1 (odd), 2 (even) | Whether and how to use the parity bit in each character.
-| stopBits       | 1 (1.5 bits) | 0 (1 bit), 1 (1.5 bits), 2 (2 bits) | The number of stop bits per character.
-
-Once a connection to your device is established, your extension may use the `send()` method to send data to your device, and the `set_receive_handler()` method to register a function to handle received data. These methods use [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) objects to contain data being sent or received.
-* `device.send(buffer)` will send the given ArrayBuffer's data to the device.
-* `device.set_receive_handler(myReceiveHandler)` will result in `myReceiveHandler(buffer)` being called any time Scratch receives data from the device. Your receive handler will be supplied an ArrayBuffer containing the received data.
-
-Your extension will also be notified if a device is disconnected, allowing your extension a chance to stop communication:
-```javascript
-ext._deviceRemoved = function(dev) {
-    if(device != dev) return;
-    if(poller) poller = clearInterval(poller);
-    device = null;
-};
-```
-
-Finally, your extension's `_shutdown()` method will be executed when the extension itself is shut down. For example:
-```javascript
-ext._shutdown = function() {
-    if(poller) poller = clearInterval(poller);
-    if(device) device.close();
-    device = null;
-}
-```
-
-# Sharing Extensions
-
-ScratchX does not host JavaScript extensions. Instead, we provide a way to link ScratchX to a Github-hosted JavaScript extension. ScratchX can also point to a Github-hosted project file (.sbx) that in turn points to a Github-hosted JavaScript (.js) file. This is particularly useful if you’d like to share a demo project that makes use of an experimental extension.
-
-The first step is to set up a [Github account](https://github.com/) if you don’t already have one, and push your JS file and/or SBX file to a [Github page](https://pages.github.com/). You will also need to [set up a crossdomain.xml file](#user-content-setting-up-crossdomainxml).
-
-ScratchX can automatically load an extension or project specified on its URL. To do this, simply add `?url=http://...` to the end of the ScratchX URL. For example, if your extension is at `http://user.github.io/repository/extension.js` then your ScratchX URL would be:
-
-`http://scratchx.org/?url=http://user.github.io/repository/extension.js`
-
-Just as saving a project from Scratch keeps track of the extensions used by the project, saving a project .sbx file from ScratchX keeps track of the GitHub URLs of the experimental extensions in use. As an extension author, this means that you can save an example project and share that .sbx file to give others an idea of what can be done with your extension.
-
-You can construct a URL for a project .sbx file the same way as for an extension. For example, if your project is at `http://user.github.io/repository/example.sbx` then your ScratchX URL would be:
-
-`http://scratchx.org/?url=http://user.github.io/repository/example.sbx`
-
-Clicking on these URLs will open a ScratchX editor with your extension and/or project data loaded from Github. You can now share that link with the world!
-
-## Setting up crossdomain.xml
-
-In order for ScratchX to load your extensions and sample projects from GitHub Pages, you will need to put a file called `crossdomain.xml` into your user or organization repository. This security file lets Flash know that it is allowed to load resources from your site. It will grant Flash access to files on your public repositories, but will not grant access to any private repositories. For more information about crossdomain.xml, please see [this article on Adobe Developer Connection](http://www.adobe.com/devnet/adobe-media-server/articles/cross-domain-xml-for-streaming.html).
-
-Please note that the `crossdomain.xml` file must be in the root of the host. That is, if your extension file is at `http://user.github.io/repository/extension.js` then Flash will look for `http://user.github.io/crossdomain.xml`. This means that the `crossdomain.xml` file cannot be a part of a project repository.
-
-Follow these steps to set up a basic `crossdomain.xml` that will grant access only to ScratchX:
-
-1. Follow the instructions on the [GitHub Pages site](https://pages.github.com/) to **create a user or organization repository** and then **clone the repository**.
-2. Instead of (or in addition to) creating an `index.html` file, create a file called `crossdomain.xml` -- see example below.
-3. Commit the `crossdomain.xml` file and push or sync it to GitHub as shown in the GitHub Pages instructions.
-
-Here is an example `crossdomain.xml` suitable for use with ScratchX:
-```XML
-<cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFile.xsd">
-  <site-control permitted-cross-domain-policies="master-only"/>
-  <allow-access-from domain="scratchx.org"/>
-  <allow-access-from domain="llk.github.io"/>
-</cross-domain-policy>
-```
-
-
-# Developer FAQ
-
-##What is ScratchX? 
-ScratchX is a platform that enables people to test experimental functionality built by developers for the visual programming language [Scratch](https://scratch.mit.edu). 
-
-##What’s the difference between Scratch and ScratchX? 
-[Scratch](https://scratch.mit.edu) is a programming language and online community where you can create your own interactive stories, games, and animations. ScratchX is a separate experimental platform built to test experimental Scratch features, also known as Experimental Extensions. There is no login or community component to ScratchX, and projects created within ScratchX can only be run on ScratchX. 
-
-##What are Scratch Extensions?
-Scratch extensions make it possible for Scratch to interface with external hardware and information outside of the Scratch website through new blocks. Extensions are written in JavaScript for the ScratchX project editor.
-
-##What is the difference between Experimental and Official Extensions?
-Experimental Extensions are extensions created for Scratch by the community; they are not managed or endorsed by Scratch in any way. Experimental Extensions can run only in the ScratchX environment. Official Extensions can be found and run from within Scratch 2.0 (both [online](https://scratch.mit.edu) and [offline](https://scratch.mit.edu/scratch2download/_) editors), accessible in the ‘More Blocks’ section of the blocks menu. 
-
-##How can I make my extension Official? 
-At this time, we’re focused on building a library of Experimental Extensions on the ScratchX platform. We plan to work with developers over time to bring many of these Experimental Extensions into Scratch as official extensions. If you’d like to suggest your extension be highlighted on ScratchX, please email us at: scratch-extensions@media.mit.edu
-
-##What are the criteria for being added to the ScratchX library?
-Here are some of the criteria we’ll be using to decide whether or not to add an extension to the library:
-
-* Security
-* Ease of Use
-* Quality (documentation, design, code)
-* Requirements (browsers, operating system, hardware, etc)
-* Content (age-appropriate, copyright infringement)
-
-##Where can I find example Experimental Extensions to play around with?
-We have linked to a few example extensions on the [ScratchX](http://scratchx.org) homepage. We plan to highlight additional extensions in the coming months in a ScratchX library.
-
-##Who can make an extension?
-Developers with a [GitHub](https://github.com) account and a knowledge of JavaScript can create and test Experimental Extensions on ScratchX. To learn more about how to make extensions, see our [documentation here](#writing-extensions-for-scratchx)
-
-##How do I create a Scratch extension?
-You can learn more about how to create a Scratch extension [in our documentation here](#sharing-extensions)
-
-##How do I share my Experimental Extensions?
-The easiest way to share your experimental extension is to create a scratchx.org url that points to your extension (hosted on GitHub). You can learn more about [sharing your extension here](#sharing-extensions). 
-
-##What is an .sbx file? 
-The SBX (.sbx) ScratchX file format is the file format used to encode ScratchX projects when they are downloaded to a user's computer. SBX files can only be used on the ScratchX site. Other Scratch environments use different formats, including the .sb2 format for Scratch 2.0 (read more [here](http://wiki.scratch.mit.edu/wiki/Scratch_File_Format_%282.0%29)) and .sb format for Scratch 1.4 (read more [here](http://wiki.scratch.mit.edu/wiki/Scratch_File_Format_%281.4%29))
-
-##Why can’t I open .sbx files in Scratch 2.0 or the offline editor?
-Experimental Extensions are extensions created for Scratch by the community and are not managed or endorsed by Scratch in any way. Because of this, we do not allow Experimental Extensions to run on the larger Scratch site. 
-
-##I’m having trouble creating my extension - where can I get help?
-Once you’ve published your code on Github, post a link to it in the [Scratch extension developers forum](http://scratch.mit.edu/discuss/48/) asking other developers for help.
-
-##What is going to happen to the older Experimental Extension tools in Scratch 2.0? 
-We plan to phase out the older Experimental Extensions platform on Scratch 2.0 at the end of November 2015. We encourage everyone to migrate their extensions out of Scratch 2.0 and into GitHub for use in ScratchX before November 2015. 
-
-##How do I request new features or submit bugs?
-We would love to hear your thoughts and suggestions. Submit them as issues here on our [GitHub repository](https://github.com/LLK/scratchx/issues).
+# Documentation has moved
 
+The extensions documentation has moved to the [ScratchX Wiki](https://github.com/LLK/scratchx/wiki)
\ No newline at end of file

From 0c2d604be47bd571a4f8337f6e6bf0408cb537a7 Mon Sep 17 00:00:00 2001
From: Ray Schamp <ray@scratch.mit.edu>
Date: Fri, 15 May 2015 14:01:20 -0400
Subject: [PATCH 47/47] Redirect traffic to ScratchX

---
 README.md                          |  11 +-
 alarm_extension.js                 |  44 -------
 browser_extension.js               |  45 -------
 joystickExtension.js               |  76 -----------
 localstorage_extension.js          |  46 -------
 picoExtension.js                   | 202 -----------------------------
 power_extension.js                 |  30 -----
 random_wait_extension.js           |  36 -----
 speech_to_text_extension.js        |  39 ------
 text_to_speech_extension.js        |  51 --------
 text_to_speech_simple_extension.js |  30 -----
 weather_extension.js               |  39 ------
 12 files changed, 3 insertions(+), 646 deletions(-)
 delete mode 100644 alarm_extension.js
 delete mode 100644 browser_extension.js
 delete mode 100644 joystickExtension.js
 delete mode 100644 localstorage_extension.js
 delete mode 100644 picoExtension.js
 delete mode 100644 power_extension.js
 delete mode 100644 random_wait_extension.js
 delete mode 100644 speech_to_text_extension.js
 delete mode 100644 text_to_speech_extension.js
 delete mode 100644 text_to_speech_simple_extension.js
 delete mode 100644 weather_extension.js

diff --git a/README.md b/README.md
index 4bfcc55..ce62abb 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,4 @@
-scratch-extension-docs
-======================
+This repository has moved
+=========================
 
-Sample code for creating extensions with Scratch 2.0.
-
-See http://llk.github.io/scratch-extension-docs for documentation.
-
-Questions? See the Scratch extension developer's forum:
-http://scratch.mit.edu/discuss/48/
+Please find [documentation](https://github.com/LLK/scratchx/wiki), [example extensions](https://github.com/LLK/scratchx/wiki/Example-Extensions) and more at the [ScratchX repository](https://github.com/LLK/scratchx/).
diff --git a/alarm_extension.js b/alarm_extension.js
deleted file mode 100644
index 89239d6..0000000
--- a/alarm_extension.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Extension demonstrating a hat block */
-/* Sayamindu Dasgupta <sayamindu@media.mit.edu>, May 2014 */
-
-new (function() {
-    var ext = this;
-    var alarm_went_off = false; // This becomes true after the alarm goes off
-
-    // Cleanup function when the extension is unloaded
-    ext._shutdown = function() {};
-
-    // Status reporting code
-    // Use this to report missing hardware, plugin or unsupported browser
-    ext._getStatus = function() {
-        return {status: 2, msg: 'Ready'};
-    };
-
-    ext.set_alarm = function(time) {
-       window.setTimeout(function() {
-           alarm_went_off = true;
-       }, time*1000);
-    };
-
-    ext.when_alarm = function() {
-       // Reset alarm_went_off if it is true, and return true
-       // otherwise, return false.
-       if (alarm_went_off === true) {
-           alarm_went_off = false;
-           return true;
-       }
-
-       return false;
-    };
-
-    // Block and block menu descriptions
-    var descriptor = {
-        blocks: [
-            ['', 'run alarm after %n seconds', 'set_alarm', '2'],
-            ['h', 'when alarm goes off', 'when_alarm'],
-        ]
-    };
-
-    // Register the extension
-    ScratchExtensions.register('Alarm extension', descriptor, ext);
-})();
\ No newline at end of file
diff --git a/browser_extension.js b/browser_extension.js
deleted file mode 100644
index 3169774..0000000
--- a/browser_extension.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Scratch Extension to demonstrate some simple web browser functionality
-// 2014 Shane M. Clements
-
-(function(ext) {
-    ext.alert = function(message) {
-        alert(message);
-    };
-
-    ext.confirm = function(question) {
-        return confirm(question);
-    };
-
-    ext.ask = function(question) {
-        return prompt(question);
-    };
-
-    ext.setTitle = function(title) {
-        window.document.title = title;
-    };
-
-    ext.openTab = function(location) {
-        window.open(location, '_blank');
-    };
-
-    ext._shutdown = function() {
-        console.log('Shutting down...');
-    };
-
-    ext._getStatus = function() {
-        return {status: 2, msg: 'Ready'};
-    };
-
-    var descriptor = {
-        blocks: [
-            [' ', 'alert %s', 'alert', ''],
-            ['r', 'confirm %s', 'confirm', 'Are you sure?'],
-            ['r', 'ask %s', 'ask', 'How are you?'],
-            [' ', 'set window title to %s', 'setTitle', 'title'],
-            [' ', 'open tab with %s', 'openTab', 'https://twitter.com/scratchteam']
-        ]
-    };
-
-    ScratchExtensions.register('Browser Stuff', descriptor, ext);
-})({});
-
diff --git a/joystickExtension.js b/joystickExtension.js
deleted file mode 100644
index 2e72d29..0000000
--- a/joystickExtension.js
+++ /dev/null
@@ -1,76 +0,0 @@
-// joystickExtension.js
-// Shane M. Clements, November 2013
-// Joystick Scratch Extension
-//
-// This is an extension for development and testing of the Scratch Javascript Extension API.
-
-new (function() {
-    var device = null;
-    var input = null;
-    var poller = null;
-    var ext = this;
-
-    ext._deviceConnected = function(dev) {
-        if(device) return;
-
-        device = dev;
-        device.open();
-
-        poller = setInterval(function() {
-            input = device.read(48);
-        }, 10);
-
-//        setInterval(function() { console.log(input); }, 100);
-    };
-
-    ext._deviceRemoved = function(dev) {
-        if(device != dev) return;
-        device = null;
-        stopPolling();
-    };
-
-    function stopPolling() {
-        if(poller) clearInterval(poller);
-        poller = null;
-    }
-
-    ext._shutdown = function() {
-        if(poller) clearInterval(poller);
-        poller = null;
-
-        if(device) device.close();
-        device = null;
-    }
-
-    ext._getStatus = function() {
-        if(!device) return {status: 1, msg: 'Controller disconnected'};
-        return {status: 2, msg: 'Controller connected'};
-    }
-
-    // Converts a byte into a value of the range -1 -> 1 with two decimal places of precision
-    function convertByteStr(byte) { return (parseInt(byte, 16) - 128) / 128; }
-    ext.readJoystick = function(name) {
-        var retval = null;
-        switch(name) {
-            case 'leftX': retval = convertByteStr(input[12] + input[13]); break;
-            case 'leftY': retval = -convertByteStr(input[14] + input[15]); break;
-            case 'rightX': retval = convertByteStr(input[16] + input[17]); break;
-            case 'rightY': retval = -convertByteStr(input[18] + input[19]); break;
-        }
-
-        // If it's hardly off center then treat it as centered
-        if(Math.abs(retval) < 0.1) retval = 0;
-
-        return retval.toFixed(2);
-    }
-
-    var descriptor = {
-        blocks: [
-            ['r', 'get joystick %m.joystickPart', 'readJoystick', 'leftX']
-        ],
-        menus: {
-            joystickPart: ['leftX', 'leftY', 'rightX', 'rightY']
-        }
-    };
-    ScratchExtensions.register('Joystick', descriptor, ext, {type: 'hid', vendor:0x054c, product:0x0268});
-})();
diff --git a/localstorage_extension.js b/localstorage_extension.js
deleted file mode 100644
index 2f42433..0000000
--- a/localstorage_extension.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Extension using the JavaScript localStorage API */
-/* Sayamindu Dasgupta <sayamindu@media.mit.edu>, April 2014 */
-
-new (function() {
-    var ext = this;
-
-    ext.set_localstorage = function (data) {
-        localStorage.setItem(app.projectModel.id.toString(), data);
-    };
-
-    ext.change_localstorage = function(change) {
-        var data = localStorage.getItem(app.projectModel.id.toString());
-        if (!isNaN(parseFloat(data))) {
-             localStorage.setItem(app.projectModel.id.toString(), parseFloat(data) + change);
-        }
-    };
-
-    ext.get_localstorage = function () {
-        return localStorage.getItem(app.projectModel.id.toString());
-    };
-
-    ext._shutdown = function() {};
-
-
-    ext._getStatus = function() {
-        var test = 'test';
-        try {
-            localStorage.setItem(test, test);
-            localStorage.removeItem(test);
-        } catch(e) {
-            return {status: 1, msg: 'Your browser does not support the localStorage API'};
-        }
-
-        return {status: 2, msg: 'Ready'};
-    };
-
-    var descriptor = {
-        blocks: [
-            ['', 'set local data to %s', 'set_localstorage', '0'],
-            ['', 'change local data by %d', 'change_localstorage', 1],
-            ['r', 'local data', 'get_localstorage'],
-        ],
-    };
-
-    ScratchExtensions.register('Local Storage', descriptor, ext);
-})();
\ No newline at end of file
diff --git a/picoExtension.js b/picoExtension.js
deleted file mode 100644
index face82d..0000000
--- a/picoExtension.js
+++ /dev/null
@@ -1,202 +0,0 @@
-// picoExtension.js
-// Shane M. Clements, February 2014
-// PicoBoard Scratch Extension
-//
-// This is an extension for development and testing of the Scratch Javascript Extension API.
-
-(function(ext) {
-    var device = null;
-    var rawData = null;
-
-    // Sensor states:
-    var channels = {
-        slider: 7,
-        light: 5,
-        sound: 6,
-        button: 3,
-        'resistance-A': 4,
-        'resistance-B': 2,
-        'resistance-C': 1,
-        'resistance-D': 0
-    };
-    var inputs = {
-        slider: 0,
-        light: 0,
-        sound: 0,
-        button: 0,
-        'resistance-A': 0,
-        'resistance-B': 0,
-        'resistance-C': 0,
-        'resistance-D': 0
-    };
-
-    ext.resetAll = function(){};
-
-    // Hats / triggers
-    ext.whenSensorConnected = function(which) {
-        return getSensorPressed(which);
-    };
-
-    ext.whenSensorPass = function(which, sign, level) {
-        if (sign == '<') return getSensor(which) < level;
-        return getSensor(which) > level;
-    };
-
-    // Reporters
-    ext.sensorPressed = function(which) {
-        return getSensorPressed(which);
-    };
-
-    ext.sensor = function(which) { return getSensor(which); };
-
-    // Private logic
-    function getSensorPressed(which) {
-        if (device == null) return false;
-        if (which == 'button pressed' && getSensor('button') < 1) return true;
-        if (which == 'A connected' && getSensor('resistance-A') < 10) return true;
-        if (which == 'B connected' && getSensor('resistance-B') < 10) return true;
-        if (which == 'C connected' && getSensor('resistance-C') < 10) return true;
-        if (which == 'D connected' && getSensor('resistance-D') < 10) return true;
-        return false;
-    }
-
-    function getSensor(which) {
-        return inputs[which];
-    }
-
-    var inputArray = [];
-    function processData() {
-        var bytes = new Uint8Array(rawData);
-
-        inputArray[15] = 0;
-
-        // TODO: make this robust against misaligned packets.
-        // Right now there's no guarantee that our 18 bytes start at the beginning of a message.
-        // Maybe we should treat the data as a stream of 2-byte packets instead of 18-byte packets.
-        // That way we could just check the high bit of each byte to verify that we're aligned.
-        for(var i=0; i<9; ++i) {
-            var hb = bytes[i*2] & 127;
-            var channel = hb >> 3;
-            var lb = bytes[i*2+1] & 127;
-            inputArray[channel] = ((hb & 7) << 7) + lb;
-        }
-
-        if (watchdog && (inputArray[15] == 0x04)) {
-            // Seems to be a valid PicoBoard.
-            clearTimeout(watchdog);
-            watchdog = null;
-        }
-
-        for(var name in inputs) {
-            var v = inputArray[channels[name]];
-            if(name == 'light') {
-                v = (v < 25) ? 100 - v : Math.round((1023 - v) * (75 / 998));
-            }
-            else if(name == 'sound') {
-                //empirically tested noise sensor floor
-                v = Math.max(0, v - 18)
-                v =  (v < 50) ? v / 2 :
-                    //noise ceiling
-                    25 + Math.min(75, Math.round((v - 50) * (75 / 580)));
-            }
-            else {
-                v = (100 * v) / 1023;
-            }
-
-            inputs[name] = v;
-        }
-
-        //console.log(inputs);
-        rawData = null;
-    }
-
-    function appendBuffer( buffer1, buffer2 ) {
-        var tmp = new Uint8Array( buffer1.byteLength + buffer2.byteLength );
-        tmp.set( new Uint8Array( buffer1 ), 0 );
-        tmp.set( new Uint8Array( buffer2 ), buffer1.byteLength );
-        return tmp.buffer;
-    }
-
-    // Extension API interactions
-    var potentialDevices = [];
-    ext._deviceConnected = function(dev) {
-        potentialDevices.push(dev);
-
-        if (!device) {
-            tryNextDevice();
-        }
-    }
-
-    var poller = null;
-    var watchdog = null;
-    function tryNextDevice() {
-        // If potentialDevices is empty, device will be undefined.
-        // That will get us back here next time a device is connected.
-        device = potentialDevices.shift();
-        if (!device) return;
-
-        device.open({ stopBits: 0, bitRate: 38400, ctsFlowControl: 0 });
-        device.set_receive_handler(function(data) {
-            //console.log('Received: ' + data.byteLength);
-            if(!rawData || rawData.byteLength == 18) rawData = new Uint8Array(data);
-            else rawData = appendBuffer(rawData, data);
-
-            if(rawData.byteLength >= 18) {
-                //console.log(rawData);
-                processData();
-                //device.send(pingCmd.buffer);
-            }
-        });
-
-        // Tell the PicoBoard to send a input data every 50ms
-        var pingCmd = new Uint8Array(1);
-        pingCmd[0] = 1;
-        poller = setInterval(function() {
-            device.send(pingCmd.buffer);
-        }, 50);
-        watchdog = setTimeout(function() {
-            // This device didn't get good data in time, so give up on it. Clean up and then move on.
-            // If we get good data then we'll terminate this watchdog.
-            clearInterval(poller);
-            poller = null;
-            device.set_receive_handler(null);
-            device.close();
-            device = null;
-            tryNextDevice();
-        }, 250);
-    };
-
-    ext._deviceRemoved = function(dev) {
-        if(device != dev) return;
-        if(poller) poller = clearInterval(poller);
-        device = null;
-    };
-
-    ext._shutdown = function() {
-        if(device) device.close();
-        if(poller) poller = clearInterval(poller);
-        device = null;
-    };
-
-    ext._getStatus = function() {
-        if(!device) return {status: 1, msg: 'PicoBoard disconnected'};
-        if(watchdog) return {status: 1, msg: 'Probing for PicoBoard'};
-        return {status: 2, msg: 'PicoBoard connected'};
-    }
-
-    var descriptor = {
-        blocks: [
-            ['h', 'when %m.booleanSensor',         'whenSensorConnected', 'button pressed'],
-            ['h', 'when %m.sensor %m.lessMore %n', 'whenSensorPass',      'slider', '>', 50],
-            ['b', 'sensor %m.booleanSensor?',      'sensorPressed',       'button pressed'],
-            ['r', '%m.sensor sensor value',        'sensor',              'slider']
-        ],
-        menus: {
-            booleanSensor: ['button pressed', 'A connected', 'B connected', 'C connected', 'D connected'],
-            sensor: ['slider', 'light', 'sound', 'resistance-A', 'resistance-B', 'resistance-C', 'resistance-D'],
-            lessMore: ['>', '<']
-        },
-        url: '/info/help/studio/tips/ext/PicoBoard/'
-    };
-    ScratchExtensions.register('PicoBoard', descriptor, ext, {type: 'serial'});
-})({});
diff --git a/power_extension.js b/power_extension.js
deleted file mode 100644
index f4b3870..0000000
--- a/power_extension.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Extension demonstrating a reporter block */
-/* Sayamindu Dasgupta <sayamindu@media.mit.edu>, May 2014 */
-
-new (function() {
-    var ext = this;
-
-    // Cleanup function when the extension is unloaded
-    ext._shutdown = function() {};
-
-    // Status reporting code
-    // Use this to report missing hardware, plugin or unsupported browser
-    ext._getStatus = function() {
-        return {status: 2, msg: 'Ready'};
-    };
-
-    ext.power = function(base, exponent) {
-        return Math.pow(base, exponent);
-    };
-
-    // Block and block menu descriptions
-    var descriptor = {
-        blocks: [
-            // Block type, block name, function name, param1 default value, param2 default value
-            ['r', '%n ^ %n', 'power', 2, 3],
-        ]
-    };
-
-    // Register the extension
-    ScratchExtensions.register('Sample extension', descriptor, ext);
-})();
\ No newline at end of file
diff --git a/random_wait_extension.js b/random_wait_extension.js
deleted file mode 100644
index 23b5f71..0000000
--- a/random_wait_extension.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Extension demonstrating a blocking command block */
-/* Sayamindu Dasgupta <sayamindu@media.mit.edu>, May 2014 */
-
-new (function() {
-    var ext = this;
-
-    // Cleanup function when the extension is unloaded
-    ext._shutdown = function() {};
-
-    // Status reporting code
-    // Use this to report missing hardware, plugin or unsupported browser
-    ext._getStatus = function() {
-        return {status: 2, msg: 'Ready'};
-    };
-
-    // Functions for block with type 'w' will get a callback function as the 
-    // final argument. This should be called to indicate that the block can
-    // stop waiting.
-    ext.wait_random = function(callback) {
-        wait = Math.random();
-        console.log('Waiting for ' + wait + ' seconds');
-        window.setTimeout(function() {
-            callback();
-        }, wait*1000);
-    };
-
-    // Block and block menu descriptions
-    var descriptor = {
-        blocks: [
-            ['w', 'wait for random time', 'wait_random'],
-        ]
-    };
-
-    // Register the extension
-    ScratchExtensions.register('Random wait extension', descriptor, ext);
-})();
\ No newline at end of file
diff --git a/speech_to_text_extension.js b/speech_to_text_extension.js
deleted file mode 100644
index 38fb956..0000000
--- a/speech_to_text_extension.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Extension using the JavaScript Speech API for speech to text */
-/* Sayamindu Dasgupta <sayamindu@media.mit.edu>, April 2014 */
-
-new (function() {
-    var ext = this;
-    
-    var recognized_speech = '';
-
-    ext.recognize_speech = function (callback) {
-        var recognition = new webkitSpeechRecognition();
-        recognition.onresult = function(event) {
-            if (event.results.length > 0) {
-                recognized_speech = event.results[0][0].transcript;
-                if (typeof callback=="function") callback();
-            }
-        };
-        recognition.start();
-    };
-
-    ext.recognized_speech = function () {return recognized_speech;};
-
-    ext._shutdown = function() {};
-
-    ext._getStatus = function() {
-        if (window.webkitSpeechRecognition === undefined) {
-            return {status: 1, msg: 'Your browser does not support speech recognition. Try using Google Chrome.'};
-        }
-        return {status: 2, msg: 'Ready'};
-    };
-
-    var descriptor = {
-        blocks: [
-            ['w', 'wait and recognize speech', 'recognize_speech'],
-            ['r', 'recognized speech', 'recognized_speech']
-        ],
-    };
-
-    ScratchExtensions.register('Speech To Text', descriptor, ext);
-})();
\ No newline at end of file
diff --git a/text_to_speech_extension.js b/text_to_speech_extension.js
deleted file mode 100644
index fd26964..0000000
--- a/text_to_speech_extension.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Extension using the JavaScript Speech API for text to speech */
-/* Sayamindu Dasgupta <sayamindu@media.mit.edu>, April 2014 */
-
-new (function() {
-    var ext = this;
-
-    /*function _get_voices() {
-        var ret = [];
-        var voices = speechSynthesis.getVoices();
-        
-        for(var i = 0; i < voices.length; i++ ) {
-            ret.push(voices[i].name);
-            console.log(voices.toString());
-        }
-
-        return ret;
-    }
-
-    ext.set_voice = function() {
-    };*/
-
-    ext.speak_text = function (text, callback) {
-        var u = new SpeechSynthesisUtterance(text.toString());
-        u.onend = function(event) {
-            if (typeof callback=="function") callback();
-        };
-        
-        speechSynthesis.speak(u);
-    };
-
-    ext._shutdown = function() {};
-
-    ext._getStatus = function() {
-        if (window.SpeechSynthesisUtterance === undefined) {
-            return {status: 1, msg: 'Your browser does not support text to speech. Try using Google Chrome or Safari.'};
-        }
-        return {status: 2, msg: 'Ready'};
-    };
-
-    var descriptor = {
-        blocks: [
-            //['', 'set voice to %m.voices', 'set_voice', ''],
-            ['w', 'speak %s', 'speak_text', 'Hello!'],
-        ],
-        /*menus: {
-            voices: _get_voices(),
-        },*/
-    };
-
-    ScratchExtensions.register('Text to Speech', descriptor, ext);
-})();
\ No newline at end of file
diff --git a/text_to_speech_simple_extension.js b/text_to_speech_simple_extension.js
deleted file mode 100644
index fd02d0f..0000000
--- a/text_to_speech_simple_extension.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Extension demonstrating a simple version of the Text to Speech block */
-/* Sayamindu Dasgupta <sayamindu@media.mit.edu>, May 2014 */
-
-new (function() {
-    var ext = this;
-
-    // Cleanup function when the extension is unloaded
-    ext._shutdown = function() {};
-
-    // Status reporting code
-    // Use this to report missing hardware, plugin or unsupported browser
-    ext._getStatus = function() {
-        return {status: 2, msg: 'Ready'};
-    };
-
-    ext.speak = function(text) {
-        msg = new SpeechSynthesisUtterance(text);
-        window.speechSynthesis.speak(msg);
-    };
-
-    // Block and block menu descriptions
-    var descriptor = {
-        blocks: [
-            ['', 'speak %s', 'speak', "Hello!"],
-        ]
-    };
-
-    // Register the extension
-    ScratchExtensions.register('Simple text to speech extension', descriptor, ext);
-})();
\ No newline at end of file
diff --git a/weather_extension.js b/weather_extension.js
deleted file mode 100644
index d530045..0000000
--- a/weather_extension.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Extension demonstrating a blocking reporter block */
-/* Sayamindu Dasgupta <sayamindu@media.mit.edu>, May 2014 */
-
-
-new (function() {
-    var ext = this;
-
-    // Cleanup function when the extension is unloaded
-    ext._shutdown = function() {};
-
-    // Status reporting code
-    // Use this to report missing hardware, plugin or unsupported browser
-    ext._getStatus = function() {
-        return {status: 2, msg: 'Ready'};
-    };
-
-    ext.get_temp = function(location, callback) {
-        // Make an AJAX call to the Open Weather Maps API
-        $.ajax({
-              url: 'http://api.openweathermap.org/data/2.5/weather?q='+location+'&units=imperial',
-              dataType: 'jsonp',
-              success: function( weather_data ) {
-                  // Got the data - parse it and return the temperature
-                  temperature = weather_data['main']['temp'];
-                  callback(temperature);
-              }
-        });
-    };
-
-    // Block and block menu descriptions
-    var descriptor = {
-        blocks: [
-            ['R', 'current temperature in city %s', 'get_temp', 'Boston, MA'],
-        ]
-    };
-
-    // Register the extension
-    ScratchExtensions.register('Weather extension', descriptor, ext);
-})();
\ No newline at end of file