Changes for page Zūm Discovery
Last modified by Austin Weygandt on 2025/05/02 20:21
From version 18.1
edited by Alexander Mott
on 2023/04/20 18:39
on 2023/04/20 18:39
Change comment:
There is no comment for this version
To version 38.2
edited by Alexander Mott
on 2025/04/03 16:11
on 2025/04/03 16:11
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Parent
-
... ... @@ -1,1 +1,1 @@ 1 -SHOWRUNNER™ Setup Guide.SHOWRUNNER™ Installation Guide. DeviceAddressing.WebHome1 +SHOWRUNNER™ Setup Guide.SHOWRUNNER™ Installation Guide.Program Configuration.WebHome - Content
-
... ... @@ -1,13 +1,14 @@ 1 1 (% class="box errormessage" %) 2 2 ((( 3 - WARNING:CresnetDiscoveryis notcurrently working onZUMNET-JBOXs.Crestron has acknowledgedafixhasbeen senttoQE.3 +ūūūūūū**IMPORTANT:** When using ShowRunnerCLC™ with a ZUM-HUB4, **do not** discover Zūm Rooms using the Crestron HUB4 Web UI. During discovery, the HUB4 will claim ZUMNET-JBOXs and prevent ShowRunnerCLC™ from auto-discovering or registering the Zūm hardware for itself. 4 4 5 -Downgrade SHOWRUNNER™ to v3.018 in order to auto-discover hardware. SHOWRUNNER™ can be subsequently upgraded once discovery is complete. 5 +**WARNING:** Cresnet Discovery is non-functional for ZUMNET-JBOXs with certain versions of Crestron Device Database. 6 +ShowRunnerCLC™ versions v3.019 through v3.041 must be either downgraded to v3.018 or upgraded to v3.042 or newer in order to perform auto-discover functions. 6 6 ))) 7 7 8 8 (% class="box warningmessage" %) 9 9 ((( 10 -This article is about automatically building a S HOWRUNNER™ configuration using the Zūm Discovery feature of SHOWRUNNER™. For instructions on configuring Zūm Wired rooms using the Crestron Zūm App, see [[this page>>SHOWRUNNER™ Setup Guide.WiringGuide.Zūm Wired System Overview.Crestron11 +This article is about automatically building a ShowRunnerCLC™ configuration using the Zūm Discovery feature of ShowRunnerCLC™. For instructions on configuring Zūm Wired rooms using the Crestron Zūm App, see [[this page>>SHOWRUNNER™ Setup Guide.SHOWRUNNER™ Installation Guide.Preparation.Zūm App Overview.WebHome]]. 11 11 For instructions on configuring Zūm Net devices using Crestron Toolbox, see [[this page>>doc:SHOWRUNNER™ Setup Guide.SHOWRUNNER™ Installation Guide.SHOWRUNNER™ Installation and Network Setup.ZUMNET-JBOX Setup.WebHome]]. 12 12 ))) 13 13 ... ... @@ -15,10 +15,62 @@ 15 15 {{toc/}} 16 16 {{/box}} 17 17 18 -If Zūm Wired or Wireless devices have been configured using Crestron's Zūm App, then it is possible to automatically build a S HOWRUNNER™ configuration file using the Zūm Discovery feature that is built into SHOWRUNNER™.19 +If Zūm Wired or Wireless devices have been configured using Crestron's Zūm App, then it is possible to automatically build a ShowRunnerCLC™ configuration file using the Zūm Discovery feature that is built into ShowRunnerCLC™. 19 19 20 -There are certain pre-requisites and limitations when building a S HOWRUNNER™ configuration this way, and it may sometimes be necessary make some adjustments to the final configuration, such as changing keypad types and moving loads between areas.21 +There are certain pre-requisites and limitations when building a ShowRunnerCLC™ configuration this way, and it may sometimes be necessary make some adjustments to the final configuration, such as changing keypad types and moving loads between areas. 21 21 23 += Discovery Filter (ShowRunnerCLC™ 3.062 or newer) = 24 + 25 +Discovered ethernet devices may be filtered using either a hostname or IP Address filter. The filter is configured from the command line interface. 26 + 27 +##+~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-+~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-+ 28 +~| Command | Help | 29 +~|~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-|~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-| 30 +~| SR discover clear filter | Remove Discovery Filter | 31 +~| SR discover filter | Show Discovery Filter | 32 +~| SR discover filter (X:S) | Set Discovery Filter | 33 +~| - | (X):S:Filter String | 34 +~|~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-|~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-|## 35 + 36 +=== Hostname Filter === 37 + 38 +The Hostname filter uses a regular expression to filter discovered ZUMNET GATEWAYs or JBOXs. Multiple expressions can be applied by using a comma to separate the expressions. 39 + 40 +Command Syntax: ##"Type='Hostname' Settings='Expr1[,Expr2]'"## 41 + 42 +Examples: 43 + 44 +1. Only include hostnames that start with ZUMNET-06: 45 +(% style="font-family:Menlo,Monaco,Consolas,Courier New,monospace; white-space:pre" %)sr discover filter "Type='Hostname' Settings='^ZUMNET-06'" 46 +1. Include hostnames that start with ZUMNET-FL01 or contain FL03: 47 +(% style="font-family:Menlo,Monaco,Consolas,Courier New,monospace; white-space:pre" %)sr discover filter "Type='Hostname' Settings='^ZUMNET-FL01,FL03'" 48 + 49 +=== IP Address Filter === 50 + 51 +The IP Address filter will restrict discovered ZUMNET GATEWAYs or JBOXs to matching IP Addresses or IP Address ranges. Multiple addresses and ranges can be used. 52 + 53 +Command Syntax: ##"Type='IPAddress' Settings='Address[,AddressStart-AddressEnd]'"## 54 + 55 +Examples: 56 + 57 +1. Only include a device with an address of 192.168.0.10 or 192.168.0.50: 58 +(% style="font-family:Menlo,Monaco,Consolas,Courier New,monospace; white-space:pre" %)sr discover filter "Type='IPAddress' Settings='192.168.0.10,192.168.0.50'" 59 +1. Include addresses between 192.168.0.11 and 192.168.0.50 and 192.168.0.200 and 192.168.0.240: 60 +(% style="font-family:Menlo,Monaco,Consolas,Courier New,monospace; white-space:pre" %)sr discover filter "Type='IPAddress' Settings='192.168.0.11-192.168.0.50,192.168.0.200-192.168.0.240'" 61 + 62 +=== IP-ID Filter (Added in SR v3.067) === 63 + 64 +The IP-ID filter will restrict discovered ZUMNET GATEWAYs or JBOXs to matching IP-IDs or IP-ID ranges. Multiple IDs and ranges can be used. 65 + 66 +Command Syntax: ##"Type='IPID' Settings='IPID[,IPIDStart-IPIDEnd]'"## 67 + 68 +Examples: 69 + 70 +1. Only include a device with an IP-ID of 10 or 5A: 71 +(% style="font-family:Menlo,Monaco,Consolas,Courier New,monospace; white-space:pre" %)sr discover filter "Type='IPID' Settings='10,5A'" 72 +1. Include addresses between 11 and 4F and A0 and BF: 73 +(% style="font-family:Menlo,Monaco,Consolas,Courier New,monospace; white-space:pre" %)sr discover filter "Type='IPID' Settings='11-4F,A0-BF'" 74 + 22 22 = Zūm Wired Discovery = 23 23 24 24 == Notes and Limitations == ... ... @@ -25,47 +25,61 @@ 25 25 26 26 (% class="box warningmessage" %) 27 27 ((( 28 -* S HOWRUNNER™ version 3.014 or newer required81 +* ShowRunnerCLC™ version 3.014 or newer required 29 29 * Zūm Wired firmware .puf version 1.02.10 or greater required (ZUMNET-JBOX installed minimum version 1.001.00081) 30 -* Disconnect from any ZUMNET devices you may be connected to in Toolbox prior to running the discovery commands 83 +* Disconnect from any ZUMNET devices you may be connected to in Toolbox and confirm all hardware (NETs and LINKs) are online prior to running the discovery commands 31 31 * Cresnet devices landed on Zūm Link will not be discovered (Crestron bug expected to be corrected in a future firmware release) 85 +* ZUMLINK-IOs will not be discovered (Expected to be discoverable in future ShowRunnerCLC™ release) 86 +* ZUMLINK-KPs will not be discovered on older versions of ShowRunnerCLC™ (v3.058 or newer will discover keypads and set as remote type) 32 32 * One area will be created per ZUMNET-JBOX; if there are more areas than ZUMNET-JBOXs, additional areas must be created manually 33 33 ))) 34 34 35 35 == Steps == 36 36 37 -1. [[Install S HOWRUNNER™>>doc:SHOWRUNNER™ Setup Guide.SHOWRUNNER™ Installation Guide.SHOWRUNNER™ Installation and Network Setup.WebHome]] on the processor and configure the processor as necessary92 +1. [[Install ShowRunner™>>doc:SHOWRUNNER™ Setup Guide.SHOWRUNNER™ Installation Guide.SHOWRUNNER™ Installation and Network Setup.WebHome]] on the processor and configure the processor as necessary 38 38 1*. Note that while Zūm Wired discovery will build a configuration, if a configuration file was provided then it should still be loaded as it may contain location data or non-Zūm devices. 39 39 1. If the ZUMNET-JBOX firmware is too out-of-date to connect using the Crestron Zūm App, then there are some additional steps required: 40 40 1*. Connect to the first ZUMNET-JBOX in Toolbox 41 41 1*. Configure a static IP address for the ZUMNET-JBOX if there is no DHCP server on the network 42 -1**. Note: The S HOWRUNNER™ built-in DHCP server is not meant to be used in production43 -1**. If the S HOWRUNNER™ built-in DHCP server was used to assign IP addresses to devices, it is still necessary to give those devices static IP addresses97 +1**. Note: The ShowRunnerCLC™ built-in DHCP server is not meant to be used in production 98 +1**. If the ShowRunnerCLC™ built-in DHCP server was used to assign IP addresses to devices, it is still necessary to give those devices static IP addresses 44 44 1*. Set unique Connection IDs for each device hosted on the ZUMNET-JBOX so that their firmware can be updated 45 45 1*. Load the Zūm Wired firmware to the ZUMNET-JBOX 46 46 1*. Repeat the above steps for all ZUMNET-JBOXs 47 47 1*. Once all the ZUMNET-JBOXs have pushed the new firmware to their hosted devices, disconnect from them in Toolbox and proceed to the next step 48 -1. Connect to first ZUMNET-JBOX in the Crestron Zūm App 103 +1. Connect to each ZUMNET-JBOX in the Crestron Zūm App 104 +1*. Commission room through the app 105 +1**. configure keypad logic 106 +1**. configure occupancy sensor settings 107 +1**. calibrate photocell(s) 108 +1*. Set hostnames for the ZUMNETs. 109 +1**. Zūm discovery will bring in hostnames. 49 49 1. Unique Connection IDs should be automatically assigned to any Zūm Link and Cresnet devices on the ZUMNET-JBOX 50 50 1*. If firmware was out-of-date, then this step should have already been completed 51 51 1*. If unique CIDs are not automatically assigned, connect to the JBOX in Toolbox and give the devices unique CIDs 52 52 1. Configure a static IP address for the ZUMNET-JBOX if there is no DHCP server on the network 53 53 1*. If firmware was out-of-date, then this step should have already been completed 54 -1*. Note: The S HOWRUNNER™ built-in DHCP server is not meant to be used in production55 -1*. If the S HOWRUNNER™ built-in DHCP server was used to assign IP addresses to devices, it is still necessary to give those devices static IP addresses115 +1*. Note: The ShowRunnerCLC™ built-in DHCP server is not meant to be used in production 116 +1*. If the ShowRunnerCLC™ built-in DHCP server was used to assign IP addresses to devices, it is still necessary to give those devices static IP addresses 56 56 1. Optionally, manually configure the ZUMNET-JBOX IP table to point at the processor if you want to keep track of which ZUMNET-JBOX is at each IP-ID 57 57 1*. If you do not manually configure the IP table, then SHOWRUNNER™ will automatically configure the IP-ID for each ZUMNET-JBOX during discovery 58 58 1. Set the ZUMNET-JBOX into either Zūm ("App") mode or CNET mode as required for the program 59 -1*. Full control from S HOWRUNNER™ is only possible if all ZUMNET-JBOXs are in CNET mode. Odd behavior may result from conflicts between SHOWRUNNER™ and internal logic if the ZUMNET-JBOXs are not put into CNET mode60 -1. Repeat from step 3 until all ZUMNET-JBOXs that are to be controlled by S HOWRUNNER™ have static IP addresses and unique CIDs for any hosted devices120 +1*. Full control from ShowRunnerCLC™ is only possible if all ZUMNET-JBOXs are in CNET mode. Odd behavior may result from conflicts between ShowRunnerCLC™ and internal logic if the ZUMNET-JBOXs are not put into CNET mode 121 +1. Repeat from step 3 until all ZUMNET-JBOXs that are to be controlled by ShowRunnerCLC™ have static IP addresses and unique CIDs for any hosted devices 61 61 1. Disconnect from any ZUMNET-JBOXs and then connect to the processor in Toolbox 62 -1. Run the command: ##sr discover zumnet true false## 63 -1*. This command tells SHOWRUNNER™ to discover all ZUMMNET-JBOXs on the network, configure their IP tables, and then add corresponding IP Devices to the configuration 64 -1. Run the command: ##sr discover zumnet true true## 65 -1*. This command tells SHOWRUNNER™ to discover all Zūm Link hardware (including the internal ZUMNET-JBOX load controller) on the previously discovered Zūm Net devices and then add corresponding areas, loads, sensors, etc. to the configuration 66 -1**. One area will be created per ZUMNET-JBOX, and all hardware attached to that ZUMNET-JBOX will be assigned to that area 67 -1*. This command **does not** bring in Cresnet devices: those must be added to the configuration manually until this issue is fixed in the Zūm Wired firmware 123 +1. If trying to Auto Discover on a job with multiple processors or you are returning to a job where new ZUMNET-JBOXs have been added and you only wish to Auto Discover those new devices, ShowRunnerCLC™ 3.062 and newer allow [[filtering based on hostname or IP address>>doc:SHOWRUNNER™ Setup Guide.SHOWRUNNER™ Installation Guide.Program Configuration.Zūm Discovery.WebHome||anchor="HDiscoveryFilter28ShowRunnerCLC21223.062ornewer29"]] in order to limit the devices that are brought into the ShowRunnerCLC™ configuration 124 +1. Run the command: ##sr discover zumnet true true## to add ZUMNET-JBOXs, connected ZUMLINK devices, and some Cresnet devices (such as Cameo keypads) to the configuration. (Note 125 +1*. This command will update the ShowRunnerCLC™ configuration with: 126 +1**. One area per claimed ZUMNET-JBOX based on the Room Name set in the app 127 +1**. One ZUMNET-BRIDGE load controller per claimed ZUMNET-JBOX to allow the Zūm Room to communicate its current status (scene, occupancy, etc.) to ShowRunnerCLC™ 128 +1**. One entry for each ZUMLINK-KP, ZUMLINK-JBOX, and ZUMLINK occupancy sensor connected to each ZUMNET-JBOX 129 +1***. All devices and loads will be auto-labeled based on their connection information, //not// the names they are given in the Zūm App 130 +1***. Keypads will be brought in as "Remote" type and only follow the logic as defined in the Zūm App, allowing for scheduled enabling/disabling of keypads without adding any additional button functions from ShowRunnerCLC™ 131 +1***. Occupancy sensors will be brought in with "Use Hardware Logic" and only follow the logic as defined in the Zūm App 132 +1*. Optionally, run ##sr discover zumnet false true## to only add new ZUMLINK devices to the configuration. **Note that previously added ZUMLINK devices will be added again if their CID has been changed** 133 +1*. Run ##sr discover zumnet true false## to add ZUMNET-JBOXs without bringing in any devices. **Note that if a ZUMNET-JBOX already has an entry in its IP Table, ShowRunnerCLC™ will not claim it.** The ZUMNET-JBOX's IP Table must be cleared in order for it to be claimed by the ShowRunnerCLC™ program 68 68 1. If all steps have been performed successfully, then you should be able to use the ##sr show area##, ##sr show load##, ##sr show keypad##, and ##sr show occ## commands to see that the ZUMNET and ZUMLINK hardware has been discovered correctly. 135 +1. If new Zūm Link hardware has been added, it is not necessary to do a full Auto Discovery to bring the new devices into ShowRunnerCLC™; instead you can just run ##sr discover zumnet false true## to bring in the new Zūm Link devices without claiming any new Zūm Net devices 69 69 70 70 = Zūm Wireless Discovery = 71 71 ... ... @@ -73,48 +73,50 @@ 73 73 74 74 (% class="box warningmessage" %) 75 75 ((( 76 -* Processor with S HOWRUNNER™ version 2.190 or newer must be running on the same network as the gateway(s) to be acquired77 -** For S HOWRUNNER™ versions prior to 3.014 and newer, replace **##sr discover zummesh##** commands with **##sr discover zum##**143 +* Processor with ShowRunnerCLC™ version 2.190 or newer must be running on the same network as the gateway(s) to be acquired 144 +** For ShowRunnerCLC™ versions prior to 3.014 and newer, replace **##sr discover zummesh##** commands with **##sr discover zum##** 78 78 * ZUM-NETBRIDGES must already be acquired to their respective gateway 79 -* S HOWRUNNER™ will automatically address any ZUM-NETBRIDGES that do not need have addresses assigned, but will still honor any already addressed devices146 +* ShowRunnerCLC™ will automatically address any ZUM-NETBRIDGES that do not need have addresses assigned, but will still honor any already addressed devices 80 80 * Disconnect from any RF gateways you may be connected to in Toolbox prior to running the discovery command 81 -* Plug loads will not appear in the SHOWRUNNER™ UI 148 +* Plug loads will not appear in the ShowRunnerCLC™ UI 149 +* Newer GWEXER firmware enables SSL by default. Follow the instructions at [[SSL User Configuration>>doc:SHOWRUNNER™ User Guide & Wiki.SHOWRUNNER™ Appendix.SSL User Configuration.WebHome]] and manually add the IP Table entries on the GWEXER 82 82 ))) 83 83 84 84 (% class="box infomessage" id="HCaution:" %) 85 85 ((( 86 -**Note:** S HOWRUNNER™ has two different approaches for Zūm Wireless Discovery154 +**Note:** ShowRunnerCLC™ has two different approaches for Zūm Wireless Discovery 87 87 88 -1. **Manual RF Gateway Assignment** - S HOWRUNNER™ can be told which gateways it should scan. Use this approach if you have gateways that are used by multiple systems on the same local network.89 -1. **Claim All RF Gateways** - S HOWRUNNER™ will find all CEN-GWEXERs [ZUMNET-GATEWAY] on the network and will claim them as its own. **DO NOT** use this method if there are gateways used by different SHOWRUNNER™ or other Crestron systems on the same local network.156 +1. **Manual RF Gateway Assignment** - ShowRunnerCLC™ can be told which gateways it should scan. Use this approach if you have gateways that are used by multiple systems on the same local network. 157 +1. **Claim All RF Gateways** - ShowRunnerCLC™ will find all CEN-GWEXERs [ZUMNET-GATEWAY] on the network and will claim them as its own. **DO NOT** use this method if there are gateways used by different ShowRunnerCLC™ or other Crestron systems on the same local network. 90 90 ))) 91 91 92 92 == Manual RF Gateway Assignment Instructions == 93 93 94 -Use this method if you have multiple S HOWRUNNER™ instances on the same network or have gateways used by other Crestron systems.162 +Use this method if you have multiple ShowRunnerCLC™ instances on the same network or have gateways used by other Crestron systems. 95 95 96 96 * Connect to the processor's console with Toolbox or your favorite SSH client. 97 97 * Type ##sr devmgr ethernet query## and press enter. This queries the local network for RF Gateways. 98 98 * Type ##sr devmgr ethernet show devices## and press enter. This displays all found Crestron ethernet devices. 99 -* For each gateway that you'd like this instance of SHOWRUNNER™ to use, use the hostname from the table of found ethernet devices. For example if the gateway Hostname is CEN-GWEXER-9E6ADA type ##sr ethernet device claim CEN-GWEXER-9E6ADA##. S HOWRUNNER™ will auto-assign an IP-ID. After all gateways have been claimed by SHOWRUNNER™, proceed to the next step.167 +* For each gateway that you'd like this instance of SHOWRUNNER™ to use, use the hostname from the table of found ethernet devices. For example if the gateway Hostname is CEN-GWEXER-9E6ADA type ##sr ethernet device claim CEN-GWEXER-9E6ADA##. ShowRunnerCLC™ will auto-assign an IP-ID. After all gateways have been claimed by ShowRunnerCLC™, proceed to the next step. 100 100 * Type ##sr discover zummesh false## and press enter. 101 101 * Status messages and the results will be displayed on the console. The process should take about 3 minutes. 102 -* When the discovery is finished type ##sr save## and press enter to save the updated config. Due to an unknown quirk that we are looking into, S HOWRUNNER™ must be restarted to complete the acquire process.103 -* Type ##progreset## and press enter to restart S HOWRUNNER™104 -* Once SHOWRUNNER™ has finished restarting type ##sr discover zummesh false## and press enter. S HOWRUNNER™ will be able to acquire the loads attached to the Zūm rooms at this point.170 +* When the discovery is finished type ##sr save## and press enter to save the updated config. Due to an unknown quirk that we are looking into, ShowRunnerCLC™ must be restarted to complete the acquire process. 171 +* Type ##progreset## and press enter to restart ShowRunnerCLC™ 172 +* Once SHOWRUNNER™ has finished restarting type ##sr discover zummesh false## and press enter. ShowRunnerCLC™ will be able to acquire the loads attached to the Zūm rooms at this point. 105 105 * Once completed SHOWRUNNER™ is now ready for full Zūm control 106 106 107 107 == Claim All RF Gateways Instructions == 108 108 109 -Use this method when you have a single S HOWRUNNER™ instance on a local network with all gateways being used for SHOWRUNNER™.177 +Use this method when you have a single ShowRunnerCLC™ instance on a local network with all gateways being used for ShowRunnerCLC™. 110 110 111 111 * Connect to the processor's console with Toolbox or your favorite SSH client. 112 -* Type ##sr discover zummesh true## and press enter. 180 +* Type ##sr discover zummesh true## and press enter. ShowRunnerCLC™ will auto-assign an IP-ID. After all gateways have been claimed by ShowRunnerCLC™, proceed to the next step. 181 +* Type ##sr discover zummesh false## and press enter. 113 113 * Status messages and the results will be displayed on the console. The process should take about 3 minutes. 114 -* When the discovery is finished type ##sr save## and press enter to save the updated config. Due to an unknown quirk that we are looking into, S HOWRUNNER™ must be restarted to complete the acquire process.115 -* Type ##progreset## and press enter to restart S HOWRUNNER™116 -* Once S HOWRUNNER™ has finished restarting type ##sr discover zummesh false## and press enter. SHOWRUNNER™ will be able to acquire the loads attached to the Zūm rooms at this point.117 -* Once completed S HOWRUNNER™ is now ready for full Zūm control183 +* When the discovery is finished type ##sr save## and press enter to save the updated config. Due to an unknown quirk that we are looking into, ShowRunnerCLC™ must be restarted to complete the acquire process. 184 +* Type ##progreset## and press enter to restart ShowRunnerCLC™ 185 +* Once ShowRunnerCLC™ has finished restarting type ##sr discover zummesh false## and press enter. ShowRunnerCLC™ will be able to acquire the loads attached to the Zūm rooms at this point. 186 +* Once completed ShowRunnerCLC™ is now ready for full Zūm control 118 118 119 119 == Examples == 120 120