From ed82825062f8132142bde40ea311aa2be6354e74 Mon Sep 17 00:00:00 2001 From: JessamyT Date: Thu, 5 Jun 2025 17:13:14 -0700 Subject: [PATCH 01/14] Add world frame to glossary --- docs/dev/reference/glossary/world-frame.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 docs/dev/reference/glossary/world-frame.md diff --git a/docs/dev/reference/glossary/world-frame.md b/docs/dev/reference/glossary/world-frame.md new file mode 100644 index 0000000000..68367d1e7b --- /dev/null +++ b/docs/dev/reference/glossary/world-frame.md @@ -0,0 +1,14 @@ +--- +title: World Reference Frame +id: world-frame +full_link: +short_description: The fixed, user-defined global coordinate system that is the reference point for all other coordinate frames in a robotic system. +aka: world frame, world +--- + +The world reference frame is the fixed, global coordinate system that serves as the reference point for all other coordinate frames in a robotic system. +It provides a consistent basis for describing the position and orientation of robots, components, and objects in the physical space. +All other coordinate frames (like robot frames, component frames, etc.) are defined relative to this world frame. + +The user defines the world frame. +For example, if you have a robot arm mounted on a table and you define the arm's base frame as the world frame, then the arm's base frame is the origin of the world frame. From 5aad0b5629a34acf87827d899c66f42e5ff7df9f Mon Sep 17 00:00:00 2001 From: JessamyT Date: Thu, 5 Jun 2025 18:05:53 -0700 Subject: [PATCH 02/14] tweak frame system explanation w/feedback --- docs/operate/mobility/motion-concepts.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/operate/mobility/motion-concepts.md b/docs/operate/mobility/motion-concepts.md index a13bceefda..edd6576cb8 100644 --- a/docs/operate/mobility/motion-concepts.md +++ b/docs/operate/mobility/motion-concepts.md @@ -39,12 +39,14 @@ You can use the following components to augment motion planning and navigation: ## The frame system -Viam's [frame system](/operate/reference/services/frame-system/) is a way to describe the spatial relationship between the components in your robot. -The motion service uses the frame system to plan the motion of components. +Viam's [frame system](/operate/reference/services/frame-system/) allows you to describe the spatial relationship between the components in your robot. +You configure your machine's frames once, and Viam keeps track of the frames as they move. +This means you can send motion service commands using a consistent coordinate system, regardless of where the components are at a given time. -For example, if you want to command an arm to move to coordinates of `(300, 0, 0)` millimeters, you first need to define the origin `(0, 0, 0)` of the coordinate system and the directions of the x, y, and z axes to give those coordinates meaning. +You must configure frames before you can use the motion service. +For example, if you want to command an arm to move to coordinates of `(300, 0, 0)` millimeters, you first need to define the origin `(0, 0, 0)` and the directions of the x, y, and z axes of the {{< glossary_tooltip term_id="world-frame" text="world" >}} coordinate system to give your coordinates meaning. -To give the necessary context, you define the arm's `frame` to describe its position and orientation relative to the world. +You then define the arm's `frame` to describe its position and orientation relative to the world. If you also have a gripper component, you define the gripper's `frame` to describe its position and orientation relative to the arm, so that when the arm moves, the motion service knows where the gripper is as well. ### Visualize components and frames From 287246f739959eaa803b51dd440985d4481f28a9 Mon Sep 17 00:00:00 2001 From: JessamyT Date: Fri, 6 Jun 2025 17:57:47 -0700 Subject: [PATCH 03/14] Add start of frame how-to page, fix some frontmatter --- docs/dev/reference/glossary/world-frame.md | 8 +-- docs/operate/_index.md | 3 +- .../get-started/other-hardware/_index.md | 1 + .../operate/mobility/move-arm/frame-how-to.md | 70 +++++++++++++++++++ 4 files changed, 77 insertions(+), 5 deletions(-) create mode 100644 docs/operate/mobility/move-arm/frame-how-to.md diff --git a/docs/dev/reference/glossary/world-frame.md b/docs/dev/reference/glossary/world-frame.md index 68367d1e7b..5154282515 100644 --- a/docs/dev/reference/glossary/world-frame.md +++ b/docs/dev/reference/glossary/world-frame.md @@ -1,14 +1,14 @@ --- -title: World Reference Frame +title: World frame id: world-frame -full_link: +full_link: /operate/mobility/move-arm/frame-how-to/ short_description: The fixed, user-defined global coordinate system that is the reference point for all other coordinate frames in a robotic system. aka: world frame, world --- -The world reference frame is the fixed, global coordinate system that serves as the reference point for all other coordinate frames in a robotic system. +The world reference [frame](/operate/reference/services/frame-system/) is the fixed, global coordinate system that serves as the reference point for all other coordinate frames in a robotic system. It provides a consistent basis for describing the position and orientation of robots, components, and objects in the physical space. -All other coordinate frames (like robot frames, component frames, etc.) are defined relative to this world frame. +All other coordinate frames (like robot frames, component frames, etc.) are defined relative to this world frame, either directly or through a chain of transformations. The user defines the world frame. For example, if you have a robot arm mounted on a table and you define the arm's base frame as the world frame, then the arm's base frame is the origin of the world frame. diff --git a/docs/operate/_index.md b/docs/operate/_index.md index 155a1a9efb..391bfd5f12 100644 --- a/docs/operate/_index.md +++ b/docs/operate/_index.md @@ -43,8 +43,9 @@ To get started, install Viam on any device and integrate your hardware. Then you {{< /cards >}} {{< /how-to-expand >}} -{{< how-to-expand "Intelligent actuation and motion planning" "3" "INTERMEDIATE" "" "build-platform-motion" >}} +{{< how-to-expand "Intelligent actuation and motion planning" "4" "INTERMEDIATE" "" "build-platform-motion" >}} {{< cards >}} +{{% card link="/operate/mobility/motion-concepts/" noimage="true" %}} {{% card link="/operate/mobility/move-arm/" noimage="true" %}} {{% card link="/operate/mobility/move-base/" noimage="true" %}} {{% card link="/operate/mobility/move-gantry/" noimage="true" %}} diff --git a/docs/operate/get-started/other-hardware/_index.md b/docs/operate/get-started/other-hardware/_index.md index 79a5319431..4055ea4087 100644 --- a/docs/operate/get-started/other-hardware/_index.md +++ b/docs/operate/get-started/other-hardware/_index.md @@ -5,5 +5,6 @@ layout: "empty" type: "docs" empty_node: true open_on_desktop: true +description: "Integrate other hardware or software by creating a module." canonical: "/operate/get-started/other-hardware/create-module/" --- diff --git a/docs/operate/mobility/move-arm/frame-how-to.md b/docs/operate/mobility/move-arm/frame-how-to.md new file mode 100644 index 0000000000..34466693b3 --- /dev/null +++ b/docs/operate/mobility/move-arm/frame-how-to.md @@ -0,0 +1,70 @@ +--- +title: "Configure your frame system" +linkTitle: "Configure your frame system" +weight: 20 +type: "docs" +layout: "docs" +description: "Decide on and configure the frames of your arm, its workspace, and other components." +--- + +Frames can be confusing. +This guide will help you decide on a coordinate system for your workspace, and then determine how the [frames](/operate/reference/services/frame-system/) of your arm and other components relate to that workspace. + +Once you have configured frames for all your components, Viam will keep track of the positions and orientations as your robot moves, so you can plan motion in terms of a consistent coordinate system. + +## Determine the world frame + +The world reference frame is the fixed coordinate system that serves as the reference point for the other frames in your robotic system. + +You define the world frame. +You can define it however is convenient for your application. + +For example, if you are using a robot arm mounted in a fixed location, it can be convenient to define the arm's base frame as equal to the world frame: + +1. Mount the arm in a fixed location. +1. On your arm's configuration card, click **+ Add frame**. +1. The card will populate with the following default values: + + ```json {class="line-numbers linkable-line-numbers"} + { + "orientation": { + "type": "ov_degrees", + "value": { + "th": 0, + "x": 0, + "y": 0, + "z": 1 + } + }, + "parent": "world", + "translation": { + "x": 0, + "y": 0, + "z": 0 + } + } + ``` + + This [orientation vector](/operate/mobility/orientation-vector/) of `x=0, y=0, z=1, th=0` means the frame is aligned with the world frame, and the `0, 0, 0` translation means the origin of the arm frame is coincident with the origin of the world frame. + You can think of it like this: The z-axis of the arm frame is parallel to the z-axis of the world frame, and the origin of the arm frame is in the same place as the origin of the world frame. + +1. Click **Save**. + + By configuring your arm's frame like this, _you have now defined the world frame as the same as the arm's base frame_. + +### Figure out which way the world frame's axes point + +The arm's base frame is now the world frame, but you do not know which way the x, y, and z axes of the arm (or world)frame point, unless you happen to be familiar with the arm's [kinematics file](/operate/reference/kinematic-chain-config/). + +1. On your arm's configuration card, click the **TEST** section (or use the **CONTROL** tab). + +1. Move the arm in each direction and note which way the arm moves. + For example, under the **MoveToPosition** section, move the arm in the positive Z direction. + If it moves upwards, then you know that the z-axis of the arm frame (and world frame) points upwards. +1. Tip: Mark the X, Y, and Z axes of the arm frame on your workspace with tape or a marker. + +## Other setups + +If your arm is mounted on a mobile {{< glossary_tooltip term_id="base" text="base" >}}, with a fixed camera overhead, it could make sense to define the world frame as the frame of the camera. + +If none of your components are fixed in place, you can define the world frame as the frame of the first component you add to your robot, for example, the mobile base. From 966de9a6200b4f588b9a25c44a4cea615e8e0777 Mon Sep 17 00:00:00 2001 From: JessamyT Date: Tue, 24 Jun 2025 14:23:03 -0700 Subject: [PATCH 04/14] Change/move frame config instructions, add origin frame to glossary --- docs/dev/reference/changelog.md | 2 +- docs/dev/reference/glossary/origin-frame.md | 16 ++++ docs/operate/mobility/move-arm/arm-no-code.md | 2 +- .../mobility/move-arm/configure-additional.md | 23 +++-- .../mobility/move-arm/configure-arm.md | 92 +------------------ .../operate/mobility/move-arm/frame-how-to.md | 55 +++++++---- .../reference/components/arm/_index.md | 2 + .../reference/services/frame-system/_index.md | 9 +- .../reference/services/navigation/_index.md | 4 +- static/include/snippet/visualize.md | 2 + 10 files changed, 89 insertions(+), 118 deletions(-) create mode 100644 docs/dev/reference/glossary/origin-frame.md diff --git a/docs/dev/reference/changelog.md b/docs/dev/reference/changelog.md index b9c3162323..1ca9173032 100644 --- a/docs/dev/reference/changelog.md +++ b/docs/dev/reference/changelog.md @@ -63,7 +63,7 @@ Organization owners and location owners can now move machines between locations {{% changelog color="removed" title="Frame tab removed, use Add Frame button" date="2025-05-15" %}} The frame tab no longer exists. -To add a frame to a component, click the **+ Add Frame** button on the component's configuration card. +To add a frame to a component, click the **+ Add frame** button on the component's configuration card. {{% /changelog %}} diff --git a/docs/dev/reference/glossary/origin-frame.md b/docs/dev/reference/glossary/origin-frame.md new file mode 100644 index 0000000000..5b8abe8b49 --- /dev/null +++ b/docs/dev/reference/glossary/origin-frame.md @@ -0,0 +1,16 @@ +--- +title: Origin frame +id: origin-frame +full_link: /operate/reference/services/frame-system/#how-the-frame-system-works +short_description: The origin frame is the frame at the base of an arm or other component that has a complex kinematics chain. +--- + +The origin frame is the frame at the base of an arm, gantry, or other component that has a complex kinematics chain. +This is typically the point at the center of where the component is mounted to a table or stand. + +Every component that has a kinematics chain has an origin frame and an end effector frame, for example `my_arm_origin` and `my_arm`. + +If you parent a gripper to the arm's `my_arm` frame, the frame system will know the gripper is at the end of the arm. +If you mistakenly parent the gripper to the arm's `my_arm_origin` frame, the frame system will think the gripper is at the base of the arm, and the gripper will not move when you move the arm. + +For more information, see [How the frame system works](/operate/reference/services/frame-system/#how-the-frame-system-works/). diff --git a/docs/operate/mobility/move-arm/arm-no-code.md b/docs/operate/mobility/move-arm/arm-no-code.md index c17dcd06b6..c0cb48c35e 100644 --- a/docs/operate/mobility/move-arm/arm-no-code.md +++ b/docs/operate/mobility/move-arm/arm-no-code.md @@ -1,7 +1,7 @@ --- title: "Move an arm without code" linkTitle: "Move an arm with no code" -weight: 30 +weight: 35 type: "docs" layout: "docs" description: "Move an arm without code using the web UI." diff --git a/docs/operate/mobility/move-arm/configure-additional.md b/docs/operate/mobility/move-arm/configure-additional.md index b2cf9e9f1b..b94564d1ef 100644 --- a/docs/operate/mobility/move-arm/configure-additional.md +++ b/docs/operate/mobility/move-arm/configure-additional.md @@ -2,7 +2,7 @@ title: "Configure components attached to your arm" linkTitle: "Configure additional components" description: "Configure additional components such as grippers, cameras, and other sensors attached to your arm." -weight: 20 +weight: 30 type: "docs" layout: "docs" aliases: @@ -18,18 +18,29 @@ If you have a gripper, camera, or other components attached to your arm, you can You can also take into account passive objects attached to the arm such as a camera mount to avoid collisions. -## Configure a gripper +## Prerequisites -If you have a gripper, you can configure it to move with the arm. See [Configure a gripper](/operate/reference/components/gripper/) for instructions on configuring the gripper itself. -Then, configure the gripper's frame to describe its position and orientation relative to the arm: + +## Configure a gripper's frame + +If you have a gripper, you can configure it to move with the arm. +Configure the gripper's frame to describe its position and orientation relative to the arm: 1. In the **CONFIGURE** tab, find the gripper's configuration card. -1. Click **+ Add Frame**. +1. Click **+ Add frame**. 1. Select the arm's frame as the parent frame. + Some grippers have kinematics files that describe the gripper's end effector position and orientation relative to the gripper's base. + You can check whether your gripper has a kinematics file by looking in its module source code, or by using the [`GetKinematics` method](/dev/reference/apis/components/gripper/). + + If you have a kinematics file, you do not need to add a translation or any geometries to the gripper's frame. + You can skip the remaining steps, assuming the gripper appears as expected in the **VISUALIZE** tab. + + If you do not have a kinematics file, continue to the next step. + 1. Enter the gripper origin's position and orientation relative to the center of the end of the arm. It is up to you to decide what part of the gripper you want to use as the origin of the frame. It is common to use a central point near the base of the gripper jaws as the origin. @@ -66,7 +77,7 @@ Then, configure the camera's frame to describe its position and orientation rela 1. In the **CONFIGURE** tab, find the camera's configuration card. -1. Click **+ Add Frame**. +1. Click **+ Add frame**. 1. Edit the frame depending on where the camera is mounted: diff --git a/docs/operate/mobility/move-arm/configure-arm.md b/docs/operate/mobility/move-arm/configure-arm.md index 563259b96d..b2b959d117 100644 --- a/docs/operate/mobility/move-arm/configure-arm.md +++ b/docs/operate/mobility/move-arm/configure-arm.md @@ -4,10 +4,12 @@ linkTitle: "Configure an arm" weight: 10 type: "docs" layout: "docs" -description: "Configure an arm including its reference frame." +description: "Configure an arm component to use your robotic arm with Viam." date: "2025-05-21" --- +Configure an [arm component](/operate/reference/components/arm) to use your robotic arm with Viam. + ## Prerequisites {{< expand "A running machine connected to Viam." >}} @@ -49,90 +51,4 @@ date: "2025-05-21" ``` 1. You will need a reference frame to use your arm with the motion planning service. - Click **+ Add frame**. - - For a project with a single arm, you can define the arm's frame as being the same as the world frame, so leave the default values: - - ```json {class="line-numbers linkable-line-numbers"} - { - "orientation": { - "type": "ov_degrees", - "value": { - "th": 0, - "x": 0, - "y": 0, - "z": 1 - } - }, - "parent": "world", - "translation": { - "x": 0, - "y": 0, - "z": 0 - } - } - ``` - -1. Save your configuration. - -## Configure a different reference frame - -For a project with multiple arms, you can define a different [reference frame](/operate/reference/services/frame-system/) for each arm. -To use a reference frame for your arm that is different from the default world frame: - -1. Configure the arm as above, adding a frame with the **+ Add frame** button. - -1. Edit your arm's frame according to your needs. - The frame parameters are: - - - `parent`: The parent frame. - You can use the `world` frame, or another frame you have defined. - - For example, if you have an arm mounted on a gantry, you can use the gantry's frame as the parent frame of the arm by setting `"parent": "name-of-your-gantry"`. - This will cause the arm's frame to be updated as the gantry moves. - - - `orientation`: The orientation of the frame relative to the parent frame, represented as a vector. - If you use the default values, the frame is aligned with the parent frame. - - `translation`: The distance between the frame and the parent frame in each direction, in millimeters. - -1. Confirm the x, y, and z axes of the arm by moving it in each direction using the **TEST** tab. - -### Example: Two arms mounted on a table - -Imagine you have two arms mounted on a table, some distance apart. - -{{}} - -1. You define the frame of one arm to be at the same origin as the world frame. -1. You move the arm in each direction using the web UI and see that positive x is to the right, positive y is forward, and positive z is up. - You label the world frame axes on the table with tape for your reference. -1. You measure the distance between the two arms. - The second arm is 200mm to the left of the first arm, so `"y": 200`. -1. The second arm is facing towards the first arm. - By the right-hand rule, this means that the second arm is rotated negative 90 degrees around its z axis: `"th": -90`. - You edit the second arm's frame to reflect this: - - ```json {class="line-numbers linkable-line-numbers"} - { - "orientation": { - "type": "ov_degrees", - "value": { - "th": -90, - "x": 0, - "y": 0, - "z": 1 - } - }, - "parent": "world", - "translation": { - "x": 0, - "y": 200, - "z": 0 - } - } - ``` - - Because you aligned the first arm's origin frame with the world frame, the second arm's parent could be world or the first arm's origin frame (for example, `arm_1_origin`) with no difference in function. - -1. You check that the second arm's frame is configured correctly by moving it in each direction using web UI and confirming that it moves as expected. - When you move it in the positive x direction, it should move towards the first arm. + Continue to [Configure your frame system](/operate/mobility/move-arm/frame-how-to/). diff --git a/docs/operate/mobility/move-arm/frame-how-to.md b/docs/operate/mobility/move-arm/frame-how-to.md index 34466693b3..b0511f477d 100644 --- a/docs/operate/mobility/move-arm/frame-how-to.md +++ b/docs/operate/mobility/move-arm/frame-how-to.md @@ -8,18 +8,22 @@ description: "Decide on and configure the frames of your arm, its workspace, and --- Frames can be confusing. -This guide will help you decide on a coordinate system for your workspace, and then determine how the [frames](/operate/reference/services/frame-system/) of your arm and other components relate to that workspace. +This guide will help you decide on a coordinate system for your workspace, and then determine how the frames of your arm and other components relate to that workspace. Once you have configured frames for all your components, Viam will keep track of the positions and orientations as your robot moves, so you can plan motion in terms of a consistent coordinate system. +For reference information, see [the frame system](/operate/reference/services/frame-system/). + ## Determine the world frame The world reference frame is the fixed coordinate system that serves as the reference point for the other frames in your robotic system. -You define the world frame. -You can define it however is convenient for your application. +You define the world frame, in whatever way is convenient for your application. +It generally makes sense to define the world frame's location as a point in your space that does not move and is easy to measure from. + +For example, if you are using a robot arm mounted to a table, it can be convenient to define the arm's base frame as equal to the world frame, or you can define the world frame as one corner of the table that the arm is mounted to. -For example, if you are using a robot arm mounted in a fixed location, it can be convenient to define the arm's base frame as equal to the world frame: +### Add the default frame 1. Mount the arm in a fixed location. 1. On your arm's configuration card, click **+ Add frame**. @@ -30,10 +34,10 @@ For example, if you are using a robot arm mounted in a fixed location, it can be "orientation": { "type": "ov_degrees", "value": { - "th": 0, "x": 0, "y": 0, - "z": 1 + "z": 1, + "th": 0 } }, "parent": "world", @@ -45,26 +49,45 @@ For example, if you are using a robot arm mounted in a fixed location, it can be } ``` - This [orientation vector](/operate/mobility/orientation-vector/) of `x=0, y=0, z=1, th=0` means the frame is aligned with the world frame, and the `0, 0, 0` translation means the origin of the arm frame is coincident with the origin of the world frame. - You can think of it like this: The z-axis of the arm frame is parallel to the z-axis of the world frame, and the origin of the arm frame is in the same place as the origin of the world frame. + This [orientation vector](/operate/mobility/orientation-vector/) of `x=0, y=0, z=1, th=0` means the frame is aligned with the world frame, and the `0, 0, 0` translation means the arm's {{< glossary_tooltip term_id="origin-frame" text="origin frame" >}} is coincident with the origin of the world frame. + You can think of it like this: The z-axis of the arm's origin frame is parallel to the z-axis of the world frame, and the origin of the arm's origin frame is in the same place as the origin of the world frame. + + If you want to define the world frame as the corner of the table, leave the default values for now, and continue to the next step so that you know which way `x` and `y` point and can edit the configuration accordingly. 1. Click **Save**. - By configuring your arm's frame like this, _you have now defined the world frame as the same as the arm's base frame_. + By configuring your arm's frame like this, you have now defined the world frame as the same as the arm's base frame. -### Figure out which way the world frame's axes point +### Figure out which way the arm's axes point -The arm's base frame is now the world frame, but you do not know which way the x, y, and z axes of the arm (or world)frame point, unless you happen to be familiar with the arm's [kinematics file](/operate/reference/kinematic-chain-config/). +The arm's base frame is now the world frame, but you do not know which way the x, y, and z axes of the arm frame point, unless you happen to be familiar with the arm's [kinematics file](/operate/reference/kinematic-chain-config/). 1. On your arm's configuration card, click the **TEST** section (or use the **CONTROL** tab). 1. Move the arm in each direction and note which way the arm moves. For example, under the **MoveToPosition** section, move the arm in the positive Z direction. - If it moves upwards, then you know that the z-axis of the arm frame (and world frame) points upwards. -1. Tip: Mark the X, Y, and Z axes of the arm frame on your workspace with tape or a marker. + If it moves upwards, then you know that the z-axis of the arm frame points upwards. +1. If the directions do not match your intended world frame, you can edit the arm's `orientation` field to rotate the arm frame to match your intended world frame. + For example, if the arm's x-axis points to the right, but you want it to point to the left, you can set the `orientation` field to `"x"=0, "y"=0, "z"=1, "th"=180`. + +1. For your reference, mark the X, Y, and Z axes of the world frame on your workspace with tape or a marker. + +### Add a frame offset + +If you want to define the world frame as the corner of the table, you can now edit the arm's frame to be offset from the world frame by the distance from the table corner to the arm's base: + +1. Measure the X and Y distance from your designated table corner to the center of the arm's base. +1. Edit the arm's frame configuration to set the `translation` field accordingly. + For example, if the arm's base is 100mm in the X direction and 200mm in the Y direction from the table corner, set the `translation` field to `"x"=100, "y"=200, "z"=0`. + If you chose not to align the arm's axes with the world axes, be sure to use the X, Y, and Z directions of the world frame to set the `translation` field. +1. Click **Save**. + + The arm's frame is now offset from the world frame by the distance from the table corner to the arm's base. + +## Other ways to define the world frame -## Other setups +If none of your components are fixed in place, it might make sense to define the world frame as the frame of the first component you add to your robot, for example, the mobile base. -If your arm is mounted on a mobile {{< glossary_tooltip term_id="base" text="base" >}}, with a fixed camera overhead, it could make sense to define the world frame as the frame of the camera. +## Visualize components and frames -If none of your components are fixed in place, you can define the world frame as the frame of the first component you add to your robot, for example, the mobile base. +{{< readfile "/static/include/snippet/visualize.md" >}} diff --git a/docs/operate/reference/components/arm/_index.md b/docs/operate/reference/components/arm/_index.md index 4c3468ed92..bd4f53fe44 100644 --- a/docs/operate/reference/components/arm/_index.md +++ b/docs/operate/reference/components/arm/_index.md @@ -29,6 +29,8 @@ When controlling an arm, you can place its end effector at arbitrary cartesian p ## Configuration +For a full guide, see [Configure an arm](/operate/mobility/move-arm/configure-arm/). + To use a robotic arm, you need to add it to your machine's configuration. Go to your machine's **CONFIGURE** page, and add a model that supports your arm. diff --git a/docs/operate/reference/services/frame-system/_index.md b/docs/operate/reference/services/frame-system/_index.md index 000f77bcd2..90c76a0f00 100644 --- a/docs/operate/reference/services/frame-system/_index.md +++ b/docs/operate/reference/services/frame-system/_index.md @@ -37,16 +37,17 @@ It is a mostly static system for storing the "reference frame" of each component ## Configuration +For a full how-to guide, see [Configure your frame system](/operate/mobility/move-arm/frame-how-to/). + You can configure a reference frame within the frame system for each of your machine's components: 1. Navigate to the **CONFIGURE** tab of your machine's page. -1. Select **Builder** mode and [configure your arm](/operate/reference/components/arm/#configuration). - If you don't have a physical arm, you can use a `fake` model. +1. Find the configuration card for the component you want to add a frame to. -1. Click **+ Add Frame**. +1. Click **+ Add frame**. -1. Edit the frame configuration. +1. Leave the default values, or edit the frame configuration. The frame configuration is a JSON object with the following parameters: diff --git a/docs/operate/reference/services/navigation/_index.md b/docs/operate/reference/services/navigation/_index.md index c43aa7d57c..557ab0b2bf 100644 --- a/docs/operate/reference/services/navigation/_index.md +++ b/docs/operate/reference/services/navigation/_index.md @@ -178,7 +178,7 @@ To make sure your rover base's autonomous GPS navigation with the navigation ser Add [reference frames](/operate/reference/services/frame-system/#configuration) to your rover [base](/operate/reference/components/base/) and [movement sensor](/operate/reference/components/movement-sensor/) configurations: - Navigate to the **CONFIGURE** tab of your machine's page. -- Find your base configuration card and click **+ Add Frame**. +- Find your base configuration card and click **+ Add frame**. - Since you haven't adjusted any parameters yet, the default reference frame will be shown for your base: {{}} @@ -192,7 +192,7 @@ Add [reference frames](/operate/reference/services/frame-system/#configuration) {{}} -- Add a frame to your movement sensor configuration by clicking **+ Add Frame**. +- Add a frame to your movement sensor configuration by clicking **+ Add frame**. - Set the `parent` within the frame card to the name of your base. - Give the movement sensor a `translation` that reflects where it is mounted on your base, measuring the coordinates with respect to the origin of the base. In other words, designate the base origin as `(0,0,0)` and measure the distance between that and the origin of the sensor to obtain the coordinates. diff --git a/static/include/snippet/visualize.md b/static/include/snippet/visualize.md index a4d66fa6d7..798897804c 100644 --- a/static/include/snippet/visualize.md +++ b/static/include/snippet/visualize.md @@ -11,6 +11,8 @@ To visualize a component without moving any real-world hardware, configure a `fa {{}} +1. Scroll to zoom, click and drag to tilt, and right-click and drag to pan. + 1. Use the tree menu or click on the visualization to select a component, link, or other object to display its position, orientation, and dimensions. 1. You can go to the **CONTROL** tab, move your components, and then return to the **VISUALIZE** tab to see the updated visualization. From 541f0abf1f4db412114267457ca29cd02c76718b Mon Sep 17 00:00:00 2001 From: JessamyT Date: Tue, 24 Jun 2025 15:50:04 -0700 Subject: [PATCH 05/14] Add geometries instructions --- docs/operate/mobility/move-arm/arm-motion.md | 2 +- .../mobility/move-arm/configure-additional.md | 178 ++++++++++++++++-- 2 files changed, 162 insertions(+), 18 deletions(-) diff --git a/docs/operate/mobility/move-arm/arm-motion.md b/docs/operate/mobility/move-arm/arm-motion.md index 69d9942489..6aac0c1743 100644 --- a/docs/operate/mobility/move-arm/arm-motion.md +++ b/docs/operate/mobility/move-arm/arm-motion.md @@ -142,7 +142,7 @@ The available geometry types are: | Geometry type | Description | Dimensions to define | | ------------- | ----------- | ------------------ | | box | A rectangular prism. | `x`, `y`, `z`: length in each direction in mm. | -| capsule | A cylinder with hemispherical end caps. | `radius` in mm, `length` in mm between the centers of the hemispherical end caps. | +| capsule | A cylinder with hemispherical end caps. | `radius` in mm, overall `length` in mm. | | sphere | A sphere. | `radius` in mm. | | mesh | A 3D model defined by a mesh. | `triangles`: a list of triangles, each defined by three vertices. | diff --git a/docs/operate/mobility/move-arm/configure-additional.md b/docs/operate/mobility/move-arm/configure-additional.md index b94564d1ef..0c9571c16f 100644 --- a/docs/operate/mobility/move-arm/configure-additional.md +++ b/docs/operate/mobility/move-arm/configure-additional.md @@ -18,29 +18,19 @@ If you have a gripper, camera, or other components attached to your arm, you can You can also take into account passive objects attached to the arm such as a camera mount to avoid collisions. -## Prerequisites - -See [Configure a gripper](/operate/reference/components/gripper/) for instructions on configuring the gripper itself. - ## Configure a gripper's frame If you have a gripper, you can configure it to move with the arm. Configure the gripper's frame to describe its position and orientation relative to the arm: +1. See [Configure a gripper](/operate/reference/components/gripper/) for instructions on configuring the gripper itself. + 1. In the **CONFIGURE** tab, find the gripper's configuration card. 1. Click **+ Add frame**. 1. Select the arm's frame as the parent frame. - Some grippers have kinematics files that describe the gripper's end effector position and orientation relative to the gripper's base. - You can check whether your gripper has a kinematics file by looking in its module source code, or by using the [`GetKinematics` method](/dev/reference/apis/components/gripper/). - - If you have a kinematics file, you do not need to add a translation or any geometries to the gripper's frame. - You can skip the remaining steps, assuming the gripper appears as expected in the **VISUALIZE** tab. - - If you do not have a kinematics file, continue to the next step. - 1. Enter the gripper origin's position and orientation relative to the center of the end of the arm. It is up to you to decide what part of the gripper you want to use as the origin of the frame. It is common to use a central point near the base of the gripper jaws as the origin. @@ -69,11 +59,22 @@ Configure the gripper's frame to describe its position and orientation relative } ``` +1. Check whether your gripper has a kinematics file. + + Some grippers have [kinematics files](/operate/reference/kinematic-chain-config/) that describe the position and orientation of the jaws fo the gripper as they move, relative to the gripper's base. + This file typically also contains geometries to represent the gripper's volume and avoid collisions between the gripper and its environment. + You can check whether your gripper has a kinematics file by looking in its module source code, or by using the [`GetKinematics` method](/dev/reference/apis/components/gripper/). + + If you have a kinematics file, you do not need to add any geometries to the gripper's frame, assuming the gripper appears as expected in the **VISUALIZE** tab. + + _If you do not have a kinematics file, see [Configure the geometry of the object](#configure-the-geometry-of-the-object) to configure a geometry for the gripper to avoid collisions between the gripper and its environment._ + ## Configure a camera -If you have a camera that can see the environment, first configure the camera itself. -For example, you can use an Intel Realsense camera by configuring the `realsense` component according to its [documentation](https://app.viam.com/module/viam/realsense). -Then, configure the camera's frame to describe its position and orientation relative to the arm: +If you have a camera that can see the environment, configure the camera's frame to describe its position and orientation relative to the arm so that what the camera sees can be used to plan the arm's motion: + +1. Configure the camera itself. + For example, you can use an Intel Realsense camera by configuring the `realsense` model of the camera component according to its [documentation](https://app.viam.com/module/viam/realsense). 1. In the **CONFIGURE** tab, find the camera's configuration card. @@ -99,5 +100,148 @@ Then, configure the camera's frame to describe its position and orientation rela If you have a passive object attached to the arm such as a camera mount, you will want the motion service to be aware of it to avoid collisions. -You do not need to configure the object as a component, because you won't be interacting with it through a Viam API. -Instead, you will pass it as a _transform_ object when you call the `Move` motion service API method. +- If you have an object that is sometimes attached to the arm and sometimes not, for example an object that your gripper picks up, you can pass it as a _transform_ object when you call the `Move` motion service API method. + This is covered in the [move an arm guide](/operate/mobility/move-arm/arm-motion/#define-the-geometry-of-the-environment). +- If your object is always attached to the arm, you can configure it as a fake, generic component with a geometry by following the instructions in this section: + +### Add the component and frame + +1. In the **CONFIGURE** tab, click the **+** button > **Component or service** > **generic**. + +1. Select **fake** component (do not select service; services do not have geometries). + +1. Enter a name and click **Create**. + +1. Click **+ Add frame**. + +1. Set the parent frame to the name of the arm or gripper, depending on where the object is attached. + +### Configure the geometry of the object + +1. Copy the following geometry template into the frame configuration, depending on your object's shape: + + {{< tabs >}} + {{% tab name="Box" %}} + + A rectangular prism with dimensions `x`, `y`, and `z` in millimeters. + + ```json {class="line-numbers linkable-line-numbers"} + "geometry": { + "type": "box", + "x": 80, + "y": 250, + "z": 200 + } + ``` + + {{% /tab %}} + {{% tab name="Capsule" %}} + + A cylinder with hemispherical end caps. + `r` is the radius of the cylinder, and `l` is the overall length of the cylinder in millimeters. + + ```json {class="line-numbers linkable-line-numbers"} + "geometry": { + "type": "capsule", + "r": 20, + "l": 160 + } + ``` + + {{% /tab %}} + {{% tab name="Sphere" %}} + + A sphere with radius `r` in millimeters. + + ```json {class="line-numbers linkable-line-numbers"} + "geometry": { + "type": "sphere", + "r": 90 + } + ``` + + {{% /tab %}} + {{< /tabs >}} + +1. Edit the dimensions to match your object's dimensions. + +1. The origin of the geometry is at its center. + + Set the translation of the object's origin relative to its parent frame. + For example, if you have a capsule of length `160` and you want it to begin at the origin of the parent frame, set the translation to `"z"=80`. + +1. Click **Save**. + +1. Check that the object appears as expected in the **VISUALIZE** tab. + +1. If you need to change the object's orientation, you can make changes to the orientation, save the config, and return to the **VISUALIZE** tab to see the changes. + It can be helpful to understand the following: + + {{< tabs >}} + {{% tab name="Box" %}} + + The z-axis of a box is along its z-dimension and so forth with the x and y axes. + If your box is at a right angle to how you want it to be oriented, try changing the dimensions to match the correct directions. + + If you need to rotate the box about its z-axis, edit theta (`th`) to the desired angle and check the **VISUALIZE** tab to see the changes. + + To point the box's z-axis in a different direction, for example at a 30 degree angle from the parent frame's x-axis in the x-y plane, you can change its orientation to: + + ```json {class="line-numbers linkable-line-numbers"} + "orientation": { + "type": "ov_degrees", + "value": { + "th": 0, + "x": 0.866, + "y": 0.5, + "z": 0 + } + } + ``` + + Go to the **VISUALIZE** tab to see the changes. + + {{% /tab %}} + {{% tab name="Capsule" %}} + + The z-axis of a capsule is along its length. + + If, for example, you need the length of the capsule to be along the x-axis, you can change its orientation to: + + ```json {class="line-numbers linkable-line-numbers"} + "orientation": { + "type": "ov_degrees", + "value": { + "th": 0, + "x": 1, + "y": 0, + "z": 0 + } + } + ``` + + Go to the **VISUALIZE** tab to see that the z-axis of the capsule is now aligned with the parent frame's x-axis, 90 degrees from its original orientation. + + If you need the capsule to be aligned at a 45 degree angle between y and z, you can change its orientation to: + + ```json {class="line-numbers linkable-line-numbers"} + "orientation": { + "type": "ov_degrees", + "value": { + "th": 0, + "x": 0, + "y": 1, + "z": 1 + } + } + ``` + + You should not need to modify theta (`th`) for capsules since that would spin the round capsule around its axis, causing no meaningful change. + + {{% /tab %}} + {{% tab name="Sphere" %}} + + A sphere's orientation generally does not need to be changed. + + {{% /tab %}} + {{< /tabs >}} From 0ca99c0d290d35732a90b9553bd41813da57600a Mon Sep 17 00:00:00 2001 From: JessamyT Date: Tue, 24 Jun 2025 15:51:59 -0700 Subject: [PATCH 06/14] Remove move arm with no code --- docs/operate/mobility/move-arm/arm-motion.md | 3 +- docs/operate/mobility/move-arm/arm-no-code.md | 76 ------------------- 2 files changed, 2 insertions(+), 77 deletions(-) delete mode 100644 docs/operate/mobility/move-arm/arm-no-code.md diff --git a/docs/operate/mobility/move-arm/arm-motion.md b/docs/operate/mobility/move-arm/arm-motion.md index 6aac0c1743..ad85dc6dbf 100644 --- a/docs/operate/mobility/move-arm/arm-motion.md +++ b/docs/operate/mobility/move-arm/arm-motion.md @@ -9,6 +9,7 @@ aliases: - /how-tos/move-robot-arm/ - /tutorials/motion/accessing-and-moving-robot-arm/ - /tutorials/motion/ + - /operate/mobility/move-arm/arm-no-code/ date: "2025-05-21" --- @@ -317,7 +318,7 @@ Follow the steps below to construct the necessary objects and pass them to `Move {{< /tabs >}} {{% alert title="Tip" color="tip" %}} - To get a better intuition for poses and where you want the arm to move, try [driving the arm manually with the control interface](/operate/mobility/move-arm/arm-no-code/) and notice how the pose indicated in the control interface corresponds to the arm's position in the real world. + To get a better intuition for poses and where you want the arm to move, try driving the arm manually from the **CONTROL** tab or **TEST** panel and notice how the pose indicated in the control interface corresponds to the arm's position in the real world. You can also [use the **VISUALIZE** tab](/operate/reference/services/frame-system/#visualize-components-and-frames) to see a representation of your arm's geometry and reference frames. {{% /alert %}} diff --git a/docs/operate/mobility/move-arm/arm-no-code.md b/docs/operate/mobility/move-arm/arm-no-code.md deleted file mode 100644 index c0cb48c35e..0000000000 --- a/docs/operate/mobility/move-arm/arm-no-code.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: "Move an arm without code" -linkTitle: "Move an arm with no code" -weight: 35 -type: "docs" -layout: "docs" -description: "Move an arm without code using the web UI." -date: "2025-05-21" ---- - -{{}} - -You can move an arm without code using the web UI. -This is a good way to quickly test that your arm is working before writing code to move it. - -This is also a good way to confirm the directions of the x, y, and z axes of your arm. - -## Prerequisites - -{{< expand "A running machine connected to Viam." >}} - -{{% snippet "setup.md" %}} - -{{< /expand >}} - -{{< expand "Set up your arm hardware." >}} - -1. Mount your arm to a stable structure. - -1. Ensure there is enough space for the arm to move without hitting obstacles, people, or pets. - -1. Ensure the arm is connected to power, and to the computer running `viam-server`. - -{{< /expand >}} - -{{< expand "Configure your arm." >}} - -See [Configure an arm](/operate/mobility/move-arm/configure-arm/) for instructions. - -{{< /expand >}} - -## Move the arm - -1. Navigate to your machine's page. - -1. On your arm component's configuration card, select the **TEST** tab. - - {{% alert title="Caution" color="caution" %}} - Be careful when moving your robot arm. - Before moving the arm, ensure it has enough space and that there are no obstacles or people near the arm. - -Keep in mind: - -- Moving joints near the base of the arm even a few degrees can cause the end of the arm to move a significant distance. -- Moving the arm to a new pose can cause the arm to move in unexpected ways. - -{{% /alert %}} - -1. Enter joint positions or end effector poses, then click **Execute**. - Or, use the **Quick move** interface to move each joint in 5 degree increments. - - {{}} - - {{% alert title="Info" color="info" %}} - -The web UI uses the [arm API](/dev/reference/apis/components/arm/) to move the arm. -You can also use the arm API to move the arm in code, though it is not recommended for complex movements because it does not take into account obstacles or allow for complex motion planning. - -{{% /alert %}} - -1. To refresh the numbers in the **MoveToJointPositions** or **MoveToPosition** tables, click **Current position**. - -1. To confirm the directions of the x, y, and z axes of your arm, move the arm in each direction and note which way the arm moves in the real world. - It can be useful to label the axes on your workspace, for example with tape or markers. - -1. You can also use the **VISUALIZE** tab to see a representation of your arm's geometry and reference frames. From a5175c47485a1c820a0ca02e7e46ca088b000f5b Mon Sep 17 00:00:00 2001 From: JessamyT Date: Tue, 24 Jun 2025 16:02:58 -0700 Subject: [PATCH 07/14] nits/lint --- docs/dev/reference/glossary/origin-frame.md | 2 +- docs/operate/mobility/move-arm/configure-additional.md | 2 +- docs/operate/mobility/move-arm/configure-arm.md | 2 +- docs/operate/mobility/move-arm/frame-how-to.md | 2 +- docs/operate/reference/services/frame-system/_index.md | 2 -- 5 files changed, 4 insertions(+), 6 deletions(-) diff --git a/docs/dev/reference/glossary/origin-frame.md b/docs/dev/reference/glossary/origin-frame.md index 5b8abe8b49..98e7cd902e 100644 --- a/docs/dev/reference/glossary/origin-frame.md +++ b/docs/dev/reference/glossary/origin-frame.md @@ -1,7 +1,7 @@ --- title: Origin frame id: origin-frame -full_link: /operate/reference/services/frame-system/#how-the-frame-system-works +full_link: short_description: The origin frame is the frame at the base of an arm or other component that has a complex kinematics chain. --- diff --git a/docs/operate/mobility/move-arm/configure-additional.md b/docs/operate/mobility/move-arm/configure-additional.md index 0c9571c16f..3a54af7f35 100644 --- a/docs/operate/mobility/move-arm/configure-additional.md +++ b/docs/operate/mobility/move-arm/configure-additional.md @@ -61,7 +61,7 @@ Configure the gripper's frame to describe its position and orientation relative 1. Check whether your gripper has a kinematics file. - Some grippers have [kinematics files](/operate/reference/kinematic-chain-config/) that describe the position and orientation of the jaws fo the gripper as they move, relative to the gripper's base. + Some grippers have [kinematics files](/operate/reference/kinematic-chain-config/) that describe the position and orientation of the jaws of the gripper as they move, relative to the gripper's base. This file typically also contains geometries to represent the gripper's volume and avoid collisions between the gripper and its environment. You can check whether your gripper has a kinematics file by looking in its module source code, or by using the [`GetKinematics` method](/dev/reference/apis/components/gripper/). diff --git a/docs/operate/mobility/move-arm/configure-arm.md b/docs/operate/mobility/move-arm/configure-arm.md index b2b959d117..8257aec813 100644 --- a/docs/operate/mobility/move-arm/configure-arm.md +++ b/docs/operate/mobility/move-arm/configure-arm.md @@ -8,7 +8,7 @@ description: "Configure an arm component to use your robotic arm with Viam." date: "2025-05-21" --- -Configure an [arm component](/operate/reference/components/arm) to use your robotic arm with Viam. +Configure an [arm component](/operate/reference/components/arm/) to use your robotic arm with Viam. ## Prerequisites diff --git a/docs/operate/mobility/move-arm/frame-how-to.md b/docs/operate/mobility/move-arm/frame-how-to.md index b0511f477d..8295ec2c6d 100644 --- a/docs/operate/mobility/move-arm/frame-how-to.md +++ b/docs/operate/mobility/move-arm/frame-how-to.md @@ -79,7 +79,7 @@ If you want to define the world frame as the corner of the table, you can now ed 1. Measure the X and Y distance from your designated table corner to the center of the arm's base. 1. Edit the arm's frame configuration to set the `translation` field accordingly. For example, if the arm's base is 100mm in the X direction and 200mm in the Y direction from the table corner, set the `translation` field to `"x"=100, "y"=200, "z"=0`. - If you chose not to align the arm's axes with the world axes, be sure to use the X, Y, and Z directions of the world frame to set the `translation` field. + If you chose not to align the arm's axes with the world axes, be sure to use the X, Y, and Z directions of the _world_ frame to set the `translation` field. 1. Click **Save**. The arm's frame is now offset from the world frame by the distance from the table corner to the arm's base. diff --git a/docs/operate/reference/services/frame-system/_index.md b/docs/operate/reference/services/frame-system/_index.md index 90c76a0f00..b4683643f1 100644 --- a/docs/operate/reference/services/frame-system/_index.md +++ b/docs/operate/reference/services/frame-system/_index.md @@ -158,8 +158,6 @@ For non base components, there is no inherent concept of "forward," so it is up {{% /alert %}} -For an example of configuring relative frames of two arms, see [Configure a different reference frame](/operate/mobility/move-arm/configure-arm/#configure-a-different-reference-frame). - ## How the frame system works `viam-server` builds a tree of reference frames for your machine with the `world` as the root node and regenerates this tree following reconfiguration. From 1e0586e29d5a4f8469fbb6044af5ee974fb78e17 Mon Sep 17 00:00:00 2001 From: JessamyT Date: Tue, 24 Jun 2025 16:10:58 -0700 Subject: [PATCH 08/14] fix link --- docs/dev/reference/glossary/origin-frame.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/dev/reference/glossary/origin-frame.md b/docs/dev/reference/glossary/origin-frame.md index 98e7cd902e..7914503a40 100644 --- a/docs/dev/reference/glossary/origin-frame.md +++ b/docs/dev/reference/glossary/origin-frame.md @@ -13,4 +13,4 @@ Every component that has a kinematics chain has an origin frame and an end effec If you parent a gripper to the arm's `my_arm` frame, the frame system will know the gripper is at the end of the arm. If you mistakenly parent the gripper to the arm's `my_arm_origin` frame, the frame system will think the gripper is at the base of the arm, and the gripper will not move when you move the arm. -For more information, see [How the frame system works](/operate/reference/services/frame-system/#how-the-frame-system-works/). +For more information, see [How the frame system works](/operate/reference/services/frame-system/#how-the-frame-system-works). From 0e47605dad07960fde8529a25e2bbda3154a6190 Mon Sep 17 00:00:00 2001 From: JessamyT Date: Tue, 24 Jun 2025 16:29:38 -0700 Subject: [PATCH 09/14] Add capsule image --- assets/operate/mobility/capsule.png | Bin 0 -> 65428 bytes .../mobility/move-arm/configure-additional.md | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 assets/operate/mobility/capsule.png diff --git a/assets/operate/mobility/capsule.png b/assets/operate/mobility/capsule.png new file mode 100644 index 0000000000000000000000000000000000000000..28d261742e45567ada04cca4ef3adeed669b1e96 GIT binary patch literal 65428 zcmeFYgTHkr2rKv=KOM?pl00>l+ne60RRkBxSX7pikuuw%iYBe{>l~rU{CZ)&|sIhBzv88l+{M2T9q1(^+eDP zN`X2ijo#(y+W-EO z@dUdQo2FuvQ_auRkmGGv^t$4ds#If3@@8E%uU!35wYGCQUmu&;_P^*fj_RUb)P68@ z=q4&4vd9zo$i!0qRAeQ<^4Vbq{e4g6*4v}Xu-R5YvaED14|y*Ke7-1JDM`_-+|0_5 zhU4#W}a zvcVuosuV!m+sf8J#ZE&5@EDy21ArJL08DfW1N{d?zyauf`I`c;qAvgd^X+Q@4*E`l zzO=G||3w9YvN8WVP5rl^jJBML3i_^X?QU!9?BU?z`J}nC2HnRJa2*3r0}XXiYZoVO zOB)v}TW((`*S{Ff#rX^xwaK z>1pc={~t-t9{+9@x`8}@DLj1KygdJ3Y@Tqt{~xx$lz*}P)2@Gs6aQP8s21GU_LZSL z+zD+}v}%%11o_4P5%a%M{zuV&aq4>5y34sZp&30T|EF92&HSIl|2N}5A`SjWq!9m; z{}lNjl>gxT+XT^P?r^j;%fB|1i7U?Y-$O$Z z_llyb2mp`#XP8!t99L%`zsDQ~hk|Se>s7nUexd*)$=TFB^eSM@qvWP!cf18hUV?G;H4dX(?Wu zEuJ)cvR~9v?A>Di!hXW6tG@Njym;~^q_@1PBsm8Qh-QLg!2snB^Tq#fRiyuFj`?4T zp~X>z`eOeNRT_*Mgwcilhj#y~uBdR>$Nyl40$2F|uj+q||9`T&1{U_e?Y0};zW1XG zzMm>tC;m3s>$)*lY3%kW_mS@78H;2?V;3Xg>HwGYnd+%2!DNAe^Zc}yo8Jd%5;x{3M6m-XN-<=0jre`o)xwR6{GHngW}S&v))w*Bg-|DH#Wys=U*A6 zXN=oVHq{;&Ejg@WCC%y-X=)Vy3dfr9;P@gc@XqPGTlj3<$=J{Hld7|cBIT~unhS`2 zUM5lV&sLY2fZ*K0OA>I6Ty|B-q;teH#lME#C>;hHpqdd-=<>%-^s3Y)@7K3)I*ACy z%jV_!1Csqgyc5>-6bhCt_&r4#Esg;eF|VVH!pDVQ`86hNc&!{aqebHa=PP36Cp$lN z(q}6%*-uM4`-M8jTDX z{sfnCtf#c(*DI07wJ#T{5)27o5aV<6)H*XyH_?N)5ruatQo8%$6?9LXD}Sz0px+F9 zAsXbf;Ny4j=R7r=;+rD067Qdez(z?hYVNg{uJlA7=>wK1?MDi1A=?U&5bdM<7Q635weK8y|C6}nmH!aiY(>ldv^ zc)3q;NIY=e?w9gCQv*-5ypg;HyI5W!s2b&Kkz|m}0=$rOn)5a`AD@mCn|AL|fcLV* zD~r(;#dCsXpbzHzO|ThKhi)Wa=-++al;Fvf2oMU|(axgz;`Ysgl@>`#a$UF!T0YIJ zSM#NRhFAD3jlBK#er!==RP|8Pl7JUk>P6BXO)|C@ruA{QaW3!{yuEWuVeE2*$w(4y zKccLhl~UmI`#Y)uB@`;QM4|a0sa?wHPMRv6CK($NPy*bD<8^l(D1kr;ckzTnv$|A5 zBZoS-NvmvzUhavlTeYWGayd!-$*I|Nd!~7lMK&46`hjgd9tI+H&s93(m%3;i$uE?; z+ZOujSk}nevW&$;HSwvZffbC=*SLf_npDR4mh<6Fr;S0nL<4%QAC z4>2O!k?|qynN4?kkRiWj6Tv$L_||PKpxk+ek+cnX#q2uF0@E-VYkfciDu=Hz61(#; zHxdrLk5}aREk5{Q+G_VJ<|@W9A4Z8V2jaW=uUke~OjkM>ybr#)6pa^ibq}3Gob=Pk zNF@-hLSWdpu}M}(d+=&j=~t1)eXHd1hVq&)_9uy;D#~;5eHHj-7kxfiUl4q-HBze2 zxpU)67~HYZm}2e2VtzfAGWIU(cD=x@?a$r8GakQwwe-nv^vL!KVg&fX?Rv!cQTbAW zGLbxiaND0y;8i4!R!ytIiH{r*H_Y^HI0ix1nj4XY0_-xutG0AbzZZKMd$e#GI@`dg zH&5Em6>l~1Kvft4S2xWOE>s`L${25DW6}2El;U5&OfyKcfx#XSpgqP7ro#w*7FwdO2CulaUP-4d@QTX zcJDt`{9eWRveBVk6%$@T<>`f|=vN2>rATGP1)W`c9%l$=z?eUOM{)6CTzk6X_|h<_N!BEJ875?9+%sUF z+TSQQDu5bt>Af- z35-mbe^o{+FA`&^eoxArJL!r> zxCE}zLO!+W9Fv^j1za>QWttsD>0f45;)5n*+TXY=eAvI+bR=VQwN4icG*3Q`FqWp_ zwsR+qd5@F4p@xryw~?$;NFk`rI~VIdnN};Aj?z*mxT3_h1OOp7r~4AgtdR+vLi1o~ z0(@94LHLgHg5xIO`96*bltM|mN2Zz8(#hu2EBd>0J*V+|1MVtEEz#BU-?K`3pl@6a zw3yL2RO$yhA29TQE1@hhVnUG^yX*+EG8F%^Qh+Hm^hc{yhP!9E|3vXv^Ws@q-IVus zeo8@k$ldN2*5AxVunG$F2*;5uL&z9{?1&x;63{WkR|p|lPXZ|Nd1C9i_lWn+)DQ=+ z3iS|%MD82@^pxL_8_(#f+a+u4qY2mDgT4vWgA#uWK)tY)_qu~*S11EbNTC%*jHPP8#n{d|d^@D2UZ4r!{$4;%hDAj3b z;IYR-O(~^hdkLMNBVs~&^k~LC9G0r9@F)g^gTu#r*|VAj16jLe2#vtZZ)T?od|FR3 zO-)DT=&wgT2f6C=-~ub&Udnr9U@D*i7Gdxz{V%%9s4;N7;V=N@B{tl`<(b;OD-)Ck z9R@;<8jZ8FK<0)^y5v0k@BCX%N(zugqytfiZ=a^2ACru3Vvyt<9Xh06ct3IHRH#lf zo$i7F$6@{ScwtY7vla1CC9qe*q22yLg>J2Wua|GeDl=M{E$bZ81!q0eq}q5Ib|x_kgcP?v5j1aqozAkQb_j8K z4`T&Dk71DAV%kAlT?&(5b5oPA%UfI7yzm`9G*?%o9G2txkX}~VG*r~v#({n|o7cK> zfTz?d)_=xL*z^zrY3Feb80E8R)>V+ncw~xilU^V9byJ$0-btl;OC0kRe<$YQ1VzMkra;GC?sYiHL#XNz$`| zGmgEM5luDJZD^TDMu=rV?yTk9+Rl1E7|2Z(iQz?U6FXh>Ch1&a8@`P(;`co7aUGW1 zoe(yIfm8|GwfedSv%l8fB=si;6P8o8Uo`5*-~B zR14x=FI$hPA_>;=U)}!pVfSUMWz@ zxdpU^c(im&PS@_xr1CwlrOa5vo%Jfau`VNt&G5%Ia7$I4oo7DIM&W&W=-ah~UNEm% zKd}G1MPPtg=pl)|j%?7w1|EhqL8!-;+(Z4Lg^B=1-_3aX$_9|2u`Gb5(~J$S`?=4N zlD8NJV#wHeT6{buD8%~Yu?M9C8xQmQrK~ThGfQ}6zv^wvA|}X*^ogVAWo+lbkwZ8N zv-_fKWtc;MgmQEAtiBvV-npBWT}NeD%Tz14hm;6bB^x|^D+%JP^2s6t`eF%vJ~yS-#!=!NHf;OIy4vmZ?&x+>ilE{WG5MhfE&uF)Dp*#>2b zp}jIl{IM?HU1|)pr2E08{{Z8rH8IWZS$>SCffUOGAtc!(U7riMN+al8=4W>xxezv4 zmcY-yyoqBBr0j@Abm2%|d?VIhUM^YVM}J;J9~S;qx|V@A;Pl?}p!Z(p1R5x_@p71o zy_B|E1nCdanrep^N>QeDd`$AtF z8Z=UZSFkem=e4i2AUHcW7(uwTo37pv)o>aRc$AmC|2ZjjzuB2a>|2CtM#HlakC=f~ zfTX0rdQKvlov*m9A=PrE0v12k%1ae&s)QcJN$liMMH8eR&Lj2~V>v@=iqKE(G@0Jf zfJfm6K?ea&W|%L@x^J--7=;aQGPS;SVAB85+F+F4a+s8`TkNtK846%+Cm=DzWu7>U z7@xLx)2s#BaP>XL8<;9p34bi`o+H^}4>nJ`9e$ihs=EXa5rg+jL6d9s*g3cLoFnB( zvQOX}foVHpWP*>yf=hQRaJ5vaP3lZsD-9tqOasD-c~^Rvvw`cLiy?_J*03?rK##>f z^_d3tH-!=Z;3gO@byA1mp_dF8n-K0fjR%}E@zC)95p8A@@fE#GQoeo21?^)3P&Zsy z>(f$aR}j5B$eviEkyc}s9)=*fOvh8$I&SCjj(yfd6If#{>hz{e=HMlF1(X}T`%5Ci zvTu(F`89Zp@v=`P63ML~lg%Ow?fhML?Qd7%;SCOt(>aUkf(jEK*|~xKDCE<o|xxb%TE`kgs_W497Mv-f&tqQcRPK|}EU*O>IpiWJFm#IK&lWPI2a0Lu`@ zTsGZ<*C8D_W`sY07)r2b*vbb?*x8B}^!XlQi5LgnDGs^151-NV|7os^5}~!Ue-!RD z7&+%SdE?*vz;m&~X52 zukj_S(7{LO8dD@|>nP;~M{)v^R5dDT3#<9R=h0UYd{qDy$aj9;iqwsu!arnENFB}b=fte~^%53F_{=y~g-;XZ!Yq&;3>;#pfkM;RzGsr$?+Gdjmf{XLwO$h8{66}oM zNy|Dgfj5&H6NaDjT6aWW?JEygFSpOD3WhM@+B_gj-#pJ~?@kE@T0YkH?{9rD%dx`i z^9IG~22yu^AJ4=-weJ!B_Gwl{1s~%c+~FjF4(lSVJ%a3r7E1uK^(qBlY|^i|s2y4f zvM`uw;h$q-j+u^b%#Gk;%7MRD${e)QuenJe29@9>@QmQ|?RI=wQ{;}6X;+nAwo;X% z$!qVRUv@tu6>tBZTP&ST3bbU{LXFxuvAtVf47rc^yA!Ekl)n7Nx0#EDBHpp87|qU1z+SUyNTI zX4@?8eO|2Gtf#!{8bH$8oJ;Dy{8?M#aKTYcX|w<$ly@w5yf|kAny)kS?3p%?;N9Me z47SRtSCl~2q+xc!it_uE7rb~NiH{Re?7vYrFe`*^cDFwudD-{$dW81qvW)W25+l}< z>7;haE-8BT69lA;AizdeK=HAAhez?afl&kxTldG$I|~=3I^03Y4C@8!#sxorSEOI{ zkk>?N?f7}iqgqhYMFnSIM^%b<#4;@akTFMATO)sRIz*|^O4cIm%*Ibu;a$OdiIrIi zBZ*|Pp=+m_8(r&t4=ipxj~4c7>%qz28Z8Ns&}IxDz%Z`zli$xTbJ0q^Ngt~vQT98Y zEKkFFBw-GJlY;$-J$vdRO9p)Xnw#(e2yJyLP}JH|L=r=*k!@s~cbGz^%a3*Wv@E|F z^-GG_MaOyR_zK>cxJDM{Y5zD<>B|8EnL#T;y}%a8{Oqcy_S5!wh0uBi z{D6P6zKUI%6WR$@Vd4)E9Io!k2{~RU8NBe;1NLaowJyxlL>oZm|KiH*|eA7)hU~8)!Irv=yQpDXs#*@X% zUY^S0M!s2oTE@rm+*GA-zkzF^*h;qshK1dgeh-nYV7**ju4P24Ssy7C8!*19?HGeHA^H;3`idU8fX}#@<$&XBdUu<0H zl{I%Kh2lQTcI$#)jiw59o?<5`G9sPszQr$a#rcV6&y`i zRqsv@T_l#dLqO@0Y4|hpO2cjxrC_B;Guh)LogFXd+VFO<^WF${df@E;kQnCV)&mSI zFoIx0${kQCGf=W zT&!6aWvD=W6(wdTz09l-mKo4wvH3J!nLoFCe|jrabHNgun4kY*L-_o<1?6f$$s%u= z22c)V#*2N034Yl5AxGha?ci;3o7D{V6RZb9ksl3lXWsz_O|+0q^B_O|<-(d0(nhto zz^fDZ4JO?O?uO&E)HvARpEQyZ}H{tyQg}Q5WxGXGk#Aa@)09 za-{$0Yso$>5%8Li_Uh^h4VV6s8@rRhh?CI5dBecO3oQuOW*e{J1b<7#9+Ph2 z=Q#_c%8`-iXq8xIV&#fAm7d42NO9!Tl4{Q-o{Q?vAf2XPryr9BP~SS`3>+wIS(bxI z$9Y@S3`wA(CNO^rU+jYSnOfs09j9H!t+Z5%#%g{9IYi7;r11@V#) z00Z1n{^z>fr9Ex!JuMQ@YBrDM@QY4-Yt7)T;k2N4%Y32F<6=OT$HI`aA%Nt8Ph8l05t^Ws)B~|t7pl3&`uUV0{%qW+vj9UQ zUu9&nL1b#f%cJE5MonX~r8F$<;|HG1m}hv)4-9xU19xfdl3?w;q4)vK%`#yBE{=0T z^fF(P_~~i*vkVoV=SFMq1^WV-7=!kw6KlFl{F=S(y$)FROgZud%bUqd9xo-zy+zi_ z4`JAPXizDGz2+!}+PGqMdMV$i)Ca}P23u(9b^7M^yqO5ic`;v3gMuyXI79GonGLi- zh`Y@*e67OvFkuz3Z<*5A5gHz*^>pja10lVpH6^FtbA^Lcs+srIh^`V-HidgH2*I9z z@ODO@zxu18bT&EKC9;1r)H^0J(VUg6xJ6S+isW1}YrHOUuYyR!7XM zNf;?&z)Fkpu2S{bTaJ)(UwW3EH8AQIezhC-Pd(5?1?`XXXi<9Su-Up$0Nr`N+I9WW z)@m$Ni@R|VEZDsomVvM{gq*pN@<_|2o;>iK?;FTd8rT_aVcoYGC{^}G{mI=nkWh;7f}%X>o9AK8=JTpt#12<0-^yKmUZtS>b3d%cw(?VW}_UN8bvP7Q+CO5Jz7?NYz_aKN;ryd>-kZ!y)lblhk|7e1uch%OjSWi%r+1@|rM z6=5vgQ3S8%i9jOVsO|VSc!n={8Q@_CyzQMpDLm50mJF~`Xq7!yvV7i4Ml1uOs7f56 z?H?^Z{iJJrFvAVmjr37bVhIyjVw>r?F!Xya{MG6J9d6wsMq*}NNB(-lbm_$Zu_*vh zjJS%lCG6qkY<72%ZPFy9($qjtBgL|8?g;6fI!4R*l*W~2BEj+O;faR!5y2bv%ejjW z?H9|>tYjKTlHJ<7bv7s1Ogc}^*;MM7DNs+LrMZ7Z8d0hE{TuS5*JIO|oC+Wo{|(^X zw)VIQVP4s>_y-Z!`cVAx$qD%c%M9b$X);tchC(0&Z9y3(>3Kkb@$rP?7@!h&Iwq76 zr#90|!+chh)ka|DLd-7_gft}Z#Q5EZG0SGeGQR)4`1s*)%>>E2;Bq&}q~Qv^pe=A= zpy-O++w>$WY(S75H}H+8z%I{Y@}DNK&RMM1;T&ag#9?v2&l2>~YX$##s{Kc-g&S&( zy`Qo9pbKbcpiFqOuh}tHam5x{p?VLAB?Tmtqgws*eg}r`N1fuWuf5K#e6$yMRs-vr zM265%P4Kt#zgES=Sj8rM{0*uRKMi1AUcqvyrWkm<+z|)`q2eHdHQlv!6zlEPxSW^Y zQA&ENK1VTjxSRsjj;3xBq2=lg)r&(Djg@kO-~>7L7hmnanEi5r$}{<-CzZ#UQl??s zsqjfjQlYKCVbv#i-Za`eO1DQg05)t8%$_qZ z)B6TqJTv~u=HQv@$X!kMbI2b-yZtI%!u#n$$lc~xG9Gu_6(LP~QV2v=D^9J10B!## zFzKUD0XlCEhmg%fHsS$U1JgUdoVbDNy^S#d_u(J6uU}BHD-k{=(!I4iSJfVVLVC@D zLYyhcj=tQnnyc5Eq|A{Ku`FSlB>L+|RMpy`&5s=f5*ZT{Oj2eL$NCpwtaoW#??r6H z6n6^--o+l)wPt`?_whnoV22`$lkk`puvc95&Ew*cQ00!tPD|eGe|kfe^B0U`fshMb zLtNVkHw|^peEUIVU?on|MiltbWHxC!f7+(|6ce4cw`U0{usEv-!SYWa_X%wITSNua zMsl%wgFCejC_O+n8a+n~#O<)1!4P@7Jcm7Xe4TuSxyWj5>1B5zC zSz=SMj~`8EjWsEhE|y?>odlmtR4a21Pu;8;a6(89@hOb8ZSeoDw6Kzrv2o~8P9<$Kv!A(cUNg)+W zfAY%>VVAKgTW6PRV`Ox1d|E=?m&_#krJpvsyo?FP+ugAGf!3;48L&HT^bM)SRD~eB z>$tIZV0A{Q)3>#tkY++twaQ;yq+Y%xte8lVdTCss$iZE7T8lleJskUB% z4_0H0x_}RQgd(%{LbkI1-~c-13|&D zz7b75F861l?ZUrBH-Uyv%;LWBxTO0Yd2##>oWPJM>odfANJKe;6kwRL@T5E=4rRTDY$9LC0Kzs$$y+x#ja9P-^7kT6G z*~bq)rX=@sGPKHCgE^2)&Hjdgvib+aj%Y_JdMRiTxm;#F)lKl=5*=t(+3C|(Ae4zZ z{7E%{qMP+ie);*dD_ENVZ%V&l#TY+q9!tGS`yH$+d<7^ueyCtTrr$1lqwH|${l}OC z*M8^znGf6hMzyAc{NayhZZ~vKuqG0RkpNTe5|jzKx>QS1ZN*C}B>Vn{>X(QxECW?F z`#>SZ*oBYe14{J_I2>hRH~KG0$wrcHGDP@bNN76^IZ21IuK_WWM2bDpJZU9JuIsMX0OXt5!NJwa!Nd%&~TXm~bME2I9}Dsto5qAl|))ntH`%5fQX?~pPw(oQc!x;u`4l7)c3BD(~5 z-L6_2+ROTEq^`w^@Zyg*ii-Rt!Bgn;I zmg3b1x1S()NX(`l!eK#fjX=NW3W>_(55o1>9@9;$KpZ)tF?`PmVNvrugM=`4ZTfn; zWl>l_sH~E)Dj35VQtbPvURsFO?r2sZfP9jJb*yPKSBF<;??pmr4=Kq%bMp)s)G1p* z{F&(dg8>ehvBY_1>@$l6Pk`C1|B7}~GJ+qtS3zOH`kGT&w_3Wf7W~)1Ak1+QqfdE5 z7Cio_0J+q-F=i#gB>3jQ`{h>HdZl#5cN1F1L?O7Y#K*7$+p=&ya{O5QNOp_F4w`l5 z&XM6U{3qA;Dx2N;u8JNE(ssF}XpoKtR`g{Z2H1ew@J^X;?JC0SM-L`OJ)ss>0vVr6 z>PoTpV+|AC_H5jf>A{bP`gd&OALb#THW{#kgNN<}yTQX6Hhs*3T}h4WFy$wwyVQj& zGOM|1MWaaBboY|i6?`2-8w%)U3U@i zK<>yLi9W|-munpkudH(5!sz$Y&aBzWIlH`E$zY-8%>8Cg+>K3r)U8oQGrcl=sF`JQ z)`h3no&wiYk|N4M@e=V#5Wp8t#GHVTmh@-UGr>FSkJ%~v%pxH+-h4p?XZCLA$0Z9J zZ9UT2Nqc1g*(c%j_O0HR9+mnwPX#6YSG1-1+Q-y>~e=; zGf*cEcG@DCLR8YQ?t}s~KQn!@kGP3W0*ndg+k^Nmv>DcnM!l;jRQoZw`)y|+GuW2)tMaJdi(8`un2(_=>!%Nl2J%lAD!Qc4tlXWcPDC_Xf zuGW-d$qYn{m(o(i=v%TGaB3T!&fS&Psx9Poi*oIx`LsKTc)0aTFuS;Xb;J)o-~Pt% zl7O%7@?AFN7nH2#WPMzg?iqed^8MV0d#>9m?)1ZS&0se$GDa4gy|ZSZ7PeZMz=RX~ zUeS=0*NnJ>L=UJWX^hR_(8F{;3jiHcgrXyxu9(+PZN+v01tI*nMPuDj)wIV|7b*VR za0UFKmkD_@q|bmN7LScz3~cGIBbK`!v8ukb6tNhvT%{0t?45nuH0hDwth|HayX&{3 zxfy!uCKXFH>7%%nF{ccw$honjAT+`HS#I&gI+Cp-4SzSJn!pib1oO`JWZ+!Kr&tHuU ziud=5FRLc))St7yZyA*^54d{sQ>{q#1rLEKfJsPvUv zhMK__h4wqDTSvN%9Z>mmaa7HT>R~2duRo_l76hqpz2icbXfE_X1?tQ7 zjq-Ev$vH%)stgi;>%ee+euFJ$7r7nI%kqyb6sCzhsheSwe4^pb*|D7UUekxS4hOv< zon}lh#A%(kdB{tNadx8Xg6KzZs!8)qSy@X(N^9RryA?X$3%O@obie)u8`QB#mKthP zr;f2pSIC~ye)zNe8~gj1!76Ip-C}TcXOmeK9W+_5*?g_t{`*&g#ewgebJ(?>IU9aA zcc+fCg0kAOAF(?O`F>B;`ti{T|9&@MUl6oF|2>OXkr-%Xx@A8uK;OTwU@9=;y>(z- zLT^*{-Uu?#^z%e%QdR?$Cz=a1Y!U*?h}M1h{_rbX=Jh$(b|^<%`Ci`}gZgWIG2)bm zlz*YlcQCCQ!c_0LXv7D%eA1jWVbt>#5V*hY2s8Yy`Fgw`X#(=-wV_T(=pc)g7Iu^= zBaM_zL&#g(yt=Zh+CQS$8Y zJCcvPyd}1CuXa8VvN&nP3m6O?~$`|$3U z@#KY-T>D1-kpyX#$dZVx0V#iJji}5QJbUv4Yx&&rN0Uq;VjpTMc&5IqBe*|nOgom4 ze>`W^!{p2J0E8p3} zw6__KG8kXpeF&vOWzQ9|p#dSR576_o!B@l>#4q~$-lC(7A%~5$g zi+i3WVH2MUq3mn78s-OBpZck&^jX&hWHjjQD3q2RLwW|@N>+>e-zV!C9t;Y4oaatV z9g)kZsbf))73aftAvWE8IAXp6Z^zUX)h%}YqlUu+gC%xVRbC6aI%8}KnB-yT7lupF zv^mG&h8qjZpJhzsa%ZPB>eV?k_UU|UdL1bDjyw7d;G)1jJD-JVj%XJ$9kyg-ydg9_ z*)o^yCi{}Hk0xiA*%8Z%uW&E*9qFDB+S%*-bX5(Fl&_I(FU2&#g0f6}N!w#ltxV&l z0RmREiyD300((sbJ?Los@>P#A$UBjve4id+94whe=457AC@Bk}npn->9(p6QAXhPf zhIZlDnF|*_UX+`L9vO;Yk}TTCq4J<;LXku-<7ce8gK=vu6E)sXmxRNt#pbqPi7L*^ z29G-`IMlm1JvP_3by6?+m&u3j1nHH_3EjE@#s_VR*VaY$9^QyhZK6F^0K>l}Mp#EY3!!Fo~QIj})0ah?fr0 z#`vExq@`^;w%*T1+H0ePW7MT1A=O*`z)x9o_Y=RF>O~uigzk<#Yi2QAyzo;z`KWZC6?e&ikuwLBcyHP$S^7L5_GXU+`= zf99@}c@x`>P3w*N&CnmGSus|-lLfUcVffW$J9Cdn5{FSeh(7y7{-|P8eca{Q z@1f9Ver0EX8P_yhV*SCHfCFdYTa9Kea7RH)?V5+>fp4$a7#g~xzWjCHt6YuJ%y;Dy zKNzSu@D&TxG^11P?~?wSg)7ENdLrFyFYmg4Z&vvkhlLf;n8(}f`s=#Hu#3XrNX{PL z4T-&lhOE^1u>d0?VFZi>hX+k9jqSmxzP6_%X*=`y#+et>_ng{TgeX$q?*2a{QRV~^64#^d^9buY_r_DjECvxqi$PIMDL@3@89XZ z8gEA|XNAivuSS`WUF?JHQ=1D(H5q0Dt(k{rkV?XS)p^92Lj8fD z6+GiO20_mF46llJh)(4F3uvgQeWJuV1Zv~Ghzy|rd6&= zjSX-Om;%$XWq{vOUlp**NS3DX-K@l$CS)KfpKJsUb#DN9HC`zU9#}hgNA^;}$OdrF zPv;I`adHR<7pXzmR{4}Lbn=U=oaM{8wIhA`9JkXc)#VUo=GeL^w3hB==e4SCzN7uBq%K}V%adTewiKip1o6>w?5Td%x_ORCS|-kOP*Ug41SJy8x3;_(NSrA5sV@YcoR1Ji!V^074dUpryBYY7y~ zv}}MTn90f7J%j_6Bxa~j1>!)%q+h?0hK5?^ z%!MpDC{_0o?*1ymM{?J=Jf`|iFIFUc6qx=gup+8ubR+N6>I(yLrVFH56$sO4{pk_5 zBfht>PP*X>n3V=K_K$R8>G6DGYX-65t(xm<`NL&tnsw=903IXrhV;m%e4>FM1q}=u zW{?`tiztd3FS)cSia2t*h#qLq_9Z;r;_d!=TS0mIM%b%h=<8XZrV zVq1vSmFAC5J?Ym489FsoR}gBIj&8Cf^k>;eUs9~9qk-u^$Eg+YOXh103GId%5&4kf zByzPEFyMB?=KEkOl*Oy8Y^uwKzv2EL&DMFet3cR`)}zj00@C94dADzPTlw&G32xwt zVZfV|`R}EzqI^)1K4Sv)@!jPY4(SW7v2Nhf*TUz!ETGbDx;S?x7HH`rp5DrfDnl>> zKUcUU77BViB=&2fH`j&B_@5SFBrtnJpRH#!QGFQ&vTeg zM10_o!1EQlf7n0#Fq8tL!n5grz780AGgq}2Iz&GgSoSr#U3Fw9e^#9ahLtvmpp@Xz zozlw)7`Xejo^3YQZZ<@a(#Z$+GlVfFu5NTX3^}uhRK`6_!cKFm3bn9&`OA-(tv3<= zez1bKqwdWc4YMs_T!LX++X{^>IWy?tyc((&ew`T}+Px!Ut_eke*E>BX{E@4D-0wjyv?c9Li%nuTJIu zkfLoeTvj99oFgR^qF-Z1`e4`GwNPbC4luMH!y}fVIRnb*c^yK__3pQt7gtbX+b-$0 zpsDEY*%3AzAx@T&))yXI&ma2yi;80zJ>Cz4kt=-YZJKwvqtGju^0ft=gq8a=<^7w^ zTBwKB$m^QG#h&+Y=D$0FBTir!!LF zNBVSABK+WWE>Lusssc?~F>M>tpy|^K!ju#ph&hk4QSuAl?!YQ}J0Cgh$-rOd?s_FM z9r=h!4UmW)XpC^dCI%{4%ImY5V=*jvG@;_FK(K&%O4Eu0mL`pk4Di~^c7s0NPQ>)O zignx);8FbA?|k?vi}F@d2V~c|^V}uRzi!s$YF_pJK4+i!MyPgPq&=!rBRNW+f853g zgjw8!3xPj6?Rf06N{Lais;eDEj?7+1wH7|mJeXM$JeB!lIf7Ex5$CY=puN1Ru;S_h z@6hqQq_XHopTM*deuNbj3cVyH9wd-kCNK9@XgVI?c!CG#GWFlirxl8O>h`)lEnxq> zUEbS@vq;AhAc$y;Ge04_l;rmlF@NPhq9O@~lqBtg{!u#-QKpA>z#7;CV)1Aa>_zms z5q+~IoY+OIR)|~Z$WH9qtBeCPbxdD*P|Kz;h9#Bh}e^XMx^_KVuN+gpHP^F@A7>LPBjMam;Jn$C>+exR=X;CcHq1AV&j(`#g2E6+QLqjeY ze4+gO!uqx%sf*Pvwoh4P$yVE+WKZPWJvX8zplvOK%cLHa@Y3USx8Ji%*^HMG z$X0AS!%ehc6+$5Psh2zo5R#htr1zbR=9HoCd$DxUQO+Fck)8K zK5OIktPD=F^siuIoq$24d5FSf{I);B;kEHD_?|zI|5bV^jhzPj@;gh`7|)Q;9+ikQ zl}m%f$Bnr#X-vl^MP<4(ZqXj%E#m$XQ4hu7$^>L>Gk%@a)>|ZjqmJ0l9i?QEKFQi& zaPt!;MEU9b9nPr;yG#M29EqK}V~p1C!p8FHa80Qo*O;5bcaX$te-*WpDSORFmT8A? zvzob2iMbO}<7C?wEPg7@qzV}Q*l$mA0?Q2zYY!c>GuXQUIWo@b!P1%r$#3z_%SrL2 ze#UV?aeBTTMT?w-cn43MQQCcZ5nq#nr~%(!pQW8){Qg+rMIigW6n^Idk!-QBrl#`n zfZJV|c{o0O{;B3HyB|r~sfj)@=oteT`T6k5(H3jxC=x?fD2D`ZLG&g~%}W z%S%Ls6xndRrm$IWg1K<&7kr-H_25XQn_XQh6%?8uBa+=f8;_w348`qXaAC4|0#QF` zC;?DXlNKEF`2S(*JAj(%qOFqHc9KQ90dTDR|_ zH*8JYil$z@WE};4YptHsZVp_QKlD3pHd}p~ee!F+jaSY{y@0-$G3Dh=`DNQscu{@* zj?mtpb0Fii>ubgx#Z{J428CRpx zVCJQZ#(~Ec_VoCutN^7Nwi5lxiYMqt0pn~oHi|G)pEI-7Jc|a2rc1T{)#dG0jwr>nsjv(PxHGAZp{%w2LvXDDoImV%0k!mVN=y;`d~)d z0bpasKZw&Jht{iMX85&F47|Z+gW93=cX)BYC(ldOE#kloHyVyUJ4Q$%q zf*;lPKE08=PE&k}nn@vu8ZuEl{kXqs;;#GF+$)$vzN8%)ln|E2irl7VmkPdpaVWu| z8?yhhzu>Le<=Fm^hFQ{KPDpbdsSstmkL}0jb4%&TP7y%uOH#3!7(yEdN~gJ6&M?fN z6)XB@)9LWTDOdA~rWh>p$m!@Y-Ht-(A1bl-yF*jES%)V8YP`Zl!9HV7i_%DF z?~q{jWxm(!&!s06cuPg%e*)SlGG$S)q~9-*oqxsUIu_@1jI?&Iu3tU~mepGSifa7W zJ-YdOc_H`BZ~U{Rf;Wjyk_EK{#ZN_1)s-v$(iHy~V!$t&q#K@Pst)XKtgKe8>RvAX z-G6LRYef%EHQWgQ>~yQAwFI|z&zL~wOVu9Ps{ClM^hH61@1*I7az*%T8Hk$!}w+fCk_j=zvYT!xgLE_D!BV{7b9}1<)HU z@d|4QN;V96=(md|X{1!@4|DVcEtyoolOOFnduo>aM0&h%Q)oJ?vbeu>`onwm&PYnq z-I|}_Gq0jeYA@p&XqP)>TA%6k`k6S9&QJJ%ZQ1`8uO;Gt?(;UrwD{S=%*NHe$ZEer zkl9J_P3JVHR+b@BeiQRnmfX50=QD2lg)PfXA-e*!P1qxlPqM&Bhnqm616k0W&LotpjmbIdWYeTqHYatx+% z#YPPyQ_{eVxDvnOs0jI+^X#F>pOe?!eKhzE>13(9eNDkPjIjUi+E-^h9%;*@r+E)u zpIiUzQprXy`~F3cZU;i2a(p_u&FIe7^i|J?q0udA^w`j)?ww1WQX&7ANij40c(iV{lXnzXj}t^z;Afub0q@b1faoyTT}+xsCG zEnD|^O=>k7!}j{eQ_P=t9_2I2@6z4%9`rW+O;Kl7 zE~C&eqmLGO5zhzOKdiK2k}n3{zVg}9 zjt|%-xIOEt9Pnu;Yp-6f+ok`g_vXII7r}-5GsC(n+j&h-JH*c@cdAbrIBA6BBfgeg zWtr5VOYpkpCmnZgaaI)R_scyU$>A|iH{_vM%y}#9CVyEO-0f|KhIJkMbbap`6=8YD zt?)sF)mh46uLm zBqH~4;$W_b@2)CoN+;RaoiADD9Der`)*fs^C&(q5d}D8{MD%J+hr-9v6rAmdC@U%p zj<4=Mr(c#$)69<=pB5gO9{t{zv}ie=xH4z zg6g|us?Ij84$>)O3BrHBa9!-~wJ0_n8tXpTGU#f(^4U1JB~BS>_zEB1T;4}Y`y-#>h8G$3@kGBLaK&Nxj>^(shcOrt2(arX7d`3y z(O`DKB+CR*-xhc_sJT}5!2RBFU&vwF^_+t4x$<~Kneg2|bw@#X#2m5}=XT02z>mV_pHBngf zMvFj8eI!KT;%dHrZU+vzF~4e{yNF(FH>K_itu{=nPtCPrtC)}XV zKnALch(4o>E9L}L^kiwVugYjHh1r*v+1}m^K3ERw&s*P%aGy@QTsN?A5O|u&cxr0E zRirD$NZ9fKDb%OP@hj>krX`lup^m#WLz~v4n8u+#u8-vVr+YEalq%$&l10CnO?&q> zGRUG^%x&RgDBOkn)YDC6=B(xFY?x*GSe@{AWT-0pOWP7b_JNw^?E0$E;(d{B_0R9h zLW##?Xpch8ONuSr{927 zn0Z7~sAQMxuV~_$^jfszM`+99Up_b)^y;IW|Ynf zVBj-4MQ(-_YyV%V$q1H9!lS+6Kd1tWUfMD0{$k?(tQ>LvccaB>+^dhmA|MDJWS72( zBV-6A94@T+bUgIEy55YMtg9lL8<)RO!eG}C+Fo)cw^aWjjp@Al{7_u5Ip~FbAWX3# znB>%dQ=uP4KV6rS@zHKGE1FQ8q1@T{H{GN>=4LcWqXRnilSxfsTGJnLT<84V;b|q< z-Qmd?XA#t8W*ENAQ#x%S%vAdrJ_krm8K;albQS5#G|NF{@2#Wt{Nu7mU%-{dogHQLce>M zqSZI#SF1P0sH4`3ykCbr?!Z@{P{j3;0pJ`oAN;_6=wnucP@Dg~#Ea!S765a6Gm_dR z$e3ck(p%iW#)g0MZQ4XZRj;YM*ewm=^YpXNPxPphUdE-Nql+#bimB1*w2ni2ZX+~? zGMT>^!Y%c;0!@7odZ8G{>Sv7G*42)&_ga#^`6(HaGU{X%nNa*(dwGLgIy!ejz}k=< zs~#Q_Y!~Q`z_8fQ?(=h%+Oz4wSMt9ips)Rx=j#cucVU+4HM?z`#M(A43#g?>B}7%< z)mJ*RFy4r*A-Cs$$EtN;rk8~^CBtc5TX#mAcHVZm4-hbW!b8Derb#FygC4A3?sN*b zu2p19_;?q^4-dm}^KD2O0Ulv^%(dMB0+E-2vaI5oF$#;61zRJ0+Rg`6 z>b=y81y`aSPKTrj<_XS+;~4|1xL8IRVKGEN>yY}qLI)oN`&kL0OOCtbMf5JkxIg2) zLrd_A3#K4?_ehFJCJhGg%sN1VH zw$OPZVV}QcAzp#gNXS0u6!JGcqWMw8XnT@jSpvGVI3t<<|AM1yFeC+3=%;lQcCRIzjsptU487yxk*dfj3xh|zTw!<+O z4Eq_ml-=Cb$A&s>W}CarEvLWB3;haG<^Mg5zdv3RAHufPAGjp$_|Q(Hyml_S+I4(^ zfn{~~kjhJvmk3S4N33e-oFhG*-sB^S|+O%E^jDY_XH|*c}5~RMI|NQ3OB6ZmTg~F zygKm$8iFWyTm}!);d+0p1Re5G?P_(@sm5-OR>FNbQueRct1Fpr80&rIG>UQnJkdnu zprLSbs__+RKpy@bUPMdK(^?6`K9DXJz@aH{5=Gz43=JNHsb_)>_C9gk-&P+#hn-JO zUu4yhv!4z`xm~_u`z#0~W7d+~k+d)ubEu}AiyQre&nEMEXo3==A8IYA%vL6z^g(|^ zrEqf93|6Rc)Be!6x-sg8A%Jjvp`z|Bb-aA-Jy9qUI7_zbY;pF)A5XxZP}aEneSczE zVYGRSH{yf~fq?OI_`2&T^PxvHa~9-M~58 zmsAQJyz;B}R*n1pjr=F(*`EeYd5@Z{c8Uah*3X2J4Fyc?W$yz6TQ%6ZbuqPNEV|Hg zb#$e$F*Yb?xVlj@ovpB&7@w~TxOlC`g!j#JT=}l?a{TzU!q-erjb-=^n{diyI?24D zN9eh;9dsZ=bl>>bev|g1*3FK{14|rNR({#l^3{3H>cY3ztJ4<^K(k?vLe}wFVTRj% zcfVefB(fF4-$}>YQHq(DvmBSmNx$VRhN|Z~os1u@ow!yDM1mauRz20_x9!*tTv6e; zf9e1VB^ zSIVWCE{WR~o6^x34EbC**QD#I2)iwEI~Ybq_TG3=9QHwp9ud?|pKtxTE-% zFkV>XC0|L*7fl+?oFA_v=U&7KnbZu;+Xe+}1x#m9vPvZcA4i2qT}<>}nATrio>72$ z#ABydM+6p&xHqN>`sq#C!l`1e@y)J8tK^JkXq zgW9v;lSPj6R*o_E1Hb+N^Dy|f!aF6JXrQyB`C=KkNtTu%82Q+Q!MqsJO>rWLM zNClvqSEm+Nf)_vf&tno_UOV2c9+ZbPZ5-{yhfJ6wPQnJZkpzuGWAV?=0r#!aiy~=} z1-v9gV$)X_(<~pQ0uDGW`_0= zFZbV1Z}V8|W&KGne6jg?9a>4}RLQQrG4}C<<^|e=vu^hCqtkAI&;W|-ZG3A9+49dG z!o;8@T~^)a8k7=2|7p;g&JMelC$J4e>+c92=jGP4$Fi1zM!MYx8|3-Z^yrW zkXz(mo!knpxrn?vj=z%H7_SkzIJ&x=&N$@Q=Rh+f2=X6Z9avm_F}~Y!c~JgA@w{D8 zJK$(jf(E^m0nN(+G#uK`LJpsX z*oSf$ST^?wM66aU0_)a&@;?MAxLo z&DF&Rd^tm`Sj%6GVKgvKX;oq0g%86DshOP`V=l)-&fG~TpwD?W!{6HvOPxT2(o%BO zs>~DA6?!6hbZn*wK03<#JP<|Be{!32gTAXKpf`9wf|VrwzHpTy7z%r@!PPU(9=42@BW z=d%x%7uitl`nZTVBF~T|@tic#;j8Ogibae?o+`qEOP;M$8Fzm|&6_E^!cDQfI+^GQ zzl&`NkqYIZiW>?i-*mrj#mo|l_+qJ<>EIK%6Q9_P@pzrWVSsj=#Ars z15cye_u$;CrRnpG{W6~>K`Wy5FFVQ}w`aPQLFg#{{egEXN-)+`q|iM^Rm5GA6{Q@F zd}L09-aV$1wbeUnH1EPPaB7e9m4~H%lZ2W{x=}s2%+Ge=Yf2*JP|Qav#;YW%(p??S zqh*xDlnYzNjU|pt>Ar!2&WA)Ul1Pl^LZf4)An6T^$3M4znfZ3ylwz`Ep`f@hEcZ9` zUo)9bFTK&$QhUb%Eg7<}5mN0)-l$vDpwBuAj}$X9BSPLN9{+L~c91Jy9i)BP85ybS zff#Q&D0P>pCO+hHEqbCKaQXg~aHX467t0eFid!uu?|$bQPk45-*=3BEwJYnnG{QV? z%}Dme=ha%A%PYa?GzlM1iGS`%B>i+-*nyH*`)BM>jeHWR28UL=^`w4lJ?G~hA^L>4 z7~h3k^y~fTv2L8PnO1ExV(Dq-oA6U$b9@=GVIak%~U+n8u=XVGEjSYPP9VpQ$A3Wb56Y1>LE;?PdA8 zAT*A&1G4t2;pVy=>?%{R-67Ok5cj1>l)&!Q$bC)grhu!nX?HOKTe3x#&uSfX3mI2B ze#FVf41Y#%k)6z+o@}OI<~~D}=7u^XJQjMWUs)mI-toMmchmf8kS6h$6acM86*zZ7 z=Lwi1y{VbU@9cJFiKf zGvc^^tQ&sM*3=TA*i&r9c3h%v^r+&!F^jR5W^}|u$Ga^)S2~YEic|Ve9lz*GuI+6R zRwXY`a?Ye_6Idf~{0PxB%bvBehMx-goO46C6eK(xksY1_n^_Kya!v_jxJjdK%WA-F; zSZ-8|-pCHv#xwl-X^64cJruV_U!Tb5N>SRFa?mz>R3TAG3ewDSPu~XL{^z-tE z^D>%t@&fdd&$$*+@49L3@mTdzY7XFTZxC72W$(m1Eg@Bn%uLXKNlze1_;Gmf_Vxb% zdVm4^{*~hbg7G5!(cOUIj44}BBE@Y2#R`F>7T4~GSj9sdMSG>-n#mU?rx(BmQ&{T2 zoB5%nb$xOYg|VzgA>cQJAlctv&GbDb@?`k2eJ!#x%1W4CY`Gl0`a5Dkm0Q$luu&nT z>1U{MK+ldrb5o~YeiYPm`K60^1+zvK{IcdkGeg?HSdqj6qYn5c)BNS!4w^m+V(@Jb z=ThC+eV5E%8018^9j4-Ztb4Vp_+{h6u=2n0e1GJP>Q?YbD(vJ>k*CXGa> zy@l9fdK^d-Q09DU+F#lOPi;Ot?>;2QuF9VYf!t2U1`|WWlVw8Z{ucDc{=#UuiXMC{ zkiV!HomD!V^wvxlD`YWp#rO*5pCyhjqM$i2%9};|8I(=HIuDbozweR83Bf~rhl3y<{_~3Df1WbuT5-F&ie|}-=<3~H(>9*X?V^3pespYS4&QVYE5TO6hZPM}7tu@Tcpa{o&vyrO;s`nT$1%-jP zhy`LfQ>o8Se29N*@w3IW&4O_oUFx3Vfmc`aA?H*Xv{*lC2Rg<)WzMZQ>-i?sI`#Z} zC#UAb6MVpX8`I=qGF$uY@zijm#6Qqoz$j@22ja(71pEj|{WI`mvSxH=hTR8InZ_Y5 z!sVV%`Z*3ad+z^r9%xp(p{4S{1-2!U(g(||JB!;dJv#T4@gCg(xU-obMO8=BPx(Dn zYjycw`oFJHsamy8)X4DOFRYBK&Q)a+?KzCe}`fDgK>^zLIoe0X(@Lq zvR0|-CU17xwh^)b^3z|9qA*j{HN4PEL4?TupPyPY=X?DY5|6<)*d3cr++BZI>NgAf zHPMs!sisvs)$^`_6%&c%Fe6e(8Khs%!8=fLEiD%}(`C-=31KH5?Dc$I>kbdS*SN;z z+eb%s0^lKU7N*e2FdW)*bE0ma1DKp@SH*o5MLK@v$d2Q46_RP-+Wi;Ni8{hST;(~M zivRV-APQuqo68ACL3yb8wMW3cU$qF#Xa=tae! zD1b;t!G9>AR9}j1$Ce%EEB@!BfWtXpuO61DglU|WY@DTFsMG!mGWbj*MW+(2oF$-qVZb@|KlgLABD8RzfQNvt7kaLDl;wH2$vG*Jdeppd4A^OOaQBF*& zHys>PJ&-V$-sKD(h^S{Q7N3t4^`4>>YkeC@2D^tq)f65QKCfVQt)U?7#(3hzcg^+RMI{Myt0HA?un?5i<%j2Deh9P?d6VW)V89yM&G}Ed9pE??g~?ULLZS#Y3rMD=)C>kNTYJuAV#_OD{BNIo;Qu}4!zGBay{9AHm?x#;17-y`z71Gtg$BwIm| zT)%(@0q0F{M&&mmG(WIO6yoRT#OY+6;k`WhIM`xUZaY zEtC4jVYe>?8;e3Xw5sQ_FOx%MkfLf6AYrh=RO&wX8D^&Yna96h{AVaq4_*`;J!g$i zn#sq`Q=k60PY9G~t?-?A;$Ex?wUmXexYQir`^rOzz3c()A@!~RF-Obru?}gQXBHOK z0!xR_UAgYAF%~jd@KL@BtwS`>UPg>rDk@|Y~(Czru;rS{VYN(&KV23Bk|t~ALa^q~GWsfZl2P3TyJLbzVyqm#F+d>wWJ2mU$2 zE-ucFB!ysT+9#dJ8G8)h_KsAzb-j%-Ybb4mhxoonUYG6TYz}wor*oPvKb`@~mI7PX z#JkO@0tWA*-G7+js^TD!bE4y0+FO5RN!yLzitVexqPga8#^IOdW2JzlQ}Lr4Iirsu zw=~B0>1q4yOF>V2KgiD6bFgy zM#(gaR1Bq`g2}%39T{f4co`aey1zR6z-@tvIL=Z*k2(~D?D-(8Oo?9hgsr!Cvt0PO z5V#TbU_QvoDB-*`G@Kh#lwe(J!JQ5S*uDt7)9s47vhsu9Gd}^^evsG11HlkF^1Mjo$XxqZi!;lxX$C-j5t5(#9PT)a9@A-xwU z!TDKOKf>beRqzm#o4R-3^9}J?y_D;83Rxc$d$l|-yZb^-xqQz->>z+VG$-AKi18dv z++&LYZBO2UB}7zuX~e7aG%#s;=d&y4%gVIn)d7@L`jH)9Ueay#9$aG#@QiqCfFwa% z8Q;Sh)SlJdU*aH@*rn&h*kymU3eR1?=kXTfE?CcWBT!*-@Lp&)62)-ro5vnX3pJ&L z6ZnW9*CB2uZm!_|@2RyEM}okiu$lM$wBQBa?_VTejqWL`dm1xD;UnrY!1e~(KDKP* z;MP)#VAonIO`mY??W_V?XtN3pg2Hb!l7ppp_F6|fYsDge-I8X@In#Q|H^|qGh9<@YWlsa->QB*fe>ajTY=^@fi)h?Rr+0*tt*^KN_U6OLQBcRj3g&K7`3T{d!1 z1&HR_cOiTYJ(9eTTH<5bEp?49X=?ns2uOF|3#$J2ll5ge6N z{q*|oGrl%M81OJnCt8Z~*>;z6@O+p<_V5%lZ|v+fj@Z+g6#mP~8%ucDbCVa+L0Y@M zyQ2&Z+(eWt*AivIjulQ83wfa@uYiJM!MQ(b7o_?_(9V$Fcv`ET>+%LBO0>2Z`&`2$ z78H)rt-kj0`QcI9D4Ih9Q46;dN>8SS4J6S;7oDU|it&61rGE4&PsG1O|6R7kC!aWd z6(c_iu=NZAg06pP+Vrk=jud4a0o(TUTR2O;rEyi39P5u?gZ~X|RDw_R;cs(9VFIjxV1B&}FhIiK)LFZQMI} zq-85%vpKqKstm}eMx=XDlS&1G8-r1zia84Udn*i{oNKUT-vgM!p@3&)l3eu8k103T z?Xp!W8cYFZYXTtzn~<`g3V0<2)euU_U<7+DDVQ8HpF)KxS)M}m?j}m=Kt0G%&}a#0 z0xulI3t?xS?)^fHT!GwzNoB` z8Fkc5QTMYw1c)ED+U&Qvd~EvituXt+4WjUi^>t}usE+ZH$p>Z#8d~8}<<(i0(?AoR zOZ5vrg!$RcQu3n|CR!iJ8cGcnlNqs@+M!x=+#eOV{vE;1*Nf8Tx}6e>a);T9k;~Yt zYB6%LB#;Sy4AY>K@-6&!vyVPcXvrC9vqF(tYcB}lBdsoAZ|oLbhS({IxG1c4{@m{z`z5Sw+y7lPsXs!EPSK=#OFK4!=|i& z5NxdDjFw;;1sOT2N_-etX*-uX#Rc$b z{trQkp2AR2_<2ugd(>9VVw$+Iw;4y%)2^N7BWq=J+-Dg1-vZWf{6mi2q*|~7%+|PswH^FZFt&NCB85eeB+}b3Bj4hVpSJ2$1*xe=D}cLgCh-0?Exl~_ znOoONgBr%?jw=2G$C4QZ^~}Y3?9r`OtPZp>6}~pwK!`-UcZ_-{1m1`3HBx;m7Ep#{ zMks@Tr@5W@;S6{^c@w6x*eaA_wiMVNqk`yd8yD@LU&bw-a-j;8GJ5f!4ok0Ixm}b? z{gnC$+b-*)1)J72zV@S9p7!RmZFEP18oM93-BLlWIxI$|=Snk>^?%o^JRJQ{W8}r%sgJNAAxHvfs-V%?uX}0Q z(=E-L69b7H`Z8E%Ql2lI$d{P9;yc6dr=t2w74>H%puQnV zkZci)t&6-FOS?t3mj?`-q9x3b;GbWF00TS1CNa4b;$ITM9KnNqGj?w$vt~SDsT~NC z1R{kyr_Vz{B>3o=)wpvwdU@HoGdv7_oQ1QyPJLt`=!Xw;E3K7Fonf^NZ;k}-r_y2{ zHaGuwa>aMjr}2;q=(Yd2{C;fZZaK@Vr=DfDNIAg5i=Kq@>1U87Y$%~$}o zv@X^{Keb4v>Nf-=8GJ{OtLR_alVopaV`K5bt{YgjNk#sJZ13ATkK1G^ITLi*7UXdS zc$WKATheo72uPz=6J^Yn`1fnn1)Q4U-~w|}5H)2s0>|I-n9Y%l2jB(FCm0cUyfbi| zSX+SqrlBw?rpv<_iARiAgcSO$KPphB?;VooC@`|R%?xYB#X2X8GDm&3J))|*Sb4>6 zO&P=LKJI3u#|vp3HAO!A;b-CIMFHmMeUg$F@_6K#x92(vj$pv|T}~m_C3R^k5Hn7w z+Ic5@I-W)l!g0Bz(%ZlUqyu{!vBAf)Cnxo>D%E5GkR&jQ3?v6Hfb=ml zK7!z&y~#D?b`}S>FvZvZlHL&*x<2b}d0d%$(2soAS+;Pzh2G7+AG`cC1wO;)=cei9 zPtjPCEw(9@JhX}>{77i3FbpMjijDw5vZzYZx~SqRdlSIH9zybygEsVI{bo>6uO6%k z724u%LmuP7Ow>Qs*0bCehdeAu$=2bMv2bnIBc@o-PCnp3qJo>&*$6OM+V)#Rj8A{k z)MEqbR~SKVJ{enbU$&G!`_BM){?iiW-QYh*bd4zLGG;#&m)(yK-p`BWmIIKJ=5<|% z8OWrn)_5kVk08+2JpU|im#-Y9^O8DR!#Z|xv5s%LSIb(;kz6 zVn(ai&!gO|yl7xC+>l0&rGxAWpYW15Ko{$iZG;g-*Y5YfM+W|aTZkzV$KboJ!)IX0 z*8FNf4D#$l_qL2!FS0_O604QF&pQGM9uxXzi^yxOVyF<2C2oIIGN;RkMKPkfzS_3u@d5N$HrvcbJffpq}0qmavX!iSBhZx0QP51=pkMi zLyvVKynG=^Fy0qa^cE^Y?!Lcl1mPt^!z;LJ3Bg17;K5TB4C6Cyru`^0*5B;l8uIke z+-ZqukT;>jY~-7aaBll87JpV-zU0gAygdi$4(Phpc@owDwy8bjqs>zMEFXN zktv5;y15x)qti0L!2E-T@IHXfKCeglI#j`rH=*EOrQmVy1}2`F!Dua3W9UB#DEIke z9A4ib7oozdo+}`Urz>mS7+3q3cAz%`>SP>)lC9sF1zHut6+synyVOIq&|}~6ma9N6 zkPgjvd!KN=+6-_pgoD{$y&OOw_-J5pCc#(Z;yfgKD`>sK^w)|cRyo6&c-Vfb%bkJ@)R8&Oen0@2 z2J&3J5iFl&7-*z8Z?@l`-MU|p&QSba;Td~HWk6u>H4{jz9yoaedU;xYB{S(eAIrlU zvfdpmWcK2Z9gBFvsqssdnfcYYMh{J&4uKgrA_#r2z0ZDbA&{eq@YXP(6kz(?8Au>? zA>*8b-`yYS{uUL3zunp>qaiZP!9tBtz~fMpoCxbwUPzB$a8(E4wh7?;hJT4q5OFl{ z<_NbmnEbiZcmviNFnwmua-PS2P(;BCRihi6qXu9p{V>}tO6(st`T&q80CVD1__Tby zZsW;fP?`XHU_$Nt%{4L-g#WchyWtY)9PPZq1{O5C6*~Dq22juiD<(5$zgEL+p<%n( z;NXl}BE%mwL1E#Cl3G3Vlz)pPD|L9T;>27Lm~)_GpM;P-44775)=(3;+~lD6jZ6ga zf12Du(q80D6bvXrz9dBEY{IZT4R_DSltiAscpCANVKIm8QPoGE1D^Oga-xWprH$@a zBq#3SZOU4;M9<#F;A^avIU&QG;C#5zqLGsZwDRSblu{wjvf|_P>mxC*?exW9FU+N@(#X*VKx8?Y3B|FS0J{rLYAf5b`5VWJu@fI<(q6i z2+;q`k9hvH;g9?w36v-lb43~RNKy#WC&r}%MS#wQ5k0kk>Q5+8>VBj9b7ePxZqtXn z03ozu?>h3%jYwIqQPOTT?nDX-1IQg^(qk59h?bA|!aUq}RvO?}w{P$NVM8KyD964U zPmrr=&u{hNP(BjS-OlhI61ixs(3HItgIbTugEyp4-|NrX2d>Pet21HyG-2PjUp$zu zS)7LtL<8$48fdzKfu|??K%O)66dQaTQTQWZN!M_eL}j#g|N5=})#4m)GspJtUy}8Q zDfo<}yBPQr5)}yYge(FmpW@dfkQwf04Ydh6hBal?j5n3)&%WsM;dK7P{iWhMs<96` zXVEF^g>xunF^*(!;s&A+D5BlfI5#y*mQ*FWirc<|T}TuRc;}qL5tFJ)2E9uPHYG4p zL~&!DjtNH#cjz~j!+a> zhqW-EP5+=(`sWZ4AYfmdflFeH`nyf0`alnXK$4GXnd}3QY00w69xxw}pxvRHmv|t> z6&7d#&<7C~Lk+egu_VC@ROCPP`gS=Ye)kQ@X(2P@5&f^{OcKBcg13U8*W`?pH6936 zE9`paDS?g1AQFR7a=P;e_15!Mb-G_ zY`Hde2C+NY#Du6bVgWR0>}SQp?(_*MDsST$qAl7{5~l8<29x;>zcDE|Wy(dSTv4~V zj5dFOh7tLU!^di&a+KKYdp_YeP!I$mFbmqRUK7=rzM)s<3@|#`@oT{)?@Z!iRO?PuCCV1G+M`SdzV+D%|?la;@-vwYpumlH_<_Vvix zT7xFsvbLsq#h&k#3c}=F;$|(M4|ak^ixfKl=I2H0R&h-uMRKNxeT>bjD%MN%yjh15 zy=1X(L>}qY?$6QQG`A8I1a~Myf|$^HYDzsy&2|z{TR;6k)Z)bIqeL~QC$==!(w|~w zpmfX8GC%`jl(lIF1Gc!VUcd|xG4c4a@1=IT{9R*xLnc@#s}E%R#6r3*89Kyn6KOv) zrQZMD7WZ#8P%#(rrzS|hb#qL9AKs2KOq@|Ca^V*Y{e{v5q8N^ykqu3YEXsZ2M4k}s z<}^EQIiG_>pt>+iOb7*3zg9OhY@i#BJd8`e7 zS1C5xJnlA=9HulwRHX?^mf6u!`~K-QzZ>12o+|e4!3nZqw6Nf%sPqRjNsnyoCOm zz#(D&W>?hoRlcB24pq#}GB9tn!VMf!_$Gw#vyNwuvBtP&xxURm7x^%@4EDKLR_E>= z3dbk}R0VRko&wrM50-|m+u_JCFKryehf|{t5@)(2P!(hEZ^Mr>4vg%|6u_~G;WAbp zD zqDMeNxhny^oi|#9YMPygDOb$aAc%kzQ2~SAr$1)g9|U&>$RjAr5RHk|2%PVJd7OdekvX}fWvGWv~%K{!uD4c{KJ}& z$DcucsubWTJD0aWls+8k#1mj+RWM_iClsCu)Zx`7h>o-vRy3uIQCQ}^Kc?g+HN7jD z#vtu6oan+N`EMt6xZEcGHWRnQMCgF%iQ9yoZb#al1a!$z1+<&O>x02a2NgtuZq_yk z@+6<^csI_GypLsvcs^F&%I?5HusbR!2q*0XxtYBUf1=iH7OsxZlqlFw{#=)bYu}VK zR#ZrV1VV=N-8>X)zH3arZt<`{cJK0gCC2aX%g_$81`QJ~h@b?t64h!b0sWWOmGakKX6C+}cQK3>6MTr7up;(F|M4JNQpHHlw?C}N;8T1MsQ6g_l+ooYcG`&lbBf=(Ybh7@cVhW5l zh5Wr6Hn8i=u|KrUfaG!=2qjb_MZa|iet2qVt-?hGL<#9NKW&sYN`YeZJoK% z1PI27z|YE^Z?9=_Qk|s3SXC>|uhyH4V_g0iZ`E0Um)kSVGt280zo7!Q2Y6!f8{3P@ zT)&hdPn1(;z)0W^8(u85=VabzGhbsQ3G1+97v8WZnt#PaF08xw$-wYwcK^4SA3c{> z&0ijOMEBefx0#y$6dl7x4M<1VT8>_BwKUJRJW4^=Qr~@4u9IZVNn+Gz8F_!p^>+;4 zHbwAvzjZS4q6ummcss>{w5mMd6m?S|nlHKLp%@|_LxVDQ;d6qi&b_gL1Sdx-PrZ*s z39y+Gb0)<9x~CKuNgK*aG5rF{ijCmJmnbBK^}w0$8)+}())lCw|7wV2uyo=#O;9HN z;WXSYGkzje^EwK}f3v$#UEz}e50x_a%{BX#dXcLn~%~+zTw~IL!U3Z+|Shkkzcdr<^spn4hL1g!r6M#;jab>cc@UB-Wq?d^DvD8 z%C1b9E%2oLO-1Uz`7f9_YHVtL54mp$yYjkpcd^meJVvl?Xd_V~qJwF>{*CO{V(D#| zgFM-Llye?Z^jjaUM(f>&&&4d&isrW;3uHoVr$?z%A&{Ko4&Jt$^KUt0iOmNlEx$=x z=|s)CRPs4&dhc|%apa~cF^X9xvR2a5|2C@2+lA90^)_26{bA`8^Trrfw6JnwlqFG; zt$LHL%~V7AgxF1iCo5JGdvH$b1P#nN2#1eLB9!=RmRQ_aF!VDn5@lK;F#VM6Yg4^d zWAO@m=#Iy3lRXZV-sedgyxmmF3rSAjX?IclnLexgL2Q0hK2HxtF2QZsxpEW#JYgBR z{Z~^NIE!Q%*#YfLPPh?U*hbC?TT-g9Rofh%J#rfQ5#Qw?lgH*w$EDO(`>~_9NPw@= zP+D)$*TBs_{1qvM08!T{{D!yNRp0@&hjPW~=zzuyObWsTNw}XxVqhb-JQ0TZ%l`fz zgFRm(p$o6I6HTAcBzOD$HK8lkm&!j>@LKOQlqeBYP0)Ax4om%jH~3489OUay%;`_k zH*j`3&e-OnR}_AVLdFTvU}{K5L}vK&H%(X!Eu@8tAr5tlEabYJuiozcT+N1i#UhdS zE*sy9ddb>V$5v3`&2;((*b*7{;55b{^5-qRwG8K|qoSA+YOIc$%9F{&%<$wAsrUdU zP87~I6@W5?ZEfG*#O8I!z__=%hs@Wdy?)5?@UwVRE}KLcNFmV?#nnqeUdk0qjK25V zwf?;*dEr|diM9Qi8NuY=%eJVbDR{C$Cf*+#M%~<^Qm#N~0#PK(d(l$+ zprlCDli*ZUrKw()O$Ets+&n}81tUoiV3D9l3#l!s8(ll9-|k^&PlSsWr=(JiE}ajuFYt` zs<{p`$-5`KEXZ{^-vKszd_>MCCe<5}Z)Kxld|U6D{#huANbmXd$%LwL$HsOxf>bMeuRi$_2=E|OPq*U^5KjGaD|}1Uc*!juL;Ej$$+w?>;q{hl zIEtO2(bmpc2lo9%XHa7thD($dD%vIXQiMJGS+~bpeN6rLi|V$#Qcj#hk|wAt=<&D2 zaOUGohCOzW|PJSa>C>O2?gArH9+yE+Y-<1D_ z=s<@8R{y{v4jE}hpII%&@k0j*T!xg;Uc#E|-O$}u#|i`Aug}+>aDOi1XMJ{yYBt>R zmdKhD#dnfcC$sXf!x1m&!le$;zua!)$t`N4fxI4-qA$1ugIg$l>wVG~W|s3%IS708 zCjp8cY0XpOZvg|8@+*P2taM_m2gC6)jk$`0vV-w4n4+3+3~gw5xS|L-mMUmPWwxPt zt-+;mZ{fAB@c$#~J;R!6n`q%AMA-Bs^qvHeB2pBTP6$X<1O(|_K#&d!NHKxX6lv0> zDkwz--Czx-g|*?aDpHEY()yyFX*VHY6be)Oe?jm7S#-Ld1xfxP&{AlvSzH-Ojn!=JIp zZH;fP=AUm15FH-t3d^IYL93#seqzlIQ`urtsVMh7j^QC5qH)oX?nP6n!Fv^$6qNno z4kZ#TM4(y4+m!t8#q!7(aweM-ZRiF-X5(Q>Qd{J>-C!sC27c>d0bp(#|51<1$gTFue9y8$|-j zvj-OMq~{Oae#8+5sl#a%qdBsDG>sKkLs0Dg4@0%o>7@Kx=@4)ume(f41BY%0Wri7X zD)1)ucxQ(s$C1?mX}ui7%lnb=hwHa@o4oxy%o_Uj9&FpAVGSkl`#OSN$J3`ob%?`M zf}fAY&HF`>xIVSjB&+@&oG=uU9FcqU;8@t-AN3*STZU9rbp=g6gWq=S55!Z zWk%JquM>3H{C`L4v9lywtFm|Ty-3r?@R4{{)BR6Q3kp5-WOY@OL@w(E^t+4K@rz6P#OV9qk4Gq7 zpBgYh@wV{D&<9-cpl)&ko^SCeL&~`H$5LDZMJl0MGQ9tSi>dM9y&n70&TE#%3ABH{ zAiY2k+U|*uc zX)rrz5hLk!@5Wlg_yJA}n#-H=N~j_2vacdZ-#$LSeJ@YEl>%Cf58mZu#QUWcc>dkF zf}Q0Jb8Hly7SbdmO?BXsq!=KNpL|XGaiA_I3_)zVd^t$WqPDKC*lKwZ*`;uG`O&U@ zffxyKZE-hGgqt%%ax!B3b|w!6C+|dVF6<;q^B2bGliP=6A5G!t&QoSq-?D*x(Ri ztUiR_C{|KTfa zojRTs@`La5WEmndrNU|Tb!`~5=qEL^dE;=MZax8F-L<<{&w z9ePB^NZv6Q2dARitGD2$AJK*3SM040-jcOAVbA;cXAj&@YF?%(?0;CV4L4tCQh?^F zIxa*fQoOKT*3hR|FnNg8s#ZIMTUzR|?<)LN~*@`1b6cNYw z%sSoD7`YLqEy)H~<(Yb0GFCH{c%|QTSvJK-Gf-*}GnVlGhw$3?QSkcE5sNT`S3GeI z_KJ8TFOjvMH$VME2c+44!(qOYnKcQbe8{4mzpQsmX-5WM!SrO zRq9_JaCKI-+^5ree5rd%Kj8Cb9P-*F3tzl`^`&Og!b3(7BP7eL8;ZW>D#YMk*$Tkk zDc6c|!b*ee?Ee-ke4PPI`V9Xg?p^km{@!V{Zn}tJro${<1pS;t6<*X|J&dD8pf2QH ztL;LJGd^TTtM=bE+g-LUj{Pa>7P^)_wfHD77M??OhA2p-E-k&VLHQr#U{GKi&g?T} zDLk_q4`_MZ`KB=QrN%iDhjdE7ye;(6B<0Qf4Cojovqi0?`=P+wv4q*oII9`yR~wsP zFh&x8Wkj_t^T$Vd?W&I@vk}%Be1FOyNduh{$tPt@VM#NPUddn~c&``B@+8&8fE}p{ z0U8YxzXm`3${S9pfopFuIP7HOO|C=WUc9+L|Z z|IMpVEZD?HqIx{o$1fn!lGvF`KWX@aB=FmaD?jkyQSGA@z5CORE*o2+9AG6lOy-2D z(pAj|U+!w+7I?hI3F{4Vclv%c_VJC#Pp=_F6D`J8I?+3BihCoQc_V;7%Qe}fH`k-y zzrV~6UrgAXeBq<*G1KgB_3l4WyM?izUjOFT=DNNpEX&CT&a2CQplU}e^)*PAs$O2L z)dN`Jjk(p~I6Xjq<7fnnwEa2ytK*I3`yW#KH}<>xmGZ<=g6=EQ6NMkO#mmXV0;nwM zJ?Bgw_V9GI(#dZl-wPqvrx=2+mqopJdpmMMEk3g6>Hw+1e}j`l3vOp2Pd%j>RAMwX zd{FHXgI-l#jjj@oluuGsF{4O&?5t%@JjYrXjvf;#fOFb@YI;QJQK)l*FtPK%A6chqK`LzkUfQ!bhO=9`G1 zWqb3;Qf1HwqhG*?B7QJ zG-PW7{F9H>tl>)c-#;*E%UGF4<~%;0Y_nDcHW?Beyl$6D&&Pz(ZSqb^ud6BF4g>-y z(J+xd@-;h3-WYU&vjREk#2a5O!1k)|$KRj1XFsnn&U7kM!bF0&wddY!b3WQoku;k; zDUAVe5U=qoT)MPNi^qr6{0QXg#S896e(^Htb1J)9E0>MM1h5G?Owd^wYq%&|fZl=V zB9ZF(v19~Cz_RzrU+*0(j&3+eQ6i~U9&_KuXXbxM0zW(UV!#|WW_4OL9kO6Qmin>= zf0!q){XWq3112G1bHxmt2}vt8T|CD^fD44-lIGuA)Wk9igb{==Plc=8W*VoE! zgb%up?5l@Z&WM^Np{=Z*oRc+$xY?pb$8ImoN# zGdZ(cTQ;Kz)2F(3d-P_BSapG7Di^o%7s_9JUWawRQ$`SZ|t1as^ zF9pqgi@7uR&A^e!bZpEjcU9Iij*LZ;^BfxQ@cSjiDi0(;fmR-P{8LFaEN!uQZ%94i74Rf1Y-yTiM;$Wm*)FUd}L}DSt$_i)iB+3=Bi-#EZlxG zK1Ytr{J6a_^0MtVgwo#K7&vg>`4!i;ly@NsIQ>YpdvP%zsi);rCmM2_TsWqgrBx4-Vy zHOl4rSoE7Z?9mNMG3h+Mjs`Xf^NvUI(va9kuxJUofuju)gIT4y8bVghHvJ8KGebcv{6Bx#Kx++m}?&7nbZOyYM+t z39WQlo>P)-_DJ*D&s%pCU~yzGIH%CWOkySmr{h|HD*IbheM5P#wjBS$Ew4#NWZv?`x|5B*r zlQh*_Ro~o|4$d+h76_o}QX@Yj`(o(>)AMcW9C+=^72!QRdmDf~#6?Rz|F%EqxkHQo z2A${358>b`MBOf3w>=&bYMo~Ctm3Ob_G}!w0sq^g zjJiJI;jU$k%#XyIx!2{8T8P6PZUo^!qZ>M0nFbPSSHs2Io^R=0PEo+a0tCVm6lq2J z2sO|oFB^d{D*D$mFQaf;;wcLCQRw{N1GH+h4t&Syf=S+$XJ8L~g-JpPl9W?Wh;ogR?7SCUp_^J)LV zCsyk~K~BPXCawqE{X4-Igu-rW6)EqlkI9G1Th@E?Pc?5l9#`~4eP%?cxF!OY)ZZok zIgf?z>CWXa5xFmdM6L!FG^)N`7m>qrxeI!QpnjtjXtJXOz;>oaI>jtRENRj|T?RIl zTs$YZS^XH`4#Ag%VPPqnRnv{pWO^jAVYGSp2E4Yq>JQaiQ7TX9ZiQxBVvxD@e(yhI zwauYnEk8@Ex49)+`{3D?&hQbT&1Eo6`~e`G@+JsW&u2`calD4$W~3Wk)UaFy%xcH5 z&1DFf`O`u|blxgrE6~xnL04}^b$C)bLPff`kWUy-q44kQc7EudVbR7E?c}I<)UgAK z=qDyhw=dj+9a$rxTjmF-aCukh<;ZC!tCtX4$%^Uq&rQ&bR|UdApNLsJHyO!mu$P{p z@y;Km7gR zZ%8;%e^S9$!@Ac@VIt7qQF5}d_C~{<1XaBK*1#&lDCP9i%P;%aXLkLHvVw$vm-yJ0 zqG1OD7uy+iTu;Uj1F@X2G__Nf6jtjKp8zyHaXCfT<@*2pw4f@OG=NM|67Bqt=yS>_ zN5O94n+r1ROZn?0L8A+8<58_~$roN?VFDuHLd-pJY{COz7MbT)e)ub`?bJT|aET-1 zpdASzeuUF^e45Y$Iy!p}vXHPGHA#M3#z0darBdhq2QB%XYCGfpQSQYwNiioldwiXV z&?u-c${SV%ZC1x@@FjowefYi>?t9bJWvk!!@@5`-;|Cd8o_Kx$50!ptivM=%d`!(F z^SSlcw0zSM8(@0ocjKAOr2Nuer`7 zoJGB9{yPKuZT+uDJfz;9F%5nr4Wr;b-y3A=7Rx!_fRD+6H)UsgQZCK)WK+$pFUOQu zHoe~1jHaiDCMANSAJ~44ibp)vp{h}buj|;4fk*8D(j|u~n6U7-CV}i!>kUj{6lyCr zS*#%W@+M-jC5{4#Yb4b#mYS5A|3v3QNw@F@7jPb$C?*|sbnwqgJ8;>3k>BQ0c=p(* za|%N@0tEJj_1x1Onzo@p9t)vS1dERW1Y|0|(JCHk8cPvM(4`C>){XC~D8(bFY(hn* ze6b0(+s>M{mk}U=&YI?3MK#A8c4)2QbQS>WAi>cz&+PGr;%#>lI32Z~kLcakGTR)h zdO6qrr(TE3hQUIVC$_ZWt&&jC#fsk47Qvz3m!L-zV*$^f`pYM|^6L5Mko#*PYII4w z{&I=we~K_Lv0xbWY~t=0Dp$br3BUBGlkvg&BaHw_K?>_)T@TaPFw^%d%>Db1-@dMS z@k@QXQ4ZDyo=uXD=bxK6aMCJq(rVd%XXFLiKt~uY1PcIsumq6Urrc|dpsl9cYI@SZ zWc}%)LB2u_UY3>R%bWPQ$6sM1)?;b`wD>A?v7_RZk&@Iw@nSE;<=sT9Nl3}Gt@ND#u^hxjC{ zxGr+SRt9pfV{t4{b#&G97tS~9$4FMgFVB7h@7Q69(ZB1Q?PJ$Q4o6iw`kSAfzfU0; z0xC)g^7mNSUHSBfaxOrYQqVOV+|-kBpoO)JaJstA^S+>Kg8I4fYQ=%~5P-XnX)_l5 zFV2l-qdZh|fkeynyuHW&9IY+k2|bW#NH4?N;g;%1+|YOMaOnsE2oE$GVhu~ZXkC~( z^<}-vw6L^VK18Mvj|_W$$NBEtuXld`WKVW^>b#>S2gYtA1iPjh#No;As=*x=0ToCY z?45JNyqD14+aim*0m zco&iY=*ve}lMSz@A&WqumnA*XW%t7eLEF;jw|*kDOgq6lsRy8mbMAcL|JYZZ_w3^$f=gj- zs%{4MKa2IYrd8Q!7TXSH4~kVT3A+yZdZ+)fjBjmB6ZwkqDDaB@f2%sFk~zHs@bPZ z0pqiCXJ7u-@DR<=AbG=DbR;E&&wEEgy8yN))b!|!(l^y0rv!nE|2^e|G5ug}28VV5 zeLP^`@r|0gJ@yPY4yXRpBJD*(mU`+!6XlJ2Xh2aQd zDEMyS;Ebam;yjBF>vY6VHS5Iwby&R96XCZkzFcQ|*G#;N;4P0~hs1tTQh|>U5d!qk zX!25T8ruhqrlwHj0#(a@oO}5cFzIyCGm}VmCh%oDz?K^1 zU~(|<>n9^V&g$#I5oS7t;oysYy)p^fcX{l26znLS4>31~TdK`^rFAsYJw?^_{_~PO zssW=(x5+nkOU1)B0sFXOen*j!z^dKuhus(9XP zL&Y{dl05WUlcIyqSe2Crf7|wF8lScKw(l3LS+J2^Oa z7!5&orSU}qvzWYhk}`ORwi@AcBpSB#6#;IlJ-5<#wC8?dN#{tGAr{i190*SW>z)v) ze8n0lmOzDOW5OEgi%aEGwEed61AUdCCU{wrY|tCizY(k75qW-+F2JHXVOUiW0wU3> zrKsE4@{UU+nV7|QLHsQxqIR!-WM@C*D~TUK3M-xafG4!cj0DiZv4PJ3Eh#Ta8V=Cr z@#8)~HY%jO%_bsSF~;xDsw?;M#MJh^Qz1m<8MNs$m6ozasL&&=NcXn1pt4whH*71_@~lA3k564flc{p$Bv6 zev8!Az6s9ghIwV#6+y#D zl#wogz6e2+;M~7f7=E>({g}aRjbqh{>3N2y-&FE0IHplq_a3I{^V%+NfvUSB*kx%QCTMkRuXXm{ zz4IINk=C$!eQ_y-N_)bWp7_1NLH~JM-b;hDiG`A?7B~c3&Q`+pvZPOTWFNo**ZOm6 z4l*JxUSX=)drT!J@0h*c45+gOLJCyjt-uZG>eEKXt>9l=)+rYPd0%O2J|$MCem?n7 zn>`vG{j%O$-#@uSwfi8014bnXUxdygyL73J!QaXQ8Yfr*1{-6#25)y

