{ "semantic": { "type": "sensor", "contents": [], "guid": "sensor sensor", "waiting_robots": [], "event_name": "keydown", "attribute": "key" }, "view": { "frontside_width": 116, "frontside_height": 98, "frontside_left": 6, "frontside_top": 6, "drag_x_offset": 48, "drag_y_offset": 50 }, "version": 1 }
Sensors

Sensor are nests whose birds 'live' inside the browser. They can be used the same ways as ordinary nests. The sensor above is listening for keyboard events (keydown events) and the bird reports the key attribute of the event. Try a few keys on your keyboard and watch the sensor below.

Unlike nests, the backside of sensors has fields that can be edited to change what event and what attribute of the event the sensor tracks. All of the browser events should work. Here is a good site that documents all the available events. Click on the sensor below and edit the event name and event attribute. For example, try changing the event name to click and the attribute to which to listen to mouse click events and see which mouse buton was clicked.


{ "semantic": { "type": "top_level", "backside_widgets": [ { "widget": { "semantic": { "type": "sensor", "contents": [], "guid": "sensor", "waiting_robots": [], "event_name": "keydown", "attribute": "key", "active": true }, "view": { "frontside_width": 116, "frontside_height": 98, "frontside_left": 32, "frontside_top": 28, "backside_geometry": { "x_scale": 1, "y_scale": 1, "original_width": 584, "original_height": 259 } }, "version": 1 } } ] }, "view": { "background_color": "rgba(245, 240, 240, 0.941176)", "frontside_width": 0, "frontside_height": 0, "backside_width": 809, "backside_height": 361, "backside_left": 8, "backside_top": 185.1875, "backside_geometry": { "x_scale": 1, "y_scale": 1, "original_width": 1200, "original_height": 475 }, "drag_x_offset": 276, "drag_y_offset": 198.8125, "backside": true }, "version": 1 }

You can also obtain a sensor that is restricted to events that happen to a ToonTalk widget. If you click on a widget and then on > to see the advanced options where you will see a Make a sensor nest button. Clicking it will produce a sensor for events that happen to that widget (e.g. the mouse click that was on the widget). Try it on the number below.


{ "semantic": { "type": "top_level", "backside_widgets": [ { "widget": { "semantic": { "type": "number", "operator": "+", "numerator": "1", "denominator": "1", "format": "improper_fraction" }, "view": { "frontside_width": 76, "frontside_height": 55, "frontside_left": 29, "frontside_top": 31 }, "version": 1 } } ] }, "view": { "background_color": "rgba(245, 240, 240, 0.941176)", "frontside_width": 0, "frontside_height": 0, "backside_width": 809, "backside_height": 361, "backside_left": 8, "backside_top": 185.1875, "backside_geometry": { "x_scale": 1, "y_scale": 1, "original_width": 1200, "original_height": 475 }, "drag_x_offset": 360, "drag_y_offset": 213.8125, "backside": true }, "version": 1 }

Sensors are great for making interactive apps in ToonTalk, including games. Here's a simple example of an element that rotates when clicked. Click the stop sign to stop it and then click the picture to see how it works.


