From 836f569870096bd94fce52c4ad02b83bc9c43447 Mon Sep 17 00:00:00 2001 From: Luan Nguyen Date: Tue, 14 Apr 2015 08:54:22 -0700 Subject: [PATCH] cherrypick from lmp-docs docs: Add Wear Capability training Original Change-Id: I52ede5d91936c5eab3d6ee8be8108004cce1f0e0 bug: 20088602 Change-Id: I968dfe13a9d74cae52bedeb9cb333f514d188cb4 --- .../training/wearables/data-layer/index.jd | 11 + .../training/wearables/data-layer/messages.jd | 219 +- docs/html/wear/images/wear_cloud_node.png | Bin 0 -> 13794 bytes .../training/wear/wear_cloud_node.graffle | 4333 +++++++++++++++++ 4 files changed, 4529 insertions(+), 34 deletions(-) create mode 100644 docs/html/wear/images/wear_cloud_node.png create mode 100644 docs/image_sources/training/wear/wear_cloud_node.graffle diff --git a/docs/html/training/wearables/data-layer/index.jd b/docs/html/training/wearables/data-layer/index.jd index 85b2c33a22bc1..2e07f550ce83a 100644 --- a/docs/html/training/wearables/data-layer/index.jd +++ b/docs/html/training/wearables/data-layer/index.jd @@ -67,6 +67,17 @@ devices. For instance, don't try to open low-level sockets to create a communica channel.

+

Android Wear supports multiple wearables connected to a handheld device. For example, when the +user saves a note on a handheld, it automatically appears on both of the user's Wear devices. To +synchronize data between devices, Google’s servers host a cloud node in the network of devices. The +system synchronizes data to directly connected devices, the cloud node, and to wearable devices +connected to the cloud node via Wi-Fi.

+ + +

Figure 1. A sample network of nodes with +handheld and wearable devices.

+ +

Lessons

Accessing the Wearable Data Layer
diff --git a/docs/html/training/wearables/data-layer/messages.jd b/docs/html/training/wearables/data-layer/messages.jd index 0ca55ba66c63e..0826e6b47e261 100644 --- a/docs/html/training/wearables/data-layer/messages.jd +++ b/docs/html/training/wearables/data-layer/messages.jd @@ -26,42 +26,191 @@ Unlike with data items, there is no syncing between the handheld and wearable ap Messages are a one-way communication mechanism that's good for remote procedure calls (RPC), such as sending a message to the wearable to start an activity.

-

Send a Message

+

Multiple wearable devices can be connected to a user’s handheld device. Each connected device in +the network is considered a node. With multiple connected devices, you must consider which +nodes receive the messages. For example, In a voice transcription app that receives voice data on +the wearable device, you should send the message to a node with the processing power and battery +capacity to handle the request, such as a handheld device.

-

The following example shows how to send a message that indicates to the other -side of the connection to start an activity. -This call is synchronous and blocks processing until the message is received or until the request -times out:

- -

Note: Read more about asynchronous and synchronous calls -to Google Play services and when to use each in -Communicate with Google Play Services. +

Note: +With versions of Google Play services prior to 7.3.0, only one wearable device could be connected to +a handheld device at a time. You may need to update your existing code to take the multiple +connected nodes feature into consideration. If you don’t implement the changes, your messages may +not get delivered to intended devices.

+

Send a Message

+ +

A wearable app can provide functionality for users such as voice +transcription. Users can speak into their wearable device's microphone, and have a transcription +saved to a note. Since a wearable device typically does not have the processing power and battery +capacity required to handle the voice transcription activity, the app should offload this work to a +more capable, connected device.

+ +

The following sections show you how to advertise device nodes that can process activity +requests, discover the nodes capable of fulfilling a requested need, and send messages to those +nodes. +

+ +

Advertise capabilities

+ +

To launch an activity on a handheld device from a wearable device, use the +MessageApi +class to send the request. Since multiple wearables can be connected to the handheld device, the +wearable app needs to determine that a connected node is capable of launching the activity. In your +handheld app, advertise that the node it runs on provides specific capabilities.

+ +

To advertise the capabilities of your handheld app:

+ +
    +
  1. Create an XML configuration file in the res/values/ directory of your project and + name it wear.xml. +
  2. +
  3. Add a resource named android_wear_capabilities to wear.xml. +
  4. +
  5. Define capabilities that the device provides. +
  6. +
+ +

Note: +Capabilities are custom strings that you define and must be unique within your app. +

+ +

The following example shows how to add a capability named voice_transcription to +wear.xml:

+
-GoogleApiClient mGoogleApiClient;
-public static final String START_ACTIVITY_PATH = "/start/MainActivity";
+<resources>
+    <string-array name="android_wear_capabilities">
+        <item>voice_transcription</item>
+    </string-array>
+</resources>
+
+ +

Retrieve the nodes with the required capabilities

+ +

Initially, you can detect the capable nodes by calling the CapabilityApi.getCapability() +method. +The following example shows how to manually retrieve the results of reachable nodes with the +voice_transcription capability:

+ +
+private static final String
+        VOICE_TRANSCRIPTION_CAPABILITY_NAME = "voice_transcription";
+
+private GoogleApiClient mGoogleApiClient;
+
 ...
 
-private void sendStartActivityMessage(String nodeId) {
-    Wearable.MessageApi.sendMessage(
-      mGoogleApiClient, nodeId, START_ACTIVITY_PATH, new byte[0]).setResultCallback(
-          new ResultCallback<SendMessageResult>() {
-              @Override
-              public void onResult(SendMessageResult sendMessageResult) {
-                  if (!sendMessageResult.getStatus().isSuccess()) {
-                      Log.e(TAG, "Failed to send message with status code: "
-                              + sendMessageResult.getStatus().getStatusCode());
-                  }
-              }
-          }
-      );
+private void setupVoiceTranscription() {
+    CapabilityApi.GetCapabilityResult result =
+            Wearable.CapabilityApi.getCapability(
+                    mGoogleApiClient, VOICE_TRANSCRIPTION_CAPABILITY_NAME,
+                    CapabilityApi.FILTER_REACHABLE).await();
+
+    updateTranscriptionCapability(result.getCapability());
 }
 
-

-Here's a simple way to get a list of connected nodes that you can potentially -send messages to:

+

To detect capable nodes as they connect to the wearable device, register a CapabilityApi.CapabilityListener() +instance to your GoogleApiClient. +The following example shows how to register the listener and retrieve the results of reachable nodes +with the voice_transcription capability:

+ +
+private void setupVoiceTranscription() {
+    ...
+
+    CapabilityApi.CapabilityListener capabilityListener =
+            new CapabilityApi.CapabilityListener() {
+                @Override
+                public void onCapabilityChanged(CapabilityInfo capabilityInfo) {
+                    updateTranscriptionCapability(capabilityInfo);
+                }
+            };
+
+    Wearable.CapabilityApi.addCapabilityListener(
+            mGoogleApiClient,
+            capabilityListener,
+            VOICE_TRANSCRIPTION_CAPABILITY_NAME);
+}
+
+ +

After detecting the capable nodes, determine where to send the message. You should pick a node +that is in close proximity to your wearable device to +minimize message routing through multiple nodes. A nearby node is defined as one that is directly +connected to the device. To determine if a node is nearby, call the Node.isNearby() +method.

+ +

The following example shows how you might determine the best node to use:

+ +
+private String transcriptionNodeId = null;
+
+private void updateTranscriptionCapability(CapabilityInfo capabilityInfo) {
+    Set<Node> connectedNodes = capabilityInfo.getNodes();
+
+    transcriptionNodeId = pickBestNodeId(connectedNodes);
+}
+
+private String pickBestNodeId(Set<Node> nodes) {
+    String bestNodeId = null;
+    // Find a nearby node or pick one arbitrarily
+    for (Node node : nodes) {
+        if (node.isNearby()) {
+            return node.getId();
+         }
+         bestNodeId = node.getId();
+    }
+    return bestNodeId;
+}
+
+ +

Deliver the message

+ +

Once you’ve identified the best node to use, send the message using the +MessageApi +class.

+ +

The following example shows how to send a message to the transcription-capable node from a +wearable device. Verify that the node is available before you attempt to send the message. This call +is synchronous and blocks processing until the message is received or until the request times out. +

+ +
+
+public static final String VOICE_TRANSCRIPTION_MESSAGE_PATH = "/voice_transcription";
+
+private void requestTranscription(byte[] voiceData) {
+    if (transcriptionNodeId != null) {
+        Wearable.MessageApi.sendMessage(googleApiClient, transcriptionNodeId,
+            VOICE_TRANSCRIPTION_MESSAGE_PATH, voiceData).setResultCallback(
+                  new ResultCallback() {
+                      @Override
+                      public void onResult(SendMessageResult sendMessageResult) {
+                          if (!sendMessageResult.getStatus().isSuccess()) {
+                              // Failed to send message
+                          }
+                      }
+                  }
+            );
+    } else {
+        // Unable to retrieve node with transcription capability
+    }
+}
+
+ +

Note: To learn more about asynchronous and synchronous calls +to Google Play services and when to use each, see +Communicate with Google Play +Services. +

+ +

You can also broadcast messages to all connected nodes. To retrieve all of the +connected nodes that you can send messages to, implement the following code:

 private Collection<String> getNodes() {
@@ -78,22 +227,24 @@ private Collection<String> getNodes() {
 

Receive a Message

-To be notified of received messages, you implement the +To be notified of received messages, implement the -MessageListener interface to provide a listener for message events. Then you register your -listener with the +MessageListener interface to provide a listener for message events. Then, +register the listener with the -MessageApi.addListener() method. This example shows how you might implement the listener -to check the START_ACTIVITY_PATH that the previous example used to send the message. -If this condition is true, a specific activity is started. +MessageApi.addListener() method. This example shows how you might implement the +listener to check the VOICE_TRANSCRIPTION_MESSAGE_PATH. If this condition is +true, start an activity to process the voice +data.

 @Override
 public void onMessageReceived(MessageEvent messageEvent) {
-    if (messageEvent.getPath().equals(START_ACTIVITY_PATH)) {
+    if (messageEvent.getPath().equals(VOICE_TRANSCRIPTION_MESSAGE_PATH)) {
         Intent startIntent = new Intent(this, MainActivity.class);
         startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        startIntent.putExtra("VOICE_DATA", messageEvent.getData());
         startActivity(startIntent);
     }
 }
diff --git a/docs/html/wear/images/wear_cloud_node.png b/docs/html/wear/images/wear_cloud_node.png
new file mode 100644
index 0000000000000000000000000000000000000000..602e2476521b3b863bbc2cf48ed48119e337b3ad
GIT binary patch
literal 13794
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
al(uV)qt}^&8u;I>CyKIaG8N!A!T%34yvy+b

literal 0
HcmV?d00001

diff --git a/docs/image_sources/training/wear/wear_cloud_node.graffle b/docs/image_sources/training/wear/wear_cloud_node.graffle
new file mode 100644
index 0000000000000..8a3e4b5ff8c90
--- /dev/null
+++ b/docs/image_sources/training/wear/wear_cloud_node.graffle
@@ -0,0 +1,4333 @@
+
+
+
+
+	ApplicationVersion
+	
+		com.omnigroup.OmniGraffle6
+		156.11.0.206384
+	
+	CreationDate
+	2015-04-10 16:36:28 +0000
+	Creator
+	Luan Nguyen
+	FileType
+	flat
+	GraphDocumentVersion
+	11
+	GuidesLocked
+	NO
+	GuidesVisible
+	YES
+	ImageCounter
+	3
+	LinksVisible
+	NO
+	MagnetsVisible
+	NO
+	MasterSheets
+	
+	ModificationDate
+	2015-04-15 20:46:45 +0000
+	Modifier
+	Luan Nguyen
+	NotesVisible
+	NO
+	OriginVisible
+	NO
+	PageBreaks
+	NO
+	PrintInfo
+	
+		NSBottomMargin
+		
+			float
+			40
+		
+		NSLeftMargin
+		
+			float
+			18
+		
+		NSPaperSize
+		
+			size
+			{612, 792}
+		
+		NSRightMargin
+		
+			float
+			18
+		
+		NSTopMargin
+		
+			float
+			18
+		
+	
+	ReadOnly
+	NO
+	Sheets
+	
+		
+			ActiveLayerIndex
+			0
+			AutoAdjust
+			
+			BackgroundGraphic
+			
+				Bounds
+				{{0, 0}, {330, 375}}
+				Class
+				SolidGraphic
+				ID
+				2
+				Style
+				
+					stroke
+					
+						Draws
+						NO
+					
+				
+			
+			BaseZoom
+			0
+			CanvasOrigin
+			{0, 0}
+			CanvasSize
+			{330, 375}
+			ColumnAlign
+			1
+			ColumnSpacing
+			36
+			DisplayScale
+			1.0 pt = 1.0 px
+			GraphicsList
+			
+				
+					Bounds
+					{{66.75, 134.93730967886808}, {109.5, 28.169700000000034}}
+					Class
+					ShapedGraphic
+					FontInfo
+					
+						Color
+						
+							b
+							0
+							g
+							0
+							r
+							0
+						
+						Font
+						Roboto-BoldCondensed
+						Size
+						10
+					
+					ID
+					1976
+					Layer
+					0
+					Line
+					
+						ID
+						1893
+						Position
+						0.61324973965300955
+						RotationType
+						0
+					
+					Magnets
+					
+						{1, 1}
+						{1, -1}
+						{-1, -1}
+						{-1, 1}
+						{0, 1}
+						{0, -1}
+						{1, 0}
+						{-1, 0}
+						{-0.5, -0.233518}
+						{-0.49144199999999999, 0.26006299999999999}
+						{0.50711799999999996, -0.22408600000000001}
+						{0.50711799999999996, 0.267179}
+						{-0.27431, -0.474028}
+						{0.27977999999999997, -0.47847800000000001}
+						{0.29393799999999998, 0.54304399999999997}
+						{-0.28623199999999999, 0.55380399999999996}
+					
+					Shape
+					Rectangle
+					Style
+					
+						fill
+						
+							Color
+							
+								b
+								0.938075
+								g
+								0.938269
+								r
+								0.938154
+							
+						
+						shadow
+						
+							Color
+							
+								a
+								0.35
+								b
+								0.328823
+								g
+								0.328823
+								r
+								0.328823
+							
+							Fuzziness
+							1.5349206924438477
+							ShadowVector
+							{0, 1}
+						
+						stroke
+						
+							Color
+							
+								b
+								0.472997
+								g
+								0.473094
+								r
+								0.473036
+							
+							CornerRadius
+							2
+							Draws
+							NO
+						
+					
+					Text
+					
+						Text
+						{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 Mobile data/Wi-Fi}
+						VerticalPad
+						0
+					
+				
+				
+					Bounds
+					{{234, 92.968750000000014}, {49, 28.169700000000034}}
+					Class
+					ShapedGraphic
+					FontInfo
+					
+						Color
+						
+							b
+							0
+							g
+							0
+							r
+							0
+						
+						Font
+						Roboto-BoldCondensed
+						Size
+						10
+					
+					ID
+					1975
+					Layer
+					0
+					Magnets
+					
+						{1, 1}
+						{1, -1}
+						{-1, -1}
+						{-1, 1}
+						{0, 1}
+						{0, -1}
+						{1, 0}
+						{-1, 0}
+						{-0.5, -0.233518}
+						{-0.49144199999999999, 0.26006299999999999}
+						{0.50711799999999996, -0.22408600000000001}
+						{0.50711799999999996, 0.267179}
+						{-0.27431, -0.474028}
+						{0.27977999999999997, -0.47847800000000001}
+						{0.29393799999999998, 0.54304399999999997}
+						{-0.28623199999999999, 0.55380399999999996}
+					
+					Shape
+					Rectangle
+					Style
+					
+						fill
+						
+							Color
+							
+								b
+								0.938075
+								g
+								0.938269
+								r
+								0.938154
+							
+						
+						shadow
+						
+							Color
+							
+								a
+								0.35
+								b
+								0.328823
+								g
+								0.328823
+								r
+								0.328823
+							
+							Fuzziness
+							1.5349206924438477
+							ShadowVector
+							{0, 1}
+						
+						stroke
+						
+							Color
+							
+								b
+								0.472997
+								g
+								0.473094
+								r
+								0.473036
+							
+							CornerRadius
+							2
+							Draws
+							NO
+						
+					
+					Text
+					
+						Text
+						{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 Wi-Fi}
+						VerticalPad
+						0
+					
+				
+				
+					Bounds
+					{{85.5, 252.41406223966777}, {72, 28.169700000000034}}
+					Class
+					ShapedGraphic
+					FontInfo
+					
+						Color
+						
+							b
+							0
+							g
+							0
+							r
+							0
+						
+						Font
+						Roboto-BoldCondensed
+						Size
+						10
+					
+					ID
+					155
+					Layer
+					0
+					Line
+					
+						ID
+						1895
+						Position
+						0.48590017216177767
+						RotationType
+						0
+					
+					Magnets
+					
+						{1, 1}
+						{1, -1}
+						{-1, -1}
+						{-1, 1}
+						{0, 1}
+						{0, -1}
+						{1, 0}
+						{-1, 0}
+						{-0.5, -0.233518}
+						{-0.49144199999999999, 0.26006299999999999}
+						{0.50711799999999996, -0.22408600000000001}
+						{0.50711799999999996, 0.267179}
+						{-0.27431, -0.474028}
+						{0.27977999999999997, -0.47847800000000001}
+						{0.29393799999999998, 0.54304399999999997}
+						{-0.28623199999999999, 0.55380399999999996}
+					
+					Shape
+					Rectangle
+					Style
+					
+						fill
+						
+							Color
+							
+								b
+								0.938075
+								g
+								0.938269
+								r
+								0.938154
+							
+						
+						shadow
+						
+							Color
+							
+								a
+								0.35
+								b
+								0.328823
+								g
+								0.328823
+								r
+								0.328823
+							
+							Fuzziness
+							1.5349206924438477
+							ShadowVector
+							{0, 1}
+						
+						stroke
+						
+							Color
+							
+								b
+								0.472997
+								g
+								0.473094
+								r
+								0.473036
+							
+							CornerRadius
+							2
+							Draws
+							NO
+						
+					
+					Text
+					
+						Text
+						{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 Bluetooth}
+						VerticalPad
+						0
+					
+				
+				
+					Class
+					Group
+					Graphics
+					
+						
+							Bounds
+							{{42.947532278010186, 15.40233227120396}, {169.1049769052272, 11.625478289816014}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									a
+									0.65
+									b
+									0
+									g
+									0
+									r
+									0
+								
+								Font
+								Roboto-Condensed
+								Size
+								12
+							
+							ID
+							1972
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Draws
+									NO
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+							Text
+							
+								Pad
+								2
+								RTFD
+								
+								BAtzdHJlYW10
+								eXBlZIHoA4QB
+								QISEhBJOU0F0
+								dHJpYnV0ZWRT
+								dHJpbmcAhIQI
+								TlNPYmplY3QA
+								hZKEhIQITlNT
+								dHJpbmcBlIQB
+								Kw5Hb29nbGUg
+								U2VydmVyc4aE
+								AmlJAQ6ShISE
+								DE5TRGljdGlv
+								bmFyeQCUhAFp
+								A5KElpYHTlND
+								b2xvcoaShISE
+								B05TQ29sb3IA
+								lIQBYwOEAmZm
+								AINmZiY/hpKE
+								lpYQTlNQYXJh
+								Z3JhcGhTdHls
+								ZYaShISEEE5T
+								UGFyYWdyYXBo
+								U3R5bGUAlIQE
+								Q0NAUwIAhISE
+								B05TQXJyYXkA
+								lJkMkoSEhAlO
+								U1RleHRUYWIA
+								lIQCQ2YAHIaS
+								hKKhADiGkoSi
+								oQBUhpKEoqEA
+								cIaShKKhAIGM
+								AIaShKKhAIGo
+								AIaShKKhAIHE
+								AIaShKKhAIHg
+								AIaShKKhAIH8
+								AIaShKKhAIEY
+								AYaShKKhAIE0
+								AYaShKKhAIFQ
+								AYaGAIaShJaW
+								Bk5TRm9udIaS
+								hISEBk5TRm9u
+								dB6UmRyEBVsy
+								OGNdBgAAABQA
+								AAD//kgAZQBs
+								AHYAZQB0AGkA
+								YwBhAIQBZgyb
+								AJsBmwCbAIaG
+								hg==
+								
+								Text
+								{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red0\green0\blue0;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf2 Google Servers}
+								alpha
+								
+									
+										0
+										14
+										0.64999997615814209
+									
+								
+							
+						
+						
+							Bounds
+							{{27.500000000000043, 31.027813195885251}, {199.99999999999991, 96.972186804114742}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									a
+									0.65
+									w
+									0
+								
+								Font
+								Roboto-BoldCondensed
+								Size
+								12
+							
+							ID
+							1973
+							Magnets
+							
+								{0, 1}
+								{0, -1}
+								{1, 0}
+								{-1, 0}
+							
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Draws
+									NO
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Color
+									
+										b
+										0.578326
+										g
+										0.578615
+										r
+										0.578453
+									
+									CornerRadius
+									5
+									Pattern
+									1
+								
+							
+							Text
+							
+								VerticalPad
+								10
+							
+							TextPlacement
+							0
+						
+					
+					ID
+					1971
+					Layer
+					0
+				
+				
+					Class
+					LineGraphic
+					FontInfo
+					
+						Color
+						
+							w
+							0
+						
+						Font
+						Roboto-BoldCondensed
+						Size
+						12
+					
+					Head
+					
+						ID
+						251
+					
+					ID
+					1895
+					Layer
+					0
+					OrthogonalBarAutomatic
+					
+					OrthogonalBarPoint
+					{293, 271.5}
+					OrthogonalBarPosition
+					-1
+					Points
+					
+						{121.5, 232}
+						{121.5, 303}
+					
+					Style
+					
+						stroke
+						
+							Color
+							
+								a
+								0.7
+								b
+								0
+								g
+								0
+								r
+								0
+							
+							CornerRadius
+							4
+							HeadArrow
+							FilledArrow
+							Legacy
+							
+							LineType
+							2
+							TailArrow
+							FilledArrow
+						
+					
+					Tail
+					
+						ID
+						250
+					
+				
+				
+					Class
+					LineGraphic
+					FontInfo
+					
+						Color
+						
+							w
+							0
+						
+						Font
+						Roboto-BoldCondensed
+						Size
+						12
+					
+					Head
+					
+						ID
+						252
+					
+					ID
+					198
+					Layer
+					0
+					OrthogonalBarAutomatic
+					
+					OrthogonalBarPoint
+					{0, 0}
+					OrthogonalBarPosition
+					-1
+					Points
+					
+						{180.49999999999997, 71.915149999999997}
+						{257.5, 104.58485}
+						{257.5, 181.83030000000002}
+					
+					Style
+					
+						stroke
+						
+							Color
+							
+								a
+								0.7
+								b
+								0
+								g
+								0
+								r
+								0
+							
+							CornerRadius
+							4
+							HeadArrow
+							FilledArrow
+							Legacy
+							
+							LineType
+							2
+							TailArrow
+							FilledArrow
+						
+					
+					Tail
+					
+						ID
+						158
+						Info
+						7
+					
+				
+				
+					Class
+					LineGraphic
+					FontInfo
+					
+						Color
+						
+							w
+							0
+						
+						Font
+						Roboto-BoldCondensed
+						Size
+						12
+					
+					Head
+					
+						ID
+						250
+					
+					ID
+					1893
+					Layer
+					0
+					OrthogonalBarAutomatic
+					
+					OrthogonalBarPoint
+					{293, 271.5}
+					OrthogonalBarPosition
+					-1
+					Points
+					
+						{121.5, 97}
+						{121.5, 181.83029999999999}
+					
+					Style
+					
+						stroke
+						
+							Color
+							
+								a
+								0.7
+								b
+								0
+								g
+								0
+								r
+								0
+							
+							CornerRadius
+							4
+							HeadArrow
+							FilledArrow
+							Legacy
+							
+							LineType
+							2
+							TailArrow
+							FilledArrow
+						
+					
+					Tail
+					
+						ID
+						158
+					
+				
+				
+					Bounds
+					{{212.5, 181.83029999999999}, {90, 50.169699999999999}}
+					Class
+					ShapedGraphic
+					FontInfo
+					
+						Color
+						
+							b
+							0
+							g
+							0
+							r
+							0
+						
+						Font
+						Roboto-BoldCondensed
+						Size
+						10
+					
+					ID
+					252
+					Layer
+					0
+					Magnets
+					
+						{1, 1}
+						{1, -1}
+						{-1, -1}
+						{-1, 1}
+						{0, 1}
+						{0, -1}
+						{1, 0}
+						{-1, 0}
+						{-0.5, -0.233518}
+						{-0.49144199999999999, 0.26006299999999999}
+						{0.50711799999999996, -0.22408600000000001}
+						{0.50711799999999996, 0.267179}
+						{-0.27431, -0.474028}
+						{0.27977999999999997, -0.47847800000000001}
+						{0.29393799999999998, 0.54304399999999997}
+						{-0.28623199999999999, 0.55380399999999996}
+					
+					Shape
+					RoundRect
+					Style
+					
+						fill
+						
+							Color
+							
+								b
+								0
+								g
+								0.8
+								r
+								0.6
+							
+						
+						shadow
+						
+							Color
+							
+								a
+								0.35
+								b
+								0.328823
+								g
+								0.328823
+								r
+								0.328823
+							
+							Fuzziness
+							1.5349206924438477
+							ShadowVector
+							{0, 1}
+						
+						stroke
+						
+							Color
+							
+								b
+								0
+								g
+								0.6
+								r
+								0.4
+							
+							CornerRadius
+							3
+							Draws
+							NO
+						
+					
+					Text
+					
+						Text
+						{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 Watch 2}
+						VerticalPad
+						0
+					
+				
+				
+					Bounds
+					{{76.5, 303}, {90, 50.169699999999999}}
+					Class
+					ShapedGraphic
+					FontInfo
+					
+						Color
+						
+							b
+							0
+							g
+							0
+							r
+							0
+						
+						Font
+						Roboto-BoldCondensed
+						Size
+						10
+					
+					ID
+					251
+					Layer
+					0
+					Magnets
+					
+						{1, 1}
+						{1, -1}
+						{-1, -1}
+						{-1, 1}
+						{0, 1}
+						{0, -1}
+						{1, 0}
+						{-1, 0}
+						{-0.5, -0.233518}
+						{-0.49144199999999999, 0.26006299999999999}
+						{0.50711799999999996, -0.22408600000000001}
+						{0.50711799999999996, 0.267179}
+						{-0.27431, -0.474028}
+						{0.27977999999999997, -0.47847800000000001}
+						{0.29393799999999998, 0.54304399999999997}
+						{-0.28623199999999999, 0.55380399999999996}
+					
+					Shape
+					RoundRect
+					Style
+					
+						fill
+						
+							Color
+							
+								b
+								0
+								g
+								0.8
+								r
+								0.6
+							
+						
+						shadow
+						
+							Color
+							
+								a
+								0.35
+								b
+								0.328823
+								g
+								0.328823
+								r
+								0.328823
+							
+							Fuzziness
+							1.5349206924438477
+							ShadowVector
+							{0, 1}
+						
+						stroke
+						
+							Color
+							
+								b
+								0
+								g
+								0.6
+								r
+								0.4
+							
+							CornerRadius
+							3
+							Draws
+							NO
+						
+					
+					Text
+					
+						Text
+						{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 Watch 1}
+						VerticalPad
+						0
+					
+				
+				
+					Bounds
+					{{62.5, 181.83029999999999}, {118, 50.169699999999999}}
+					Class
+					ShapedGraphic
+					FontInfo
+					
+						Color
+						
+							b
+							0
+							g
+							0
+							r
+							0
+						
+						Font
+						Roboto-BoldCondensed
+						Size
+						10
+					
+					ID
+					250
+					Layer
+					0
+					Magnets
+					
+						{1, 1}
+						{1, -1}
+						{-1, -1}
+						{-1, 1}
+						{0, 1}
+						{0, -1}
+						{1, 0}
+						{-1, 0}
+						{-0.5, -0.233518}
+						{-0.49144199999999999, 0.26006299999999999}
+						{0.50711799999999996, -0.22408600000000001}
+						{0.50711799999999996, 0.267179}
+						{-0.27431, -0.474028}
+						{0.27977999999999997, -0.47847800000000001}
+						{0.29393799999999998, 0.54304399999999997}
+						{-0.28623199999999999, 0.55380399999999996}
+					
+					Shape
+					RoundRect
+					Style
+					
+						fill
+						
+							Color
+							
+								b
+								0
+								g
+								0.8
+								r
+								0.6
+							
+						
+						shadow
+						
+							Color
+							
+								a
+								0.35
+								b
+								0.328823
+								g
+								0.328823
+								r
+								0.328823
+							
+							Fuzziness
+							1.5349206924438477
+							ShadowVector
+							{0, 1}
+						
+						stroke
+						
+							Color
+							
+								b
+								0
+								g
+								0.6
+								r
+								0.4
+							
+							CornerRadius
+							3
+							Draws
+							NO
+						
+					
+					Text
+					
+						Text
+						{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 Phone}
+						VerticalPad
+						0
+					
+				
+				
+					Bounds
+					{{62.5, 46.830299999999994}, {118, 50.169699999999999}}
+					Class
+					ShapedGraphic
+					FontInfo
+					
+						Color
+						
+							b
+							0
+							g
+							0
+							r
+							0
+						
+						Font
+						Roboto-BoldCondensed
+						Size
+						12
+					
+					ID
+					158
+					Layer
+					0
+					Magnets
+					
+						{1, 1}
+						{1, -1}
+						{-1, -1}
+						{-1, 1}
+						{0, 1}
+						{0, -1}
+						{1, 0}
+						{-1, 0}
+						{-0.5, -0.233518}
+						{-0.49144199999999999, 0.26006299999999999}
+						{0.50711799999999996, -0.22408600000000001}
+						{0.50711799999999996, 0.267179}
+						{-0.27431, -0.474028}
+						{0.27977999999999997, -0.47847800000000001}
+						{0.29393799999999998, 0.54304399999999997}
+						{-0.28623199999999999, 0.55380399999999996}
+					
+					Shape
+					RoundRect
+					Style
+					
+						fill
+						
+							Color
+							
+								b
+								0.898039
+								g
+								0.709804
+								r
+								0.2
+							
+						
+						shadow
+						
+							Color
+							
+								a
+								0.35
+								b
+								0.328823
+								g
+								0.328823
+								r
+								0.328823
+							
+							Fuzziness
+							1.5349206924438477
+							ShadowVector
+							{0, 1}
+						
+						stroke
+						
+							Color
+							
+								b
+								0.8
+								g
+								0.6
+								r
+								0
+							
+							CornerRadius
+							3
+							Draws
+							NO
+						
+					
+					Text
+					
+						Text
+						{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 Cloud Node}
+						VerticalPad
+						0
+					
+				
+				
+					Class
+					Group
+					Graphics
+					
+						
+							Bounds
+							{{890, 0}, {60, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							45
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{810, 0}, {60, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							46
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{730, 0}, {60, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							47
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{650, 0}, {60, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							48
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{570, 0}, {60, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							49
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{490, 0}, {60, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							50
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{410, 0}, {60, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							51
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{330, 0}, {60, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							52
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{250, 0}, {60, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							53
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{170, 0}, {60, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							54
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{90, 0}, {60, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							55
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{10, 0}, {60, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							56
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+					
+					ID
+					44
+					Layer
+					1
+				
+			
+			GridInfo
+			
+				GridSpacing
+				1
+				MajorGridColor
+				
+					a
+					0.15
+					b
+					0
+					g
+					0
+					r
+					0
+				
+				MajorGridSpacing
+				10
+				ShowsGrid
+				YES
+				SnapsToGrid
+				YES
+			
+			HPages
+			1
+			KeepToScale
+			
+			Layers
+			
+				
+					Lock
+					NO
+					Name
+					Layer 1
+					Print
+					YES
+					View
+					YES
+				
+				
+					Lock
+					YES
+					Name
+					12 Column Grid
+					Print
+					YES
+					View
+					NO
+				
+			
+			LayoutInfo
+			
+				Animate
+				NO
+				circoMinDist
+				18
+				circoSeparation
+				0.0
+				layoutEngine
+				dot
+				neatoLineLength
+				0.20000000298023224
+				neatoSeparation
+				0.0
+				twopiSeparation
+				0.0
+			
+			Orientation
+			2
+			PrintOnePage
+			
+			RowAlign
+			1
+			RowSpacing
+			24
+			SheetTitle
+			12 Columns
+			UniqueID
+			1
+			VPages
+			1
+			VerticalGuides
+			
+				10
+				70
+				90
+				149
+				170
+				230
+				250
+				310
+				330
+				390
+				410
+				470
+				490
+				550
+				570
+				630
+				650
+				710
+				730
+				790
+				810
+				870
+				890
+				950
+			
+		
+		
+			ActiveLayerIndex
+			0
+			AutoAdjust
+			
+			BackgroundGraphic
+			
+				Bounds
+				{{0, 0}, {960, 1172}}
+				Class
+				SolidGraphic
+				ID
+				2
+				Style
+				
+					stroke
+					
+						Draws
+						NO
+					
+				
+			
+			BaseZoom
+			0
+			CanvasOrigin
+			{0, 0}
+			CanvasSize
+			{960, 1172}
+			ColumnAlign
+			1
+			ColumnSpacing
+			20
+			DisplayScale
+			1.0 pt = 1.0 px
+			GraphicsList
+			
+				
+					Class
+					Group
+					Graphics
+					
+						
+							Bounds
+							{{910, 0}, {40, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							165
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{850, 0}, {40, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							166
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{790, 0}, {40, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							167
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{730, 0}, {40, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							168
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{670, 0}, {40, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							169
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{610, 0}, {40, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							170
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{550, 0}, {40, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							171
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{490, 0}, {40, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							172
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{430, 0}, {40, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							173
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{370, 0}, {40, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							174
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{310, 0}, {40, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							175
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{250, 0}, {40, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							176
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{190, 0}, {40, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							177
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{130, 0}, {40, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							178
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{70, 0}, {40, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							179
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{10, 0}, {40, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							180
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+					
+					ID
+					164
+					Layer
+					1
+				
+			
+			GridInfo
+			
+				GridSpacing
+				1
+				MajorGridColor
+				
+					a
+					0.15
+					b
+					0
+					g
+					0
+					r
+					0
+				
+				MajorGridSpacing
+				10
+				ShowsGrid
+				YES
+				SnapsToGrid
+				YES
+			
+			HPages
+			2
+			KeepToScale
+			
+			Layers
+			
+				
+					Lock
+					NO
+					Name
+					Layer 1
+					Print
+					YES
+					View
+					YES
+				
+				
+					Lock
+					YES
+					Name
+					16 Column Grid
+					Print
+					YES
+					View
+					YES
+				
+			
+			LayoutInfo
+			
+				Animate
+				NO
+				circoMinDist
+				18
+				circoSeparation
+				0.0
+				layoutEngine
+				dot
+				neatoLineLength
+				0.20000000298023224
+				neatoSeparation
+				0.0
+				twopiSeparation
+				0.0
+			
+			Orientation
+			2
+			PrintOnePage
+			
+			RowAlign
+			1
+			RowSpacing
+			24
+			SheetTitle
+			16 Columns
+			UniqueID
+			2
+			VPages
+			2
+			VerticalGuides
+			
+				10
+				50
+				70
+				110
+				130
+				170
+				190
+				230
+				250
+				290
+				310
+				350
+				370
+				410
+				430
+				470
+				490
+				530
+				550
+				590
+				610
+				650
+				670
+				710
+				730
+				770
+				790
+				830
+				850
+				890
+				910
+				950
+			
+		
+		
+			ActiveLayerIndex
+			0
+			AutoAdjust
+			
+			BackgroundGraphic
+			
+				Bounds
+				{{0, 0}, {960, 1172}}
+				Class
+				SolidGraphic
+				ID
+				2
+				Style
+				
+					stroke
+					
+						Draws
+						NO
+					
+				
+			
+			BaseZoom
+			0
+			CanvasOrigin
+			{0, 0}
+			CanvasSize
+			{960, 1172}
+			ColumnAlign
+			1
+			ColumnSpacing
+			10
+			DisplayScale
+			1.0 pt = 1.0 px
+			GraphicsList
+			
+				
+					Class
+					Group
+					Graphics
+					
+						
+							Bounds
+							{{925, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							193
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{885, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							194
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{845, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							195
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{805, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							196
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{765, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							197
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{725, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							198
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{685, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							199
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{645, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							200
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{605, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							201
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{565, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							202
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{525, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							203
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{485, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							204
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{445, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							205
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{405, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							206
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{365, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							207
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{325, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							208
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{285, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							209
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{245, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							210
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{205, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							211
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{165, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							212
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{125, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							213
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{85, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							214
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{45, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							215
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+						
+							Bounds
+							{{5, 0}, {30, 1172}}
+							Class
+							ShapedGraphic
+							FontInfo
+							
+								Color
+								
+									w
+									0
+								
+								Font
+								Helvetica
+								Size
+								12
+							
+							ID
+							216
+							Shape
+							Rectangle
+							Style
+							
+								fill
+								
+									Color
+									
+										a
+										0.1
+										b
+										1
+										g
+										0
+										r
+										1
+									
+								
+								shadow
+								
+									Draws
+									NO
+								
+								stroke
+								
+									Draws
+									NO
+								
+							
+						
+					
+					ID
+					192
+					Layer
+					1
+				
+			
+			GridInfo
+			
+				GridSpacing
+				1
+				MajorGridColor
+				
+					a
+					0.15
+					b
+					0
+					g
+					0
+					r
+					0
+				
+				MajorGridSpacing
+				5
+				ShowsGrid
+				YES
+				SnapsToGrid
+				YES
+			
+			HPages
+			2
+			KeepToScale
+			
+			Layers
+			
+				
+					Lock
+					NO
+					Name
+					Layer 1
+					Print
+					YES
+					View
+					YES
+				
+				
+					Lock
+					YES
+					Name
+					24 Column Grid
+					Print
+					YES
+					View
+					YES
+				
+			
+			LayoutInfo
+			
+				Animate
+				NO
+				circoMinDist
+				18
+				circoSeparation
+				0.0
+				layoutEngine
+				dot
+				neatoLineLength
+				0.20000000298023224
+				neatoSeparation
+				0.0
+				twopiSeparation
+				0.0
+			
+			Orientation
+			2
+			PrintOnePage
+			
+			RowAlign
+			1
+			RowSpacing
+			24
+			SheetTitle
+			24 Columns
+			UniqueID
+			3
+			VPages
+			2
+			VerticalGuides
+			
+				5
+				35
+				45
+				75
+				85
+				115
+				125
+				155
+				165
+				195
+				205
+				235
+				245
+				275
+				285
+				315
+				325
+				355
+				365
+				395
+				405
+				435
+				445
+				475
+				485
+				515
+				525
+				555
+				565
+				595
+				605
+				635
+				645
+				675
+				685
+				715
+				725
+				755
+				765
+				795
+				805
+				835
+				845
+				875
+				885
+				915
+				925
+				955
+			
+		
+	
+	SmartAlignmentGuidesActive
+	YES
+	SmartDistanceGuidesActive
+	YES
+	UseEntirePage
+	
+	WindowInfo
+	
+		BottomSlabHeight
+		471
+		CurrentSheet
+		0
+		Expanded_Canvases
+		
+		ShowInfo
+		
+		ShowRuler
+		
+		Sidebar
+		
+		SidebarWidth
+		230
+		VisibleRegion
+		{{0, 0}, {893, 674}}
+		Zoom
+		1
+		ZoomValues
+		
+			
+				12 Columns
+				1
+				1
+			
+		
+	
+
+