From bc7103614b9b0cfc4c4a471d46c5581f83cc939d Mon Sep 17 00:00:00 2001 From: Kelsey Breseman Date: Sun, 13 Sep 2015 12:36:06 -0700 Subject: [PATCH 1/8] translated prereqs and finished to markdown --- cmd.html | 209 ++------------------------------------------------ cmd.md | 178 ++++++++++++++++++++++++++++++++++++++++++ finished.html | 45 +---------- finished.md | 33 ++++++++ 4 files changed, 220 insertions(+), 245 deletions(-) create mode 100644 cmd.md create mode 100644 finished.md diff --git a/cmd.html b/cmd.html index 1579b88..c2fbc17 100644 --- a/cmd.html +++ b/cmd.html @@ -2,208 +2,9 @@ layout: default --- -

Command Line Basics

-

Using Tessel is just like web development. But if -you're not familiar with web development, you might want -to take a minute or two to get comfortable with some key -tools of the trade: the command line (the "terminal", -where you execute commands) and the text editor, where -you will work on and save your programs.

-

Select the operating system you are working on.

-
-
- OSX -
-
- Linux -
-
- Windows -
-
-
-
-

Open up the application on your computer called - “Terminal” by pressing ⌘ + SPACE and typing - “Terminal”.

-

Its dock icon looks like - , and the terminal will look something like - -

-

You can use the terminal to write commands to your - computer (this is the “command line”). Let’s try it - out!

-

In your terminal, - type

ls -

and hit enter.

-

The ls command, short for “list”, - tells your computer to list all of the file names for - the folder you’re in. Your list of files probably - includes “Desktop” and “Documents”, among others. - Let’s try another command: type

cd - Documents -

and hit enter.

-

You are now in the Documents folder; - cd means “change directory”. If you try - ls again, you should see the contents of - your Documents folder listed out. If you want to - compare, open up Finder and look in Documents to see - the same files.

-

Let’s get back to the folder we were in - before:

cd .. -

You changed directory - again!

ls -

to see what we have here. You’re back where you - started! The .. after cd - tells it to go up one folder in the directory.

-

Ok, now you're a cool hacker who can use the - terminal (or "console") to write in the command line. - (If you want to learn more commands, there are a - whole bunch of them here. I recommend pwd, - open, mkdir, - touch, mv, and - cp.)

-
-
-

Open up the application on your computer called - “Terminal” by tapping the SUPER key (Windows or Apple - key, depending on your hardware) and typing - “Terminal”.

-

Its icon looks like - , and the terminal will look something like - -

-

You can use the terminal to write commands to your - computer (this is the “command line”). Let’s try it - out!

-

In your terminal, - type

ls -

and hit enter.

-

The ls command, short for “list”, - tells your computer to list all of the file names for - the folder you’re in. Your list of files probably - includes “Desktop” and “Documents”, among others. - Let’s try another command: type

cd - Documents -

and hit enter.

-

You are now in the Documents folder; - cd means “change directory”. If you try - ls again, you should see the contents of - your Documents folder listed out. If you want to - compare, open up Finder and look in Documents to see - the same files.

-

Let’s get back to the folder we were in - before:

cd .. -

You changed directory - again!

ls -

to see what we have here. You’re back where you - started! The .. after cd - tells it to go up one folder in the directory.

-

Ok, now you're a cool hacker who can use the - terminal (or "console") to write in the command line. - (If you want to learn more commands, there are a - whole bunch of them here. I recommend pwd, - open, mkdir, - touch, mv, and - cp.)

-
-
-

Open up the application on your computer called - “Command Prompt”.

-

If you’re not on Windows 8, go to the start menu - and type “Command Prompt”.

-

If you are on Windows 8+, swipe right to find - “Windows System”, within which you can find “Command - Prompt”.

-

Its icon looks like - , and the application (the terminal) will look - something like -

-

You can use the terminal to write commands to your - computer (this is the “command line”). Let’s try it - out!

-

In your terminal, - type

dir -

and hit enter.

-

The dir command, short for - “directory”, tells your computer to list all of the - file names for the folder you’re in. Your list of - files probably includes “Desktop” and “Documents”, - among others. Let’s try another command:

-

Now type

cd Documents -

into your command line and press enter.

-

You are now in the Documents folder; - cd means “change directory”. If you try - dir again, you should see the contents - of your Documents folder listed out. If you want to - compare, open up My Comuter and look in Documents to - see the same files.

-

Let’s get back to the folder we were in - before:

cd .. -

You changed directory - again!

dir -

to see what we have here. You’re back where you - started! The .. after cd - tells it to go up one folder in the directory.

-

Now you’re a cool hacker who can use the terminal - to write in the command line. (If you want to learn - more commands, there are a whole bunch of them - here.)

-
-
- - -
-
-

Text Editors

-

You will also need a text editor to save your -JavaScript files. This means a plaintext editor, not a -Word document.

-

Here are some good options:

- + -

Typically, directions that belong in the command line -are one line, whereas longer scripts, such as anything in -JavaScript, should be typed into the text editor and -saved, then run through the command line.

- -

In the context of this tutorial, things that should be -run in the command line look

like -this - -

And scripts that should be saved in the text editor -will look