This will be replaced by a work area containing one thing: an element. top level widget
{ "semantic": { "type": "top_level", "running": true, "open_backside_only_if_stopped": true, "backside_widgets": [ { "widget": { "shared_widget_index": 0 } } ] }, "view": { "background_color": "rgb(245, 240, 240)", "backside_width": 665, "backside_height": 371, "backside_left": 8, "backside_top": 184.1875, "backside": true, "drag_x_offset": 596, "drag_y_offset": 260.8125 }, "version": 1, "shared_widgets": [ { "semantic": { "type": "element", "html": { "shared_html_index": 0 }, "attributes": [ "rotate" ], "attribute_values": [ 0 ], "running": true, "open_backside_only_if_stopped": true, "backside_widgets": [ { "widget": { "semantic": { "type": "box", "size": 1, "contents": [ { "semantic": { "type": "sensor", "contents": [], "guid": "sensor", "serial_number": 3, "name": "sensor", "event_name": "click", "attribute": "which", "active": true, "sensor_of": { "shared_widget_index": 0 } }, "view": { "saved_width": 116, "saved_height": 98, "backside": false }, "version": 1 } ], "horizontal": true, "name": ";" }, "view": { "frontside_width": 164, "frontside_height": 68, "frontside_left": 330.5625, "frontside_top": 90.28125, "backside": false }, "version": 1 } }, { "widget": { "semantic": { "type": "robot", "frontside_conditions": { "semantic": { "type": "element", "html": "%3Cimg%20alt%3D%22NUS%20coat%20of%20arms.png%22%20src%3D%22http%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fen%2Fa%2Fa4%2FNUS_coat_of_arms.png%22%20width%3D%22201%22%20height%3D%22250%22%20data-file-width%3D%22201%22%20data-file-height%3D%22250%22%3E", "attributes": [ "rotate" ], "attribute_values": [ 0 ], "erased": true }, "view": { "backside": false }, "version": 1 }, "body": { "type": "body", "steps": [ { "type": "robot_action", "action_name": "pick up", "path": { "type": "path.to_resource", "resource": { "type": "number", "operator": "+", "numerator": "1", "denominator": "1", "format": "improper_fraction", "is_backside": true } } }, { "type": "robot_action", "action_name": "drop it on", "path": { "type": "path.top_level_backside", "removing_widget": true } }, { "type": "robot_action", "action_name": "edit", "path": { "type": "newly_created_widgets_path", "index": 0 }, "additional_info": { "setter_name": "set_numerator", "argument_1": "10", "toString": "by changing the value of the numerator to 10", "button_selector": ".toontalk-numerator-input" } }, { "type": "robot_action", "action_name": "pick up", "path": { "type": "newly_created_widgets_path", "index": 0, "removing_widget": true } }, { "type": "robot_action", "action_name": "drop it on", "path": { "type": "path_to_style_attribute", "attribute": "rotate", "element_widget_path": { "type": "path.to_entire_context" } } }, { "type": "robot_action", "action_name": "remove", "path": { "type": "path.to_backside_widget_of_context", "type_name": "box", "next_path": { "type": "box_path", "index": 0, "removing_widget": true } } } ] }, "name": "ROT", "speed": 1, "running": true, "description": "a robot that adds to the rotation when receiving a click event." }, "view": { "frontside_width": 73, "frontside_height": 101, "frontside_left": 179.078125, "frontside_top": 84.875, "backside": false }, "version": 1 } } ] }, "view": { "frontside_width": 272, "frontside_height": 208, "frontside_left": 135.046875, "frontside_top": 131.15625, "backside_width": 0, "backside_height": 0, "backside_left": 0, "backside_top": 0, "saved_width": 272, "saved_height": 208, "backside": false }, "version": 1 } ], "shared_html": [ "%3Cimg%20src%3D'data%3Aimage%2Fjpeg%3Bbase64%2C%2F9j%2F4AAQSkZJRgABAQEAtAC0AAD%2F4RmWRXhpZgAASUkqAAgAAAAJAA8BAgAGAAAAegAAABABAgAUAAAAgAAAABIBAwABAAAAAQAAABoBBQABAAAAlAAAABsBBQABAAAAnAAAACgBAwABAAAAAgAAADIBAgAUAAAApAAAABMCAwABAAAAAQAAAGmHBAABAAAAuAAAAIIFAABDYW5vbgBDYW5vbiBQb3dlclNob3QgUzQwALQAAAABAAAAtAAAAAEAAAAyMDE1OjA0OjIyIDE4OjA2OjAzABsAmoIFAAEAAAACAgAAnYIFAAEAAAAKAgAAAJAHAAQAAAAwMjEwA5ACABQAAAASAgAABJACABQAAAAmAgAAAZEHAAQAAAABAgMAApEFAAEAAAA6AgAAAZIKAAEAAABCAgAAApIFAAEAAABKAgAABJIKAAEAAABSAgAABZIFAAEAAABaAgAABpIFAAEAAABiAgAAB5IDAAEAAAAFAAAACZIDAAEAAAAAAAAACpIFAAEAAABqAgAAfJIHAMIBAAByAgAAhpIHAAgBAAA0BAAAAKAHAAQAAAAwMTAwAaADAAEAAAABAAAAAqADAAEAAAAQAQAAA6ADAAEAAADMAAAABaAEAAEAAABMBQAADqIFAAEAAAA8BQAAD6IFAAEAAABEBQAAEKIDAAEAAAACAAAAF6IDAAEAAAACAAAAAKMHAAEAAAADAAAAAAAAAAEAAAA8AAAAHAAAAAoAAAAyMDA3OjAyOjA4IDAwOjI1OjA1ADIwMDc6MDI6MDggMDA6MjU6MDUAAwAAAAEAAAC9AAAAIAAAAF8AAAAgAAAAAAAAAAMAAACK%2BAIAAAABAEE1AADoAwAA4wAAACAAAAAMAAEAAwAoAAAACAMAAAIAAwAEAAAAWAMAAAMAAwAEAAAAYAMAAAQAAwAbAAAAaAMAAAAAAwAGAAAAngMAAAAAAwAEAAAAqgMAAAYAAgAgAAAAsgMAAAcAAgAYAAAA0gMAAAgABAABAAAANjASAAkAAgAgAAAA6gMAABAABAABAAAAAAARAQ0AAwAVAAAACgQAAAAAAABQAAIAAAADAAUAAAAAAAQAAAABAAAAAAAAAAAAAAAAAA8AAwABAAEwAAD%2F%2F%2F%2F%2FqgLjACAAYwDAAAAAAAAAAAAAAAAAAP%2F%2FAADgCOAIAAAAAAIA4wAeAdcAAAAAAAAAAAA2AAAAgACfAF8AvQAAAAAAAAAAAAAAAAAAAAAABzAAAAAAAAABAEE1AABjAL4AAAAAAAAA%2BgAAAAAAAAAAAAAAAAAAAAAAAAAAAElNRzpQb3dlclNob3QgUzQwIEpQRUcAAAAAAAAAAAAARmlybXdhcmUgVmVyc2lvbiAgICAxLjAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqAAMAUQFSAVEBAAAAAAAAIQECAAAACgAAAAYACgCLAOMBAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqyIAGAEAAEAAGgDSAAAABAABAAIABAAAAFI5OAACAAcABAAAADAxMDABEAMAAQAAAOAIAAACEAMAAQAAAKgGAAAAAAAABgADAQMAAQAAAAYAAAAaAQUAAQAAANAFAAAbAQUAAQAAANgFAAAoAQMAAQAAAAIAAAABAgQAAQAAAOAFAAACAgQAAQAAAK4TAAAAAAAAtAAAAAEAAAC0AAAAAQAAAP%2FY%2F%2BAAEEpGSUYAAQEAAAEAAQAA%2F9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy%2F9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy%2F8AAEQgAkwDEAwEiAAIRAQMRAf%2FEAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC%2F%2FEALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29%2Fj5%2Bv%2FEAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC%2F%2FEALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5%2Bjp6vLz9PX29%2Fj5%2Bv%2FaAAwDAQACEQMRAD8AsRp7VajWo448dCasoCOwP0r3TyByrUoFNBAHPH1p4piCiloxQBmalqFrHBPB58azFSuGPfFUfC9oEsJQ4Vv3pIKnIPA6VzXiJx%2FbV0Np3BuPToK0vB%2BqGK8awkPyyfMmezelYKd56m3L7mh2yIFzgAD2p9KBS4rcyEpaXFGKAG0U7FGKAG0lOIpMUAJSU7FJigQ2kNOxSGmAw1C8fccHv6GpyKaRQIoSJ2x07en0qrInBPr%2BtaciBhyKpzLt%2FwAf8aQ0zOYc9R%2BNFMnk8uTbtbpniMt%2BoooK1NxFqdRUSinggdSKRJJmjj%2F9VRGeJesi8e9Me%2Bto1y8yKPUnFFwsWMkdOfrSF2%2Fu1kT%2BKdGtyQ99ESOytu%2FlWXqHi6Ka3I01xyOXYYI%2BgrN1IrqWoSfQk1i30qGWW5u2R5XOdgzuJ%2FOsHw4nneJ7YiPEe4kenAJqlcXMtyRJM5d8Yyau%2BFbkf2zDGSFcZCHpk4Psa5lUU5o6ORxgz08CnYqorXSjlSfwB%2FrTvtEq%2Fei%2F8db%2BgNdtzlsWqMVXF4vdQPqwH86cLlT%2FAAn8CD%2FWi4E2KMUzzgeiP%2BVHmj%2B4%2FwD3yaAHYpMUnmr6P%2F3waTzB%2Fdf%2FAL5NMBaTFJ5n%2Bw%2F5U0y%2F7B%2FMUCHUhphmx2Uf7zgU0zE9Av1GW%2FkKAHnimmmFnJzz%2BC%2F40xvM6fN%2BLY%2FlQIdIwAqnI6%2BuT6DmpTEc8kZ%2Bmf50n2cEZYsR9cUAZU0TNKSrTqPRCAP1orSMEefuL%2BVFFirnm0njfWJAdot4h%2BJ%2FrWddeINVu8iW9IHYRjGfyqqbWOW4lJBUKO3Hao4YEMIkxyDXkupUe7PQUILZE6Xd6cRm8uAvcBiBSSRtLIBvkJ9HOc0rB02ZPzYOaSbIniIIBHI5qU29x2S2JobRCXzGTjgA9qtACIBcYA7U6CN5NjICwY5wDz%2BVPlUbjnP49aGrBe4m5SucnBFNtJTb3KXIODG6uMexzRztxj6UyLO7BHHeknZja0Pao2Ekaup4YAin1jeF7o3egWxblox5RP8Au8fyxWwK9dO6uec1Z2FppjQ9UU%2FhTqKYEfkxEf6tfyo8iL%2B4KeOuKWgRH5Ef9wUnkRf881%2FKpTSUAR%2BTH%2FzzX8qPLQfwL%2BVPpDTAbtVeigfQUhp1Rs3YUCGs2OB1qI0%2FGelKFAHvQIjC9zQaJZY4hmR1QerHFRtcQ44mj%2F76FMBCOaKjNzAD%2Frk%2FOigZ426nzbg7iBmoliAtlIdsHjr%2FAErTkh%2BUkRx%2FN97JPNVXLRoVVY1CkdAeBXjtI9JNjlhDFVd8MOhJqO78tZdzDnbxj1p8O1nRm8zcclSOh%2FxqSaMS3anC8AZGehp20uK%2Btie2RWQFnCEdSSalZ1zjAKgcEDGfenRbo4RIHY8kELjjt1NIdpPAOPQ0pKyGndjWAXHPGKFwTyBmlbnr2pUwW56dago67wXqcUHm2Usm3zHDRg%2F3scj%2BVdvXEeBkH2m8O7cFCkexrts16dC%2Fs1c4avxsUGjPNNBqtNfwwXKwySRoCpJLOBj0GK1bsZ2LR60yO5hlnkhSRWkixvUHlc9KduBUEEEHkGuS0jK%2BNtQbcQrIxPPB5FKUrWGo3udfRSZoqiQpKCcVGzZoAGb0pmM%2FShRzk0TSeXA8n91SfyFAg3Ljg0hYetUtMuPtWmwzd2XmrRoTuDVinfabaag6NcKWKDAwcU%2B3tbe1gWGGNVRegxUxphosr3C72AlQeBRTCBmiquB5WsoMRBBHPeq05UMxbO0jt%2FKrL2dxChkaMMoyG2kNj8qW2t45nQON0QILKwP9K8hRk3Y9FtJXMlB%2B8WNnIJ4HP3Pxq7EkSXTxqx2hQGJ559a0NdsrFJo2gAVnQElDwPp71hRuRlGMpmMn3icDGP502uV2Yk%2BZXRsW8UHmkPOCvYf%2FAKqe20fd7e9MsQEj3Ph16lckc0rgeZkDj65qZDiB6fU9BTl5P4YppyR0GKcpCgAjOags7HwOg23jYOQVB%2FKutdlRS7kKoGST0Fcl4QnhtNNvrmdwkfmLkn6dKr6rrE2ptsUGO2HSPu3uf8K9GE1CmjjlFymzcTxHaNfLFwIG4WXPU%2B47D3rn%2FFsMj6yrrEzKUXDY4NZuF3k45xitmz1JIEW0vA0tvnqRzGfb1FZufOrSKUeR3R1cP%2FHvGMdEA%2FSuY18jTpvMhXY8ykMw6kZH%2BFdVCUkiR42DIRlSO4rkvEhefV%2FJH3UQDH171vPSJlHVmh4Z1s3ebOY%2FOgyGJ5PPSujL46V57aI1rdRyJkODxjvXa280hwHAJxz9acJaaiki3yaOBVaK%2Bhn8wo4KodrH3qYyA96sgU%2Feqlq8wh0q6f8A6ZkVaMijqRXK%2BINQZt9urko68gUSdlcaV2N0PXLWw03ybp2Vg524Qnj8PxrQ%2FwCEp0w%2F8tJf%2B%2FTVxvlmXYiBmY8AAd6J7ee1k8qdCj4zz6VyqrJLQ2dOLep2X%2FCTaYzBRLJz%2FwBM2obxDYgZzLj%2FAK5muKiP71cnvWnIymMjPJz3qlWkJ04o3D4jsCeDL%2F37NFcjudOKKXt59ivZRMyO%2BkjcFVwfUfTFOfVGZvNJVQQx%2B7nBxjH41Ero0RIX5xk9OMdKgmVCgAQZKZ%2BpzXO5NdTXlTLsN2sLqzJFMOAEDHnPtWxPqFpLYuqxKuRlV9cfSuVgi23EXm%2FJGeQWAO4%2F4Vaublbc%2BWeVf5crwBVRqNJ3FKCvoXrGAyu6oMFcnk8CmsuXwvJFQWTXDblT7pHOOnFTbSjZJrGVrI1je4qABzjoeeafSsC3zDtQw5z0qCixbeZtAViMNnaTx9frV%2FkLnGOOtZtvcuryRFXaJfmUKmfmP%2F6qtNcvDGJGgdh0IQfNn6VutkZPcvytA0TBBGzEnp161BMD55JycHnJ4P6VFEtzOodbOdSTwrKQfxqxcKyXDxOAj55BNU7slJIS21O9tJnFtOIgcHygMr%2BtNNw94z3M6IshbDbc4JHf2qjK%2BJie4AFTxW94xZ0tpSrY5VDVRk2S0i3ZCWWEgMA%2B7o%2FpXQf2jJawkoQTt4DdAawraKSKQb1kLH1QirNyXyxKsBjuK3jojKWrItF1JY55ra6CmKdiSewb%2FCtoXUTXEkVpIoeNAyHOVb2%2FlXHsru5KKc57LV6ycQZ3qxJxjjpzUxm9hyj1NaXUnktykyESqSDzgVz965fC7nPIOByPxrRuj5hZ0B%2BY5ANc%2Byyy3K7pdiL1JPUjtTm9AitTpNAt90rTMv3Bhfqad4hKG3DMo81DnA6496raddtCrRqecZqd76CVTFK5eVgQEUZ60U7clhSvz3OaMgPO7JzxzW3pul3Nym8lVjb%2BJ%2Bh%2BgpUVEhS2hs96Hh3YYwfXPrW49062ObW3yyDGzHIohDW7HKXREMGkBYgCIJevzYxRWS8167lvtLxjsuDx%2BVFaXj2Js%2B5yJlVGBRgy9cEYyKcwV1dgCBjOCTxz9RVWYbCMqen5dq0NKtzesVZvk%2FixjOPyrgjeTsdTslczpJWA2546%2FT9ary3CsY1OeuTg9a9DtLLRoIA81tANxxuk5q61tpEQDfY4R7%2BXx%2Bda%2FV5PqR7Zdjh7ByLaTgDHIPcVMWBGT1rZ1TULaWE29tZqFYZEqYwDXPsduOuc81hVXLZXNabvqWg%2BYsZwacCCcZrLa4IkAHAqeJmdvl5rMs7XQby1SyaKTcJfNY4Vc46d62DfQooZUcjOQWkxmuH01pwCYg8jOx4Cn9K3YdK1K4cByIoxzyc%2FpXfTm%2BVJI5JxV73Lr62M5MaKc7fvE1Drdj5tot4jP5xCqEQcGr9j4cggIaVjM3XL%2FwCFbYto8RnkbDlcH2I%2FrWvK5L3jPmSeh5bNa3qbZfssroMFvlPIHWtqDxc8SqpguVUcY8oYrvtoPXpTXjh6sqfiKmNJx2Y3UUt0cj%2Fa0%2BowbLa0mEvVWK4A%2FGpYRelSt%2BxgUdHVgSa1rvVoYAUhUMR3xxWdEDfTGWdgEHLE1T9RFOSwsgPOa4vMH%2BLdj8qfBDbShoo5bs555YU%2FULuKcBViAVBheags5DBOsiqc5GeKnS49bEyadCSdstxn083n%2BVY9xoF%2BboyRx7o92R83OPeu3kt47hVfbtk7MOtELsD5cgAI7561TgnoSptHC%2BRfWsuTaPnH8SZFRnUr6NsR2hB6YWHB%2BvAr0U8fSonQkcYpKk0rJjdS7u0c1bX6pbxxzwrvwC6scFSfWrD3FpPhg7jB6I%2FH%2FwBeqereGJrueW4huiskhyVI4rKk07UtOQBUMoxj5Bux68Uc0o6NaAlF7M22m06M7fPcH03UVhL5QH7xsv338GinzMfKcrdTGO4mD8ozk5%2FlT7G6mjuhJDjbjlM8MO%2BBU0egXVy%2BWGyMnIZj1%2BgrX0vQ7mC4Z1RV%2BfhvVfy4rihTm5XOmU4pWL6SW%2F2cRXBG7dmORuSP%2Fr1k3lxeRu0NxmckfxHgD1x%2FWuvOmLJAqyW8chHQN%2FD71Tfw5PcBopp8Iv3JF649MeldNSEnsYQnFbnMC%2FGxImgUMpIYjjGenAqDDzSukYJ7DjBNddD4OhVgZJpH9cgCtW30GztguyFMjueTWP1ecn7xp7aMdjhrTw9cXLgthUB5x1ro7Tw5HAxKfKT3PzV0sVpHGPkjVfoMVL5aqOSBW8KEYmUqspGda6bb27K8Me0jpg8VpoCBk4FM3beI48n1PApjTrGd80uMdug%2FKtUkjPcuqwA65zStOqjLEAe9YF3rajKWyl2%2FvdhWTLdXFxITJMx7bV6UnNIajc6afXIIyUQl26fL0FZU%2BrTyBgSV9lqgkMrZGCoA7jrU8MaxSbpxlRzgHk1Lk2VypD7a1e6kMkp2xDkkngVNcXMbIIrfHkKeePvVVmv5J1EW3yoOu1eMj3qEOzDaqbewWlogExvlOMY9RU0CNG2XOec1NBAY18yTC98GpoJlaTlVx64oSGzchlbyVJTHFRXQBxIDg0%2BKcPFkgD6GmzENED2rboZdRtteeYSjdR3qds9VP4Vmyr0kj%2BVqs2tz5i7WPtQmDROX7MMGo3QEdBTydpw3IPtUbhlGUOR6GqJKj2sbNkqD9RRTzKM8gg0UWRRQtrOGI7RGAAABV5EA%2FwDrVBHgdTVlJFHTn6UrAyZV9BmpApPYVGrsR0x9abLPDEMyzAe2cUCLACjqad0HCj8axZteiRnSBd23%2BLtWbJql5cjhyVJ5KAgD8alyRSizp5rmGFcySAfSqL6vCP8AVjPvXOOWZyZHJB7ZpUZz%2B7iXH0FQ5lKJqXOpzSZAcRgdx3rNy8jEBmkYnjJ71Zh02W4wW%2FKtqCyht1JYhfb1pWbHojIg0ueTlvkFXotOit%2FmZlz7mpJ9SSHCIgOe5NVJ79pgMKAF6noKdkg1HXN9GpCRAEDuB1qlIxbJc5z0C1Gz84RAT3NWLe0ZjluB9ancZEsUkhACnb246VZW3WNNzKVI7jrVrARMBsDHXHeoUKuSC5PbmnYCFjETt3HPqeafEse5QSCM%2BlWvJhZCjAZ9qnFkrRLsUBadhXBWUfLCRn0PWrDLsiVWJJ71HDFhgCASKuMoIrRIhlLaNpGe1RRLtlyO%2FFWSqknHpUaoOTjoaLAWSdyYJ5FRb8ZBpWbGGHSoZHz6VRIMRntRUBk5opjK8XOM81cHyjjiiipAzNXuZoUUxyFckDistSWWQsSxGcEnNFFZS3NFsPUDZjA561H5jhwgYhc9PwooqWNE0KKTkgZrdto02p8ooopxEyWVmWGTBxg4rBa4llllV5GYKwwD2oopyBEqqJIyzgMfemSc7h2x0oopDHRKAMjr61oAkIMHuKKKEIJuGwOmcU6JFWMkKM880UU%2BoE1qB9qFaD8SDFFFXHYmQ49F96VeUooqiSI%2FfP0qMADPFFFADG%2B6RVZzx%2BNFFMCJutFFFMZ%2F%2F9n%2F4QpwaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49J%2B%2B7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc%2FPgo8eDp4bXBtZXRhIHhtbG5zOng9J2Fkb2JlOm5zOm1ldGEvJz4KPHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjJz4KCiA8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOmV4aWY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvJz4KICA8ZXhpZjpNYWtlPkNhbm9uPC9leGlmOk1ha2U%2BCiAgPGV4aWY6TW9kZWw%2BQ2Fub24gUG93ZXJTaG90IFM0MDwvZXhpZjpNb2RlbD4KICA8ZXhpZjpPcmllbnRhdGlvbj5Ub3AtbGVmdDwvZXhpZjpPcmllbnRhdGlvbj4KICA8ZXhpZjpYUmVzb2x1dGlvbj4xODA8L2V4aWY6WFJlc29sdXRpb24%2BCiAgPGV4aWY6WVJlc29sdXRpb24%2BMTgwPC9leGlmOllSZXNvbHV0aW9uPgogIDxleGlmOlJlc29sdXRpb25Vbml0PkluY2g8L2V4aWY6UmVzb2x1dGlvblVuaXQ%2BCiAgPGV4aWY6RGF0ZVRpbWU%2BMjAwNzowMjowOCAwMDoyNTowNTwvZXhpZjpEYXRlVGltZT4KICA8ZXhpZjpZQ2JDclBvc2l0aW9uaW5nPkNlbnRlcmVkPC9leGlmOllDYkNyUG9zaXRpb25pbmc%2BCiAgPGV4aWY6Q29tcHJlc3Npb24%2BSlBFRyBjb21wcmVzc2lvbjwvZXhpZjpDb21wcmVzc2lvbj4KICA8ZXhpZjpYUmVzb2x1dGlvbj4xODA8L2V4aWY6WFJlc29sdXRpb24%2BCiAgPGV4aWY6WVJlc29sdXRpb24%2BMTgwPC9leGlmOllSZXNvbHV0aW9uPgogIDxleGlmOlJlc29sdXRpb25Vbml0PkluY2g8L2V4aWY6UmVzb2x1dGlvblVuaXQ%2BCiAgPGV4aWY6RXhwb3N1cmVUaW1lPjEvNjAgc2VjLjwvZXhpZjpFeHBvc3VyZVRpbWU%2BCiAgPGV4aWY6Rk51bWJlcj5mLzIuODwvZXhpZjpGTnVtYmVyPgogIDxleGlmOkV4aWZWZXJzaW9uPkV4aWYgVmVyc2lvbiAyLjE8L2V4aWY6RXhpZlZlcnNpb24%2BCiAgPGV4aWY6RGF0ZVRpbWVPcmlnaW5hbD4yMDA3OjAyOjA4IDAwOjI1OjA1PC9leGlmOkRhdGVUaW1lT3JpZ2luYWw%2BCiAgPGV4aWY6RGF0ZVRpbWVEaWdpdGl6ZWQ%2BMjAwNzowMjowOCAwMDoyNTowNTwvZXhpZjpEYXRlVGltZURpZ2l0aXplZD4KICA8ZXhpZjpDb21wb25lbnRzQ29uZmlndXJhdGlvbj4KICAgPHJkZjpTZXE%2BCiAgICA8cmRmOmxpPlkgQ2IgQ3IgLTwvcmRmOmxpPgogICA8L3JkZjpTZXE%2BCiAgPC9leGlmOkNvbXBvbmVudHNDb25maWd1cmF0aW9uPgogIDxleGlmOkNvbXByZXNzZWRCaXRzUGVyUGl4ZWw%2BIDM8L2V4aWY6Q29tcHJlc3NlZEJpdHNQZXJQaXhlbD4KICA8ZXhpZjpTaHV0dGVyU3BlZWRWYWx1ZT41LjkxIEVWICgxLzU5IHNlYy4pPC9leGlmOlNodXR0ZXJTcGVlZFZhbHVlPgogIDxleGlmOkFwZXJ0dXJlVmFsdWU%2BMi45NyBFViAoZi8yLjgpPC9leGlmOkFwZXJ0dXJlVmFsdWU%2BCiAgPGV4aWY6RXhwb3N1cmVCaWFzVmFsdWU%2BMC4wMCBFVjwvZXhpZjpFeHBvc3VyZUJpYXNWYWx1ZT4KICA8ZXhpZjpNYXhBcGVydHVyZVZhbHVlPjIuOTcgRVYgKGYvMi44KTwvZXhpZjpNYXhBcGVydHVyZVZhbHVlPgogIDxleGlmOlN1YmplY3REaXN0YW5jZT4xMy42IG08L2V4aWY6U3ViamVjdERpc3RhbmNlPgogIDxleGlmOk1ldGVyaW5nTW9kZT5QYXR0ZXJuPC9leGlmOk1ldGVyaW5nTW9kZT4KICA8ZXhpZjpGbGFzaCByZGY6cGFyc2VUeXBlPSdSZXNvdXJjZSc%2BCiAgPC9leGlmOkZsYXNoPgogIDxleGlmOkZvY2FsTGVuZ3RoPjcuMSBtbTwvZXhpZjpGb2NhbExlbmd0aD4KICA8ZXhpZjpNYWtlck5vdGU%2BNDUwIGJ5dGVzIHVuZGVmaW5lZCBkYXRhPC9leGlmOk1ha2VyTm90ZT4KICA8ZXhpZjpVc2VyQ29tbWVudCAvPgogIDxleGlmOkZsYXNoUGl4VmVyc2lvbj5GbGFzaFBpeCBWZXJzaW9uIDEuMDwvZXhpZjpGbGFzaFBpeFZlcnNpb24%2BCiAgPGV4aWY6Q29sb3JTcGFjZT5zUkdCPC9leGlmOkNvbG9yU3BhY2U%2BCiAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjIyNzI8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xNzA0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICA8ZXhpZjpGb2NhbFBsYW5lWFJlc29sdXRpb24%2BODExNC4yODY8L2V4aWY6Rm9jYWxQbGFuZVhSZXNvbHV0aW9uPgogIDxleGlmOkZvY2FsUGxhbmVZUmVzb2x1dGlvbj44MTE0LjI4NjwvZXhpZjpGb2NhbFBsYW5lWVJlc29sdXRpb24%2BCiAgPGV4aWY6Rm9jYWxQbGFuZVJlc29sdXRpb25Vbml0PkluY2g8L2V4aWY6Rm9jYWxQbGFuZVJlc29sdXRpb25Vbml0PgogIDxleGlmOlNlbnNpbmdNZXRob2Q%2BT25lLWNoaXAgY29sb3IgYXJlYSBzZW5zb3I8L2V4aWY6U2Vuc2luZ01ldGhvZD4KICA8ZXhpZjpGaWxlU291cmNlPkRTQzwvZXhpZjpGaWxlU291cmNlPgogIDxleGlmOkludGVyb3BlcmFiaWxpdHlJbmRleD5SOTg8L2V4aWY6SW50ZXJvcGVyYWJpbGl0eUluZGV4PgogIDxleGlmOkludGVyb3BlcmFiaWxpdHlWZXJzaW9uPjAxMDA8L2V4aWY6SW50ZXJvcGVyYWJpbGl0eVZlcnNpb24%2BCiAgPGV4aWY6UmVsYXRlZEltYWdlV2lkdGg%2BMjI3MjwvZXhpZjpSZWxhdGVkSW1hZ2VXaWR0aD4KICA8ZXhpZjpSZWxhdGVkSW1hZ2VMZW5ndGg%2BMTcwNDwvZXhpZjpSZWxhdGVkSW1hZ2VMZW5ndGg%2BCiA8L3JkZjpEZXNjcmlwdGlvbj4KCjwvcmRmOlJERj4KPC94OnhtcG1ldGE%2BCjw%2FeHBhY2tldCBlbmQ9J3InPz4K%2F9sAQwADAgIDAgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgSFBUU%2F9sAQwEDBAQFBAUJBQUJFA0LDRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU%2F8IAEQgAzAEQAwEhAAIRAQMRAf%2FEABwAAAEFAQEBAAAAAAAAAAAAAAMBAgQFBgAHCP%2FEABoBAAMBAQEBAAAAAAAAAAAAAAABAwIEBQb%2F2gAMAwEAAhADEAAAATyvrPnZJxFeJebbj5UnaLSk9vCqPuDkDkDkEnNI0GhFFjoixDU%2BWiQYy9QXh5zz3j6fSNH0wctEvB3B3AiAnCRGuaDWiFECLAWrY6CkE5w1UMh5jwdeh9ivNy9EV4O4ORicJOBEEjWNQTBBCq1q5OgqiVEc0dfi%2Be1D7etud1c68PuEnA3mJwkQEaJiNIAIlYtXBUPUSqn0TL8%2ByPk%2BlqPUvQ5DP6InUO5nIJEYnCRgDaIaBGCA1GUGDPRua8Cs571TuW7RxtJ939XgXu3lFyaqHc13AiC7mOQSDaRgnib%2Ba4%2Fy%2FvuOiW7eZ70KgD9%2F9Ljsl9Lh5Qa4ORrkBEBEaa0QhCRwILT%2BbRfMe%2BU2Urt4sypibjbfW%2B7l2y%2Bx5vcCcCqCI0iAiNNCIapOZoYMfzlH%2BZ94phOY83ipibja7Tqh6v3ueUqArQdwIgIjXNEFonc0zJT3aH0fP8b572pRWnw0aSI08causa49rmfQeP3NK0M5pca5N4RGNCLkBrRNaxo2%2FDofz3swy5JSaVkxCMjYlraXty%2B%2F5CNTBKDyr1WF%2B7o5kYA2CLRJ2TnlrNDGj8Sj%2FOe1WhA9jvEh2No2dH3Vpezd73kRKmdcL6rG2OialvzdERtacMS4%2FOrS0SRlMtG34K75j3WQKzdK0rmPPbxz2bQ9EvXsl7PmYfWcXS7YdfPm%2FN5b32v6IvWmGtAXn8t5sfm9ymasK3ea6NzdFqvTzZV3F13oQasbP0%2FTC9zXRAMvGtBufQ5MRnpbn7e0gTKYM3WajzjnuyZx3qDZ1bVtMZ6ZKoCNarPVmsfz%2B1pZ7UlM2su0Z9deIX426PTF1o%2BzmxW9TgR6YoqHltqb%2B8vNQcnVbaPph5kzze2AyNbsfTz2EaNpTY1WRvNmfohGlijwWEfeV8Xphm%2B57X%2FXjQ1fPbdSevnzRJU2lR1Q8qXxPTgGxSVTtadcacTG0lUxdd3ckous0FZz311h2co3Vnm289rFaYpo8qWs2s3FpiypNrzwnjej1ctBbKmp6mEJKjtF0x2TPW82qs8axdHxdU%2B06I2EumZMV5OTSg0kaRokaSdZ0xkMvLxnvB9a%2FwBd6PFPW8s1m%2FK9AbOe5bK071%2Fdx3Gv6ueUe02NCuz0qWeYzqw1O8R7Gk1FrNR5ny9PSpVyMPzuvZ3fqcI63Li0%2FndsJIWu7vu49peelxSZFcKooWdxumvY0pImdTdzaSQqzsB6ygQrs%2FOnkkL572NFq%2FS46uk5qqvPe513o8NvO7eeUbWStZX0k91qx3e1dMwZE9n1lpFrK4bbCE3Wej6fgE%2F5%2FwBbX6j1%2FOpwQrPvN5mHvJ7WMRFZnI1DInslhrNXwGsGpF7aZIW8Q351aMrMUYeYtZUnydzI4COH3IFBzqkrI1FJnq5JXNUHDFLTlRdKVbUwdKYHCTtn0m0GiumZ0c4n8J406uljUcfGxWWXeS7TqaTG%2BJknv0ozU5M7WbIdpiAEk%2BsgFohyMs5hdX51Q1vPZ%2FZaWQX0286mFnUUE3Ms9JgWTj6zIFrNkzeY4QKxoUbRCmYZ6POqZYVLHQ%2BxT0B7SpKzFJQkmHy7RaIJ0ddbypaz5zI4kcLSiib%2FAP%2FEADAQAAICAQMCBQMCBgMAAAAAAAECAAMEBRESEyEGEBQiMRUgMkBBFiMkMDNCNDVD%2F9oACAEBAAEFAlEUQCAfd4j91GjVA6eKwv6Jl3jCMO7CERYveAQD7dcuenFOoZM0TJTIw%2F0ZG8Zdow7WdoonHeBZ3m%2F2eJf%2BJvyOgZpxs79IRLBLQeKiD7O03nIzJpGSNUtxqK9CHLVv0J82MbtL%2BFqCD7snLrxEzdabLlhAXRWHrVvJnXWdeuAj%2B2TxnUSdVZy3hZhGtmxnTMNRnVUR86qqX%2BKsSk%2Fxbi8X8Y1rLfF97xtf1G6JmX2Ly7v3Gk5Rwsz09Rnp0nQM9LPTkTpvOJnee6e6e6bTiZ04KyJxecDOmJwUT48ttoYbrrJwWBVaKnuc%2BxKuKV1npEcYtm8dvaqbpp2R6vB%2FQE7%2BW2%2FmZbStl7UKlxq6cYnm53pxt%2BNf%2BRhPxLnaVmeFcjlhfaP7RO%2FkB5nyZuOUzs2R1WFjAubgRj1KyutrgnvNtvJUnhi%2Fo6h%2FeJ38tvPKXU3yMem%2FpHHjD%2Bp5f1HEmwWBWyfalHKx6wyg%2FK%2FjB2mC1i5WK9r0%2FYZfrSY%2Bp%2FbvCZtvGPBeU3m83nKFoQ5Ww2oLC3Oopyu3amtPZYgpLMDDP3T8tNQNqnm7cUou6lc1hd9b%2BwmGAeWsXmjDRuaeZ8qyI%2FZbU%2Fl9R3LV2KjVEiql7YVAnz5D50ZOWp%2BXqqlyNe%2F6zw%2Ft9S%2BZqWKiWUa0wzKrVurhM%2BfI%2BXiN9sbSrergfYTB2jHY1YduTfdRbTbZkDIdcrtT1uLMRBD8gTQhvq81LWemWtcmnNTUqMDS%2FQ5815gmIazNBzONIPKbeW%2Fk7hBr94uY3PWvVtMN9glNtps2Oxdufo0M6dtZwzXjnWLhdkCu%2BvJpRgUbgrnc7zbab9%2FD5H1PUdYa%2BAduUUgJpurmuDYzxAwa5axxw1%2FqKwd7M9VzPUpz57w2BZmZK8bmLTY2PlaZZi1yk8bOoONo3b1G09czj1T2VJb0DRnVMuoms3U1lkYTbsv4ysbmrlE%2FP%2Fzc71I%2FCY2ZlYqtlNnPa3G1FcWjKNJvzrfqFNlOYivypr1Dq15D8iQOvpNfNrDzFnZ%2F3xKbLXp065H6XIGoPZYhE5MW32lz8bcfNKUf7fkF%2BZValdgbiQOoNoe6E7sh2cWcLeY3xT2ssl4HOu90GAxRMj2233cJj39V9OvCV23DJGVp3UyX02mV1Jj05OpLQ9fMQjgxCsNug12R1hQTtTSq1tE%2BDsGMowLMy8aRfLvD911tWgmtMrAGLiG1eBeY%2BhG5Bor0FMRqmfFImRWEdErnTKDqoRl1rKXHHHZjYfVLDVeV%2Bm8Lt1rrOMlb2MjBbC0t5cWJBNvGumzcAn0%2B8U%2B47Fgd5pWWmJeuahludYsOp28cXbMp1DG45luNkVlNbeUa67ywZOpzGxra5wxHjHFRqhTcBTSxzdOOSq6Nk1RqciprLblmBZkNkJqD7%2BsrtjZVCK%2BwAbY4uF6uY2hYPH6FgT6bg0TUrcSys9lZ9otpMV5Q1nV9XuKvUZZxdFeY%2BItCU09Ecd41FZnRrSZGdXVCWyrH6ONQ4TlhP0bLceu9UY0kbEQiZ9T3Y2Tp2ZjxLLKAjtky3gbtikxMxbcZ3vbG%2BpItVuRe9tuPwdtt33MqrdziYjNKdLsR8PBqqVVAiwHabzlHy1WZed1Au9rKPR13M5bltKgCax7bRuld3E9jCdp8wrvL8Ou9bNHrSZext6vM6bQ3I5Bwly8cNUaGSLazuAXtTSwxxdKWmJhrEXste8%2FGctobNpdqCVR9Sushc7qjWt7NNqew3yz3kVcgilZUhVQTL5RdswO8K9%2BW0PeMJ6Gy520ixK8TFtD9FlSzTb1ubw1XvVoFamvArqUVAThOE5Ks5uYvGoZGppVLci6%2BKOMVGeLWd3zRjzqdU9QuKq2sJPSWizeVW7jl3sOxuXeUXHc%2B4BhGXaGyUYfFUxkWLWBAs2EAnGcZ2neMVEszERbtRsaPazgdiMZ7Jj4oEs6aR7Qx%2FE%2FlBSZ%2FM2YNyRN2XeqVtzezffbeEcTW20f5DR%2B8G24MUQCdhOYnePbWgs1WtBdqljQ2s0eycmtlOFylOKqDjxF%2BS2x5NOpKqeZ6CIOwnF2n8ye5WVnlS7Iy9wZtK%2Fx33hhaLA4ED7zvCyVi3U66w%2Bpvag5WDieIO0CtYacMtKMPphmrqXIzWWeqeFtoWaw145aKoWPsAjgxdkin3NRygTYr8N8fJ%2F2HYk7QtCYneIBtymo5dlC82ssI2YgENayw%2B401gGtBPxfOyLKx1WcKosB9iFd2VeISId6z7jWoAYdsf%2FH%2B5%2FH9zP8Abbu0f433B%2BP%2FxAAnEQACAQMDBAIDAQEAAAAAAAAAAQIQESEDIDESMDJBBCITQFFhgf%2FaAAgBAwEBPwHZp%2BSJeT%2FQ00mskuf0NLg1VaXbW2F27I1%2FLtrYlc0odKNTnuWFoTZH479n4Yxp8jEr9xJR4VOHRI%2BSuO5fNj0Sr8hfXuvBct%2FKayvF9qHTf7GPQsksi4uLmk%2FF7GrdhRXsassCZHOaT8XVmp4x2LnZ7OS6Iv0qamIukMSR8nzPJbIeSJc7FJdVjp9EUqaviyEepko%2B16NSXW7kfElzXT8iy%2Fh0x%2FhFJimmrMXncx%2F0ivdNXwZCPSqakeli8USLU0%2BRyUXYZEcDp9GmmpipPikcjjfkSz0jJKyRY0%2BTU8hEmhMwxckFa4ifFWh0tgfJBeyXkdeEJXdP8IKyIu9Jvpjc%2FMkflu6S1Lly4yJO1y9hFsEbFiFNZXjYsNWyKStkemOywfb%2BmSE0uR9MmTSvgs6T1ZLCPyTfs0U7fampwdKWWTlfilyK9kSWGOmlKKwxpci4HG0vsKFuTSdxsnqehtuqQxE9kZtCWDU%2B0rEJYyYirmpquWxKn%2B0kIdZaqWCTyLV6eCWo5bEqPJYZIWxvakJU52Or3KNOKLY6vYlcStR4G7ltt90Vmir62vjd%2F8QAKREAAgEDAwMEAwADAAAAAAAAAAECAxEhEBIxIDJBBCIwURMzQFJhcf%2FaAAgBAgEBPwHoqdpHj%2BCq2ngi7q%2F8FbuKLvH%2BCo1FHp%2B3520lcrT3MpP2l%2FjbSH6mCJer%2FwAUfnm9PSu8LFi3xNyly9OUcDZ6N8r5FFWucMiPT0j99vk8I5LMvfnT07tUXxT3W9hFO2TgWOR3vYlxxpT7lboUr3%2BCU5eCLu8klknjGlLvWqyU%2B6XQ%2BBavgyjaySfL0o5qLSbvFnpuw7ZdE%2B1kO1dDjJR3G%2FyTcvOlD9iKk9kSnPNn5KUdisT7iDxrVfsY5S8MU5fZKUvsdNxd1kl%2BvaWksPgk740ofsRVnvkLGWUp70S72QL6VngUHLKEhoVS2BS8squMoEtKfdpPBGbjlEpXW4jgg7touVeCj2EuSEWxxMofBUlewyn3ZMs5E8iseBuzwLtKj8FPsR%2BPLO1H%2FRfaJu7Jq2lOO6VkfgkfhsmcEKTWTazbnkRUwU29uDa3ySL5wSuXKmlB2ndm4Ut2GSi92CNYy3ctD6LRKlNvgW6CsUpO2S65PJToRlmR%2BGmvB6i2726U7p4N7lhFOG3ksbUTfglbghlWFpWjJ5iRb7R83QpXj7SVS%2BIlaNmJXKdLyRio8ayZH7GQ6JU1LI3aRS9kLlSNnjgd5uxSoqOS2rlY5OFbSGi1hQbyRWMkqG%2FkjRjHPRKXhaRxkuL7IvpUbdLHK%2BlrdEdV1Of1ovcJEtLaLVdDdhyvosiVhy0S0Rbqk7I5HjVvNj%2FeqI89X%2F%2FEADwQAAEDAQQHBAgGAgIDAAAAAAEAAhEhAxIxQRATIjJRYXEEIDOBIzBAQlJikaEUcoKSscFD4SSTotHw%2F9oACAEBAAY%2FAvU2bQJrNFZTzKoPYufFVoeK4HiuBX9LD1DSx103l4pCF2hGI9l4jguIWP6vU2f50JxQb7tpsn2alDxRuwHZB2B9RggHOFOSNkzbtOUUVj1%2Fr2ctq4fLifUXrR0JzAyGZHPRZvEQ2Yl0BeGT%2BUgqocP0rfHmsfV1ot5v1WM9FuuWAb1K3x%2BkSsHeZW63piquPloq4DqVAl55Leg8A2VRlo77L0diB%2BYytm0ufkC9M%2FWn56wpJros3%2B7eAd0Xht%2BipeHRxXiO%2By9zzYt2z8tlbv0tSty0%2FwCz%2Fawtfqv8v2X%2BT7LC0%2BoW5a%2Fv%2FwBrdd5vXhM8z%2FpUYxqxb%2B1b5%2ByxcfNUaNH%2FANTTt9oe7q4renqoAQ2Vui6iWw4JuEKEVGacOKsLX42A%2BzgYUyQaqCqbXELqriEyNI0Psc7J32NfZ3UyWGWCbIqmkCUKwgDvc8VJDXdRKFRKwUaHWZ%2Fys%2B49kdqyG2YOzEIa%2B3drM7sKtpaH9SenBfJxQGIPxI5Sr2MKRZsdFZcVKKjRZmyAc9u0ATCBt2hlpwaZ71n2UihxdwOXqZ753eoavE%2BykumiYHWZca1lBpoZoheIHxLcJHzLDudl%2FOO4SmF0B5FW6LM%2FOz%2BfU3hjeCBGBHe5owsW0%2BJC8d0bKa9z7zpwWEAfZG%2Fs5wsdJVh1nSLDWDWkTdVp5JvIHR%2BIJq0ggK887DjVqD2mWnv2Y4uVieUd6igoNs2G0a37K5aNIuKzEun3hC2T5EUUMe45xGC5dyw6O%2FjQbLs5l%2Bb8mpozG1f96eq%2FC9qN1xweM1MUg7WgDC85GFqX5Yd6SrG7UCUGttHtHyuXjWn7yvGtf3lD0toerivEtP3FEay0%2FcUQO0Nv8xAhEOYVedFTUj%2BEQzaYAMFrbGymRS6EDaXhxpC2SWk81vSsdATXOIENNStX2c3bLO0zPRU0A3WuvSNpCy7QbzPdtOHXRYsnATCbtCU0bvVdE3s9b6LLwvDLRVG6ZVeKAa2poAg%2B8DxDdDSUYMokFYZXZWrrxE5J20zbfVqc99jRmWSBYwNMThROuszm8DgnFs81xQ5LDQ4SRTJbSb1CFOKbvRWkhHY1h%2BfJEWVsQ29uGoRNpZsFq33m0lNAJbPAphoWcQuS15F14NAm20A%2F0nW1hvNJBanB8yiYIhGHXijaH3aBEECM5T2CaIRjxWyHPKDiGFubUYrC2Tgg%2BpMprCXl04HBP2i4HeyVcIjHFXGmOY0c1WmjbBN6jYyKi9VGNvosfurPDQ481Qzex5oUGgqQTKutc4dFIN2XCU76oihpiouhtMtF2J6KzDdm9i5DVv2xFHINBgBXmgvyBUYDNGsCsFNEt8pQtLMzkSciv7UbwBoUZ8u63VkbG1VS%2B3YfzZKG9oZZQKxKDHW4M0LoKBbW4amKKKF3FcalNc60uT9lDe0f%2BCh1oGnjxXiNjitq2s%2FKVIth5yg7WtDORR9K0nmhDg4Z3Vq2gXRXmiILpXo7Mjm4gIXnzan3RktYS60dxV22eI54qGWhdnt5IkSP%2FSuEEhuEYob2GBdKxcnDGfmVI6whXPj3bTWydmkLZshJ%2BLNYMaUb1rywTtZtg808WTIswcAr2rdSqr2dx%2FWQrosiBnLiU1zbPV%2FmkL%2Fl3NXwaStns2s5lR%2BFYTyRjs1mAOK8KyH6EBZtZZkHJqJuh3Qrw3N8lBv%2FAEQL2uuiskIG8C0ozdfGK2mBqjkjhBxkSgSWtsx8tVJs73VeA1eCxqH4YgkYxox0l9Q3ir0kQi5gLsg5DXOni0K63BOEzLi7RVjT1CkMY3oFs1K6o2eZxVChmuB4hXX1VNGCtLNmLhRDZL2%2FKmh4N3eDXK9gzkU6z3WNmJRf8OUqm1HmU19i5oHxFXDrbQ4ERWVdvtsxwvGeiedXWK7U6IUMa5x5L0gu8JTn3b04XTkgbm181T3sVRxAWy1Ak%2BkOAUmruqJNU3quGiDorph7Q4c16MusumCe4OxqjJjnEptqxrz8ROabeBcwndpBR7RZDqWVqjfILh5oOJk81P8AAW1nwVBHMI0nkVGEaOJ04yVTZasZ5nRLtp6vPV2FUfRUBqhWVVYVUHRQwVXSQ1rjzyQAF6TUAokxdyCHoxackHsAcD7rjAavEdHALavO6qGsAHc4ngF8A%2B6x%2BqN2pW0%2B6Don%2BVggyyAvZk5I2lptKYjguGmojTeCrohUVU1hfIAgrBUHf4KplUx4LYbClzvIKg%2Bqkhf2oARAlS5YfRTKyHRZoAFVKplpvd2Y7tFWi2iqV6KGq841U58VTJS93kFQKgVIU4KB9dBlbKpgrtSgVxCoIJ7mHeoqmFJP1Ru7R5Kd1vJbF53zOQDioUQqjQcJVIaOKgEmVU14KiqVgoInRMoUjmuPkqeqnQS3FC8S6eK8kaJwGSrksEFCtC0xCs3ky6FedWclSiFUEOivZojJCmOkonSe9%2F%2FEACgQAQACAgEDAwQDAQEAAAAAAAEAESExQVFhcRCBkSChscHR4fDxQP%2FaAAgBAQABPyH6NgPoQz8yzqbroiyFqgGuYwUBVY%2F8DGHnoaEze0M5njaZlcdjhlV0Y56JY3SE0fpCvRMzUx4ZgL0lkwOWh8MCBKlSpUqVK9a9KlejGJKlOo4Spv8ALsnJp9nn0AbEo0pCnF%2BJTnHn1qJKmnL7MG17RCNsAdeIHpUqVK%2BhJX01H0YnpZG3Uh4WfUeT0BD0uV4eJY1nzE%2F4QxC15D%2BY4w%2FQDvwRAd75yYQ%2BmvWpX1MVejOl8ym1DwLruy5LqXS4X9B9GIlKeDlnAaN1bSw83mduDALNM%2B%2BgCBfclBuPyqI0H39X6ajKhC0Dqz%2FlI%2FwhY3YY8Qy03WaOCEV5E3gCLYovll7xWXPsnVfaHfHJEiQXMv1Ij31AvfUD%2B4J7uv8ACV1AeiQ7bbitvCFtg2zO7y9dIpOTT%2BYotReYq28Mjwe%2BL8kt1f8AnrOE71D%2FAClXb%2FrqUfphXR%2B1%2Fc8PR9f7v5l4Fn%2Bz7xbtPlhDLdbv9Eeb2v7Tt%2Fg%2FhLt%2BQ4rxHsTH4Y%2FBKV7nx%2FaVHfrDHcZEveShosJupgbh5lFF%2FuIwJmoECnhmYy4mKr3JuDDmVbeGHvOs6Hms%2FTc39fMY%2BmsR7f7%2Bof2fxKooj6e8EjOFEu2W8lioZDKydocKmasHGeYfg2Ze4ydZqesqaYeYtoub4ln5XXwP39Lr6T9Lie0jOr8Rj6EmENqhUuJdKWYsKAauEEFZL1KSzYcTSL6sDTOm2DjQ0ylnGKg3kanAqp6yjNldeYGCYCtOT8L9Rh9Lj9K1PYTcKeuSMPKO9x7pWgIfaC%2FoH4mQ4xC6aAmYDozxdQ4VrHRFaCuGOIVMxUK2LzCbQ5GveWQaLLoME51y1flcvTnsRkBOeqzuNdm6iMGPptDrA5%2BTT6kEtc%2FEIG3cS0XLy8V6LAITYJaNuEJFF5MV5jaF1gxusTEhgqo%2FKP5bghTymzS7mQw7RIMfC2LuxGkd2eOnqMrurBoeWbs8B0x1MCf8EvP0UxTqS4zwIP3%2BoGjBIxj6EKmXbflDcpd9vvDXgNOzt%2Fc5J%2B05wal6ANszAiZhz0Qm69bdPaAGL4m3e%2BZt8bmdWuCWHTonvK7sUDAN81M7dX%2BUz%2BVSN6xFjPOWToy9Aag6KlKo2MWpbqVFVNj0z%2Fy%2FB%2Fc6ml3tiLGLFJijGgy83Ff7UFsFq6jEgLpMdmdUUCuulSg7rHM%2BH%2B1FgOFjhCQV1VUtc2Wb5iVjPaCbon3SoRceN3g6sXrkaTLqdp4ZmBn4Yo2aXBlRd5YO9EElU7vr2io%2BXbek4Dcw3LjCxSlBLZtp81CxHhA%2B0Nxa%2FwAbmD%2F0eYIdIn8qZ7%2Fm8wjfclntsoOg5uAZMU3qIAoAy64w67mEVBT89sy%2BJIaPtMgo3ay%2F8SnbQsLe7Bu%2BQlCtI3HLFAHzBWd70KYqu1f6Vd4N64Mws7%2B8rIxsYivEib7f5SqIiORJmYXhUcDeRvtE7zV4QhrOmJStJLvVVczTdKYEYp8Qy1RKUDrRKujhbhds8C9%2BGphLC2DoHWaAy4uZIOs4iqLvc%2FuBo2S9wP6mSatVBou5tiNlU%2F64fn2ajqXKkKpsLVhJoolU0kLRw3KvtAZysfuH2gOTmiKv2Ed4f%2B0zc2xlmZFk6B%2BJVeRpVnwqEBSAQPHSK6HOh7lx7IjtLgYAeaEW1rpzC14DTiuPtCc6sqZ6hj1nkhZBEA6qUOjAzucVTONdpn9R4bHlhmADk0QbyW62Rclx4E1XvKKwyyjHsNPxC2eEdfMZ6TfeUZ3gJpBNzQAYLpJR7HSUXLjNPVfMsOVZbLLW3zEFXK6QFCFI1KI0S7XRYQMNcXzOiJp6ZYurfKIdwvEqOOxEzFWyeZxSGCRhsyuekWhvtEscTJl3ceJWa3pYl34UesNmgzkEvdZUdy0ojhncO8HaJtXga8x8aDpBUMBRAvV3zN%2F0ry95YZJ0E1arb4wGtsDS%2BTiwPVHMIUvunw9qttly6wo4OsbL5pdYhDiu0s056wlDOLuduZW5wds12m%2FjuRgZpRaXvWOIyz6hO6iBJ2IpfuzJbbzSAKbful7QBqoOApbzp941FGhH2zO2LNrIsLm%2Bx8RRm%2Bz%2BEs1hEs3HySV%2FUuLWbMwjIbhtDSkVguHixpLfmIh46n5TfEe6mXtNstIv5iwS4XuEhBcdoEfAXe8rdWNKf2cSoYeckx21VkY9iaBjvkhbLBjWHxMDq95nvG4gpmD2Sm1wob6TRhcQEEdEp2VLAhRaqZmUnApcFhqwbNdYeIXVQhXmUM1XbTiCshlh43lX8TD0nvj16wYlw%2FxbKI7ynRoAXKgM4v8AtL%2F0nFfxMnBYKh7qGGiHNlvxMr5puDcZeO01Xn7yvQeFgT7xI9rSoexAxKVaaAGHT0OuI%2FdOuHXfMocLtLULwFYlkb7QT9lQl57RE%2FcQaiac41L2AbCZOk6UIMVzMpVvIx2lcqnSHkOLbqUWp9hVYN8kEgqU1Y1NWbUai6sg1MBi7w9GzTbmWp7M7u9im5msiYhRT5gLowcVW139pimmgtilzNrm5%2FqZDsrm8PxDFU2pR8zESmKbS%2BkudG3AnQO8qhJgUf2faGXaczOsu%2F4joDYv0eINDh2S7TIYueBh7YLbX7EtFsF7v0YHM4Kuj5nFhEcQI64kO0x9LjMBd8XKQ5OdQDF3EdZzawgZwxL0rotlYweBD0XOICWN37xZWCyFsRx0AEqrg0K7dxmXK1rOb1B5GgMeBRoQBu%2BrfAluW9ex0Lx7SrZGbfhuLfbKfxi%2Bt8sBA13KZDvKviZDMLVrW0bJTRhgT2Eo0OxPahZrR3gyeESpaN13AXs4V5Mupe7GggFWXiEyibzqVdibIRczSoNL7GCaEWcUh7iu0o4JRAKwNd5QT3CDnr00m5Y930CEy6gZbqWDEb0v2uZM65jvLRuKuHtXV%2BWLhGg9FzPdboOZxJ4IdJU0jj%2FfGOyffX8RIul5VZZ8ecEpOi%2FEClPu5uXt6KwQc3g%2FiFNu9UmalVjkh7QXMUYacvMr5a1ScVE9NIX1MLB4gK%2B6bQ5ism4%2BblGMWLV0A7uK82axPaGchPcnQgncpWWDejL2j4ec%2FLRjSmOK7l8IO8OZcOpH5M1A%2B%2F8AycOW%2B6X3jZZes4xKcleoFhLJ1al4d3m5lS8vdGWTDtHVRTASps6kWktcoUu3SXD%2B44jfMqedS3AqWFQkarKM8RYPPpDNG51IEtQ%2B7EufDDEVRXF0TQDudQL5HY5hert7RkACA%2BujnmbAnWCeJuscy6Iyc9SbUa2yWGW3nllgTUU0yTjpKgebvBDhyYhaOem5g0j3ZzCu5LGLXZEGZLjiG6YPWdaGnEsJSclF0XDDQlcQdXUstQa1%2BYsCr0WxKQjBzAa6wTW%2FLKadvXUEpnOmAjd9pST1esx6D7ZRSDa4yr2SdCXgzGuDpUz5bHE4cM0zPA1y9YugbSAoOxpxMBUEHXtBWeWGoMnaBftild3hmLcrnUjhTMEOMRWQ7pkSG21wqQwB87gBSg1DU0AmRsjcCmRfMV09iXadARWqtjiZEq1viKdFtqUwQdCbAF5hUMaj%2BVo9zklw2q8pgna3LA22QmXvLTNFW4wWh6QnXOYTKGwvEVx%2F%2F9oADAMBAAIAAwAAABDOsNxbJiKU2zj%2FAOowTLLtB9cbYFAm9Js0uGJvFxpLvIItDyXj5gaBycHo4xgyXSLQ8uJmKyG46qUSH14IO7myXaEhX0ps131VFu47Gz%2BEMyvRp8kOgEyBwd6UvlPUAovU%2BwSbF1cgUMI6CVUR7wXEPVERXtd3TzOAYvr457ibVREt6Gh5SZtxM%2FpKkqWAuygqr%2B4PSzy22drHXeYsQek4x25O75L7k5HgUSc4dPR8b6rsDsbULodwu%2Fo%2Fx%2B8QN3erbFQk0ukTQsjdo4jC864kALEBduefNHp2fy8PJxn%2FxAAnEQEAAwACAgEEAQUBAAAAAAABABEhEDFBUSAwYXGRoYGxweHw8f%2FaAAgBAwEBPxBZcvird1H%2Bx4uXL4uXxcuDH4XwQUx%2BV%2FC4RfgLnY9%2FRePujwcEEMD8fReO1keUVEsHywveU%2FOpXAyz1ALCK71AWGyqSCgeSXLl%2FC5kt4JjVR9R6JdxBmC%2Bg8kWUepd2ZaoZKVll%2Fv9MlFqviU1EEAbBkoZ8Xl4FnhFs0ydn4mFEo2R%2B9%2F4nuU09Rq85Ui%2BfmbHtQ1DqoVNzxnJVdTufbggpSfweHg2CJTwQGx1Msp1ErrPEAw6hk%2FRcBt%2Byf2IqN%2BI5zqAp8EKYlX2LysstYwi%2FVMPxKg79RbMOH7wUuQoh3sKCQg4RVhLJ8ZbbG4oWmzOodIe%2Fb3HcGaJ0zElsUBKhgQ%2FMUVLLdYgw0%2F%2BEo1yunm42dRShVw03%2Fsg46QwdghvJcCav2QYi39os%2FMMylftMPGQ3FtPaz0hWpGg2NFJEq4HueYWAkpeb2h0wYBElloeYq6MZbDGbDvINiAMGACiCpsBVUpLVhArdS7UAYxIojdzJbt4gXr9QysOIe49xFE70ynSOIo55Igq2kHpCnLmJGhMyAcIaRm2v5nWtCV7R1uUdSiwt10i3st1co1LNrG2QeTmHYY0o%2Ba%2FmFV0uEr%2FAEJSsbgDbN0R22PG8xkpWcDSuQK8S42dTyxfX%2Ff0nU7dQ%2FCTJOotxZUt1lBs7YugnWDYa4JTW%2F1BcTMwNT1FuXKhmsfcHSYnpBBEs4NlypL4OEYBOtYqpVTqZ0TeTpgwbCPFQL6nvh9o0ItsATqWsxgKl7yI8LAR3EYljIYh7i3w7PSPIRgNGdZBbsep3AAMvajw8Tx4lcf%2FxAAoEQEAAgIBAgQHAQEAAAAAAAABABEhMRBBUSBhcZEwgaGxweHw8dH%2F2gAIAQIBAT8QPBawbmv08NeB5vm5lqVI%2BNfCjG9vhvhcq5Zv9fhvgdKKV6IWRPNLHw3UvjcCCZjSXCqvcinLLW1l4ujKdOFPaV5fX9z5fX9yoHAVwTKXQhkepKtMDMnpeM5IRAfeJpmDcoywgnnH7%2BGQWgOsLVSzrFCqFe7HLmWF9PhM4rYgXzHQme4ooha6fdmSpbvrhdZ3yTB05eBlwYIv7JkDdxKVi4TOZJd7mj5nDguKgz6%2FwOm%2BTFYPBGUdzSDv%2BIPQ5dzetzc9xOAGPRn3It1dcwbLOV7DFaeXLZBFMMBaXL%2BoqtiOIL9WAj16Sxa8Ja%2BeMueRLCQ4AhoJUCjaCLFCGFEFW5QArL6ysBwTO48MXHo1LYGpiXZuC29JpAqnaXwS3pTBHolqnWaSsP8AZeQgSnpWIZczRnv9oXcQ%2FU%2FM6Iv3iKcLE2WWp1mNdmK3BQe8AIOkIJdVO5krOY62v%2BYhBoJk3GFtJkx1hdhgtO0SKcwYRVS9f7vKyEURKjFDiND0f33gDNk9ZXp1h1PKOsxj3RZsQi3LEEVBMoURyWI6KWUskQUWyzlANW5JXDR%2F2VOV945keRToTZCPREBYS7ASrggLVPvAxuHzjugbNRXtjsipbPdLco4gCq%2FpN%2BsTvrDVcSFHVii9oAKnUqdFCADkgEU7Xit6EoiM%2FiAe0X6R796jA%2BYuP5mCqomBFo98IoQlykmS9BLrmEzHDfKHd3lwDhYtdr%2FtfmPb5nv94rjrM62QJqBLmsbiuEcE1azBxHUdwxCWdf3HMVzQVV%2Benl2jvUypUvjC9ERkjfe3iwRmnjUqAwOK4Qbjaam8ECLYtspdTNZlhuXZiJiaQ8DiEYhbywKghiJcE3iAJaRowMYleEe0adZgZMZiXiKmJRlmLlAmDfJyzJO5i2J1hiKwr5p1vjJzM%2BBN8E%2F%2FxAAmEAEAAgICAgIBBQEBAAAAAAABABEhMUFRYXGBoZEQscHR8OHx%2F9oACAEBAAE%2FEAKxNGJVWKlxDIEomCAsu0X%2B%2BIkWmBeJ49w2DqAcsJTmu4AHL0BeS%2FohKN1KzAlRP0SBEzEJriVmUSqgISpSZeYD%2FniYBTTrvj%2FjFpjpA%2BF%2Fr8SyoLlca1qm3fp4gAUHZmUVC9c%2FiVmpyQKlS1TW4AMreRZX5CW7cFWzxrMZDhbM93XTuYJQ%2FqaQy%2FUYSV%2BhIw0iQVBcwQ0AVsSCzsrKeoDhY8kyaFC%2Bhi2oRQt%2BIo%2BMWz7iDI%2FE%2Fh%2FuBcvVX3qHjMCy42iJXEXprfh7nd9LMegqKP0DBtP8tfMwQMQgxhw%2FRVSon6DFEruVEjSYETMH6dkG4CNGA8nMGMvCV91R%2Fk6cEor9I1LO6gK3ENFvhHaH%2BOSEfuygtVycfWghNUprQ7IVp8yqwKxrFEftDBK5ZUqJc23iJElowmaiYiXEqMF53AM2QYhgiqtrj%2FsuA9im%2FsTN1TJAiBjBje%2Bk3BhLds05huBKljkhYuKjo6Iak9kyrJ7LNeGIEuJA5S%2Fti7cl%2BJVsyb3ABpVf46bJth6x%2FwADKoy%2BBX3UFEh5Ayl4%2FQU3EzHHVRI6neC4rzEvbDR9x8V%2FrmE0x2L%2BQSOLwZCD%2BW476RlHsr%2BYh4K1s9DkuEq5BS%2BMXbDShyBfan9pqXq0IdAQDl%2FCl%2B8yX9sMErxTjyofcpGna%2B8lj8Fgi3cCJ6hCP6DX0wLYNxZfKX9x9vQYO3t%2FiIqFr5Le4DkqW%2Blm8M%2BLsD6yivO1Rt%2BoYnUgp8DUANI6D%2B2Nt2%2BzX6Eu32pX5I5KRwB%2FCD7jXt%2Fm%2FcSus3%2FbebtAe1%2B7LWh%2BKM7FPX%2Bxnaj5H8Sl%2Bt%2F7TKeTV%2Fcln6RVfj%2BSI0zth%2B3P4cIhteUw34uvqZDrFkL4P5Y0WYXY%2FR%2FP%2BAkA4Df9n%2BY5sKtWVbf0FVtcin4Lmb2W7K%2FmIJvIBaE16CuC5MxmCEBE8nED9YZWt0V7g5gpvOz5lgGBeTNwEhwABy7%2FAN4hJsIAOSCGCgHFLPuoFmNHcIU%2FNwLhOiUXGrNP4gTeIlR1HcSLdKqHHUXcYlshXqz3wRcC1PVn8Q%2BQoaThTroShAAaCDuAgLbl1A5l6LA2Q2G5bdWhf7ww4BG0OLxgioN8IwL%2FALcCQbrqRfA2mN9kprs4TQr51PHnDaUuZAaOQZpsyQqQgGy3%2FwBgrMODZ6l0jAve%2FhU%2FEui6gxMY2S4LhWS7miLmdoxLj%2B0ckYG8Hc0NDd%2F76mYhgvK5z57fEt1oc2dvb%2BgQYjOZRixAAjd8y50SgPmClugWsztqEQtSTlsybfUtgByUDNA9e4ERQgZFsx4sj5WoZC4ocQT0UqadjrHidpRDhcxoIoUmUGgu6enuP2Ul21HzBdsHFMuNQ1UWCX%2BhVOfEZc4gC3BGyuuh%2Fv8AyIsAxwGP%2FDztg1WlCijB4IsW7lwHlHi5rcORxfxL6ZOVbBh37uWNJ1f%2BKO56ml91Cx8jQP5jRzIZJkYv0wc2Qw8NKnNY%2BYQK4DkFfPUrOsvSbRbyW4xnmOzWgFQpSw61LkLZyHdHqFvSsaeuQImHqyCyG4lFeypT615Za4LkErnJMynqNEKz%2BcTSWRWeTMGyWLSq8dKcIKyPL%2BjmLUWXfuE53O4PENn98TGSqFebQ%2FmKGidIjZoj1E6BHMYHuGEoRa%2BTuNwx0IT7q4%2FuqkK2KYxdnzg6nMfBg2W3WKzwy%2Bh6EGOc%2FwAwNMpXSuaNDeGKB5r3NLNDrzmJJBoad8SvN3uqolQUJKXog4vhTqVGCm3di%2FlbvuCYxBuZGIETzKKMHyy3ge94sgXeJnBqWsVDPRNh1LjFhYGWLlMvcub06jw1FNAe2r3B5rUvCXKM0gzqK8HywlKiKHqptjUUyVgCv2cxWo7d05OMq5duMFkCxrGt2K5Lwpa1WHhr26YEUbMcRaReAbka3RnzrcTkNpNsb2xm%2FwAcwwF4B0fSbmBBt2Xyzn7iK2Xggxz1EWOZVHBCfSmOSCP1DW3xN9%2FywbBuQo5%2FfG8MIJ4NbwwFvBQix%2FZYYbVuOkIoCotLdOpTTWBGSN0YPBnfshlQPv7gm1qaWB9wWHH%2B%2FwB%2FUqMFvcKhWOYpuY3F1XmDI1%2FJm%2FwgHEUNMa7gCrgCyTiVlsj5ls91QjGoFcqxY8tuQrX9xa%2FK4xq8FjZySxlegKw2jocuZX98GZvlbSjD5TMroJuvCVXcBowUgIzeTAuA5qAEQRVZzJXnnCEYd8U37kp7lgyqfocPpIHKkhLHkHOM0UQGyqOtmL%2FY0xVugJsKMPTC0X1ygNkw%2FmNHzg6vrwsuK8uF8qw%2FbByPzG4AXlHhKOeZdzzxKvzVlcYW1QtH8R6HUZGzpEJwWV54twEih5wWHFnaGSDe%2FFNUGLj%2B1KuTDLag7q6067gLNxDYciJd92XLYmy3VSisnww2xTKVKmLShtUpIWX2W0Ssbcn9wWLGysYQKc2j%2BoJHwKCFAHDTWOpuJBAoVgINyYU5imVYLLwkzUl3RbIGAdFBSVdYqZ1oBgeTp%2BR4gBwNkeOVY2EUYvhAKsjdcdlO%2BmMNWkyjQnJ9OZQsAlYnCMEgYwmLatmDmpVRUjtjjPhjbIHsGOHlipcAqN%2BYU7DQUTFZ9cdygpCjDXfmWqj2o1qHMLdCLLrHNa%2BYQSNANKY4lOiLNreKuWrPBFr3fJGwlHIcRyKFZ64f5IudNsKGPU3cG6F78YdwHcCLbKl%2BEROcoYCVnp2qChoKMFWTVCllmaitSAcGgCaCnTxuLrEwStW0wazMZtdhQ0j3%2BTDClFbci0vbrEuJaLoZb%2Fcjvgqwxnt6wxL2GV68QVWi7LduSomWVDB%2B0Lq%2FTHMSI1SY%2FEduRUlY1zDY0VeRg8h%2BRgFQeneGdmIoU0HsmCpxWG9Qa5G2zgOcuBCUXHBQjm5F%2BdzKuMEhd46v5hTWFWyoDa5OdPMr5Ozp46lkwQtSUPJ28xmHQCNX%2BHzBNN%2FUG7BcNZiUu23bx%2F5HCnctbaH%2FAITjpGqB825bYBh1CkjkrgPuHyEedLLAI1qLul898Gd%2BYBdrZlVoaY%2B4LtHY2XzlcS2DN5Rsqyb2PENsttckAfFv4gAQDHCAvHu45RCxfESnH4uJDenJhka5RthwMNAhVAZ2vXEYNwCIlB8Ab8Rugkd6k9YqB1275cwkqGxuvEBXDsi2jLz3Di2rPHJ2BcybgBtAZ9xnBWIqPdNafEU2K7tU95lpAUoyuSFQUNjYHGfcF7ZalonCEtWK9z5%2FMDOJ1cori5YFFDhSSvjEqujuGWQhL0K2vmZVrWih9QPaMOhn4zErWsUynx%2FuYp4ux103Fo1mhLfLyxuBVxniGfdfcye70tEDWDn1DYCVFDVXLjCFcwnCwQEAc4ea6Iw4NABdqY%2BSNV5mxMJx%2FmIRCrMNHfqm4A5sdjTWQy9J5gRRbK%2Fshen9odbJEFzis1dVbCqC0SHdDea8HxDGuqxB0tzTjevmChtRiw4KaYDgXaA7iAmui6I8gUK22pYvDKysktxWBBCgBVXbyhKlaUVmCqwPKaa8wQHk0FvRbIzfiIvJOTksz09%2FuR78BzV0NDy41LjL8tTWAQvFwFUmA9v%2BSk%2BobvQtY%2BrS5RUFX6wCw9TbwvctGAUuTnQmIhNUpc2MY8fMsgVFP40C4WFFp0HiE1iYSlXn8Mx7DJcIH2H1My5%2FkcL6gWB0uUXbWq11ogaELQQ9Cm%2Fshq2QQFdrsxzjMLFqCLD0FGbDOxrvGcQEC7i7HGzKMDF6usUmvxHgObliPPN6jsRbkETLaZmwByq%2FN%2FuY%2BsLCq%2B%2FctawjIyFeTTCItDWxavD5%2FmAT6QGi3ljcDehsCBy1SC3B6jGCC%2FJiCK4XV6fcxDlRVHhMzcbRgbUH7gEoCCwV3WC%2F9cu%2BmAzaqoSys5tmaXFoA3Vib3CbapIlHLO%2BFgH8PlC8juAFKspSavFERPIwjFlmOPHqEgMcpVUFsvJfqWVVu84Fa23zXiH%2FAA5BQ9pHgAZNP7TNXKsVh1UCJORu9RaqjBqqsIaWhy17a%2FEWGVRYieE3H%2BLswhrKq9iy4iD4EUy9tld%2B4KL3aoBQtcoE1qvlD6cMXosZuYEADdVrAeplAHMMOePxMvYAQV5DP4lOQoqsBYL1nC5mQ4tqq3ClVNbf3EZqWL6AvPgXMMCxi9tJ3A5uOHTGiosscHmVY25tnEobd3gl4jWBxSmlqHLjJ8wsQDiQNL9VvzEaozHlXeMoerm%2BUHKQrbxkxCiibCIoiqtNv4C6nFa8lxUP9QZI2GHIz8EBS9RzsbzDOWgHQsVNVE865e9y%2FsUS7mYdIVdiHZMbtyMnUEuAVpHYxizEy0EM3pynEPgXS4sEX8TPI7Q7eeQ%2Bt0Sr4VGlgBTSUzZCXEqpa%2BDVuwlVl2Chlr8EqOVJCBW8F2eOY2qEYeBMuKt4hK%2B3gOMiy18n3BwuvnM1s01gcww9RajoCTwGnZuruHOEhNLaKCAA1Tgu6zCM5Rv3JcnoEfxG4jaiUG2jU3A9XAFrUYSdxoKtVWUCunIZmWjCmJ3an1UAAuugojDEo53BBd9EptGStCN2Cm117mFMxHB8Zr%2B4nEpgjDy%2BZYjoVm%2B8%2FwCJo%2FqkFWXxupWaahV1%2B3Eo4KNgNwjmKcERY17zUwvQ5vEKrlwIYgs7COGG%2BSXwSftGC4SkoeHiXm92zqIOxt5I6wWepGlRWHOPcYMEGcFYPXuC9h23MJdXxcHKQVbV8bMuba85m3KN3TlCYKA%2FSLsrib1wTJMXjmpfG0HF%2BfyiCYcFAtmACviHPxYghAtk3er%2FAKdAGgBZKbXdeIQO8CO91Z%2B8AqeIYPURYE8MXEFVGP8ArqFRpVmoFToyqDoFi%2B23UoiM2ZI8HcUpEyjv1DzGgIUX%2FEpnreMvAcvmV77Cxg4MQfaGyhSOPx%2B8tQYEoD8ZSaHgHYfcqzwvR4vxmNGZxY3%2BZS0AKTNMaMywod9jzbDR8EOGJZTpkiZSJ4hI2WcOYElhGsAu3isyo3uD0WLzN7DV4QsPnmctsMQxWivsjoAA1zAPJOLjloSgtzYnnqNLcXADpC35lKptwPL3KzBWCFWCMq5LXMerg4P%2FAAgvgMf8kbezJ17XmHBOoBRfuGRupalFv6QRrZhVXp38SjLt0VWdxIpIbG3LOe%2BZRymQYG%2Fr7l85tV9lBuMauArb4rEN6tLJPQxUWohQYN%2BqimtjgUu4bSeVpuplUTPiIlkuwghN3elw2w1jLcFNbhZxL8WdXWvE0W5rhlirzcQZIwKpNj%2FEHD9uAlnAGexiFNC%2FCLgGZcQFkV5YSj4hceV1fJhrfY1QPxF6xKEH%2FR5JxBe6BflzUIBay9bV47fMvknxeXwe5U0tgUWsebhFy7BmnebzNeqrab7%2BoWAhawUvRNvAACqrEtHoHu7%2FAORmQY0F%2BuCYrIrBuHm6rEuEWoXB860S%2FPIWfmWtwbrKDlec%2FJBNEXSn4cx2UvIBXxuANEA5EQXasLxxHC8FbGoXcTl3MoxWhg6JcFBStKG4CV%2BbEtuL6itrlDlCXA90MEvHoDbHAAbaiYoo0wW6v%2FalRgFXPw8xbQKq%2B1eOPmILa5Q9IGWWvenlYrwhsUfbGgFiUtfLLotTJq%2FcdCkja3JnxzFWICrtOc38Y1xEOxwsC74eZbV8S8%2F0QbtQtMN%2FGdxtnFQ%2Fk3LENsWbR46Ny37mywdYhQCwWAoe3%2BJUdwE0dneNxwMl%2BXuouy2A3EQlWIHcGUWUmY5VDlTaMWcMVTmM78PEvOE4lIX9s4x8Qot8pdbxBKEh1H3HhEUClUXUDFavPKaNYI9bMgvzV0EYDAoNEpba5IdRJgFBeg5mLLLdhn%2FsEX%2FwL7%2F3UBiw3CiURkWMGHuGlcFSFHw%2F3FGSlDAPNGKilKMiDfkN1nfiMh0Wcj58S4k0G6D8EpxtQ2zrculIAGqOM81Fkp7TNoYWFRIUEHzNQrl3LIJOciVKBgo4atqbCJ1x4ghjIXqOiFUvJkZQ02nD3Dq1f3GvByXzCcK9Rmq3fMSyy4iEMDCg8EuzgBC19xYZxiDF0DgPiLy4x2W196IhBvBKJgw4Dyn9yiAYFby5%2FYgfCWTJXHO4%2FuHeA2S9duizNrBKiguVdkznP0snRjiEyoFS7dxBzoAKM8%2B%2FM0dDYS3xaRqOWQY7iNLpzDCOsRWAOq%2BQfcwhBgNL8x8FQKM0GJbLInGTOHEFQZdoVRd7mCAK3mGvWJdM10V6lBCh0epZiy4ZgKM0zCUumMUL0qMFz%2F%2FZ'%20alt%3D'small%20IMG_1990.JPG'%2F%3E" ] }