uHv|vyiYu@f!0n_UUm0XM5hXW!$?M6ZSJR7HGDTfl0MN56oY*6E+V)>8n|J~N({o7}K zfQWvGX0%!m|4AzZ7i`+>z4F_e8jL1+_Yl~Gb`l7N^p(@kZQujOYqQi!C3HBM=F5-Z z%{IETH*W4_^qh@5bjlp65YZlQ@}|kJDhedz>aSJHRmDn=AMjUdyylar6ja7I*aGy3 z&1XYRk9SP(xjUeKJ#h9b6#fd$E=SZ_Y*7?kLt0x_nYW{4tp6jxp$as8=1n2W21&*Tsw-_S563_)9y+-D{dp&K=W-X8P}W=&ni z&}d*kPEqY+h)E;2(AYrqcv1rG%6oSjlazx%3+3}C&B%xt$5RFZ{{vYhU=Y#unbbu= zfY(Oiiaj#ADJ>9?t6IshiA=g|1VlTan?jNvCTX^E*I`4tcVoADA!N02bi9XJeOuWm zxpNS;-;hN1n6Bq_)nxXOD{1e&ASm|;91A4}dI}%u;GlJ27X@pCz6K)>k_60N08xYh zLw)+-l*G(%cEaK(r7!A1)R2lNf{-z~@6=>B35)B*=tVot&C$ghMLcq@(@D$O7Wtw{ zkZld>Gpo}P?Szl5-vDqP2N^}$lnVYYF8y;IrJzE>K7?h zby0cmOhTzUo>z3PzU^3(2;F)%*Ah;3bW3Pb>{>L0m+;j*P$GufKz`L8Po4igWLflJ zv5Ju=771yEFlO2vPdHxs>E^JF-!`CB9umB2(Qz<4e9aqz=PfTdab zT=Kd8`%lLp-)M7kB;=;>oa!(C>FLnFYap-q*GkeC4m!&6 z-<$C#UGZA%g~K0ML6mF6I4fw&=lM*PFy>(_Xy3J=SDN9Pm8AJ)^#w$0%BE8YIamU@ z0<*nB=IYTf!MbciemCtuZQAEMbg@bt=M!2+2rIUmGly`Fe!L!A9&%bD$TQLfE*zSZO`)-XRb-aO0HhLYNK&)qMabw z`sbzH$}|uE(~6rzZ9rwSlOEvo+>1J%5s8)pcZKkR*j$VCraFNeD#2s9!4=6d`2nRp zH0nHJGil_LL2?y7(BUN*0O|t-JUx2@ML)M@wu6;2mFGlW#-U}0SwfPwqC5$CtzYF` z(315SQcCOa!rp=q-gxenT9sb&c0NO8oXsPAd7KHju2qK-CXgM!+b3uGbKJk)a@vY{Mj<@D-1U#Q`e0tqecxzL&=mFNig^o=tQ)8z05uFg+ zv0?ryyTml4gyMr`o&7UD>qzSxAh|}s*Y)YG7aYQq^oE%tvzuNb&cN8wr{R zClxO$>hapisrNcP%t7GP)1$|zhB8>yT=JM=ff?~4QjU4sG=iiOckTuyi-vfcmcJVcf!waLEZ^mK@q~^F0_(g|IiSl zOz(mnGYT^LgfGO5)Al$gl=37=Mk{)Wr3UFm2AMCm{0Hg6AoRYv2D0bBeiY#FP7=nz z?Rkn!pJw^>B>0K{XC(U@OhRObTg13ZJc#M%Q859h}upe90;azNC z;B>V=LqL<^jHMXJ(BH96Wv8o5>M^0~E1~^mZAloM3%ZnSCnj2j`8t#ndJsvo9sk}B z5gwk;Jf5z*hK1bXiWh{6X3(MZzlUUxsB6hVqW+lBP_z#>wDG#{&unZf#>)P{ZKF}D z3lsB!dBZS4oi5B`Ja>{=0K>#|nA?y*D|IY24K9vQGk4A$#NBpLE|e#fK$$OKD70@D z{m&GP7|KJ~r7%e-6>uOgd;e{vy=1V6TeqMQLGyPjj?yvm>WVitq*ZI%T415+Vw&x8 z8+)3fn@y7#Po%{N-#04cn-Ukil&?J+b&Q*)Rxd|f|0o$Yq8+2nd^O5h@HUvZ3rbAx z%F`opiuVmTVS$eLSQ|Z0x6p#m7+YibQ=2>X=}|O>@nS9SOb5_S{;SSHkf=znUsQuK z#J_g2w*vJI+lv_Sbb#Qu_y^gr?`H$AkQzl#f6wJhhKbUL)5x=9`HdTyr}r`7llTPI z{%L?s97r(Pe>QkdD^I3hx@{xp(A|ZVgUh2FA zGmVO<=N}t$mqa6$hgAa2m(qlol@U^dhMiw5O6Ufau3YkjcKMzNhsWwH^C&pqunw<3 zGWZdFuYKD=ASY7VCj+bjqpU*U;Q(y{Q-UIx7@%QwcI)2}Ae>obxY@9@0!kVF8_NE- zCE0T?s8ShP`APM80iK1oC-gSrim)OiC<&&48cY5s;73YOo$B|6q((tZ1JwWRYrT7U z<99HkLw8Hrfpx97+w>*-Dz6kV9~+Ap6-ocn_oH8gKDMN*W&g_>meT*S-IYXSm*XwF z*B!-Ib)l25C$h%sp6X30lg7ie+m3~mLASN%JN^;Yb_Jo`?VZLoEJpQ3xD#Wmf zoc~-=29BH`z3xVWrf%m2(gOTl`X)8=eIa-4;3&=O{aIJbh$$kh_eeft6OBn0ny;#B zc|e@WaGa3~@^`Zr&}Ip6WgV(O6&a_c7(fiK2I~6iQKkPBi`vU)y4*U7GF}(6T!|2% z3Wh*e_aHdMlI>lOtcE=HEjOp+)1%)Tx8ev$W#lK-SL*Jb#Hj;;GjB$NU+GTkSGS5* zABE?+MaTXwq9OXOKaD0K=iYZ~etJ9uTE^p1w|ntS=ZOuK3xJlm`4f$53xHo^zT-Q3 zsudj)#S4#2Vc-AlD)E{)Rw=t37n%_M>+>B3oCMT1@)iK=Hs{O)`b06{3PLU@UQU{y zpjO|rLjPr|TS427WG29aeUZ&+P3-8tQ+*Bg-~nPXAHSH&-PK!=s3UO7JLEPvseRVK##C?4xH#+tZbLDACnZagNzOx=Vf76qAHs|9oMC z$2?D(ut3)WC@0rJ$2+@DtT8idM@^2FW!8|BPMr!K15)U^a#0t@Z_>R}9Su5;8uu@B z8;wGG} zaxzZuMh~-8EBHdPli>7!Moo_<3HW_PL4=;d3zAVa%Q zOmI*Yf&fg7GCmOHApvjlq{EsIAmF;UVeVK%4vY0LvBSi{RSX*Ar*aok(QTgkj^hGHnI=;rx zA*YaKJ)3V>%_yQbA5@>CkW~Yl5x0kQZGU52|De!+o0K;em5;5~Q(MbjdiFksoq39^ z6()Ev!FA&m*W_kC;Tg^S$yLqH? zG^9QI^|i3O+Ygu^t;&!^~b{C8xTX60(O5@$SaRfm4(irJ{_smHqPU{BMqh*@*+Hs}3Z&=2q~gF>^x$xU zmhGn|bGWkJ>k<%fx%RkgKOf)yK$pVtes?)6*B551O+-Lwp{sRh2)m#n=R(|*Of}9l zS+D+7Bc7TvtBMOG;U5ozct0jw_|7|`j+)>UaB0|-W>#n)xH?Zhj*Mtj7Kv>MqIxem z+pti5O=?i-+g+YyqNfS}u9Ch0MKFmSS;w3FE$OYkM4g*dx-13~A$b2jkRYZtZfoua z6x%6YC{Cn;P~+4fCJKSDXWtN7r`s#rXxm7u59X|q-So$ja6@BNUQw-MetlA`R3#V^ z5ImXwx^O}${-)Sg85*((GX-YTWB);^A(6f2QV()g{>CZ-4qi?M`F8IocW||@#+L%g zYqpD+#0Wo0Yo<(+BJ&r#=v}1b@tTVrJcjcI^`aiT9kbb_TD{dhMm+ho6f9S|`e7)T z-prQ1d;n6gvN!D1vAtueAgz41b1VGMBs;dUOFzz8&K8$3iSPY+Fo`rmuWQ zUsW0IZ&oLYk}iGMt)n2RtgS4Tkljdv%X?<_f%!oDBtO&&@cTnaEn-8Ue0PwpYwC3 zqBD0^zt96zqWK-(`DttZFkz5f;sS^P@+yC_kVSl7Gxsu~>*Yr8ODMY9_2eM0>rqNH zpAEarit^TiPK4L!>3VNYD8q1WO2)7*3Vj4Y=lzf#JWE?;WHIkFn&RL_!yI*DO`hXb zPh=PeEp636>GNw+=vc3{$B8@niZl_Z5^PR!;?1s-3=&Ne+x>-`b-D~K9bo)aTi%>1 z#o%%v>b41ykU5b1#iiShOT(8T8M*eyw5q2Jwy1Nvjd*3L4 zczkc+MD4C4F%5ke?l$Qbe7BV2Vl2S_?RJ*9pZI?QHSY`lqLW~Omc@wh{&|q*gRuz=H=J_Q+ zrfvQez7;L_^IYlX01p(ey(|bdet_xFM-qGk0EvN*FhB>U+w;^bl02THk={kXm zniS}8XctYc^Id5@+*!G7kTBW{)->W%RvNgF*?MRDQL)M*3c)a$?B+c#1Jqv6M)b|v+($9tuY+8I78y+s zrBj&(o6xjBJ6+#vTUEEEWc$n*XbZpQW@heKbg42y{r#KJn+6XnWq^X-naK`%mcmfY28aZNb_Bl z_pf(?Kjt3akgpbB=sRwjzq$}f<0E{l5P>J?rrlkHEjh$7x-5!uKxg$ z^`dK#=gWV)3leQ#;-Ao9+VxxR$zLc=tBv#i=V|i^+olcVy#U6F;rh3l@T{o zFAouAf4o<8uOiqpRSyk-pWl#K77Ap5&D1L5`YiXSo{!~yUEY=EH}95sC_Dv+z2Cx+ z^i%RvS8NTlVJ}Nuo<@2ZygGDmaC$KHs@Mg_)}!{-cjogy2-QV7>rxnG?9^XA>h`myUR)8bINLC08>M zJ;>PzzlDl-Wko|y6*)X94+=YOGMLDEm_$RSVMbK$ktXkq6ZU!b8b_xLtz<=s3i;mq zAn$ZASXB0IWaVk`*S?(!b0xlpn&K%$Rd?tiMH|C67L9V$=bu7gK*1FdvMyv^b`$Vy z8H(b&1LRLV<1Boz0P20D<`4703Md7dQV)Ja0rsk>i1+S`8-8XFn*ST;;t(I5!VugMl2ppr9%b!L!DJ-9Av5()ZN7KIG_T)Hl zPvh!&;Ws$)(oePub>m0PRIUK608)_lws7%e+lB1XB~o7ajhXkBYJ}ky0gzfkUw3+$ zsbnC9^T45)!hrHKLQM;>$et=y>?3)lcaNGEmKs&H-JJ8`^Y#ZFg~YyAO0^Qi<7N-3 zd&k~)Ez`!<_xDP{l>u4Sc1yClPruQ`1SlDCa+v5Q`#W0Lu>b@hOh!jG(DZJoYJr=D z+0o~##~j4jAl)hXrO0q5n$Dl0DxOed!9O>iF%Z>5~aHsl{+A5l_K3DEndiHJWHo9?*(~kYJ0Q)!^(;O!nU_- zIW?y|&XRj^i5Qd}dA+@w*520h&7Y@0SoO|9YO3sNGy7c+b}Fgy8F5c&ooJMnynw`K zy!nlf{0C{FU2Q{}ik1mBEJAQO&WU~*P{2Uu2RjBKsu)(@FaWGHFy=8e`Z2b^ZNCJX z*uSfy4+Of-1|~jyyM9>Vo+axjM;WXRVD4gsUt2_C%kW*zuAMsfT1PYo4}KqCniuS% zhFC*(l9^MGnZp*w8V~Pur(eM%vZ=~Gxl$^l-f~m>&;l=*1&Dv<_f%sjG@}%8gOZ^v zz8N#w8KW(Jn0Hgg#LtSw*d&~`sAu(3>YJ*eqr-?#aElf^#B@0 zkm^iI*Ka}WPo12c?T@^iC;=Q8W1Q);v9anB~~_e&or(f82a`f)2v-TTp#n)Dz3 zbWrhejk^)$Y9I4MgG;f@bv5WjYUYK%VlvXysl&R1LUajf8s?59I<|qsfZ>L_Fp%n7dz)Dt4u+$>-a+K9+9OlSKW!xsmKW`KhA&K&~Ef@KOnMoaO`S7;iLGI$!{*d1* zm(lm^0>!sselk8>wLdqTab41^$=9y)hDvh>oy2^wI=w+%_zVLTyMFVPEyxnH;7h0t z)z0lkmhcp+Lp8oX+(H`M%>h3FV{agLj9jozCjVRXcRxmjnh1oxd@%Y-KA%GgV5*Z* z4x6An<^15>!|j}HnLeVW^&Qe(=s6Iw4LRC-ICYR}+#Fz7rsnyfEe>_or-1%An9MAN zR|^Pu+=gA4mtGIGnuaAYcv>+Ue>rpL*SR@6^?j}AIYxqcjwzXDNlJEq>}57$7g{gP z3)6zc8_7p&5=KGAk`hR3!y)ky0mue{iKy(~pF9mpHw4iuUhGb`0#0*hni95#Q0!gl zcgWt6qaE+NPt#PNar~UI`gH9-c;er`s^*^TxDLA{MM8L%Pj+)&4p8M;8vKom+myI6|=}HdE7bsGA9B>jgepp)E2YE-iGGDqgTfdf}5gf zk06aB=YpU-Y{1Xq!U}1)X`o~bb>L6iTm`2dPo=$Ycff6J*5$924;NqDQLg9n$OLBX z1*r&`NA$=r)yiYL6%u5#NoOyeCrXj%x_1u{?Ok)HXo3r@B#K>JP}b{hf;8C?YBgH_ z20|9HJZF_}oCbRqc92g^W+_H0$&+_9eIrf~c;?LaFB)uE*7CBS zxR9vLImRaep+dV?dDx+-@;K4`9(zfW`GB7-;Bq%ZBUmLO;%jBD z8LQRHR$9o>&~16?r(e!AOpziWN6W3?7t~Xg#znRD)jsYLccR#}X>reEr0Jz|$%Cm+ zItV|(`hm;py&FPO`LrtoQNE86oS^FSG-o zIy_3Dc;ox!NDj&2^zFfr)>s>)cgN15m-0gY^Q(K~k7)rDExMj$w6@Rps_XM_Z#=uX zsPk!WiZ*ot?Fl9M-6H604VA*~XlECM+|J#foEZ-0M zYW~&Lv;|;qr?=z0)StDu{b(GrK4Ui|`?ZWxgkdYa7BtZ(%YGsD><_O}Taa%7j1^*tFGE zjaWH8J9w#2P=FD~ziK|{(k-weKbx4wz%Y!^QYTbV3iA~tkkLUY38kmrH%(r*bKq6oj&Za%0V3(#FZDhVA#@?xnVYH^8O zYQVjh2Ol0v7Aefbowzx#{8jMxv>48JELjji7)ahGlyGTjP1TDTE1r&(p*U=(c36ct zNqcrPHLmoB_tQ^r56e%(1Yi8BX$bVSICv&{+vst<3LCCFuYR4P38JRwMqO}}6%;v0 zne+Cm=UxhZ6wZn7J-ANPNDUoBoh_Ts@yr7_7hp*$!NuG*Q)?oQJuUw$haOUJt%ye> zx^&<2O*7+XJA*YnmTHsi{>l29lnD!dqu`&BEfghvIljU^+Lo$_aMA+BzUcCYe;S%= zj_l zE!eb%_ohuyM^xMA<6!_}Mh%YRtZhVo^$!MB$#UlYOl#0f(B!(vt;Poe{P2`NKOJI` zb#R$L;BN68jiy|Dv*tq;O0&x!cNf|}C;fY@Ba!AF+gJNypFGB!39W;q#y<7O<@&mt zdFJH@C$*JuXGYTU`;FZc?uu+kD24D*gVwx(EvE%t0k5*g;i2*?V010RUsR zw#D|}vj^tG*B>MYVOY4FLu(3h2jYWjs&UoF&9`!RbxT4V8$?W>yg0_blj(D3@R{r?yBzP~r3z+mp{&qO6Boy}vW)9S zm;9RxG4KU&0FSsvZfD?6sw@TnexnOkYPL)34UeM0Riy(_=es)hkLp%(XwR2Rjhyve zPi2FuKaKnJv)gN>*XDi{y`iW3ql;}C;?S?k-+)U=Rf5YZC3AwaDy-cuqC%>v!#Cu=Z0mMpcI*>L?|VpK~;xS&EKwY{|FYxI&JV z2D#sXMs9(o~&%d5${lQDs!1}eFxP`lSbe~ajfWVe>Uu z?8Dvcl7TaXpZEkH6sB3zoGVBlE>rOR1(oMZwPFr?^Q}8GD36dcm9`%yHVnp>t<`mn zFSvPTHQ8RpZ_^~acwYj8zD_s6l-vA&?Y;Lum4Ey{eijZ6j@dbgb2w%)6S9sy%LpOk z7@;B~GwU3VnRLh|E0rV^mC88w9+iy9UZq#|Uf;|6^Zon@pWoiUo^##K?RKu`eB2-R z;oV|1Slnt#`=cBEuvK0Yj^pLNHOQiR%NtOr=*?LKV}DlPmP@V{-Re9D_tFvZ11ypExQ_n>ifPD6<6;}Td-!tW=@jz zljL|-fAHzg#SQw@E7G;2*!(GW#8Sbk+n+>BF}CKf;ulILA=2ZP1`?AQ&mOD%`w9Ks z{5aSFb#`f=r!5o&VV7TG0i}-~NMM>9B3QA=5RtbOJu2Zr(_uO+`NS@G!$#;_!^xd- zBVy0FmO)BHn4#j_XIlr7IIFR|srp(AImuSp7DQheB~%a~BDj&y%7oTtW8STif@uF2 z8ka5KezC7Kz<2g<&h8u{XC;6zi_wbvY7$#@6{PL_(*Y#Z%fzlTJ8}7b<_s^#HK#lk z-S^sDqf%Z=tt4&L6&FgpsV*GiK&Qz(t!-5MR_y4n+y}W?V#><{!Oqb$I^OkLh0_!j z46h(tVHQI1+Nn~2_gtvN4+NO3pOd(Nn}qmqf}If*wh_K%o#3^VuR#;jt9;As@t}mL z|LIzT(!ms>_E|$~<~1`PeB=2^DxmggP!UuPn*IHeBL}9?N1;gQF>8FIEP)pJMjqF- zojljoM>$!;N!gJ`?RV#Dt#15v;Rt!`GV4Wn6CJxCrrpwR%-N#7DhVJkzc~vdPnH~JA zKq%_+&gCrG5t-dW%Sp7^15Z@{{vPcgxtX166+j)r$zk#i5ULqL03b!J($S zM~|~W{%X|S8-0w#mAqR%7gQnIsNUFS2Frx6YtVsmsq~BmEbO{G2bMaBkjuC{er|o* z+D*|S)#J^nVfRi-Um;_vbef{a4v+hop>vwkCHpY6Mje0W!tAeU)s@IZZ}vqBsdC6U z>?!+C2_A19lbhPVu}kEtc`wt>DCuaST{BJ%wh~LuDj!oLR}*0ak>MnWl=cz?Cxl&1e84GI|0{n zU_pS~%;Qg7mMKYyof(yZzJY#HdN268?7J@?)Js5_m(}NU3ff&|?S4YJVbQg+)lEf= z{I{l7bFS_p>F$TKXDYY^E5Mrn#q47Gk6e1|E7EfwS$9I6mbmDv+RM4;9K+&vKdUfv z7u3I$(GZvDuUPk+)M#yLkbbHD-}-Cy3`UF;97fcA4tE0k@vn7S+$zB`=o`%amwl-r zl7fA-a#4DfxNVfqup#Z~5Ij^5We2ITYf>Mp@Bx4A$Xv3N_pU`*agLpCp?a=DKtH zYs;I)XyF7R{a6)vCBD?oT_d3XiA7ME*22A^aSDVWt(C)(0*q4)4-KUi-c%l*Z&eh?IsS|p+`EB)OF{hW|zYQ&h2XPM?^WUVvJt# z`KcT4MA=%?AF%Yua=h4mS@{v4&pj+$I{oTvR;qh+)sGatDOV-Q?<-9Q{I|=_>MSHf zZP>nFF5J|Ba=P|Jv@`k+_>2V`3xG|2xw>aovN zYR}$_xDld8;n0*0XgM_d<#WR~V0LAw@Oya<$edapiZ}B0P5NHpHuWNO(A&|i_K2CY z9c6+S0QC;b96gatQR$td1Qlf};=`;nN$#40(eW*{d~wIE8l$`G6*UG(RD3)RLYTXu zZVsoD*x)*s{taT)z2e+kv$N4IKniBe`NEcHF4?A8Mr1%NlEjqyf>$AfSHQ_0V@`^!`IsEy*PpMoNuYpuJ-KEXZ&Cn}G9FT*2RjG6#rhqoiDi07D6RwNY;9sTiktbX~%gHa=1+Na@cvq%G)8BiLHd~|`&Bao5!ysg_L zX)@x!-7}P4%bOGuGH)*vMIO;}5j<)=*3^fZu>YVb@BZy23uD#>h{)7OJR>@=ifo1H z9k29{9L5=v((Yw!y z&f6AJS(=6YswPsz0Ou%m)M+h3_QLVi5BNb`D`|qkkmYX2wVc^Gn7xGa#&JEgzN5$l zpr54CUR5R-exk82Vy^2aM|Or15yH+MWW9%D3Gr(u?b(|dHwVW}B2{@w32?ABv6VW{ z1aO4*H(HQjeNY!E7@#K;_Gm;8UjjUlC1%C_t(z@#tEUZB0o&%I;rkD{4yQg{lo7Zy zy&x=dX>hzeP09#|%ci92lraV4MepEHv)mmQ9cnz_+VHJ86G0Wc#8V&eWORFWb>O7) z?(~D4-5qmuQy1&C{Vg7;3!9m1oJ>jJ?nJS)W)3wp&Wuq^df1J=%aH zna75YuV*enrC7C{v>YJ7kz6l3SI@U1NrJ7_`YjkLo2~t`Pl$6>kh2BD=|9C%gQzoOYThdiDo!pM?lEaI^8u%cuhxI4Iu8CPMqavr}9}f16XhjPP z789!o?-peO`tS-%Y`hM|$HwIjPbxJgO~U>{87MW*W$YjbU?Z=hc9yvOZwUB@fPY%D z+&&LWP`7E&QlQsgDm0AxL$?_fFY5Ei;h`G(x>6 zQ;Yv-IKKa8qQ?HVWsv0#k{-^V58jdgBw^4+s)}l6Mj!bA$%kzCb+It zQCizIwdkH^`w4iSkQq2o-aIXSE+7qs*%RlSzn9pIv`WA5kzq z3AQhAip_3GzVr0$1+?jPlYcaq1eeb_VLP1>bpD#)mgKJW+Bmp|&HfAW8xKy_sNr8; z^sM#2T4-88yz4ekyFp26mS-eEFphEO4!k50So@E0!t>e$So6tSK~r;B`5*jqqJm@U zWm1H@=jC#Fx(}5O$uiDv0f~o3rNKDOUYMCe&8-w2(ZG3DLTo(g6<%Vi^Cm(mk0T-e z;h}M{a~A&+e*Di3Wxjq1lqyW0$cK8+Za$?AwK=`(Xf@ZOOtsEh2)x*fYo@N~Bb-mj ztPpq$suetUZz&zzmX#C#Robucq~<=|e3z1bj{&HNmnYPW$z1(;)#G@OtEl7@;ww7* z__v+_bh>qW;=3wdhdu--sT_hw-_tSsHN9IMO5p;^Kmn?t)Oqq7VL(1d9jkWl6C`F* zvpfSaQ-G)qtcTGfmPL0o%tg5?GB>IVAITCE&x;VhYTVJSFWmS_3SD4d>OrWM(gsnfvI8hupXnR137}F=@|%aF zwqeeYSzIetj4k$N_b_GVQLA%R2N)~@hgah;+Vn zf{%%K+^g1_=&Q}8$L04a_|D)`X^>HwO?l>bw? zaF>YSdovH(t2$i>)gEqrwZs3Vd>Z*r#R6L+@scnv5t7GfiP9Jb#iw?L*Man6A7ZYW z-zK!H^p$i7F*my%9{gCwf_OgRJl)h<=kPjk*mHp!Cso5(Ja=PKjU{ZkR+o6m=@J_z zHE!nL2+HIO8~7Jw;T#^pivKC{1%WngpkFG=0d2HyPXe&I16yp|6|AN3By%$U=^xS% zphr{!#{>I0UbDU6JXmkK5RSZ38@itEGgn>kwpJ~HJe2y~I+VJ>K$|AKqbyRf`0I_A z+~tc4@M*Eqx!88q$^qA}vs#YH^M!ZhMz{>THcYd+oz!P3Z3~AfvB|7|muN(j2#?Pd zI-ZWN`l`t%E!Wtd^BvS!3BFG5YgdX9;yy3@b-@?umc(Sj0E;VW48MS0guz=1(rFkL zvINb0Cq&Rj-!4{_Aq|alzj5HJ1vX3Y=72|#ktRT_UwCDJika3>0eVI@J{w~nuln7Y z`p5#|s?*Q{dE)`q^E=FH=>4-fI4ynlzt#e#IQZ&(%?x8ljDs-er4~3XUg114g}dw3 zaAbnBt^k;)yT2pNFDd*kq*H$|b;dWDJ9@d}Tu9-VfV$s9 z!Iw!v(Rb*2CPkWL`X;>w)=#8$4eKysoA>Hl!J7EJ;v!y_48=*O;flNOdjgO}(y}F{ zEc0!3APLRqpCb`L_v%<=nGc$|xuzLqFp(ES7<<_ZcV8J+(IjDn|3D8oXR*3$YqC$n zx?5=Ini_VM0}$#g0D)H6W>6mXz-eOy*cyFMu>OX_`l46jq!IOf5vQB#2ao=U$<6=H zvN9-i+_N_DX)$E?W!YWiBqWK-wP0?P0(@soBq%yvJO05V`zsy!m*{g8D#wfv{ImsQ zLKj)%>~FnURiiBDBnigmxV(_n8+X4^ZJt!vfAyivZdQ3_d~}G=P$Q~Azv$uK&jyPl z103Yp$H7>m{N8YY@s^s~VMM*`(qd_njJKSmVS`}tNaE1$?Va)AO3ISxE?3FQ^^xtL za?UTR=qBmyy`O{)%acb!Y6(|v6rX(fSl_1)GHD-=k{zYsMaaYDzm%%k}=hDrZy?05wRqdY!RXU#_vO{bI zcuO>6SzH_hclweXGic}BU7xRk@CoL0=kTx7enH#A&8lD}pcQWT%3Xf05p_VSu~ z#D@Y!1kZOT^_D8MY?A*{K5S<(xAO7{_Xj)KH3yoJW^Lw+%t*?4d;k*o*ryEYly`{*LrM29~{oKI# z-MS^!nYf7MIOh9`r~lXlL1Mw*gHDO)pGFjjP~DI8Iybrc;wdpQ@oRfb(#)f3^B>tg zaHO)^hs3wVZ%-?dlnMfjb$zSUOkQmec!Fxr-xd7a#2BO){+6tWZm=7{sB`@LJDH(^ z0DRN14A0`BhaYOR<$Bcb|6}&Wc(Urb^3kz<98c}Vs;Z%A-; zZ%|77#dNJ%0lmpAI=;l{&&~Ujic?ozNqp~^)^E$F_r8=t9(c&VFR%Qt8^W7~ox5c! z7gd<8LObzcTw4QI9H$7FtV*}+T~PEM5W`ZkcmCCf3gGq9qt~s+*M1tjQ%|}($18K9 zEK~9=FkFPj@QlRni+nI^9+qv)b`@{ddS!H+} zF&-2e&_qH`ojy-)ym#t;k}L=a;`}&`4_Wi}(Z{fdx*+qlT7B@y$#&zOR!WqSp{w$D zD}LkSmQg`n?Qf`u!_#FZ)gv`51Ficu9*<-%4PT+WnYTaL@cxm&8l>pw_x89e0k ziBbqnh<Fa&l1^s$L}KKd^J;^NlY8_0cV`4|e_x54@`Jki zo40^|lw`TT{@JxQbGZX0%mO}S9T8@35QGY3zSP`C8T@tSH!mEM<%=uJu&yWw?R8rS zxu#)gY`j#kT^*w6&nBom*7YDkt5KTf3yTo*yh1$ArXnWZG9T$dYaPPtfkj*i9Dcgv zCeD5-1tUZd5a+0;5x*^=!uj9Rj)_7kvQO`Y!j+F7g&=r%r#SDBddNMAFu})oqax1h z^+WGf*XQL(u9n{4wF)<-ydQLI2`WKc1OY{fXX)_04s8ZFQ{DRMarT?o(II2?jOqZO zQ6>KaANLudPAgrJQ)+XOHadowrPLkCY*zSQTS7ck0BSfJjh=5M>cmJlxbZ%G&$7pA zhZB=dedgOS=8a&KPWJsNI$I^AA*#s=*La`X-xhqeRE)8)MxFm{lhXQ7jcX~({Kdij zi@t9=T`<@hG0l!WnWHZZ^cEJw!P-tqhRdY~N0aLMt#n3zsKinOIPww@oGmaZNM1!gX1msL4>fgAD2(~tG1>JA}KfisO z|9;Tjb`*P`tF$(o&&yQA6KicH3s$9_hHmyYKw0p$VX~npL)|=G5U_8v0E&W{>s7z}s#}f5Qku*)8SoQLo zsbDA?O{~j8rNC!mcT|r*1jSXa9_09b{(Wdn1f~)_b;JH8;OZUq+vW2eJ>wFPi_gCI zspBT7b)(rCEcj{vx+uw%w7@BPIe*7#L2GvQi^uP~fi|xLF0J2p#+&nIpE6yr`Frv^ zS47N%M=$lrHS52kh}F*J_m`Njk{)sRobUTmgqCq2r}^I=-$+~oaWr#GogN4^C_SM_XLob&e{{UA`MX^#y@0E|QS4pEAu_5iTasKM zHN#?v;6EAm4qC-C52k%k4(d*0UXJsH32R_PU{AsZcI~BLzz{T^9!jYH+fYAB|Iv2S z>dQo{1@FAv13{V`A=zi{1uv3#W1pmvTw$SKn~+`?H2VAx=v6zHtJJYELw@E2J~%ET z6mk7$P_a9r{=j2}Z&YrDPgKk_Ty{qA*8cT>?p^+dYg(nH=TE5dsd5_bItY*dx}&x} z@0I6X@^F0gwT9C_A|BM2irD@sEFM&!EUP{8YZIHlV{vWZm8qHFj$ z4Qb0(7m;-1GE4r4x{g?+-7{O(euDyyol>0A$qSK|kXH`H5x>0-;Kr-TSrJo5@j_ad z$J-g6%W8I5iV6)8EH+v%@s=pe^X`CM z6Z)c`nIh?*Zsj6L3B0%HIv5FEWC5Kn7itHRrXQ;2KDqvbPrOq)cjpCr)NR2(9l7xT z!I208%fo(4c^q~})l&*Cct6Yqf#EDXRp`4if>I5W$E|;@ij}@H7NXU3Yu6yl ztyf;S4d&X`#M$@_^yZBufwdB5R&M;Js{Ob6+gjK2b0~5kGllkbFNO3XyT`s2CJT|# zK!26p4NaEmH#!*QWEfn>s9b6{XvVsXT5&=R@^B>DZGI_w1JdF;D|5&=d$yn+sN8x& z)Z0M!0AP5s^Bq_6ubFBv_osaXNJeN=^@%fYi7Z5=?BA#Q8kX`KnQ7OngqR?1gD6F} zhx3T}TXCKv3zJh%nx6STV*8MD=Wkz|q!j)V;hU&w7~d?RRqkPz$Sl$BZThkkmGiZ3 zdAy&##lem?L$B$r65`y?w_P--85&f;FVQ!GFika$tL4O241921y`44qG|2zYoH@jpiYHk#_1^9)OoYQhRAqD4rpI@8ndKH+1%u z&$>y3!o2bb3bKl)XY!y)960qpw*%V5iLMdE8{O#Nz9h64oiyf%UE#2px>00 z)R!7&S@L`ECu>xXy-E_EswS(U3!gf-7i@4zTaS-aXtP8meQaCM;lgkW_dXl@D35ML zNt!kjX0GbbJgn6^ZCvag(R=Y}Ffub?>bKU0py*`4;|3EeihCsCi%Y({&!;MP>JN`M;**@dQj?C}9$QyX zKhJma;- zVnNuicMCGzs2s(XN9wmIFil$WIq5JjR)Lh5x*4<17Uq5T{mbq2&rpvq_n423Y!jmsX7uJWrsl!}y=%1EqWM zLs@aqZ^TS&PY|kO98`oSCa67AsM;TV7RxTe&BZW%f9E3uF~3z!ZKZ}8a5P|_)lhOV znnC--may7_6?*uQetLW%b(;ZR*$TR`1@4;X$Xsxp(O??UeZFAY$t@B;;+%!svX>gX zHjbdCcxZE0Z&Tou8`SPVB=N?{^vCAD(<6np_4GE$$KY7SSHDsSwE>nTc-pxCS}5Sp zbr<>~Qn_VL<|Y4j`N-b_*%XiTW9Pd5=Ga8Sf91!AbuKoGSXH!N-e*$zp89})GG18w zY12!ly3xS(fkDJL`w7!Be+pR6T7%at6maozz~8iH|d4C8LgK@t%}xj>yjCPG!Oc+MF92 z`-lhU*(JK@M$Jx3NQGmeb~7@TH2zn*)XGh&UME7@)0$-#^@jOX0HP8;lz6i9hr!1| zlQo!0A`(9V+eq7B!^mtwi`!)W+To)9gucuV4FxL7BZW%QWxI?|UZ3I!_e>8HfRQ2C z!mH;0lT$y6B=_Av*US^S?LO1Apio{y8I!Ia@(7;qf048bJ~J;SxD%frz(>`urC>B(pyu5KbDyVAur8R{DxLM#25>)zmD z>p!e$T`b4nN`}!X?D!2Ox*6v6u)dQfc8Ep{ZTroROK%0k-C7rpwA@C&rFnPN zeKd>?0WZFyccNxPZ_7RlqfYHpXg4jERYjomZEdPw;t0N@huLR1)!F>=u?(TftdVAO zfKIHvpv0M3h4J}Sh0Hj~IXua~lND6BYh6DH*iNF1Qf7AziS>jS>h)vOGSP~xRgK5bZc;X(KkLc{iJln2IG;}&$P+B6%k4KNJZR! zdmvzwpo{SN;-a!0?~3nHzPrBp24v-Rz5bh89F<8zEAwTud zH#{)G;Nd#;*@-4>7V1sB98j)1YWa=-Av2blJX665(H7>o<Ze+4k;? zmMgUhDei24aS&#E1^PI$gHF|08eXncze*-t!yn#0n=pa!yvS9BvTMhl!N*c3qIRbv zCb^$6w5nwr_HqNHgiY!DB48hKQL8c)!NsP5BILPA`foe!l2V!FH+5zxql%Ld?sk4Q zWS60YI~h))z>7*>BPhc|8;vM?w~?BPH6ogD{uvyNM+Iv0c~JN+a6h@A_8Tp|`1K72 zQkFNGp4l94TGT@Djg*1DJIP*XVKe4s*q;*+Ay$!JadH)bZdUyCrvGJp1rE z5rj~w*t#r+R4P=FXgHPjALn02l-Q@IkT6|E18k;r0g z&kJUzQ$>zjDK7YA1baOTJ&Bii-&>Tr0ZEf1esren5K~b0EXkpZ_KtI|gz4?N6v)g@YLK|H_m@2~c$O3t~( zN{Ma%o+xFP?Rh^SAMGx$(+QdC3jmGwpR)y;-E}m5x#?9gu^PU7Nun$lE?9_Sz5k^2 zQ7`1&UY-2Kd=)*+6b~9kbDOEm-PV5|vxQA(8rD|yRE4o2wy6OupO)_>DZ3p#6W9M% z*mk^a%#VI4gh?c15h$G;jF+>|;X597B}BiztmwU(81t0}*~4^ETR^tOw7>4Kex{HA z$Y~eh?^qbquu;++)4VEjdIpQF(M7J&(Y7jte^-cE-Ope3HRUC}!VsP(MDD0JKZ-nd z{IJaGthqf$Mj-pJ;A;W9uGAjsoHuRLJ;-Es`T(l##<{N^FE zx-CnOQ75&F(HRO>*W#G1@&v7f|Dp}XEH$Q^fp9P>NCp|wi%YDxZiX!zXJ>6jtAjJ5v$JyCXkm!GDwDgs(& zoqCr|<@{zhB}Q(#3rh)lIDm~{X+<~|;=m6i`#T%?>p^I{9HHYM&mdUeBl}m}sVsQ@ zJ1;M7zT`D2)-bTmMt}UYAm@zFc4dcFgm>N2Cxcy*1u#pkJwzl@cWOR%J5L4PyNG3< zmnpo9AHzhcZ*{<9k{`Z(VKT3eB4I_QBkWjZ-#F+yV{>5h8c71sB-P||G6FGjn2XKy zel$&3fJKf4;3wh_H-e#$aUc3im+8*Gj=bb@Ke zNS^*D0#NoEIC4fT4kfi7HiMuOyXbUqf5>2vT-2>C(1*Bt%)?yGM$ma}Ei?oL$`P{DsX#RHW2x zs=bLNDTGJ*h3t{lpSUj$vA;Cgn>}yRj&<*4c|Al(ABx!F^YYspEG|y}RL~@L;Jae3 zWTkNJkkW?cNz`X}QDVc**=KNKjLzt*m%bAH?sI*bG&^ehv^tTBl}~RD1gm2VgQYO$ zWTrg$7U;`7AQ+O^r?Jia_kIgn-Sar*D5r~^D!2MFW74GZc#Jhm7-E%EYI|@aV)c}M zL~UEaNskus+sXN;_Mg{qIlHsOV-Jl&uf9^>=$ish5oLex$OtCqlRq@Mwlf)sYSK}l zM*p6CbzK}VjIe)G?Al7p(l`2$MZ(M!7nK-Ke49?!lB61I#YY~pO|QKM)_p2X6E3Y~ z906@5yL>AsEC>`b`}cd|?@jeU<92leE|zNy#!CkIYzG5Mo$B!e^EX6YA-*$H)%|o} zVlT|epmwg5OZEyda6N+4MI`c4nM$bnOqty)&ef%t>c_v=-a8(?7u0iF8R#H*ZhUEo7L;a&1T}1#2Vd=q9ZA1IFbtD*>-8|B!;vWp2<3c;+c&1xN3Ncm zv4#aP+}e^7jrex<-!r%?WYQ)2*&`#t4@&t7CmgPy#NUC@O>@+Zel7xL~ z(c@Nw<-CKso5=fBj%p-xFFI*-)^tPV()`7@E?hXG3$htRx9N;YB#UUAx?u%gP95~G z?a@V0wV-oR^{$6X{}Te!|7*XA|EOtg9N1pinbubt{;f2tpUkOW+d4lr#)^u;+Zyga zYCPEVIb=M&O*=YqD0}esPNAuM+Dx0!Jpmn*Q@V(`42A9Z;HgLoY?G}soCRC8x_sDT zn|d09ls*);Ajk!T(^t~)K~+Fq%EO*#-IyDqhevh!o z9g+D<{c7)j4>VY+&ZF;^SidrzPFZFz&_FFO{r=c+fj9EtqV2mqF%jr7)jnl64_V$B zV;grb;?MO02B021($?C4I<^0F?Re_+m_58BC=k}J16;jNCF@R>8u`!YzBt#C_aKX$ zEW1@VnEa-YNny+~%dBn=&78o;m?+n2uM9iX14KaL@qNHYBKss5v8IMsJYY?jPmY5V zl9cE|5EM`uOq$ALs~vBn7%u&b*v#%Ew=M9pX#=INI~1~xpcH6rV2|J1#X0sEZZT%iy)JI#neP_a62Tj3h?`D$sRPO9Ip;U!oxlnh z(X^g(KmR4x_w?7)@vpbBJKI2P)y(SY$!f>Xksv=9b0QvSD8=|}-aoygsa@N4wVMA% zeNv?*OD92g&TZ$H5%=GT1Prbog1(-5XuN`_J+~TV3HQi&%I!*|XbV740ZEFkM7NUJ z_5enk`5agnm;0Y?cWJ@o3gUs-tn=3xO@7i^R1B~A)Lt=nLM-kQH`p{D9L=ApJ$wZ= z&$z5Eh{EZLXGR4eg7YliQ|VKPF5ZD`$P~NEMu4KU@<8&~<79^a1RK_(5Y}RSOjZp3 zN3}NHzjhr@oQP7Wxg+qdgJnLjgXjXg?m$A@q0N$NUY$?m{d++@ZDwTaGh7)ky`Xy$ zR=RpQ4NABdjP_V(_>RL&5h z4I_cK^!*P3==<7W^%Qi@{7$}^z#I=<} zQoj|e*2CmItCG`XR7Gb(M7x#2hNL?s?z#4yzhFUZx^@K|sKUx{lhbsDoYTzAr0NkY zjsXYLDLzgBiH#J!Skt%~f_!05a5l7nS8-zWzho?gZkaL#`wLv*b)t zSx$5CP5tKNH-oT!M%lF;`}(+DDlT?ia{3je%53lolVynP-|%FSIY+T(CeQKSg1LB4 zYf17!&Fc+aeTErW#-mA!!t~ac$=9aDI*MXBrf+5rxIpNIAs09`&VHuBKA5^r1QM#T3(KYzTyRJc|aVF?EC6>C(X;!Q;~I zZEpwq1C3fd6I<2oeUN(^%UWO$onl28NCZr4^7~W~D|&pf3I(zrT0Xl{9_AmhoUXC7 z1V!!!?H>06gcPm>5D@xggxIV-OqaUzX(m?yHu8uAWk8LQ`dAmkfg5U(m_o?WC&*6A zED_nL%>hy=#mmjBudGEk;C|l*E&Q;L5~I_M2n9XtRd-9Y$r_fRU>b=_q@=2A(Sc`j zc1wfl@8);Y=%|}ugx+cOnOEJR%zDrwnM$X&Mp`@Th1$CxW_a&steu&(+pq33>Jd1R z`mUsgMKTF6rPA7hXctqws~g4mQ?KLe_`hL#?yU%RKEy}h^Nj#fg118>+iR${?w~40 z%x7*3odOb~QQP-d-2LGw;!RwF65jw?b-)HL=~1Mt3rzaxbfNJmv!eQFo&VH#uYdKZ zzhd_&MzBf}zLiSb%tVRP$dA?LkO-k5Np4491VCv_cfM=Vq;dbWrP+Xa=BZp?hMIC> zyopbU0iOaEWtjm#57L;4EF7G43Is0|{Oq7an?!6pi4NS}Jx?;nRE1x6N)S*%c13A& z2r&2MDtI34@Xf$OprYIuvGqN6lQuSuX7D$9AX|hN2D}?OjlM=Xc^C#Xwc|DA))9@W zJ3U@4`1$r2u(Jc?ZiWLaq3ma1o& z_`i=V11+_}=oo<9^S_V$?|b>*$?*STk?ft0ztMt#KppT&?H3tf3xK0U;qFB literal 0 HcmV?d00001 diff --git a/docs/operate/mobility/move-arm/configure-additional.md b/docs/operate/mobility/move-arm/configure-additional.md index 3a54af7f35..64fa92beab 100644 --- a/docs/operate/mobility/move-arm/configure-additional.md +++ b/docs/operate/mobility/move-arm/configure-additional.md @@ -148,6 +148,8 @@ If you have a passive object attached to the arm such as a camera mount, you wil } ``` + {{}} + {{% /tab %}} {{% tab name="Sphere" %}} From f5db9b679a87564a614cebf275d7caa2de5d257e Mon Sep 17 00:00:00 2001 From: JessamyT Date: Wed, 25 Jun 2025 10:08:59 -0700 Subject: [PATCH 10/14] Fix gripper wording --- docs/operate/mobility/move-arm/configure-additional.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/operate/mobility/move-arm/configure-additional.md b/docs/operate/mobility/move-arm/configure-additional.md index 64fa92beab..74e996d18b 100644 --- a/docs/operate/mobility/move-arm/configure-additional.md +++ b/docs/operate/mobility/move-arm/configure-additional.md @@ -31,9 +31,11 @@ Configure the gripper's frame to describe its position and orientation relative 1. Select the arm's frame as the parent frame. -1. Enter the gripper origin's position and orientation relative to the center of the end of the arm. - It is up to you to decide what part of the gripper you want to use as the origin of the frame. - It is common to use a central point near the base of the gripper jaws as the origin. +1. Enter the gripper frame's position and orientation relative to the center of the end of the arm. + It is up to you to decide what part of the gripper you want to use as the gripper frame. + It can be convenient to use a point near the center of the gripper jaws as the gripper frame. + + When you make a call to the motion service to move the gripper to a location, the point you specify in this step is the part of the gripper that will move to that location. {{}} From 6fb97737042c75d85975f94208767b6a8850ed3f Mon Sep 17 00:00:00 2001 From: JessamyT Date: Fri, 27 Jun 2025 11:42:55 -0700 Subject: [PATCH 11/14] nit --- docs/operate/mobility/move-arm/configure-additional.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/operate/mobility/move-arm/configure-additional.md b/docs/operate/mobility/move-arm/configure-additional.md index 74e996d18b..d98017826f 100644 --- a/docs/operate/mobility/move-arm/configure-additional.md +++ b/docs/operate/mobility/move-arm/configure-additional.md @@ -39,7 +39,7 @@ Configure the gripper's frame to describe its position and orientation relative {{}} - For example, the gripper in the image above has a translation of 110 millimeters in the z-direction, and it is oriented along the same z-axis as the end of the arm but is rotated 90 degrees around the z-axis, so its frame configuration is: + The gripper in the image above has a translation of 110 millimeters in the z-direction, and it is oriented along the same z-axis as the end of the arm but is rotated 90 degrees around the z-axis, so its frame configuration is: ```json {class="line-numbers linkable-line-numbers"} { From 99be635cea8c99aaf615803ef7125ac59cd6a657 Mon Sep 17 00:00:00 2001 From: JessamyT Date: Mon, 30 Jun 2025 10:43:53 -0700 Subject: [PATCH 12/14] Add implicitness to world --- docs/dev/reference/glossary/world-frame.md | 2 +- docs/operate/mobility/move-arm/frame-how-to.md | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/dev/reference/glossary/world-frame.md b/docs/dev/reference/glossary/world-frame.md index 5154282515..e9aed4e327 100644 --- a/docs/dev/reference/glossary/world-frame.md +++ b/docs/dev/reference/glossary/world-frame.md @@ -10,5 +10,5 @@ The world reference [frame](/operate/reference/services/frame-system/) is the fi It provides a consistent basis for describing the position and orientation of robots, components, and objects in the physical space. All other coordinate frames (like robot frames, component frames, etc.) are defined relative to this world frame, either directly or through a chain of transformations. -The user defines the world frame. +The user chooses the world frame, and defines it implicitly. For example, if you have a robot arm mounted on a table and you define the arm's base frame as the world frame, then the arm's base frame is the origin of the world frame. diff --git a/docs/operate/mobility/move-arm/frame-how-to.md b/docs/operate/mobility/move-arm/frame-how-to.md index 8295ec2c6d..d3ac666cf5 100644 --- a/docs/operate/mobility/move-arm/frame-how-to.md +++ b/docs/operate/mobility/move-arm/frame-how-to.md @@ -18,12 +18,15 @@ For reference information, see [the frame system](/operate/reference/services/fr The world reference frame is the fixed coordinate system that serves as the reference point for the other frames in your robotic system. -You define the world frame, in whatever way is convenient for your application. +You choose the world frame, in whatever way is convenient for your application. It generally makes sense to define the world frame's location as a point in your space that does not move and is easy to measure from. For example, if you are using a robot arm mounted to a table, it can be convenient to define the arm's base frame as equal to the world frame, or you can define the world frame as one corner of the table that the arm is mounted to. -### Add the default frame +You do not explicitly configure the world frame. +You define it implicitly by configuring the frame of a component relative to world. + +### Add a frame to your arm 1. Mount the arm in a fixed location. 1. On your arm's configuration card, click **+ Add frame**. From 65ffee71afbbf63e3174e4a1b740bc95ef4175ba Mon Sep 17 00:00:00 2001 From: JessamyT Date: Tue, 1 Jul 2025 11:44:09 -0700 Subject: [PATCH 13/14] Additional world detail --- docs/operate/mobility/motion-concepts.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/operate/mobility/motion-concepts.md b/docs/operate/mobility/motion-concepts.md index edd6576cb8..89a61267b4 100644 --- a/docs/operate/mobility/motion-concepts.md +++ b/docs/operate/mobility/motion-concepts.md @@ -44,9 +44,9 @@ You configure your machine's frames once, and Viam keeps track of the frames as This means you can send motion service commands using a consistent coordinate system, regardless of where the components are at a given time. You must configure frames before you can use the motion service. -For example, if you want to command an arm to move to coordinates of `(300, 0, 0)` millimeters, you first need to define the origin `(0, 0, 0)` and the directions of the x, y, and z axes of the {{< glossary_tooltip term_id="world-frame" text="world" >}} coordinate system to give your coordinates meaning. +For example, if you want to command an arm to move to coordinates of `(300, 0, 0)` millimeters, you first need to decide on the origin `(0, 0, 0)` and the directions of the x, y, and z axes of the {{< glossary_tooltip term_id="world-frame" text="world" >}} coordinate system to give your coordinates meaning. -You then define the arm's `frame` to describe its position and orientation relative to the world. +You then define the arm's `frame` to describe its position and orientation relative to the world frame. If you also have a gripper component, you define the gripper's `frame` to describe its position and orientation relative to the arm, so that when the arm moves, the motion service knows where the gripper is as well. ### Visualize components and frames From 92ee63b1047341572454250242022ef9d9929f21 Mon Sep 17 00:00:00 2001 From: JessamyT Date: Tue, 1 Jul 2025 11:51:03 -0700 Subject: [PATCH 14/14] Update gripper diagram --- assets/operate/mobility/gripper-frame.png | Bin 0 -> 105229 bytes .../mobility/move-arm/configure-additional.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 assets/operate/mobility/gripper-frame.png diff --git a/assets/operate/mobility/gripper-frame.png b/assets/operate/mobility/gripper-frame.png new file mode 100644 index 0000000000000000000000000000000000000000..8b43891f764ebfa43bb097d367c2b4732afe090b GIT binary patch literal 105229 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 O@35K8!93Gb*ZvET=-zMu literal 0 HcmV?d00001 diff --git a/docs/operate/mobility/move-arm/configure-additional.md b/docs/operate/mobility/move-arm/configure-additional.md index d98017826f..5074a172c2 100644 --- a/docs/operate/mobility/move-arm/configure-additional.md +++ b/docs/operate/mobility/move-arm/configure-additional.md @@ -37,7 +37,7 @@ Configure the gripper's frame to describe its position and orientation relative When you make a call to the motion service to move the gripper to a location, the point you specify in this step is the part of the gripper that will move to that location. - {{}} + {{}} The gripper in the image above has a translation of 110 millimeters in the z-direction, and it is oriented along the same z-axis as the end of the arm but is rotated 90 degrees around the z-axis, so its frame configuration is: