• CUWB v5.0
CUWB Viewer Manual

Description

The CUWB Viewer is a 3D visualization of the Ciholas Ultra-Wideband (CUWB) Real Time Location System (RTLS). It provides a user interface displaying the locations of the CUWB devices, such as Anchors and Tags, in real time. The Viewer also presents basic system information, such as device status, statistics and more.

The CUWB Viewer is also compatible with our CDP Logging Tools and can render previously captured logs. Additional documentation for the CUWB RTLS system is available on CUWB.IO.

 

 

Installation

Host PC Requirements

  • OS: Ubuntu 22.04 Jammy or Ubuntu 24.04 Noble
  • CPU: 64-bit, 2.5GHz, dual core or better with SSE2 instruction set support
  • GPU: Integrated graphics or dedicated graphics card with Vulkan 1.3+
  • RAM: 4GB or better
  • HD: 8GB or more (plus any additional required by logging)

PPA Installation and Setup

Follow the instructions below for CUWB Viewer installation.

  1. Follow best practices and review the install.sh script.
  2. bash <(wget -qO- https://cuwb.io/docs/v5.0/assets/install.sh)
  3. Paste into an Ubuntu 22.04/24.04 terminal and press Enter

When prompted in the “CUWB Applications Selection”, ensure that CUWB Viewer is selected for installation.

Offline Installation

The CUWB Viewer can be installed on Host PCs that do not have PPA access. The following is a list of additional packages that may need to be installed on the Host PC before doing an offline installation of the CUWB Viewer. Use dpkg -l | grep <package_name> on the Host PC for the following packages to check if they are installed.

  • liblttng-ust1
  • liblttng-ust-common1
  • liblttng-ust-ctl5
  • dotnet-host-8.0
  • dotnet-hostfxr-8.0
  • dotnet-runtime-8.0

For instructions on how to obtain the DEB package, see Current Downloads Available for Software Packages. After downloading the package, transfer the DEB to a USB drive or other transfer method to the Host PC. After transferring the file, navigate to the file location, and type the command below into a terminal window to install the package:

sudo apt install ./cuwb-viewer-<version>.deb

Getting Started

Launch CUWB Viewer

Once the CUWB Viewer has been installed launch the application through the Linux applications menu, or type the following into a terminal window:

cuwb-viewer

After the initial boot animation, the user will be presented with a blank screen showing a 3D 10 meter grid, the CUWBNet selection window and the message window at the bottom of the screen.

Network Configuration

On the initial run of the Viewer, no viewer configuration file will be loaded. A CUWBNet selection tool will pop up populated with all available CUWBNets that are detected by the Viewer. By default, the Viewer will listen on the CUWB Anchor Array configuration channel (IP 239.255.76.67, port 7671, interface 0.0.0.0). This allows the system to discover available CUWB Configurations.

Select an available CUWBNet and close the window. Upon reception of CDP data from a CUWBNet, the grid will grow and form around the representations of the system tags and anchors.

See Network Settings and CUWBNet Selection for additional details.

Message Window

Along the bottom of the CUWB Viewer is a message window. By default, the box will only appear when a message is posted. This can be configured in User Preferences.

Camera Configuration

The default Viewer camera angle is pointed at the center of the grid from the positive X, negative Y, and positive Z. See Camera Defaults for instructions on changing the default views or adding other custom views. The Camera Gizmo can also be used for temporary viewing positions.

Grid Configuration

The default Viewer setup features a 10m x 10m x 10m cube with gridlines at each meter. This grid automatically grows to fit all current devices, and will shrink as devices move and stop reporting data. Additional settings including turning the grid off are available under Grid Configuration.

Devices

When connected to a running CUWBNet, devices will appear in the 3D scene as they begin to report data. How those devices are shown in the Viewer can be configured via the global or individual device settings, see Device Options.

By default, tags are represented as spheres and anchors are cubes. The devices are colored via the standard color scheme.

Objects

The Viewer is a valuable tool for modeling physical environments, largely through the use of static 3D objects. See Objects for information on object creation, properties and custom objects.

CUWB Viewer Walkthrough

Message Window

Along the bottom of the CUWB Viewer is a message window. The message window provides the user with state changes, i.e. New Devices Appearing or CUWBNets going offline. By default, the box will only appear when a message is posted. This can be configured in User Preferences.

The window can be configured to display the following message options:

  • Internal - Messages that the CUWB Viewer generates
  • CDP - CDP messages received by the CUWB Viewer
  • All - Messages from both the internal and CDP categories
  • None - No messages will be printed

The message history can be shown in full by selecting the Show Full History checkbox.

Camera Gizmo

The camera gizmo is located in the upper right hand corner of the viewer screen. The camera gizmo provides a simple interface to visualize the camera’s orientation as well as move and rotate the camera to face a specific axis. The camera gizmo visually shows the camera’s position and rotation relative to the scene, updating as the camera is adjusted. The axis cones are colored matching what they represent, with the X axis being red, the Y axis being green, the Z axis being blue, and all the negative axes being black. Moving the mouse over one of the coned axes will highlight it yellow, and left-clicking on it will adjust the camera’s position to be parallel to the selected axis, rotated to the nearest 90 degrees.

Configurations

A configuration to quickly save and reload settings, objects, images, and devices can be generated through the File menu below. Configurations can either be saved over the default configuration or as a new configuration file.

File Menu Options

Submenu Description
Save Configuration Save the current configuration, overwriting the default configuration file
Save Configuration As… Open file browser to save the current configuration
Load Configuration Open file browser to select a configuration file

Default Configuration

The default viewer configuration file, config.zip, can be found in the /usr/lib/cuwb/viewer/ folder. This file will load on boot and restore all settings that a user has saved for a given CUWB Anchor Network setup.

On the initial launch of the CUWB Viewer, no viewer configuration file will be loaded.

Edit Settings

Edit Menu Options

Submenu Description
Network Settings Modify and add network configurations
CUWBNet Selection Select available CUWBNets to connect to or disconnect from
User Preferences Access the User Preferences Settings

Network Settings

Network connection settings can be modified through this window if the user doesn’t want to use CUWBNet selection. The CUWB Viewer can support more than one UDP Receiver.

Receiver 1 will default to the Anchor Array configuration channel (IP 239.255.76.67, port 7671, interface 0.0.0.0). This allows the system to discover available CUWB Configurations.

A UDP receiver must be setup for log playback, see Log Playback for additional information.

CUWBNet Selection

A CUWBNet selection tool window will pop-up populated with all available CUWBNets that are detected by the Viewer when the viewer is launched. More than one CUWBNet can be selected.

To prevent the CUWBNet selection window from appearing when the Viewer application boots, save the configuration using the File -> Save Configuration menu item. This will save the selected CUWBNets to the default viewer configuration. To return to the CUWBNet selection window select Edit -> CUWBNet Selection from the menu.

Once a CUWBNet is selected and the viewer begins to receive CDP data from a CUWBNet, the grid will grow and form around the representations of the system tags and anchors.

User Preferences

The Viewer provides several settings that can be changed on a per-user basis, separate from the currently used configuration.

Setting Default Description
Ignore Device Names Off When toggled the Viewer will ignore any names set by the CUWB Manager, instead always only showing a device’s serial number.
Use Global Rotation Axis Off When toggled, rotating the camera left or right will be around the nearest global “up” vector, rather than the “up” vector of the camera. The untoggled rotation is more similar to what is used in most CAD software.
Ignore Unconfigured Devices Off When toggled, all data received from devices that are designated as unconfigured by the CUWB Manager will be completely ignored.
Limit Spammed Messages On When toggled, internal Viewer messages that are sent frequently will be limited to a single message at a time in the format “(x) Message Contents” where x is the number of messages that were not printed.
Log Viewer Messages Externally Off When toggled, all messages printed to the message window in the Viewer will also be logged with any other Viewer log messages.
Auto-Hide Message Window On When toggled, the message window will automatically hide itself after 15 seconds of inactivity and will reappear when a new message is printed. If untoggled, the message Window will only be shown or hidden when the keybind is pressed.
UWB Heatmap Color Scheme Green to Red Coloring option used by UWB Heatmap Mode. Features “Green to Red”, “Thermal”, and “Blue Monochrome”, see Heatmap Mode.
Message Window Font Size 16 Adjustable value used for the size of text inside of the message window. Accepts values between 1 and 100.
Device Serial Numbers Scale 3 Adjustable value used for the size of the device’s serial number labels. Accepts values between 1 and 10.
Max Framerate 60 Target framerate of the Viewer. The Viewer will match this as close as possible. Accepts values between 0 and 500, with 0 representing no maximum (i.e. always targeting the fastest possible framerate).

Don’t forget to click apply to apply the selected settings.

View Options

View Menu Options

Submenu Description
Configure Grid Configure the grid size and visibility
Camera Defaults Set default camera view and perspective
UWB Heatmap Mode Select device and set UWB Heatmap mode active
Toggle Measurement Mode Enables/disables 3D measurement mode
Clear Measurements Deletes all 3D measurements
Pause/Play Pauses/Resumes CDP traffic

Grid Configuration

The default Viewer setup features a 10m x 10m x 10m cube with gridlines at each meter. This grid automatically grows to fit all current devices, and will shrink as devices move and stop reporting data.

Override Auto Sizing

The default Viewer setup features a 10m x 10m x 10m cube with gridlines at each meter. This grid automatically grows to fit all current devices, and will shrink as devices move and stop reporting data. This behavior can be overridden by toggling Override Auto Sizing. The position of each grid wall can then be manually configured by adjusting the values in the below text boxes.

Toggling off the Override Auto Sizing will return the grid to its default size settings.

Override Wall Visibilities

The visibility of each individual grid wall can also be configured by toggling Override Wall Visibilities and then unchecking the box of the corresponding wall to make it invisible.

Toggling off the Override Wall Visibilities will return the grid to its default visibility settings.

Max Allowable Positions

The maximum allowed position values for devices can also be configured in the configure grid window. Maximums and minimums can be set for each axis in the text boxes below “Max Allowable Positions”, such that if a device exceeds any of those the position will be ignored and a warning will be printed in the message window.

Camera Defaults

The default view used when booting up can be changed in View -> Camera Defaults. A radio button under “Default” is used to toggle which camera view is the default (positions 0 through 9). An additional checkbox is next to each camera position under “Perspective” for toggling whether a camera view is perspective or orthographic.

The default camera positions can also be overridden by saving the current camera position. Pressing the “Ctrl” key and a number key (0 through 9) will save the current camera settings to the position of that number. Pressing the corresponding number key will return the camera to the saved settings. The saved camera positions can be reset to their defaults from the View -> Camera Defaults window by pressing the “Reset” button next to the position, which is only present once a new value has been saved.

Color Modes

Standard Colors

The color of the device is used to indicate the connectivity and synchronization status.

Color Description
Gray Gray Inactive
Red Red Error
Yellow Yellow Warning
Green Green Good
Blue Blue Located

The above chart and the currently set heatmap color scheme can be found under Help > Color Legend.

Heatmap Colors

Enabling this mode changes the coloring of anchors to reflect their usage in tracking the selected tag. The location algorithm weights data from anchors depending on the quality of the tag beacon reception. Anchor coloring in heatmap mode reflects the relative anchor weighting used by the location algorithm. The table below describes the heatmap color scheme.

Color Scheme Description
Green to Red Thermal Blue Monochrome
Fluorescent Green Sun Yellow Ice Blue 90-100%
Yellow Green Tangerine Pale Blue 80-89%
Dandelion Pumpkin Orange Cyan 70-79%
Sun Yellow Reddish Orange Bright Sky Blue 60-69%
Orange Yellow Tomato Cerulean 50-59%
Tangerine Magenta Ocean Blue 40-49%
Fire Engine Red Indigo Navy 0-39%
Gray No Data
Black Bad Status

Measurement Mode

The distance between devices and objects can be measured in real time using the Measurement Mode tool. To enable it, select View -> Toggle Measurement Mode. While in Measurement Mode, a ruler icon will be visible in the top right of the view. Once the mode is enabled, select two devices or objects with the left mouse button to draw a red, three dimensional line between them that displays their distance in meters.

To return to normal selection, disable Measurement Mode via View -> Toggle Measurement Mode. The ruler icon should disappear, and the left mouse button will return to selecting devices or objects. Created measurement lines can be selected with the left mouse button, turning a brighter shade of red, and then deleted with the “Delete” key. Pressing View -> Clear Measurements will delete all of the current measurements.

Play / Pause

The CUWB Viewer allows users to pause the stream of data using the play / pause command. This can be found under View -> Play/Pause or by hitting the space key.

Devices

When connected to a running CUWBNet, devices will appear in the 3D scene as they begin to report data. How those devices are shown in the Viewer can be configured via the global or individual device settings, see Device Options.

Devices Menu Options

Submenu Description
Global Device Settings Configurable settings for all devices, see Device Options
Device List View list of all anchors and tags and open their info or settings windows
Find Device Search for, and move to, a device
Clear Devices Clears all devices from the view
Selected Device Info1 Opens selected device’s info window
Selected Device Settings1 Opens selected device’s settings window

1. Option only visible when a device is selected.

Global Device Settings

Device options can be configured individually per device through “Selected Device Settings” or globally for all devices through the “Global Device Settings”.

The device configuration options supported by the system are as follows:

Option Default Description
Serial Numbers All on Toggle serial number display. Selectable between all devices, just tags or just anchors
Device Resizing Auto-Scale Auto-resize devices or manually change the size of devices
Tag Time Until Gray 5 s Time it takes for tag to turn gray after not receiving data in seconds
Tag Time Until Remove 10 s Time it takes for tag to be removed after turning gray in seconds
Tag Trails 2 s Show tag path over configurable period in seconds
Tag Smoothing 1 packet Set the number of tag position reports to average for display
Quality Filter2 0 Set a minimum accepted value for a position’s quality. Any position with a quality below this value will not be displayed.
Orientation Display Off Enables rotation of devices via their quaternions and changes tag models to 3D arrows
Device Model Default Model Set the 3D model used by the device
Color Default Set individual coloring for device

2. This value can only be set via the Global Device Settings window found in Devices->Global Device Settings.

Device List

To see a list of all the devices in the Viewer, open the Devices -> Device List window. This window shows a list of Anchors and a list of Tags, sorted by serial number. Selecting an item from either list highlights the device as if clicked on and provides buttons to open the device’s info window or settings window. To only see currently active devices in the list, ensure the “Filter Inactive” option is toggled.

Find Device

To find a specific device in the Viewer, open the Devices -> Find Device window. Typing a serial number in the textbox will open a dropdown list of matching device serial numbers. When a valid serial number is entered, either by typing or selecting an option from the dropdown, pressing the “Find” button highlights the device with the corresponding serial number as if it was clicked on.

If the “Move Camera” option is toggled, pressing “Find” will also move the camera to be centered on the device.

Clear Devices

To remove all of the devices currently in the Viewer, use the Devices -> Clear Devices option. This removes all devices from the view, active and inactive, until they are heard from again.

Device Info

The device info panel provides detailed information for a selected device. Anchors and tags have different displayed settings in the info panels.

Tag Settings

Setting Description
Packets Count of received Packets
Average Average Position of Tag in XYZ
Std Dev Standard Deviation of the Tag position in XYZ
Tot Dev Total Deviation of the Tag position in XYZ
Anchors Used Count of anchors used to resolve position calculation
Memory Free Available memory on the tag
Minutes Remaining N/A
Battery Percentage Percentage of Battery available for use by the tag
Device Temperature Temperature in degrees Celsius
Processor Usage N/A
Missed Phase Packets Number of missed Command windows while in phase
Missed Recovery Packets Number of missed Command windows while attempting to recover from being out of phase
Flags See Flags
Quality An assessment of the quality of the most recently calculated position
Accelerometer3 Displays Accelerometer XYZ readings
Gyroscope3 Displays Gyroscope XYZ readings
Magnetometer3 Displays Magnetometer XYZ readings
Quaternion3 Displays Quaternion WXYZ

3. Only available on supported hardware. See device datasheets for sensor support.

Anchor Settings

Setting Description
Position XYZ position of Anchor
Synchronization Reports if Anchors have TX or RX Sync
Connectivity Reports if Anchors has UWB or Ethernet connectivity
Memory Free Available memory on the tag
Minutes Remaining N/A
Battery Percentage N/A
Device Temperature N/A
Processor Usage N/A
Missed Phase Packets N/A
Missed Recovery Packets N/A
Flags See Flags
Accelerometer4 Displays Accelerometer XYZ readings
Gyroscope4 Displays Gyroscope XYZ readings
Magnetometer4 Displays Magnetometer XYZ readings
Quaternion4 Displays Quaternion WXYZ

4. Only available on supported hardware. See device datasheets for sensor support.

Flags

The following flags are listed when selecting View on the Device Info panel for a Tag or an Anchor.

Flag Field Description
Full Field Provides the full field of the flag packet
Powered Indicates if the device is receiving external power
Charging Indicates if the device is charging its battery

Device Settings

Some of these settings are duplicated in the Global Device Settings options. Individual Device Settings will override the global setting.

Option Default Description
Use Custom Color Off Check to use custom color for this device
Color Blue Select custom color from color picker
Serial Numbers On Toggle serial number display for this device
Trail Off Check to display tag historical path
Trail Length 2 Show tag path over configurable period in seconds
Smoothing Off Check to enable smoothing for this device
Smoothing (Packets) 1 packet Set the number of tag position reports to average for display
Size Scale 0.25 Scale the device model
Model Default Model Set the 3D model used by the device

Objects

The Viewer is a valuable tool for modeling physical environments, largely through the use of static 3D objects.

By default, tags are represented as spheres and anchors are cubes. The objects are colored via the standard color scheme.

Objects Menu

Submenu Description
Import Object Import primitive 3D objects, images5, or custom 3D models6
Object List View list of imported objects and open their properties window
Delete Selected Object7 Delete the currently selected object
Selected Object Properties7 Opens selected object’s properties window

5. Supports .JPG, .PNG, .BMP, .SVG, .WEBP, .TGA, .HDR, .EXR, .KTX, and .DDS
6. Supports .GLTF and .GLB
7. Option only visible when an object is selected.

Creating Objects

Objects can be added to the Viewer via the Objects -> Import Object window, and will be saved and loaded as part of your configuration. Many primitive 3D shapes are available as object types, such as cubes, spheres, and cones, as well as images or custom 3D models.

All objects have a corresponding type, color, position, rotation, scale, and name that determine their look in the 3D scene. These values can be changed, which will update the transparent preview of the specified object in the 3D view:

  • Object Type - Box, Sphere, Cylinder, Cone, Capsule, Prism, Torus, Image or Custom
  • Position - Define the X,Y, and Z position for the object
  • Color - Brings up color selection menu and color picker
  • Rotation - Define the X,Y, and Z rotation for the object
  • Name - Give the object a Name, helpful if using repeated objects
  • Scale - Scale the object in X,Y, or Z
  • Lock Aspect Ratio - Ensures that changing one axis of the scale values updates the rest of the values proportionally
  • Lock Object - Prevents an object from being selected with the mouse or changed once it is created, until that object is unlocked

Once the object’s settings have been specified, press the “Submit” button to create the object.

Object Properties

Once it has been created, an unlocked object can be selected with the mouse to open its properties window. This window is also accessible under Objects -> Selected Object Properties menu.

Changing these values will update the already created object. A “Delete” button is available to remove this selected object from the CUWB Viewer.

If an object is locked, it must be selected from the Object List in order to open its properties window. This is the only way to unlock a locked object.

Object Gizmo

The object gizmo provides tools for translating, rotating, and scaling objects that are in the scene. Selecting an object with the mouse will show the object gizmo as well, which will reflect the current tool being used.

Translation Gizmo Rotation Gizmo Scaling Gizmo

To swap between tools, press the T, R, and S keys for translation, rotation, and scaling respectively. Clicking and dragging on the red, green, or blue components of the object gizmo will apply the appropriate operation to the object in the X, Y, or Z axis. Holding the Ctrl key while dragging the mouse will snap the desired operation to round number increments.See Object Shortcuts for additional keyboard shortcuts.

Custom Objects

When creating an image or custom object, an asset will need to be imported corresponding to that object.

When selecting a custom object type, a dropdown will appear that provides a list of the assets of that type that have already been imported, which can be selected to reuse those assets. If the “Import New Asset” option is selected, a “Browse” button will appear that opens a system file importer to select the corresponding asset file. Imported assets are also saved as part of the Viewer configuration.

Custom assets of large size or complexity may take a long time to load and could slow down the performance of the Viewer.

Custom 3D models can also be used in place of the anchor’s cube or the tag’s sphere, see Device Model under Device Options.

Object List

To see a list of all objects, open the Objects -> Object List window. This window provides a list of all the objects currently in the scene. Selecting an object from the list highlights the object as if clicked on with the mouse, and provides buttons for opening its properties window or deleting the object. The object list also provides a “Clear Objects” button which will delete all of the objects in the scene. Deleting or clearing objects cannot be undone, unless the Viewer configuration is saved and not overwritten.

Help & Other Resources

Help Menu Options

Submenu Description
Keyboard Shortcuts View the keyboard shortcuts
Color Legend View the color legend for the devices
Viewer Help Open the documentation page
About CUWB Viewer Display Viewer information
External Licenses 3rd-party software Licensing information

Color Legend

This menu option opens up the configured standard color and heatmap mode colors. See Color Modes for the available color mode options.

Mouse Controls

While not a menu option, this section outlines the available mouse controls for the CUWB Viewer.

Drag View

The camera view may be changed via the middle or right mouse buttons. Holding the chosen mouse button and dragging the mouse will move the user’s view in the same direction that the mouse is dragged.

Rotate View

To rotate the view, press and hold shift while dragging the mouse with the middle or right mouse button held. When the shift key is pressed, a sphere will appear on the screen that represents the point of rotation. The point of rotation is selected relative to the current cursor location. If no object is underneath the mouse, the rotation point will be located in the center of the visible grid. If the center of the grid is not visible, a point in the center of the screen will be used.

Zoom View

To zoom in and out, scroll the mouse wheel.

Device/Object Selection

The left mouse button is used to select devices or objects. Selected devices or objects may be configured through the Selected Device Settings or Selected Object Properties windows, or by pressing ‘C’ once selected. To see current statistics for an device choose the Selected Device Info option, or press ‘I’ on the keyboard once selected.

Selected devices and objects appear with a cyan highlight around them, and if they have a serial number or name, the label will be displayed in magenta.

Keyboard Controls

Camera Shortcuts

Description Keyboard
Switch Camera Perspective -
Zoom to Fit =
Go to Camera Position 0-9 0-9
Set Camera Position 0-9 Ctrl+0-9
Pan Down Down
Pan Left Left
Pan Right Right
Pan Up Up
Roll Left Ctrl+Left
Roll Right Ctrl+Right
Rotate Down Shift+Down
Rotate Left Shift+Left
Rotate Right Shift+Right
Rotate Up Shift+Up
Zoom In Ctrl+Up
Zoom Out Ctrl+Down
Open Camera Defaults Window Ctrl+C

General Shortcuts

Description Keyboard
Close Window/Toggle Navbar Visibility Esc
Pause/Resume Space
Show/Hide Message Window M
Save Configuration Ctrl+S
Save Configuration As Ctrl+Shift+S
Load Configuration Ctrl+L
Open User Preferences Window Ctrl+U
Open Configure Grid Window Ctrl+G
Open UWB Heatmap Mode Window Ctrl+V
Open Viewer Documentation F1
Open About Window F2
Open Keyboard Shortcuts Window Ctrl+K
Open Color Legend Window Ctrl+J

Network Shortcuts

Description Keyboard
Open Network Settings Window Ctrl+N
Open CUWBNet Selection Window Ctrl+B

Device Shortcuts

Description Keyboard
Open Global Device Settings Window Ctrl+T
Open Selected Device Info Window I
Open Selected Device Setting Window C
Open Device List Window Ctrl+D
Open Find Device Window /
Clear Devices Ctrl+Esc

Object Shortcuts

Description Keyboard
Open Selected Object Properties Window C
Open Import Object Window Ctrl+O
Open Object List Window Ctrl+Q
Snap Object Gizmo Ctrl
Switch to Translation Tool T
Switch to Rotation Tool R
Switch to Scale Tool S
Delete Selected Object Delete

Measurement Shortcuts

Description Keyboard
Toggle Measurement Mode Ctrl+M
Delete Selected Measurement Delete
Clear All Measurements Ctrl+Delete

Log Playback

To use the CUWB Viewer with the CDP Log Playback, first setup the CDP Log Playback.

The CUWB Viewer should be set to listen to the CDP Player IP and port through the Network Settings.

The log play back doesn’t support using CUWBNet selection to find the playback stream.

Play back the stream from the CDP player, and the data will populate the CUWB Viewer just like a live network.

Revision

Version Date Change Description
5.0.1 2025-11-14 Updating Host PC Requirements
v5.0.0 2025-10-31 Initial Preliminary Release

APPENDIX A : License Terms and Conditions


APPENDIX B : Software License Attributions