- -
-  like this
-
- -
- -
- -
+{% capture include_install %} +{% include_relative cmd.md %} +{% endcapture %} +{{ include_install | markdownify | replace: '

|','

' | replace: '|

','
' | replace: '||','
' }} diff --git a/cmd.md b/cmd.md new file mode 100644 index 0000000..a39e914 --- /dev/null +++ b/cmd.md @@ -0,0 +1,178 @@ +{::options parse_block_html="true" /} + +
+
+ +# Command Line Basics + +Using Tessel is just like web development. But if +you're not familiar with web development, you might want +to take a minute or two to get comfortable with some key +tools of the trade: the command line (the "terminal", +where you execute commands) and the text editor, where +you will work on and save your programs. + +Select the operating system you are working on. + +
+| [OSX](#tab-osx) || [Linux](#tab-linux) || [Windows](#tab-windows) | +
+ +
+ +
+ +Open up the application on your computer called “Terminal” by pressing ⌘ + SPACE and typing “Terminal”. + +Its dock icon looks like ![](https://s3.amazonaws.com/technicalmachine-assets/fre+assets/mac-term-icon.png), and the terminal will look something like ![](https://s3.amazonaws.com/technicalmachine-assets/fre+assets/mac-term.png) + +You can use the terminal to write commands to your computer (this is the “command line”). Let’s try it out! + +In your terminal, type + +`ls` + +and hit enter. + +The `ls` command, short for “list”, tells your computer to list all of the file names for the folder you’re in. Your list of files probably includes “Desktop” and “Documents”, among others. + +Let’s try another command: type + +`cd Documents` + +and hit enter. + +You are now in the Documents folder; `cd` means “change directory”. If you try `ls` again, you should see the contents of your Documents folder listed out. If you want to compare, open up Finder and look in Documents to see the same files. + +Let’s get back to the folder we were in before: `cd ..` + +You changed directory again! `ls` +to see what we have here. You’re back where you started! The `..` after `cd` tells it to go up one folder in the directory. + +Ok, now you're a cool hacker who can use the terminal (or "console") to write in the command line. + +(If you want to learn more commands, there are a whole bunch of them here. I recommend `pwd`, `open`, `mkdir`, `touch`, `mv`, and `cp`.) + +
+ +
+ +Open up the application on your computer called “Terminal” by tapping the SUPER key (Windows or Apple key, depending on your hardware) and typing “Terminal”. + +Its icon looks like ![](https://s3.amazonaws.com/technicalmachine-assets/fre+assets/mac-term-icon.png), and the terminal will look something like ![](https://s3.amazonaws.com/technicalmachine-assets/fre+assets/mac-term.png) + +You can use the terminal to write commands to your computer (this is the “command line”). Let’s try it out! + +In your terminal, type + +`ls` + +and hit enter. + +The `ls` command, short for “list”, tells your computer to list all of the file names for the folder you’re in. Your list of files probably includes “Desktop” and “Documents”, among others. + +Let’s try another command: type + +`cd Documents` + +and hit enter. + +You are now in the Documents folder; `cd` means “change directory”. If you try `ls` again, you should see the contents of your Documents folder listed out. If you want to compare, open up Finder and look in Documents to see the same files. + +Let’s get back to the folder we were in before: `cd ..` + +You changed directory again! `ls` +to see what we have here. You’re back where you started! The `..` after `cd` tells it to go up one folder in the directory. + +Ok, now you're a cool hacker who can use the terminal (or "console") to write in the command line. + +(If you want to learn more commands, there are a whole bunch of them here. I recommend `pwd`, `open`, `mkdir`, `touch`, `mv`, and `cp`.) + +
+ +
+ +Open up the application on your computer called “Command Prompt”. + +If you’re not on Windows 8, go to the start menu and type “Command Prompt”. + +If you are on Windows 8+, swipe right to find “Windows System”, within which you can find “Command Prompt”. + +Its icon looks like ![](https://s3.amazonaws.com/technicalmachine-assets/fre+assets/win-term-icon.png), and the application (the terminal) will look something like ![](https://s3.amazonaws.com/technicalmachine-assets/fre+assets/win-term.png) + +You can use the terminal to write commands to your computer (this is the “command line”). Let’s try it out! + +In your terminal, type + +`dir` + +and hit enter. + +The `dir` command, short for “directory”, tells your computer to list all of the file names for the folder you’re in. Your list of files probably includes “Desktop” and “Documents”, among others. Let’s try another command: + +Now type + +`cd Documents` + +into your command line and press enter. + +You are now in the Documents folder; `cd` means “change directory”. If you try `dir` again, you should see the contents of your Documents folder listed out. If you want to compare, open up My Comuter and look in Documents to see the same files. + +Let’s get back to the folder we were in before: + +`cd ..` + +You changed directory again! + +`dir` + +to see what we have here. You’re back where you started! The `..` after `cd` tells it to go up one folder in the directory. + +Now you’re a cool hacker who can use the terminal to write in the command line. (If you want to learn more commands, there are a whole bunch of them here.) + +
+
+
+
+ +
+
+ +
+### Text Editors + +You will also need a text editor to save your JavaScript files. This means a plaintext editor, not a Word document. + +Here are some good options: + +* [Sublime Text](http://www.sublimetext.com/) +* [Atom](https://atom.io/) +* [Notepad++](http://notepad-plus-plus.org/) + +
+ +Typically, directions that belong in the command line +are one line, whereas longer scripts, such as anything in +JavaScript, should be typed into the text editor and +saved, then run through the command line. + +In the context of this tutorial, things that should be +run in the command line look `like this` + +And scripts that should be saved in the text editor +will look + +
+  like this
+
+ +
+
+ +
+ + diff --git a/finished.html b/finished.html index 1c0f8c5..34e8c5a 100644 --- a/finished.html +++ b/finished.html @@ -2,44 +2,7 @@ layout: default --- -

Congratulations!

- -

You've completed the Tessel Tutorial!

- -

What's next?

- -

Check out Tessel projects →

- -

Learn more in Tessel's docs →

- -

Contribute to Tessel's open source -codebase →

- -

Follow us to stay up-to-date on new -developments:

- -

- - - -

- -
- - +{% capture include_install %} +{% include_relative finished.md %} +{% endcapture %} +{{ include_install | markdownify }} diff --git a/finished.md b/finished.md new file mode 100644 index 0000000..7a33b0a --- /dev/null +++ b/finished.md @@ -0,0 +1,33 @@ +{::options parse_block_html="true" /} + +
+
+ +# Congratulations! + +You've completed the Tessel Tutorial! + +

What's next?

+ +Check out Tessel projects → + +Learn more in Tessel's docs → + +Contribute to Tessel's open source codebase → + +Follow us to stay up-to-date on new developments: + + + + + +
+
+ +
+ + From d8153ba18be1674807d77e8cbe46e9408b7ded75 Mon Sep 17 00:00:00 2001 From: Kelsey Breseman Date: Sun, 13 Sep 2015 15:15:53 -0700 Subject: [PATCH 2/8] styling fixes --- modules/_module_footer.html | 10 ++++-- modules/accelerometer.md | 38 +++++++++++++++++++++- modules/ambient.md | 48 ++++++++++++++++++++++++++-- modules/climate.md | 45 +++++++++++++++++++++++++- modules/gps.md | 48 ++++++++++++++++++++++++++-- modules/ir.md | 42 +++++++++++++++++++++++++ modules/relay.md | 48 ++++++++++++++++++++++++++++ modules/rfid.md | 42 +++++++++++++++++++++++++ modules/servo.md | 63 ++++++++++++++++++++++++++++++++++--- stylesheets/tessel.scss | 2 +- 10 files changed, 370 insertions(+), 16 deletions(-) diff --git a/modules/_module_footer.html b/modules/_module_footer.html index 4e0b393..3e16229 100644 --- a/modules/_module_footer.html +++ b/modules/_module_footer.html @@ -1,8 +1,9 @@
- +
+

Choose another module

Or if you're all set, move on to Wifi.

+"../usage.html">CLI usage.

  • @@ -40,6 +41,9 @@

    Choose another module

+
+
+
@@ -47,6 +51,6 @@

Choose another module

Prev: Connect to Wifi
diff --git a/modules/accelerometer.md b/modules/accelerometer.md index 167c54b..9d36f5b 100644 --- a/modules/accelerometer.md +++ b/modules/accelerometer.md @@ -1,5 +1,8 @@ {::options parse_block_html="true" /} +
+
+ ## Accelerometer [ View source on Github](https://github.com/tessel/accel-mma84) @@ -10,6 +13,9 @@ Make a directory inside your "tessel-code" folder: enter `mkdir accelerometer` i ### Step 2 +
+
+
@@ -23,8 +29,14 @@ Plug the accelerometer module into Tessel **port A** with the hexagon/icon side
+
+
+ ### Step 3 +
+
+
@@ -38,8 +50,17 @@ Install by typing `npm install accel-mma84` into the command line.
+
+
+ ### Step 4 +
+
+ +
+
+ Save this code in a text file called `accelerometer.js`: {% highlight js %} @@ -70,8 +91,17 @@ accel.on('error', function(err){ }); {% endhighlight %} +
+
+ +
+
+ ### Step 5 +
+
+
@@ -90,6 +120,9 @@ To see what else you can do with the accelerometer module, see the module docs [
+
+
+ ### Step 6 What else can you do with a accelerometer module? Try a [community-created project.](http://tessel.io/projects) @@ -103,6 +136,9 @@ What else can you do with a accelerometer module? Try a [community-created proje
-What are you making? [Share your invention!](http://tessel.hackster.io/) +What are you making? [Share your invention!](//tessel.io/projects) If you run into any issues you can check out the [accelerometer forums](http://forums.tessel.io/category/accelerometer). + +
+ diff --git a/modules/ambient.md b/modules/ambient.md index 80ac2e6..4ee4205 100644 --- a/modules/ambient.md +++ b/modules/ambient.md @@ -1,5 +1,8 @@ {::options parse_block_html="true" /} +
+
+ ## Ambient [ View source on Github](https://github.com/tessel/ambient-attx4) @@ -8,8 +11,17 @@ Make a directory inside your "tessel-code" folder: enter `mkdir ambient` into your command line, then change directory into that folder: `cd ambient` +
+
+ +
+
+ ### Step 2 +
+
+
@@ -23,8 +35,14 @@ Plug the ambient module into Tessel **port A** with the hexagon/icon side down a
+
+
+ ### Step 3 +
+
+
@@ -33,11 +51,14 @@ Install by typing `npm install ambient-attx4` into the command line.
-![](https://s3.amazonaws.com/technicalmachine-assets/fre+assets/modules_corners/ambient.jpg)
+![](https://s3.amazonaws.com/technicalmachine-assets/fre+assets/modules_corners/ambient.jpg)
+
+
+ ### Step 4 Save this code in a text file called `ambient.js`: @@ -107,8 +128,17 @@ ambient.on('error', function (err) { }); {% endhighlight %} +
+
+ +
+
+ ### Step 5 +
+
+
@@ -127,9 +157,15 @@ To see what else you can do with the ambient module, see the module docs [here](
+
+
+ ### Step 6 -What else can you do with a ambient module? Try a [community-created project.](http://tessel.io/projects) +What else can you do with an ambient module? Try a [community-created project.](http://tessel.io/projects) + +
+
@@ -141,6 +177,12 @@ What else can you do with a ambient module? Try a [community-created project.](h
-What are you making? [Share your invention!](http://tessel.hackster.io/) +
+
+ +What are you making? [Share your invention!](//tessel.io/projects) If you run into any issues you can check out the [ambient forums](http://forums.tessel.io/category/ambient). + +
+
diff --git a/modules/climate.md b/modules/climate.md index bb1e309..0a8dc21 100644 --- a/modules/climate.md +++ b/modules/climate.md @@ -1,5 +1,8 @@ {::options parse_block_html="true" /} +
+
+ ## Climate [ View source on Github](https://github.com/tessel/climate-si7020) @@ -10,8 +13,17 @@ Make a directory inside your "tessel-code" folder: enter `mkdir climate` into your command line, then change directory into that folder: `cd climate` +
+
+ +
+
+ ### Step 2 +
+
+
@@ -25,8 +37,14 @@ Plug the climate module into Tessel **port A** with the hexagon/icon side down a
+
+
+ ### Step 3 +
+
+
@@ -40,6 +58,9 @@ Install by typing `npm install climate-si7020` into the command line.
+
+
+ ### Step 4 Save this code in a text file called `climate.js`: @@ -77,8 +98,17 @@ climate.on('error', function(err) { }); {% endhighlight %} +
+
+ +
+
+ ### Step 5 +
+
+
@@ -96,10 +126,17 @@ To see what else you can do with the climate module, see the module docs [here](
+ +
+
+ ### Step 6 What else can you do with a climate module? Try a [community-created project.](http://tessel.io/projects) +
+
+
@@ -110,6 +147,12 @@ What else can you do with a climate module? Try a [community-created project.](h
-What are you making? [Share your invention!](http://tessel.hackster.io/) +
+
+ +What are you making? [Share your invention!](//tessel.io/projects) If you run into any issues you can check out the [climate forums](http://forums.tessel.io/category/climate). + +
+
diff --git a/modules/gps.md b/modules/gps.md index b1ec02a..e08c5e9 100644 --- a/modules/gps.md +++ b/modules/gps.md @@ -1,5 +1,8 @@ {::options parse_block_html="true" /} +
+
+ ## GPS [ View source on Github](https://github.com/tessel/gps-a2235h) @@ -10,8 +13,17 @@ Make a directory inside your "tessel-code" folder: enter `mkdir gps` into your command line, then change directory into that folder: `cd gps` +
+
+ +
+
+ ### Step 2 +
+
+
@@ -25,8 +37,14 @@ Plug the GPS module into Tessel **port A** with the hexagon/icon side down and t
+
+
+ ### Step 3 +
+
+
@@ -40,6 +58,9 @@ Install by typing `npm install gps-a2235h` into the command line.
+
+
+ ### Step 4 Save this code in a text file called `gps.js`: @@ -91,8 +112,17 @@ gps.on('error', function(err){ }); {% endhighlight %} +
+
+ +
+
+ ### Step 5 +
+
+
@@ -110,16 +140,30 @@ To see what else you can do with the GPS module, see the module docs [here](http
+ +
+
+ ### Step 6 What else can you do with a GPS module? Try a [community-created project.](http://tessel.io/projects) +
+
+
- + +
-What are you making? [Share your invention!](http://tessel.hackster.io/) +
+
+ +What are you making? [Share your invention!](//tessel.io/projects) If you run into any issues you can check out the [GPS forums](http://forums.tessel.io/category/gps). + +
+
diff --git a/modules/ir.md b/modules/ir.md index 88289c8..afd0b8d 100644 --- a/modules/ir.md +++ b/modules/ir.md @@ -1,5 +1,8 @@ {::options parse_block_html="true" /} +
+
+ ## Infrared [ View source on Github](https://github.com/tessel/ir-attx4) @@ -8,8 +11,17 @@ Make a directory inside your "tessel-code" folder: enter `mkdir ir` into your command line, then change directory into that folder: `cd ir` +
+
+ +
+
+ ### Step 2 +
+
+
@@ -23,8 +35,14 @@ Plug the IR module into Tessel **port A** with the hexagon/icon side down and th
+
+
+ ### Step 3 +
+
+
@@ -38,6 +56,9 @@ Install by typing `npm install ir-attx4` into the command line.
+
+
+ ### Step 4 Save this code in a text file called `ir.js`: @@ -86,8 +107,17 @@ infrared.on('data', function(data) { }); {% endhighlight %} +
+
+ +
+
+ ### Step 5 +
+
+
@@ -105,10 +135,16 @@ To see what else you can do with the IR module, see the module docs [here](https
+
+
+ ### Step 6 What else can you do with a IR module? Try a [community-created project.](http://tessel.io/projects) +
+
+
@@ -119,6 +155,12 @@ What else can you do with a IR module? Try a [community-created project.](http:/
+
+
+ What are you making? [Share your invention!](http://tessel.hackster.io/) If you run into any issues you can check out the [IR forums](http://forums.tessel.io/category/ir). + +
+
diff --git a/modules/relay.md b/modules/relay.md index 6b3b4ff..38b326a 100644 --- a/modules/relay.md +++ b/modules/relay.md @@ -1,5 +1,8 @@ {::options parse_block_html="true" /} +
+
+ ## Relay [ View source on Github](https://github.com/tessel/relay-mono) @@ -8,8 +11,17 @@ Make a directory inside your "tessel-code" folder: enter `mkdir relay` into your command line, then change directory into that folder: `cd relay` +
+
+ +
+
+ ### Step 2 +
+
+
@@ -23,8 +35,14 @@ If you have something to turn on and off with the Relay module, cut the power wi
+
+
+ ### Step 3 +
+
+
@@ -38,8 +56,14 @@ Plug the relay module into Tessel **port A** with the hexagon/icon side down and
+
+
+ ### Step 4 +
+
+
@@ -53,6 +77,9 @@ Install by typing `npm install relay-mono` into the command line.
+
+
+ ### Step 5 Save this code in a text file called `relay.js`: @@ -93,8 +120,17 @@ relay.on('latch', function(channel, value) { }); {% endhighlight %} +
+
+ +
+
+ ### Step 6 +
+
+
@@ -112,10 +148,16 @@ To see what else you can do with the relay module, see the module docs [here](ht
+
+
+ ### Step 7 What else can you do with a relay module? Try a [community-created project.](http://tessel.io/projects) +
+
+
@@ -126,6 +168,12 @@ What else can you do with a relay module? Try a [community-created project.](htt
+
+
+ What are you making? [Share your invention!](http://tessel.hackster.io/) If you run into any issues you can check out the [relay forums](http://forums.tessel.io/category/relay). + +
+
diff --git a/modules/rfid.md b/modules/rfid.md index 755e73e..9f1bd96 100644 --- a/modules/rfid.md +++ b/modules/rfid.md @@ -1,5 +1,8 @@ {::options parse_block_html="true" /} +
+
+ ## RFID [ View source on Github](https://github.com/tessel/rfid-pn532) @@ -8,8 +11,17 @@ Make a directory inside your "tessel-code" folder: enter `mkdir rfid` into your command line, then change directory into that folder: `cd rfid` +
+
+ +
+
+ ### Step 2 +
+
+
@@ -23,8 +35,14 @@ Plug the RFID module into Tessel **port A** with the hexagon/icon side down and
+
+
+ ### Step 3 +
+
+
@@ -38,6 +56,9 @@ Install by typing `npm install rfid-pn532` into the command line.
+
+
+ ### Step 4 Save this code in a text file called `rfid.js`: @@ -70,8 +91,17 @@ rfid.on('error', function (err) { }); {% endhighlight %} +
+
+ +
+
+ ### Step 5 +
+
+
@@ -89,10 +119,16 @@ To see what else you can do with the RFID module, see the module docs [here](htt
+
+
+ ### Step 6 What else can you do with a RFID module? Try a [community-created project.](http://tessel.io/projects) +
+
+
@@ -103,6 +139,12 @@ What else can you do with a RFID module? Try a [community-created project.](http
+
+
+ What are you making? [Share your invention!](http://tessel.hackster.io/) If you run into any issues you can check out the [RFID forums](http://forums.tessel.io/category/rfid). + +
+
diff --git a/modules/servo.md b/modules/servo.md index 577d14b..8590f25 100644 --- a/modules/servo.md +++ b/modules/servo.md @@ -1,22 +1,29 @@ {::options parse_block_html="true" /} +
+
+ ## Servo [ View source on Github](https://github.com/tessel/servo-pca9685) ### Step 1 -Make a directory inside your "tessel-code" folder: enter `mkdir servo` into your command line, then change directory into that folder: `cd servo` +Make a directory inside your "tessel-code" folder: enter `mkdir servo` into your command line, then change directory into that folder: `cd servo` -### Step 2 +
+
-
+
-![](https://s3.amazonaws.com/technicalmachine-assets/fre+assets/modules_special/servo_servo.jpeg) +### Step 2
-
+
+ +
+
Plug servo into port "1" on the module as shown. @@ -24,11 +31,22 @@ Plug servo into port "1" on the module as shown. * the red wire (power) goes to `+` * the yellow wire (signal) goes to `S` +
+
+ +![](https://s3.amazonaws.com/technicalmachine-assets/fre+assets/modules_special/servo_servo.jpeg) +
+
+
+ ### Step 3 +
+
+
@@ -42,8 +60,14 @@ Plug 5V adapter into the barrel jack on the servo module, then plug into wall po
+
+
+ ### Step 4 +
+
+
@@ -57,8 +81,14 @@ Plug the servo module into Tessel **port A** with the hexagon/icon side down and
+
+
+ ### Step 5 +
+
+
@@ -73,6 +103,9 @@ Install by typing `npm install servo-pca9685` into the command line.
+
+
+ ### Step 6 Save this code in a text file called `servo.js`: @@ -119,8 +152,17 @@ servo.on('ready', function () { }); {% endhighlight %} +
+
+ +
+
+ ### Step 7 +
+
+
@@ -138,10 +180,16 @@ To see what else you can do with the servo module, see the module docs [here](ht
+
+
+ ### Step 8 What else can you do with a servo module? Try a [community-created project.](http://tessel.io/projects) +
+
+
@@ -152,7 +200,12 @@ What else can you do with a servo module? Try a [community-created project.](htt
+
+
What are you making? [Share your invention!](http://tessel.hackster.io/) If you run into any issues you can check out the [servo forums](http://forums.tessel.io/category/servo). + +
+
diff --git a/stylesheets/tessel.scss b/stylesheets/tessel.scss index 3f18dbb..3b942ff 100644 --- a/stylesheets/tessel.scss +++ b/stylesheets/tessel.scss @@ -206,7 +206,7 @@ cli { } .social { height: 50px; - margin-left: 1em; + margin-right: 1em; } .moduleFREtext { font-size: 16pt; From 1400285560e134871f065d0b7b3bb98adc2689eb Mon Sep 17 00:00:00 2001 From: Kelsey Breseman Date: Sun, 13 Sep 2015 15:31:32 -0700 Subject: [PATCH 3/8] fixes https://github.com/tessel/t2-start/issues/29 --- blinky.md | 26 +++++++++++++++----------- cmd.md | 8 +++++--- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/blinky.md b/blinky.md index 95f4982..c1d1c0c 100644 --- a/blinky.md +++ b/blinky.md @@ -10,17 +10,23 @@ Blinking some lights is the "Hello World" of hardware. Let's make those LEDs built into Tessel 2 dance for us. -In your command line, make a folder for your Tessel code, then initialize a Tessel project in that folder. +In your command line, make a folder for your Tessel code, then initialize a Tessel project in that folder by running each of the following commands in the terminal: -{% highlight sh %} -mkdir tessel-code -cd tessel-code -t2 init -{% endhighlight %} +`mkdir tessel-code` -Great! Now you're set up to run code on Tessel. Your `tessel-code` folder now contains a `package.json` with some metadata Node uses for your project, and a file called `index.js`. +`cd tessel-code` -`index.js` contains the code to make the blue and green LEDs blink. Let's take a look: +`t2 init` + +
+
+ +
+
+ +Great! Now you're set up to run code on Tessel. Your _tessel-code_ folder now contains a _package.json_ with some metadata Node uses for your project, and a file called _index.js_. + +_index.js_ contains the code to make the blue and green LEDs blink. Let's take a look: {% highlight javascript %} // Import the interface to Tessel hardware @@ -43,9 +49,7 @@ console.log("I'm blinking! (Press CTRL + C to stop)"); In your command line, enter -{% highlight sh %} -t2 run blinky.js -{% endhighlight %} +`t2 run blinky.js` to run your code in Tessel's RAM. diff --git a/cmd.md b/cmd.md index a39e914..24ca152 100644 --- a/cmd.md +++ b/cmd.md @@ -162,9 +162,11 @@ run in the command line look `like this` And scripts that should be saved in the text editor will look -
-  like this
-
+{% highlight javascript %} +like this +{% endhighlight %} + +You'll see this when you get to the [blinking lights example]({{ site.baseurl }}/blinky.html). But don't skip ahead– you'll need the tools we install in the next step.
From 4de552bf9f5262032f10188823f635fd78ee51b6 Mon Sep 17 00:00:00 2001 From: Kelsey Breseman Date: Sun, 13 Sep 2015 15:40:01 -0700 Subject: [PATCH 4/8] add favicon --- favicon.ico | 750 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 750 insertions(+) create mode 100644 favicon.ico diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..17abd75 --- /dev/null +++ b/favicon.ico @@ -0,0 +1,750 @@ + + + + + + + + + + + + + start.tessel.io/favicon.ico at master · tessel/start.tessel.io + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + + + + + + + + + + + + + + +
+ +
+
+ + +
+
+
+
+ +
+ +
    + +
  • +
    + +
    + + + + Unwatch + + + + +
    + +
    +
    +
    +
  • + +
  • + +
    + +
    + + +
    +
    + + +
    + +
  • + +
  • + + + Fork + + + + +
  • + +
+ +

+ + /start.tessel.io + + + + + +

+ +
+
+
+ +
+
+
+ + + +
+ +
+

HTTPS clone URL

+
+ + + + +
+
+ + +
+

SSH clone URL

+
+ + + + +
+
+ + +
+

Subversion checkout URL

+
+ + + + +
+
+ + + +
You can clone with +
,
, or
. + + + +
+ + + Clone in Desktop + + + + + Download ZIP + +
+
+
+ + + + + + + +
+ +
+ + Branch: + master + + + +
+ +
+ + + + +
+ + +
+ + +
+ Fetching contributors… +
+ +
+

+

Cannot retrieve contributors at this time

+
+
+
+
+
+ +
+ Raw + History +
+ + + + + +
+ +
+ 1.37 KB +
+
+ + + +
+
+ View Raw +
+
+ +
+ +Jump to Line + + +
+
+ +
+
+ + +
+ +
+ +
+ + + + + + +
+ + + Something went wrong with that request. Please try again. +
+ + + + + + + + + + From 67a09830e1dd5ca4aabc2ff68a364171fd910cf4 Mon Sep 17 00:00:00 2001 From: Kelsey Breseman Date: Sun, 13 Sep 2015 16:05:15 -0700 Subject: [PATCH 5/8] improvements to the command line tutorial --- cmd.md | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/cmd.md b/cmd.md index 24ca152..0d68e2c 100644 --- a/cmd.md +++ b/cmd.md @@ -136,31 +136,37 @@ Now you’re a cool hacker who can use the terminal to write in the command line
-
+
+ +When you use a command line tool, you're using a grammar-like structure. Items are separated by spaces, and it's usually like this: + +`tool action object -flag ` + +The "tool" is like a program you're calling; the "action" is the action you want the tool to perform, and the "object" is the object you want the tool to perform the action on. "Flags" are for passing in extra objects For example, on the next page you will do: + +`npm install t2 -g` + +This means: + +"use the tool called 'npm' to perform the 'install' action on the item called 't2'. Do this globally." T2 is the command line tool you will use to talk to the Tessel 2. `-g` stands for globally– which is to say, you want `npm` to install such that you can use the `t2` tool even outside the folder you were in when you installed it. -
### Text Editors You will also need a text editor to save your JavaScript files. This means a plaintext editor, not a Word document. -Here are some good options: +We recommend that you download one of these (you can download for free): * [Sublime Text](http://www.sublimetext.com/) * [Atom](https://atom.io/) * [Notepad++](http://notepad-plus-plus.org/) -
+Typically, directions that belong in the command line are one line, whereas longer scripts, such as anything in JavaScript, should be typed into the text editor and saved, then run through the command line. -Typically, directions that belong in the command line -are one line, whereas longer scripts, such as anything in -JavaScript, should be typed into the text editor and -saved, then run through the command line. +In the context of this tutorial, things that should be run in the command line look -In the context of this tutorial, things that should be -run in the command line look `like this` +`like this` -And scripts that should be saved in the text editor -will look +And scripts that should be saved in the text editor will look {% highlight javascript %} like this From 6ebaf26a5776272c5d6b93a72b5c55065dc05154 Mon Sep 17 00:00:00 2001 From: Kelsey Breseman Date: Sun, 13 Sep 2015 16:14:50 -0700 Subject: [PATCH 6/8] more consistent formatting around filenames --- blinky.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blinky.md b/blinky.md index c1d1c0c..83c3db9 100644 --- a/blinky.md +++ b/blinky.md @@ -24,7 +24,7 @@ In your command line, make a folder for your Tessel code, then initialize a Tess
-Great! Now you're set up to run code on Tessel. Your _tessel-code_ folder now contains a _package.json_ with some metadata Node uses for your project, and a file called _index.js_. +Great! Now you're set up to run code on Tessel. Your "tessel-code" folder now contains a "package.json" with some metadata Node uses for your project, and a file called "index.js". _index.js_ contains the code to make the blue and green LEDs blink. Let's take a look: From a374a3507ef7c2adfefc477cef315fc9e90ffb5b Mon Sep 17 00:00:00 2001 From: Kelsey Breseman Date: Sun, 13 Sep 2015 16:32:01 -0700 Subject: [PATCH 7/8] minor fixes --- blinky.md | 2 +- cmd.md | 2 +- finished.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/blinky.md b/blinky.md index 83c3db9..0268745 100644 --- a/blinky.md +++ b/blinky.md @@ -26,7 +26,7 @@ In your command line, make a folder for your Tessel code, then initialize a Tess Great! Now you're set up to run code on Tessel. Your "tessel-code" folder now contains a "package.json" with some metadata Node uses for your project, and a file called "index.js". -_index.js_ contains the code to make the blue and green LEDs blink. Let's take a look: +"index.js" contains the code to make the blue and green LEDs blink. Let's take a look: {% highlight javascript %} // Import the interface to Tessel hardware diff --git a/cmd.md b/cmd.md index 0d68e2c..8458e33 100644 --- a/cmd.md +++ b/cmd.md @@ -148,7 +148,7 @@ The "tool" is like a program you're calling; the "action" is the action you want This means: -"use the tool called 'npm' to perform the 'install' action on the item called 't2'. Do this globally." T2 is the command line tool you will use to talk to the Tessel 2. `-g` stands for globally– which is to say, you want `npm` to install such that you can use the `t2` tool even outside the folder you were in when you installed it. +"use the tool called 'npm' to perform the 'install' action on the item called 't2'. Do this globally." `t2` is the command line tool you will use to talk to the Tessel 2. `-g` stands for globally– which is to say, you want `npm` to install such that you can use the `t2` tool even outside the folder you were in when you installed it. ### Text Editors diff --git a/finished.md b/finished.md index 7a33b0a..150a470 100644 --- a/finished.md +++ b/finished.md @@ -13,7 +13,7 @@ You've completed the Tessel Tutorial! Learn more in Tessel's docs → -Contribute to Tessel's open source codebase → +Contribute to Tessel's open source codebase → Follow us to stay up-to-date on new developments: From e9878747f302458ee415b5eed8749bbda9163527 Mon Sep 17 00:00:00 2001 From: Kelsey Breseman Date: Sun, 13 Sep 2015 16:48:26 -0700 Subject: [PATCH 8/8] properly add favicon --- favicon.ico | Bin 42196 -> 1148 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/favicon.ico b/favicon.ico index 17abd75f6f95c76e74ce40f4ee85164d22e1ff9d..8b156bd5d425f7022150704e0adaba3838dde7ce 100644 GIT binary patch literal 1148 zcmb7DK}*~~6rL4Jr3Wh(^iZmMSZIp}TS8s3x|zvtHZzezZ-tirfI<ryilvna;*Rv#Nuvg}THdEfiq_f1IVg|Px$6B7(pk$oOz zYzoi|2&9S-h3*}|7{m~(Qahhrs3%W`uym!Cb^3@)vo2(`!Ik;WeX}y?9*)!>g)%>c zj7#L<>cZwy@43FQi0kE~u+)gkLPeiIvm<=-w%1Feq+ogHkCEZ>vg)e%IbxwMi##xY z!28>>jvgRK%kj)>+?#63T@%h7wTBAa~N*A0w&|25*O7uKmSGSAQY-N4*n zz&V}}h8z#-CtY6t@A=sEJFe1Ojxt{vYmQ|5R4=;W9L(T$RbIR!4l~Tx=AswPq`7_=&f^1k4)8zfr_1Z% tOu+ZwUy@qoX^>A6#;%);U9}i%1K#d1b^~=f;@LZ03nsbUzSDO5$t_+R&0zol literal 42196 zcmeHw>2}*lvgUt31)4s$`-cs2-&B&SW$i9YUL<+ZoH-s407-}oXaE!?{p!cK^8)h< z^M4+tpX7cKxgY_8qU=)DRQ2sTrz{doWJX5Do{^Eyo;}<8%l_NFi!bjEtYI=4?>yV0 zKi1fp4z^4Fv}CzsCyuvERuJ26IJ>j`snZ+#UTNoeI&EZ zaycB#HYR>~8b7!Cz2&Fne($*z_O5+5Dfm(R@Z55uByh)mK@0iIa||8!gTf~Am*)&8 zAf5P$W4S{oiv48!Z}X&Ycm76GP(Kmiw*PG&+-#RV+n2lcUO1UKNr1Tm2jMjFr^$Bd zbD*n~eh(2neU;aOO|Nubv;fQ81&YFK#E}k~PHIZs5Z&|Wrhj`-_|377y?b>a-_CSY??}o7f z7#k14nC+6e11vN1qvUS81fIq8zXqN`m(@n4+URsz-FlS%eQu&2!k)RE~e=G%S=Vtr%qbQ7iv~%&Y>fI2B&^8!V3VaPJKeb(N zYC^pH_QLPkap;bGXgZ-X7BPwYad6|CZ+;bx;_})4W##O8w0L`cI66H#t)11rG|uiX z8*h&;tEboA^;zwG*v;obJCKeYqHpPp?PSFBgZyv+Lc; z>BVsP<H-f$#UD`?p7j1E|Iwzicp*;ybC)KPmBowr5T&CZ?ir=K7_4E6?_;dYs9=*Agkfw&7SQa^mGj+yyurfi|nhjz5)!VIZt6Q~e zcw3lBJW<`m4aYRuFp{(j+!L!R0UqKf(XBlUV=ViUsL>tdSf`)|VQ{VLD64CYfdP_D z`g>{U-PWt>;qF0ev)SqHZ`Ka#&Guenv)Mds9`3$^p(OBQ^yGnfu~^~Mj$j}Aal&@N zQooI6qt(?q%y{1+L>0qw7zNiMXnko+@y<9L1h5d7hH5&!wpXe4+pR{e(ros-m42hv z=+%1ddZp$#J+IgC`hKm}tGaHjRjITqJ*QpuYhJxubKL4`Acsy216V5CqJ{t91mpOn zMP~a;t2YjN&*NdZD5UJ|QWDKU^kQzB&}{z(WUmL2){yYAu48-P*pRd8EsgrBL7#8J z!2s6DiSj430k*D_hSAC1Jc84{(_Cu5LQ zEf;i8Mv*O7SobdpA~h{j1q8QdROm9mJ%wh-r1sOe=Gej{+tyo z&O8}nSpqjm?!G4Bh#YW%UN?^V_RNVKNEr}l&Wf%!g5)yMpMvL&x`?vRQr(8dY&u`lE_x{oA z$!KtJ@ZtS7+GV5w2w$(+?Ll37 z{g&&yy?(FLA{ncB7z3D=O2$UkjQ=CHH_0Kh=Rs%(lUy_<6+z%Z3Yg@hAr@M2)G8N! zC~i&qUd${<{?egS)NQCgEyHb+c*VL?47UE|RSL0Isly`e)*tMFL_LhEFuHpPh&+BC z+vRi-5;x?~VyeJGoESjO<~F%XB;{tUrQ$Nw^dv~)vIzcdI0;#!EUla|qAyeUk2-|*!FNgZ z?}=BeBoq;kG@`gEdMOG8QpX(mWA@%EQvetr3GQC#-Kl6X2o*NU*I;T{{`AI%lkCl1 ziW(w1=?2pzjE69yVq2^^M_Oz$r<9%GNH6g@%LO~^BlgT8Sit1;;K=xhH3G47>YgTvh^qKQ zHVfuvV{U@Fqmbf~JqPwi#PFN1(pXM_U(grgtB8{;!MKHRw17VC7XoYwQOhQaa+C{b zK-!zbFd6xX)(tG!`A!r#_SorBB=1>MBQ``|iiV#&WYLUtotP-SUnt4!@-lQ2RVk6HY&D<=ZTY;f8! zb`pGEBXaUo;8`G2eoKu^^tH~2B4ffLBA6w%it(2&FAnVv5W{qb7+{=MyITK=1!5UQ z&03QQMXfNV><%N)46K?M6o`JAX$0M}p+;nkhMt7KfkY}Djv(ok-+GZ%wiGt(mDgUh)2v3yr@`<10pet zKEf0Iw}q&tLO#BIFXnqqjxC4#WB z>2_%vCOW{%9l*5Nlu?-MD?;I!?PIq7q|w8;(CnXSmNibkgmY`?-1ydfihzh`<(d{R zWTq8Vlt(e)FoG2mj+0BZE(*DAtKf_Go&m#PYE7hp_&XR-NQxs<|b@E!mlh zISh;$A8l5<+!G>JWSOWv{;9uES}9{~?qL}d-@?!T{Kx;%Emkams~bza!@$v!Aw$=B zT+PP7Gb<{MFoEUFTM8XEHjvq>lGxF`-joN?R+bSr3|}3LU=+i>xT*lfaE&>z#74JplI>&>?vquDTpO#CIzH`V%9I& z3U5vtJdb1~ZY_~xS+s=w1ehV}1^e)aHN>+566}Le0!xf&&=|fz7zs1}5mc4FfZbkY zyb^Hc4=IfNiQpxBM?kLlj*VYD`)yPfd2oiZGCr=>TRCgSbnQN3A5Y~FTF%t7CSl~S zQ(?5@$1aG{V4Uouv9=XV1{Q*D+oiv&?M-RZh^!#!Q=g2#?Go|@EM)g=msE&HrVUl4 ziAshcIo{AeGHpogv1YP{N|s0%bnmL|=PSQ$tGZmI~LC|c67 z=(iBayo{2}fS1>Bts;jNLSERW2$fPst8_c=kU60UR8tti1}j?skOH9O2enuS4MkSh z8Oqcqf^E%$(*#MpoZ?La#E*Xr9RGHP%~=GgAHmNEvusHnE9wMX-LikcFYNbGCaVn@O2F5G0f(_|+3k@XY$n`TB zP)K8HqiKcYsu*1dCrLulV=Zp=N8$9!PzrZ}f8?+7kL*}PTHs%a4=k)Hph8k8$?O>^ z1)Sd|(!L1ys5^l3*9SokGrqJMJ8dfBr3eGizPKP@`l3TFDONimA>VWd44oWs7|Lx9q*gk%hs04-$d1P!=iFKlX&4`u)#TJ_@6u3f1F!|J!pJvA<6Q@A}WRG&;de9LP z+gK-rz5;B@q*D_511uP#J+?$u8Wz*@k4Y1LHS#B6f@r(g^ZSzsnDH=nuI8WaKDRpc z+Q;4Mx5;@@**jcBd*{>syTgSawdx0<=boRwnEi5jc6@a3rS^Fmyx!eQ7OnZ{-RRz)in@eJDSF$|4jL2t{rDoBfFM%0W&>4_<|*c5z~zb z`Ef@X+N8LlTxs5umFt{CxFL5@@tDh<#bTD>higv68Y?Gx7In$o;n`^WQ~^ zv%j`hhRasJhKNt7j~^uBGaOcltX?X^|3FkbnNtvW6#){(ohRYUV#gTM|1D(oGC}9) zKJ!(6Nwc%e?R}vd0HkSlLf9urHXY-jjCOD{RX%$`h0bL(>ZUuql;NE8sEOCemcJHeLSnp zk1kJd-a03TyMq@WM@Rj;`iIZ+Py3aV_IcygWl(=HIBUH4bk*&hOpiXjk7wOc<7D>c z{Z+epo$5{Y%eJHHy7^PBMPvfW3&;#c_@2S?S8prIZrg8y7;7Nk( zE132{mKC^{OiL~Qd$a7f+x|3)o4wCL^m=@FSib3vch7fw$IjkqZNL1=y>v&5cyar_ z>2{`v&RIP<@vc9(_v3@JqrpM9`QqL67q9YqIGU7OFRscT-Kahfj&}q&_T%O(0C&o{xN)C_5$o) zc&oMN%2;D6Iz{&~9qJIBS-e3^>3>w4$%3O%%=Ac<5KVDNg2I>iE=?)_l>PDvq(0K@ zX`))*iD^8b2ROxokcET{6hm040|-=utQgr3x%Cu@rrpI6)vqct9jQYD%uLkMSV)yQ zMx<|6Vv>J=BxUOVl%MagrpzyiXIq92 z#ZHKN$fJmbPz`oI4Snnx0oik$t62CJL6H|0KjVy7EgQH%Jc>h5c0Y0k6ul8yEcx}- zL3CIbJU9%U82zkz-LB>k1T5=}oHwBeYv~l6RwJK+Q+Sx1 zkAkBF2Olbr;xfWTbgJBz5A15KgM5L$&c&f_b3WTvIgd3HsToHB5Q{7-BcEKb%+|2V zryf>pBQmOP09kK7MolH&PkcpNf^IaQ^fXms#iBcu0YN=2OCG>uoMjBC!ed{=KPKa3 z-k@!7${y3=PI8GJ7mH~1u~$mLDJq+T)OV`GBTgx*mzjOj7BZ|YR$g)}agq86L+KeE zsW-VEvBjYc&Jvk~<)x+~=O+*5QqG{@A1YUZk^!J$79L!^L_1@pd@VK!n#?L9&5#9b zAQSR$6C5L?Lxqx9QxZ+n!>X+(q0Kr~p-M@UdS%j7;tz?#!>YLvobJgJA?mPYs_pQY zKH6!jFu79tN%zo~VVpQ$%|O#Ns+{!XoAgjg<{I#MPgu6RQonGz^qMtqoZ zjE0;5iXoww<*~vQf=*_da!YwwBuz&*re_bLaIO-Oj6}@zh=iFqiTrO<{qKdI%09qC zuh~B>cvW za-fg1V>Zr~!w4a4D^3(L9!S^vN{h}(Fb$N%(8}vK6%ZuJ*q%}ez5FFThw>;|IuU2t zQcbsxp5$?|ELq836d!{b^}?r|Ck_*?C7o60*_b2*e+h!%vy_q~CP>JPkvp}TC=}f3 zOtFj)Q3nrYfq^`odcs+J6jOj$kw;S3(^O`< z>q$#?{^z1BgRVei-zmI41*1R{6kcDW3Q=DV?K7&Bdw3E;QfIWZ;FCv~nUHAUm2|{V zJ(`SqVVI^btQ1EyuL6qsBgzz#E#i=hX+N53B1WkU9F$?tMOnMX;a#(-GOO5j`(APa zzagJSt;AYt0>4rEO-?}3qsN$1#THbadU%YLlp`Qe00WT^$sgHRQbo3{p~&9Rtn#Gu zN40mpcZH84XEsdJ(bg{UK(x=SvFzgs7nwzb7)n?+4AD7>VV}P9&_*Wyygz*SlnB^qsm$9mde|16{1sM=CosD@1fpPfcQKI6-8> zi~6b`4xw09Q=4jLOb-)$NZt%ku4O&JsmbO^4xRrol@$PEb+uK7XJZ6q*!ePoF5z^1 zCju%gT+uj#I^jt^GgThE19uD;h9V4Ddi9Cots+_xg@|c}V>>;Vz+G+)>)GfUr77A7 z;30b%9?QXP$8lsx;&xXR=%| zNKvflhFoGxehjA}h{ffSQkb8t6tpx1qV-hJK!jcdj%2c=I{CG>&>9^JqmZTJ(GpO| zL43+G8KXpCnQ)N23$?|ngsnQMW9t4r+TNksWeQ)W9gsmJC912O^~?_{O}*H2 zS4RP{j})M~*$_qAwo4clU;d&JOl1~umL8Vk9)NImr+G6y`NK4<(<5a#F^wudhFZyA zUPZAnO7}9sttHs=^W#4`xq=AgEemuoc(XWM_&8DpGX71d6did|LS0Fu^PVcD`bb*U zFKCjb6my)e`xh3n>jmt&Mhi;7rTF-_pbcf1FSU4bf|d{J8J2`F1wuZ^0^fzIGr3&+ z5f%bU3nb!D&(kC%Q9%RjqWTH0v=G+D&*}p#MNv_In^ZC1iK2gEi)1#Z((KX-7ex^H zoG=*@Vh*YY@fgKL)lF5xz`-uDEI9o=CyCiM`ct0$n|wJfUmc&$DdEX zy&Ih#$G4NSUn^X0bv zVo@8`?%#f^9e?~h*?V`}M@jZYf7BR-v&NNs_v)yA*72|2UiS~ell^98aT$c?ohKqZ zG7{x!DMfc|4d$s1=aPO$kq1zuRq${6`}Op9^zqyM-sfs`@Z$B+X>i?|Px_ta>kIGv z&Kb9yL2b8x|LX2+HtoE+ef{Dl?0i1$pES$PxBdI$tJ~wr>v8?U-=DPRAERmY)Aj9_ zi#O%Zy-d#Lj|;wZrI*N1(||Tar3~B<;bs-?QLbvPNJ*K`)nT8qychVM$42lv=nUZLc+P8?Kj1 zHwmZ=9x*vlxJH^P>?o?~3XdEGr(L>M68_%@Z1R^C64v_bdcKBNEK^35+pW^qS7 zu`5NMH)mSH+d_3@oQa`gQ9vhhnGl1J<$bMvKOW)C$wn4`PuQ=H5SWpKyaSH>Qi1}P zw}|A2EUGPQkAgo0wFEa^0W&ayMOYhQr28UqftM;ee;>>;u@w4MslV_j0TTWt|hJ6%X!+k(%odgEx-v@)4 zuwUoi%JoV+(Li6Fyvt#YGfUH!7*OqHiHG^GFq2Pu}+;5;fAG*2hFMF*4!rJgy{$ESw6W$q=F`6w~?{Do_Zl(NTF>G%Z_w zEsHx@7*;w@S#l=MY7vsXT!!dg@4$q!Pz0IC*K&v&bn# zl`c7k*n7|d6e};r=3?C927@d$h$sbaWHoOicwqEYw-m{AwM}VoGdRb@6K1Zec8b-+ zgLF4CgE>dt$D$gdsgmH&CGnznIYWe1Wa^~+NlZL@AHo9@Q!*Rq$wMJ48(^%GWN#lt zDT}2l;6$>I`bK}BYFLQya z@SH%L<*R~6BLge|=J|;_SovO-AmO%r zZIQ?w=UQX=4j;BOSBiH+#}Cx3dAL8?3og{4%BNbIaw@$9OiqbhA2{ODz1sRfg2abW@4;-^gAKjYYnu=nX0 z6AM~~VTC?2+bB!vhxVraBt<9>Pp@9wyxaX!I}Y8+i@o{nix=Yyul;Fn)O^*sJlgwG zd3`u3pPpZO)o9!}3=a2)QS@&Ay!`&?w0AU^cBjd(8oimk-G4Lg9gL>;A3vObWhj4j>Ag#?T=tMn= zRLFkNVZ0*Yn4302fT)xzidydUaYdT-&wu=G$+9*kl7!h=L9KxBmtC>D+o+9E?SW`Ftz z`62V0;iS`kvB(7!mtiR!Xcu!;kgyNeT*jQU>NF)o0+8HNAOGO8P}HYLlj4xOh)Y8G zI?LizxM_ON5px2oXtKyN%8Q?>;9)kYFcZLjKS#mV@tt)&pUhB7D_Qt(LI^a|DbL7@ zd_;vP4F!~NUJ%Fi)6-&_TD23Y_NB}?1}6^EaHzbP3~BNH^eKd(A?bRWyxG$S-IwF2 zGVxPWn5iN-{7rZK(rfw)q%Aih5znXXw@c#SdYT@K{V1k^)d%jEj>0dWF_$DO?EoS9 zbof*_kA^Rp9{v|+=M5l{TtS6|=}>>csdSnPR9kv(UgTkB$j(S-*JtK`2ON}>$X8oP z(y-RivnNK2Pytf?nbeOd(uWg ze!*dN8O8vioN94istgI%xvB)rC}Jav7Rojr_V8A%5$}3-UP1l zxtsZ$NI21y!?-hbMBYO4{F?v=?qv_!Q)3nXVCsO2dj7ZMztIVs7wSk z5&c&U{+w)MlscvKQAl>CX<4`Ge{9e*`u%@OV?deQs2r55k45FNN;|K~&W4%$2JbQE z83UZ_kQt@$Wy1PX#Fw^G?|vR|VsQu^xp91L&#f=n4WoNy&j zbVF`g^7a?%+o$|(o)1miixM{ST4;eCmO7{;sP&dgdPCK@WFFJ;p5eU5Hv>x6NG04M z1M$)lcgl$uc<#_m1+Sz?~@~DxL z2$+Ta^Z0?(8*()DwX|~~yL!~Ph!;F~<691&Xsxh`kH97V&5r}pD8i+&YLKmiHE5(J zawKlO^9m2Xe>7pvF@G{cf#WG& zKygXBfu5j|u)MTRrY=gdV+@99rNj_jv#1~$1yeMdr~{v?)`#23)e-G?F6gy%WrS#4 zPv<-&7Wl?-@75CqwMvPC-yx!)4?i%pj|)VDWZkf_Y$nH5U%}Y&hwmSmwS=pZ3|App zwvywjcTg1!D#m>*>*X@R*PxhM%kk(V4&LD3?EF;PiPV8g6$-`3lqPi~={~Zo97_6R z2NC;VaZF67)Hq+HXNl|dqzfr&HN%d1i`qfad%C(&pBHA@&e#j$OLibS3Wls~*fH_~ zKlRms5OoG8D3p~I7W?9%l?4&B{gByzy98jag!nl`kO-PDs7&gD@1j549R|S^n1|7OHwovMPWCF{!aAl7KP{tH z>cmI=xlwG_kZ0?68m(Tf-u9|B&uw(QZqKQAaM@<7(`k3x&1%Q%wcJMEZToJm*>atJ zr(JE;>Tav+H#V*j#>Of!Xi5rgiLbbf_il>ojrkAO=~u%oC8X>1Yn^J%@AfLyhTE=I zYt?$E(W&;k-A=FJRXgo=rSCY^My=PXxqjWP*J|~C4|%!OUd!ng!z_`^e@vSWqy&oz z8wn^C$h9d2K^HwUNqyl&i1PC#l08IB;GfAIv=m1O$tos!9QB)|NcV8!m_BZs