ToonTalk events can also be sensed. The first one supported is 'widget added'. It is triggered if something is added to an element widget, a box, or the backside of any widget (including the top-level work area). The event has a 'widget' property that provides a backside of the widget added so it can be inspected, altered, or removed. Other properties are 'where' which has the value of either front or back depending upon whether the front or back of a widget was added. If the widget was dropped in a box then 'index' indicates the hole number the widget was added to.

Here is a toy example using a 'widget added' sensor:

This will be replaced by a work area containing 4 things: a backside of a box, a number, a box, and an element. top level widget
{ "semantic": { "type": "top_level", "running": true, "backside_widgets": [ { "widget": { "shared_widget_index": 0 }, "is_backside": true }, { "widget": { "semantic": { "type": "number", "operator": "+", "numerator": "2", "denominator": "1", "format": "mixed_number", "infinite_stack": true }, "view": { "frontside_width": 30, "frontside_height": 62, "frontside_left": 385, "frontside_top": 28, "saved_width": 68, "saved_height": 62 }, "version": 1 } }, { "widget": { "shared_widget_index": 0 } }, { "widget": { "semantic": { "type": "element", "html": "Drop%20the%202%20in%20a%20box", "attributes": [ "left", "top", "width", "height" ], "attribute_values": [ 24, 183, 171, 24 ], "attributes_backsides": [ null, null, null, null ], "children": false }, "view": { "frontside_left": 24, "frontside_top": 183 }, "version": 1 } } ] }, "view": { "background_color": "rgba(0, 0, 0, 0)", "backside_width": 896, "backside_height": 433, "backside_left": 8, "backside_top": 21359.34375, "drag_x_offset": 111, "drag_y_offset": 297.65625 }, "version": 1, "shared_widgets": [ { "semantic": { "type": "box", "size": 2, "contents": [ null, null ], "horizontal": true, "name": ";;", "running": true, "backside_widgets": [ { "widget": { "semantic": { "type": "sensor", "contents": [], "guid": "sensor", "serial_number": 11, "name": "sensor", "event_name": "widget added", "attribute": "widget", "active": true, "sensor_of": { "shared_widget_index": 0 } }, "view": { "frontside_width": 116, "frontside_height": 98, "frontside_left": 422, "frontside_top": 12, "saved_width": 116, "saved_height": 98 }, "version": 1 } }, { "widget": { "semantic": { "type": "robot", "frontside_conditions": { "semantic": { "type": "box", "size": 2, "contents": [ null, null ], "horizontal": true, "name": ";;" }, "view": {}, "version": 1 }, "backside_conditions": [ { "widget": { "type": "backside", "my_widget": { "semantic": { "type": "number", "operator": "+", "numerator": "2", "denominator": "1", "format": "mixed_number", "infinite_stack": true }, "view": { "saved_width": 68, "saved_height": 62 }, "version": 1 }, "css": { "top": 0, "left": 0 }, "erased": true, "view": {} } } ], "body": { "type": "body", "steps": [ { "type": "robot_action", "action_name": "pick up", "path": { "type": "path.to_backside_widget_of_context", "type_name": "sensor", "backside_index": 0, "removing_widget": true }, "additional_info": { "time": 1846 } }, { "type": "robot_action", "action_name": "drop it on", "path": { "type": "path.top_level_backside", "removing_widget": true }, "additional_info": { "left_offset_fraction": 0.07421253974562798, "top_offset_fraction": 0.12178497942386832, "time": 805 } }, { "type": "robot_action", "action_name": "remove", "path": { "type": "newly_created_widgets_path", "index": 0, "removing_widget": true }, "additional_info": { "time": 96924 } }, { "type": "robot_action", "action_name": "pick up", "path": { "type": "path.to_resource", "resource": { "type": "element", "html": "Good%20drop!", "attributes": [ "left", "top", "width", "height" ], "attribute_values": [ 0, 0, 0, 0 ], "attributes_backsides": [ null, null, null, null ], "children": false } }, "additional_info": { "time": 8590 } }, { "type": "robot_action", "action_name": "drop it on", "path": { "type": "path.top_level_backside", "removing_widget": true }, "additional_info": { "left_offset_fraction": 0.8060413354531002, "top_offset_fraction": 0.28973765432098764, "time": 1002 } } ] }, "name": "#5", "running": true }, "view": { "frontside_width": 103, "frontside_height": 139, "frontside_left": 343, "frontside_top": 68, "saved_width": 66, "saved_height": 110 }, "version": 1 } } ] }, "view": { "frontside_width": 164, "frontside_height": 68, "frontside_left": 28, "frontside_top": 28, "backside_left": 249.21875, "backside_top": 149.84375, "saved_width": 164, "saved_height": 68 }, "version": 1 } ] }

Return to ToonTalk manual home page